diff --git a/Arminta_web/.idea/.gitignore b/Arminta_web/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/Arminta_web/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/Arminta_web/.idea/inspectionProfiles/profiles_settings.xml b/Arminta_web/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/Arminta_web/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/Arminta_web/.idea/misc.xml b/Arminta_web/.idea/misc.xml deleted file mode 100644 index 0254d99..0000000 --- a/Arminta_web/.idea/misc.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Arminta_web/.idea/modules.xml b/Arminta_web/.idea/modules.xml deleted file mode 100644 index fc6dd47..0000000 --- a/Arminta_web/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Arminta_web/main.py b/Arminta_web/main.py deleted file mode 100644 index 5596b44..0000000 --- a/Arminta_web/main.py +++ /dev/null @@ -1,16 +0,0 @@ -# This is a sample Python script. - -# Press Shift+F10 to execute it or replace it with your code. -# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings. - - -def print_hi(name): - # Use a breakpoint in the code line below to debug your script. - print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint. - - -# Press the green button in the gutter to run the script. -if __name__ == '__main__': - print_hi('PyCharm') - -# See PyCharm help at https://www.jetbrains.com/help/pycharm/ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/AUTHORS b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/AUTHORS deleted file mode 100644 index f8afd7e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/AUTHORS +++ /dev/null @@ -1,1066 +0,0 @@ -Django was originally created in late 2003 at World Online, the web division -of the Lawrence Journal-World newspaper in Lawrence, Kansas. - -Here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS -- -people who have submitted patches, reported bugs, added translations, helped -answer newbie questions, and generally made Django that much better: - - Aaron Cannon - Aaron Swartz - Aaron T. Myers - Abeer Upadhyay - Abhijeet Viswa - Abhinav Patil - Abhinav Yadav - Abhishek Gautam - Abhyudai - Adam Allred - Adam Bogdał - Adam Donaghy - Adam Johnson - Adam Malinowski - Adam Vandenberg - Ade Lee - Adiyat Mubarak - Adnan Umer - Arslan Noor - Adrian Holovaty - Adrian Torres - Adrien Lemaire - Afonso Fernández Nogueira - AgarFu - Ahmad Alhashemi - Ahmad Al-Ibrahim - Ahmed Eltawela - ajs - Akash Agrawal - Akis Kesoglou - Aksel Ethem - Akshesh Doshi - alang@bright-green.com - Alasdair Nicol - Albert Wang - Alcides Fonseca - Aldian Fazrihady - Aleksandra Sendecka - Aleksi Häkli - Alex Dutton - Alexander Myodov - Alexandr Tatarinov - Alex Aktsipetrov - Alex Becker - Alex Couper - Alex Dedul - Alex Gaynor - Alex Hill - Alex Ogier - Alex Robbins - Alexey Boriskin - Alexey Tsivunin - Ali Vakilzade - Aljaž Košir - Aljosa Mohorovic - Alokik Vijay - Amit Chakradeo - Amit Ramon - Amit Upadhyay - A. Murat Eren - Ana Belen Sarabia - Ana Krivokapic - Andi Albrecht - André Ericson - Andrei Kulakov - Andreas - Andreas Mock - Andreas Pelme - Andrés Torres Marroquín - Andrew Brehaut - Andrew Clark - Andrew Durdin - Andrew Godwin - Andrew Pinkham - Andrews Medina - Andrew Northall - Andriy Sokolovskiy - Andy Chosak - Andy Dustman - Andy Gayton - andy@jadedplanet.net - Anssi Kääriäinen - ant9000@netwise.it - Anthony Briggs - Anthony Wright - Anton Samarchyan - Antoni Aloy - Antonio Cavedoni - Antonis Christofides - Antti Haapala - Antti Kaihola - Anubhav Joshi - Anvesh Mishra - Aram Dulyan - arien - Armin Ronacher - Aron Podrigal - Arsalan Ghassemi - Artem Gnilov - Arthur - Arthur Jovart - Arthur Koziel - Arthur Rio - Arvis Bickovskis - Arya Khaligh - Aryeh Leib Taurog - A S Alam - Asif Saif Uddin - atlithorn - Audrey Roy - av0000@mail.ru - Axel Haustant - Aymeric Augustin - Bahadır Kandemir - Baishampayan Ghose - Baptiste Mispelon - Barry Pederson - Bartolome Sanchez Salado - Barton Ip - Bartosz Grabski - Bashar Al-Abdulhadi - Bastian Kleineidam - Batiste Bieler - Batman - Batuhan Taskaya - Baurzhan Ismagulov - Ben Dean Kawamura - Ben Firshman - Ben Godfrey - Benjamin Wohlwend - Ben Khoo - Ben Slavin - Ben Sturmfels - Berker Peksag - Bernd Schlapsi - Bernhard Essl - berto - Bhuvnesh Sharma - Bill Fenner - Bjørn Stabell - Bo Marchman - Bogdan Mateescu - Bojan Mihelac - Bouke Haarsma - Božidar Benko - Brad Melin - Brandon Chinn - Brant Harris - Brendan Hayward - Brendan Quinn - Brenton Simpson - Brett Cannon - Brett Hoerner - Brian Beck - Brian Fabian Crain - Brian Harring - Brian Helba - Brian Ray - Brian Rosner - Bruce Kroeze - Bruno Alla - Bruno Renié - brut.alll@gmail.com - Bryan Chow - Bryan Veloso - bthomas - btoll@bestweb.net - C8E - Caio Ariede - Calvin Spealman - Cameron Curry - Cameron Knight (ckknight) - Can Burak Çilingir - Can Sarıgöl - Carl Meyer - Carles Pina i Estany - Carlos Eduardo de Paula - Carlos Matías de la Torre - Carlton Gibson - cedric@terramater.net - Chad Whitman - ChaosKCW - Charlie Leifer - charly.wilhelm@gmail.com - Chason Chaffin - Cheng Zhang - Chris Adams - Chris Beaven - Chris Bennett - Chris Cahoon - Chris Chamberlin - Chris Jerdonek - Chris Jones - Chris Lamb - Chris Streeter - Christian Barcenas - Christian Metts - Christian Oudard - Christian Tanzer - Christoffer Sjöbergsson - Christophe Pettus - Christopher Adams - Christopher Babiak - Christopher Lenz - Christoph Mędrela - Chris Wagner - Chris Wesseling - Chris Wilson - Ciaran McCormick - Claude Paroz - Clint Ecker - colin@owlfish.com - Colin Wood - Collin Anderson - Collin Grady - Colton Hicks - Craig Blaszczyk - crankycoder@gmail.com - Curtis Maloney (FunkyBob) - dackze+django@gmail.com - Dagur Páll Ammendrup - Dane Springmeyer - Dan Fairs - Daniel Alves Barbosa de Oliveira Vaz - Daniel Duan - Daniele Procida - Daniel Fairhead - Daniel Greenfeld - dAniel hAhler - Daniel Jilg - Daniel Lindsley - Daniel Poelzleithner - Daniel Pyrathon - Daniel Roseman - Daniel Tao - Daniel Wiesmann - Danilo Bargen - Dan Johnson - Dan Palmer - Dan Poirier - Dan Stephenson - Dan Watson - dave@thebarproject.com - David Ascher - David Avsajanishvili - David Blewett - David Brenneman - David Cramer - David Danier - David Eklund - David Foster - David Gouldin - david@kazserve.org - David Krauth - David Larlet - David Reynolds - David Sanders - David Schein - David Tulig - David Winterbottom - David Wobrock - Davide Ceretti - Deep L. Sukhwani - Deepak Thukral - Denis Kuzmichyov - Dennis Schwertel - Derek Willis - Deric Crago - deric@monowerks.com - Deryck Hodge - Dimitris Glezos - Dirk Datzert - Dirk Eschler - Dmitri Fedortchenko - Dmitry Jemerov - dne@mayonnaise.net - Dolan Antenucci - Donald Harvey - Donald Stufft - Don Spaulding - Doug Beck - Doug Napoleone - dready - dusk@woofle.net - Dustyn Gibson - Ed Morley - Egidijus Macijauskas - eibaan@gmail.com - elky - Emmanuelle Delescolle - Emil Stenström - enlight - Enrico - Eric Boersma - Eric Brandwein - Eric Floehr - Eric Florenzano - Eric Holscher - Eric Moritz - Eric Palakovich Carr - Erik Karulf - Erik Romijn - eriks@win.tue.nl - Erwin Junge - Esdras Beleza - Espen Grindhaug - Étienne Beaulé - Eugene Lazutkin - Evan Grim - Fabian Büchler - Fabrice Aneche - Farhaan Bukhsh - favo@exoweb.net - fdr - Federico Capoano - Felipe Lee - Filip Noetzel - Filip Wasilewski - Finn Gruwier Larsen - Fiza Ashraf - Flávio Juvenal da Silva Junior - flavio.curella@gmail.com - Florian Apolloner - Florian Demmer - Florian Moussous - fnaimi66 - Fran Hrženjak - Francesco Panico - Francisco Albarran Cristobal - Francisco Couzo - François Freitag - Frank Tegtmeyer - Frank Wierzbicki - Frank Wiles - František Malina - Fraser Nevett - Gabriel Grant - Gabriel Hurley - gandalf@owca.info - Garry Lawrence - Garry Polley - Garth Kidd - Gary Wilson - Gasper Koren - Gasper Zejn - Gav O'Connor - Gavin Wahl - Ge Hanbin - geber@datacollect.com - Geert Vanderkelen - George Karpenkov - George Song - George Vilches - Georg "Hugo" Bauer - Georgi Stanojevski - Gerardo Orozco - Gil Gonçalves - Girish Kumar - Girish Sontakke - Gisle Aas - Glenn Maynard - glin@seznam.cz - GomoX - Gonzalo Saavedra - Gopal Narayanan - Graham Carlyle - Grant Jenks - Greg Chapple - Greg Twohig - Gregor Allensworth - Gregor Müllegger - Grigory Fateyev - Grzegorz Ślusarek - Guilherme Mesquita Gondim - Guillaume Pannatier - Gustavo Picon - hambaloney - Hang Park - Hannes Ljungberg - Hannes Struß - Harm Geerts - Hasan Ramezani - Hawkeye - Helen Sherwood-Taylor - Henrique Romano - Henry Dang - Hidde Bultsma - Himanshu Chauhan - hipertracker@gmail.com - Hiroki Kiyohara - Honza Král - Horst Gutmann - Hugo Osvaldo Barrera - HyukJin Jang - Hyun Mi Ae - Iacopo Spalletti - Ian A Wilson - Ian Clelland - Ian G. Kelly - Ian Holsman - Ian Lee - Ibon - Idan Gazit - Idan Melamed - Ifedapo Olarewaju - Igor Kolar - Illia Volochii - Ilya Bass - Ilya Semenov - Ingo Klöcker - I.S. van Oostveen - Iuri de Silvio - ivan.chelubeev@gmail.com - Ivan Sagalaev (Maniac) - Jaap Roes - Jack Moffitt - Jacob Burch - Jacob Green - Jacob Kaplan-Moss - Jacob Rief - Jacob Walls - Jakub Paczkowski - Jakub Wilk - Jakub Wiśniowski - james_027@yahoo.com - James Aylett - James Bennett - James Gillard - James Murty - James Tauber - James Timmins - James Turk - James Wheare - Jamie Matthews - Jannis Leidel - Janos Guljas - Jan Pazdziora - Jan Rademaker - Jarek Głowacki - Jarek Zgoda - Jarosław Wygoda - Jason Davies (Esaj) - Jason Huggins - Jason McBrayer - jason.sidabras@gmail.com - Jason Yan - Javier Mansilla - Jay Parlar - Jay Welborn - Jay Wineinger - J. Clifford Dyer - jcrasta@gmail.com - jdetaeye - Jeff Anderson - Jeff Balogh - Jeff Hui - Jeffrey Gelens - Jeff Triplett - Jeffrey Yancey - Jens Diemer - Jens Page - Jensen Cochran - Jeong-Min Lee - Jérémie Blaser - Jeremy Bowman - Jeremy Carbaugh - Jeremy Dunck - Jeremy Lainé - Jerin Peter George - Jesse Young - Jezeniel Zapanta - jhenry - Jim Dalton - Jimmy Song - Jiri Barton - Joachim Jablon - Joao Oliveira - Joao Pedro Silva - Joe Heck - Joe Jackson - Joel Bohman - Joel Heenan - Joel Watts - Joe Topjian - Johan C. Stöver - Johann Queuniet - john@calixto.net - John D'Agostino - John D'Ambrosio - John Huddleston - John Moses - John Paulett - John Shaffer - Jökull Sólberg Auðunsson - Jon Dufresne - Jon Janzen - Jonas Haag - Jonas Lundberg - Jonathan Davis - Jonatas C. D. - Jonathan Buchanan - Jonathan Daugherty (cygnus) - Jonathan Feignberg - Jonathan Slenders - Jonny Park - Jordan Bae - Jordan Dimov - Jordi J. Tablada - Jorge Bastida - Jorge Gajon - José Tomás Tocino García - Josef Rousek - Joseph Kocherhans - Josh Smeaton - Joshua Cannon - Joshua Ginsberg - Jozko Skrablin - J. Pablo Fernandez - jpellerin@gmail.com - Juan Catalano - Juan Manuel Caicedo - Juan Pedro Fisanotti - Julia Elman - Julia Matsieva - Julian Bez - Julie Rymer - Julien Phalip - Junyoung Choi - junzhang.jn@gmail.com - Jure Cuhalev - Justin Bronn - Justine Tunney - Justin Lilly - Justin Michalicek - Justin Myles Holmes - Jyrki Pulliainen - Kadesarin Sanjek - Kapil Bansal - Karderio - Karen Tracey - Karol Sikora - Katherine “Kati” Michel - Kathryn Killebrew - Katie Miller - Keith Bussell - Kenneth Love - Kent Hauser - Keryn Knight - Kevin Grinberg - Kevin Kubasik - Kevin McConnell - Kieran Holland - kilian - Kim Joon Hwan 김준환 - Kim Soung Ryoul 김성렬 - Klaas van Schelven - knox - konrad@gwu.edu - Kowito Charoenratchatabhan - Krišjānis Vaiders - krzysiek.pawlik@silvermedia.pl - Krzysztof Jagiello - Krzysztof Jurewicz - Krzysztof Kulewski - kurtiss@meetro.com - Lakin Wecker - Lars Yencken - Lau Bech Lauritzen - Laurent Luce - Laurent Rahuel - lcordier@point45.com - Leah Culver - Leandra Finger - Lee Reilly - Lee Sanghyuck - Leo "hylje" Honkanen - Leo Shklovskii - Leo Soto - lerouxb@gmail.com - Lex Berezhny - Liang Feng - limodou - Lincoln Smith - Liu Yijie <007gzs@gmail.com> - Loek van Gent - Loïc Bistuer - Lowe Thiderman - Luan Pablo - Lucas Connors - Luciano Ramalho - Lucidiot - Ludvig Ericson - Luis C. Berrocal - Łukasz Langa - Łukasz Rekucki - Luke Granger-Brown - Luke Plant - Maciej Fijalkowski - Maciej Wiśniowski - Mads Jensen - Makoto Tsuyuki - Malcolm Tredinnick - Manav Agarwal - Manuel Saelices - Manuzhai - Marc Aymerich Gubern - Marc Egli - Marcel Telka - Marcelo Galigniana - Marc Fargas - Marc Garcia - Marcin Wróbel - Marc Remolt - Marc Seguí Coll - Marc Tamlyn - Marc-Aurèle Brothier - Marian Andre - Marijn Vriens - Mario Gonzalez - Mariusz Felisiak - Mark Biggers - Mark Evans - Mark Gensler - mark@junklight.com - Mark Lavin - Mark Sandstrom - Markus Amalthea Magnuson - Markus Holtermann - Marten Kenbeek - Marti Raudsepp - martin.glueck@gmail.com - Martin Green - Martin Kosír - Martin Mahner - Martin Maney - Martin von Gagern - Mart Sõmermaa - Marty Alchin - Masashi Shibata - masonsimon+django@gmail.com - Massimiliano Ravelli - Massimo Scamarcia - Mathieu Agopian - Matías Bordese - Matt Boersma - Matt Brewer - Matt Croydon - Matt Deacalion Stevens - Matt Dennenbaum - Matthew Flanagan - Matthew Schinckel - Matthew Somerville - Matthew Tretter - Matthew Wilkes - Matthias Kestenholz - Matthias Pronk - Matt Hoskins - Matt McClanahan - Matt Riggott - Matt Robenolt - Mattia Larentis - Mattia Procopio - Mattias Loverot - mattycakes@gmail.com - Max Burstein - Max Derkachev - Max Smolens - Maxime Lorant - Maxime Turcotte - Maximilian Merz - Maximillian Dornseif - mccutchen@gmail.com - Meghana Bhange - Meir Kriheli - Michael S. Brown - Michael Hall - Michael Josephson - Michael Lissner - Michael Manfre - michael.mcewan@gmail.com - Michael Placentra II - Michael Radziej - Michael Sanders - Michael Schwarz - Michael Sinov - Michael Thornhill - Michal Chruszcz - michal@plovarna.cz - Michał Modzelewski - Mihai Damian - Mihai Preda - Mikaël Barbero - Mike Axiak - Mike Grouchy - Mike Malone - Mike Richardson - Mike Wiacek - Mikhail Korobov - Mikko Hellsing - Mikołaj Siedlarek - milkomeda - Milton Waddams - mitakummaa@gmail.com - mmarshall - Moayad Mardini - Morgan Aubert - Moritz Sichert - Morten Bagai - msaelices - msundstr - Mushtaq Ali - Mykola Zamkovoi - Nadège Michel - Nagy Károly - Nasimul Haque - Nasir Hussain - Natalia Bidart - Nate Bragg - Nathan Gaberel - Neal Norwitz - Nebojša Dorđević - Ned Batchelder - Nena Kojadin - Niall Dalton - Niall Kelly - Nick Efford - Nick Lane - Nick Pope - Nick Presta - Nick Sandford - Nick Sarbicki - Niclas Olofsson - Nicola Larosa - Nicolas Lara - Nicolas Noé - Nikita Marchant - Niran Babalola - Nis Jørgensen - Nowell Strite - Nuno Mariz - Octavio Peri - oggie rob - oggy - Oliver Beattie - Oliver Rutherfurd - Olivier Sels - Olivier Tabone - Orestis Markou - Orne Brocaar - Oscar Ramirez - Ossama M. Khayat - Owen Griffiths - Ömer Faruk Abacı - Pablo Martín - Panos Laganakos - Paolo Melchiorre - Pascal Hartig - Pascal Varet - Patrik Sletmo - Paul Bissex - Paul Collier - Paul Collins - Paul Donohue - Paul Lanier - Paul McLanahan - Paul McMillan - Paulo Poiati - Paulo Scardine - Paul Smith - Pavel Kulikov - pavithran s - Pavlo Kapyshin - permonik@mesias.brnonet.cz - Petar Marić - Pete Crosier - peter@mymart.com - Peter Sheats - Peter van Kampen - Peter Zsoldos - Pete Shinners - Petr Marhoun - Petter Strandmark - pgross@thoughtworks.com - phaedo - phil.h.smith@gmail.com - Philip Lindborg - Philippe Raoult - phil@produxion.net - Piotr Jakimiak - Piotr Lewandowski - plisk - polpak@yahoo.com - pradeep.gowda@gmail.com - Preston Holmes - Preston Timmons - Priyansh Saxena - Przemysław Buczkowski - Przemysław Suliga - Qi Zhao - Rachel Tobin - Rachel Willmer - Radek Švarz - Rafael Giebisch - Raffaele Salmaso - Rahmat Faisal - Rajesh Dhawan - Ramez Ashraf - Ramil Yanbulatov - Ramin Farajpour Cami - Ramiro Morales - Ramon Saraiva - Ram Rachum - Randy Barlow - Raphaël Barrois - Raphael Michel - Raúl Cumplido - Rebecca Smith - Remco Wendt - Renaud Parent - Renbi Yu - Reza Mohammadi - rhettg@gmail.com - Ricardo Javier Cárdenes Medina - ricardojbarrios@gmail.com - Riccardo Di Virgilio - Riccardo Magliocchetti - Richard Davies - Richard House - Rick Wagner - Rigel Di Scala - Robert Coup - Robert Myers - Roberto Aguilar - Robert Rock Howard - Robert Wittams - Rob Golding-Day - Rob Hudson - Rob Nguyen - Robin Munn - Rodrigo Pinheiro Marques de Araújo - Rohith P R - Romain Garrigues - Ronnie van den Crommenacker - Ronny Haryanto - Ross Poulton - Roxane Bellot - Rozza - Rudolph Froger - Rudy Mutter - Rune Rønde Laursen - Russell Cloran - Russell Keith-Magee - Russ Webber - Ryan Hall - Ryan Heard - ryankanno - Ryan Kelly - Ryan Niemeyer - Ryan Petrello - Ryan Rubin - Ryno Mathee - Sachin Jat - Sage M. Abdullah - Sam Newman - Sander Dijkhuis - Sanket Saurav - Sanyam Khurana - Sarah Boyce - Sarthak Mehrish - schwank@gmail.com - Scot Hacker - Scott Barr - Scott Cranfill - Scott Fitsimones - Scott Pashley - scott@staplefish.com - Sean Brant - Sebastian Hillig - Sebastian Spiegel - Segyo Myung - Selwin Ong - Sengtha Chay - Senko Rašić - serbaut@gmail.com - Sergei Maertens - Sergey Fedoseev - Sergey Kolosov - Seth Hill - Shai Berger - Shannon -jj Behrens - Shawn Milochik - Shreya Bamne - Silvan Spross - Simeon Visser - Simon Blanchard - Simon Charette - Simon Greenhill - Simon Litchfield - Simon Meers - Simon Williams - Simon Willison - Sjoerd Job Postmus - Slawek Mikula - sloonz - smurf@smurf.noris.de - sopel - Sreehari K V - Sridhar Marella - Srinivas Reddy Thatiparthy - Stanislas Guerra - Stanislaus Madueke - Stanislav Karpov - starrynight - Stefan R. Filipek - Stefane Fermgier - Stefano Rivera - Stéphane Raimbault - Stephan Jaekel - Stephen Burrows - Steven L. Smith (fvox13) - Steven Noorbergen (Xaroth) - Stuart Langridge - Subhav Gautam - Sujay S Kumar - Sune Kirkeby - Sung-Jin Hong - SuperJared - Susan Tan - Sutrisno Efendi - Swaroop C H - Szilveszter Farkas - Taavi Teska - Tai Lee - Takashi Matsuo - Tareque Hossain - Taylor Mitchell - Terry Huang - thebjorn - Thejaswi Puthraya - Thijs van Dien - Thom Wiggers - Thomas Chaumeny - Thomas Güttler - Thomas Kerpe - Thomas Sorrel - Thomas Steinacher - Thomas Stromberg - Thomas Tanner - tibimicu@gmx.net - Ties Jan Hefting - Tim Allen - Tim Givois - Tim Graham - Tim Heap - Tim McCurrach - Tim Saylor - Tobias Kunze - Tobias McNulty - tobias@neuyork.de - Todd O'Bryan - Tom Carrick - Tom Christie - Tom Forbes - Tom Insam - Tom Tobin - Tom Wojcik - Tomáš Ehrlich - Tomáš Kopeček - Tome Cvitan - Tomek Paczkowski - Tomer Chachamu - Tommy Beadle - Tore Lundqvist - torne-django@wolfpuppy.org.uk - Travis Cline - Travis Pinney - Travis Swicegood - Travis Terry - Trevor Caira - Trey Long - tstromberg@google.com - tt@gurgle.no - Tyler Tarabula - Tyson Clugg - Tyson Tate - Unai Zalakain - Valentina Mukhamedzhanova - valtron - Vasiliy Stavenko - Vasil Vangelovski - Vibhu Agarwal - Victor Andrée - viestards.lists@gmail.com - Viktor Danyliuk - Viktor Grabov - Ville Säävuori - Vinay Karanam - Vinay Sajip - Vincent Foley - Vinny Do - Vitaly Babiy - Vitaliy Yelnik - Vladimir Kuzma - Vlado - Vsevolod Solovyov - Vytis Banaitis - wam-djangobug@wamber.net - Wang Chun - Warren Smith - Waylan Limberg - Wiktor Kołodziej - Wiley Kestner - Wiliam Alves de Souza - Will Ayd - William Schwartz - Will Hardy - Will Zhao - Wilson Miner - Wim Glenn - wojtek - Wu Haotian - Xavier Francisco - Xia Kai - Yann Fouillat - Yann Malet - Yash Jhunjhunwala - Yasushi Masuda - ye7cakf02@sneakemail.com - ymasuda@ethercube.com - Yoong Kang Lim - Yusuke Miyazaki - yyyyyyyan - Zac Hatfield-Dodds - Zachary Voase - Zach Liu - Zach Thompson - Zain Memon - Zain Patel - Zak Johnson - Žan Anderle - Zbigniew Siciarz - zegor - Zeynel Özdemir - Zlatko Mašek - zriv - - -A big THANK YOU goes to: - - Rob Curley and Ralph Gage for letting us open-source Django. - - Frank Wiles for making excellent arguments for open-sourcing, and for - his sage sysadmin advice. - - Ian Bicking for convincing Adrian to ditch code generation. - - Mark Pilgrim for "Dive Into Python" (https://www.diveinto.org/python3/). - - Guido van Rossum for creating Python. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/INSTALLER b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/LICENSE b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/LICENSE deleted file mode 100644 index 5f4f225..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Django Software Foundation and individual contributors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of Django nor the names of its contributors may be used - to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/LICENSE.python b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/LICENSE.python deleted file mode 100644 index a25ce5c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/LICENSE.python +++ /dev/null @@ -1,290 +0,0 @@ -Django is licensed under the three-clause BSD license; see the file -LICENSE for details. - -Django includes code from the Python standard library, which is licensed under -the Python license, a permissive open source license. The copyright and license -is included below for compliance with Python's terms. - ----------------------------------------------------------------------- - -Copyright (c) 2001-present Python Software Foundation; All Rights Reserved - -A. HISTORY OF THE SOFTWARE -========================== - -Python was created in the early 1990s by Guido van Rossum at Stichting -Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands -as a successor of a language called ABC. Guido remains Python's -principal author, although it includes many contributions from others. - -In 1995, Guido continued his work on Python at the Corporation for -National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) -in Reston, Virginia where he released several versions of the -software. - -In May 2000, Guido and the Python core development team moved to -BeOpen.com to form the BeOpen PythonLabs team. In October of the same -year, the PythonLabs team moved to Digital Creations, which became -Zope Corporation. In 2001, the Python Software Foundation (PSF, see -https://www.python.org/psf/) was formed, a non-profit organization -created specifically to own Python-related Intellectual Property. -Zope Corporation was a sponsoring member of the PSF. - -All Python releases are Open Source (see http://www.opensource.org for -the Open Source Definition). Historically, most, but not all, Python -releases have also been GPL-compatible; the table below summarizes -the various releases. - - Release Derived Year Owner GPL- - from compatible? (1) - - 0.9.0 thru 1.2 1991-1995 CWI yes - 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes - 1.6 1.5.2 2000 CNRI no - 2.0 1.6 2000 BeOpen.com no - 1.6.1 1.6 2001 CNRI yes (2) - 2.1 2.0+1.6.1 2001 PSF no - 2.0.1 2.0+1.6.1 2001 PSF yes - 2.1.1 2.1+2.0.1 2001 PSF yes - 2.1.2 2.1.1 2002 PSF yes - 2.1.3 2.1.2 2002 PSF yes - 2.2 and above 2.1.1 2001-now PSF yes - -Footnotes: - -(1) GPL-compatible doesn't mean that we're distributing Python under - the GPL. All Python licenses, unlike the GPL, let you distribute - a modified version without making your changes open source. The - GPL-compatible licenses make it possible to combine Python with - other software that is released under the GPL; the others don't. - -(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, - because its license has a choice of law clause. According to - CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 - is "not incompatible" with the GPL. - -Thanks to the many outside volunteers who have worked under Guido's -direction to make these releases possible. - - -B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON -=============================================================== - -Python software and documentation are licensed under the -Python Software Foundation License Version 2. - -Starting with Python 3.8.6, examples, recipes, and other code in -the documentation are dual licensed under the PSF License Version 2 -and the Zero-Clause BSD license. - -Some software incorporated into Python is under different licenses. -The licenses are listed with code falling under that license. - - -PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 --------------------------------------------- - -1. This LICENSE AGREEMENT is between the Python Software Foundation -("PSF"), and the Individual or Organization ("Licensee") accessing and -otherwise using this software ("Python") in source or binary form and -its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, PSF hereby -grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, -analyze, test, perform and/or display publicly, prepare derivative works, -distribute, and otherwise use Python alone or in any derivative version, -provided, however, that PSF's License Agreement and PSF's notice of copyright, -i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Python Software Foundation; -All Rights Reserved" are retained in Python alone or in any derivative version -prepared by Licensee. - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python. - -4. PSF is making Python available to Licensee on an "AS IS" -basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any -relationship of agency, partnership, or joint venture between PSF and -Licensee. This License Agreement does not grant permission to use PSF -trademarks or trade name in a trademark sense to endorse or promote -products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using Python, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - -BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 -------------------------------------------- - -BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 - -1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an -office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the -Individual or Organization ("Licensee") accessing and otherwise using -this software in source or binary form and its associated -documentation ("the Software"). - -2. Subject to the terms and conditions of this BeOpen Python License -Agreement, BeOpen hereby grants Licensee a non-exclusive, -royalty-free, world-wide license to reproduce, analyze, test, perform -and/or display publicly, prepare derivative works, distribute, and -otherwise use the Software alone or in any derivative version, -provided, however, that the BeOpen Python License is retained in the -Software, alone or in any derivative version prepared by Licensee. - -3. BeOpen is making the Software available to Licensee on an "AS IS" -basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE -SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS -AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY -DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -5. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -6. This License Agreement shall be governed by and interpreted in all -respects by the law of the State of California, excluding conflict of -law provisions. Nothing in this License Agreement shall be deemed to -create any relationship of agency, partnership, or joint venture -between BeOpen and Licensee. This License Agreement does not grant -permission to use BeOpen trademarks or trade names in a trademark -sense to endorse or promote products or services of Licensee, or any -third party. As an exception, the "BeOpen Python" logos available at -http://www.pythonlabs.com/logos.html may be used according to the -permissions granted on that web page. - -7. By copying, installing or otherwise using the software, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - -CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 ---------------------------------------- - -1. This LICENSE AGREEMENT is between the Corporation for National -Research Initiatives, having an office at 1895 Preston White Drive, -Reston, VA 20191 ("CNRI"), and the Individual or Organization -("Licensee") accessing and otherwise using Python 1.6.1 software in -source or binary form and its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, CNRI -hereby grants Licensee a nonexclusive, royalty-free, world-wide -license to reproduce, analyze, test, perform and/or display publicly, -prepare derivative works, distribute, and otherwise use Python 1.6.1 -alone or in any derivative version, provided, however, that CNRI's -License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) -1995-2001 Corporation for National Research Initiatives; All Rights -Reserved" are retained in Python 1.6.1 alone or in any derivative -version prepared by Licensee. Alternately, in lieu of CNRI's License -Agreement, Licensee may substitute the following text (omitting the -quotes): "Python 1.6.1 is made available subject to the terms and -conditions in CNRI's License Agreement. This Agreement together with -Python 1.6.1 may be located on the internet using the following -unique, persistent identifier (known as a handle): 1895.22/1013. This -Agreement may also be obtained from a proxy server on the internet -using the following URL: http://hdl.handle.net/1895.22/1013". - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python 1.6.1 or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python 1.6.1. - -4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" -basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. This License Agreement shall be governed by the federal -intellectual property law of the United States, including without -limitation the federal copyright law, and, to the extent such -U.S. federal law does not apply, by the law of the Commonwealth of -Virginia, excluding Virginia's conflict of law provisions. -Notwithstanding the foregoing, with regard to derivative works based -on Python 1.6.1 that incorporate non-separable material that was -previously distributed under the GNU General Public License (GPL), the -law of the Commonwealth of Virginia shall govern this License -Agreement only as to issues arising under or with respect to -Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this -License Agreement shall be deemed to create any relationship of -agency, partnership, or joint venture between CNRI and Licensee. This -License Agreement does not grant permission to use CNRI trademarks or -trade name in a trademark sense to endorse or promote products or -services of Licensee, or any third party. - -8. By clicking on the "ACCEPT" button where indicated, or by copying, -installing or otherwise using Python 1.6.1, Licensee agrees to be -bound by the terms and conditions of this License Agreement. - - ACCEPT - - -CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 --------------------------------------------------- - -Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, -The Netherlands. All rights reserved. - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Stichting Mathematisch -Centrum or CWI not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO -THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE -FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT -OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION ----------------------------------------------------------------------- - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/METADATA b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/METADATA deleted file mode 100644 index 1c92804..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/METADATA +++ /dev/null @@ -1,102 +0,0 @@ -Metadata-Version: 2.1 -Name: Django -Version: 4.2.11 -Summary: A high-level Python web framework that encourages rapid development and clean, pragmatic design. -Home-page: https://www.djangoproject.com/ -Author: Django Software Foundation -Author-email: foundation@djangoproject.com -License: BSD-3-Clause -Project-URL: Documentation, https://docs.djangoproject.com/ -Project-URL: Release notes, https://docs.djangoproject.com/en/stable/releases/ -Project-URL: Funding, https://www.djangoproject.com/fundraising/ -Project-URL: Source, https://github.com/django/django -Project-URL: Tracker, https://code.djangoproject.com/ -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: Web Environment -Classifier: Framework :: Django -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: BSD License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Topic :: Internet :: WWW/HTTP -Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content -Classifier: Topic :: Internet :: WWW/HTTP :: WSGI -Classifier: Topic :: Software Development :: Libraries :: Application Frameworks -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Requires-Python: >=3.8 -License-File: LICENSE -License-File: LICENSE.python -License-File: AUTHORS -Requires-Dist: asgiref (<4,>=3.6.0) -Requires-Dist: sqlparse (>=0.3.1) -Requires-Dist: backports.zoneinfo ; python_version < "3.9" -Requires-Dist: tzdata ; sys_platform == "win32" -Provides-Extra: argon2 -Requires-Dist: argon2-cffi (>=19.1.0) ; extra == 'argon2' -Provides-Extra: bcrypt -Requires-Dist: bcrypt ; extra == 'bcrypt' - -====== -Django -====== - -Django is a high-level Python web framework that encourages rapid development -and clean, pragmatic design. Thanks for checking it out. - -All documentation is in the "``docs``" directory and online at -https://docs.djangoproject.com/en/stable/. If you're just getting started, -here's how we recommend you read the docs: - -* First, read ``docs/intro/install.txt`` for instructions on installing Django. - -* Next, work through the tutorials in order (``docs/intro/tutorial01.txt``, - ``docs/intro/tutorial02.txt``, etc.). - -* If you want to set up an actual deployment server, read - ``docs/howto/deployment/index.txt`` for instructions. - -* You'll probably want to read through the topical guides (in ``docs/topics``) - next; from there you can jump to the HOWTOs (in ``docs/howto``) for specific - problems, and check out the reference (``docs/ref``) for gory details. - -* See ``docs/README`` for instructions on building an HTML version of the docs. - -Docs are updated rigorously. If you find any problems in the docs, or think -they should be clarified in any way, please take 30 seconds to fill out a -ticket here: https://code.djangoproject.com/newticket - -To get more help: - -* Join the ``#django`` channel on ``irc.libera.chat``. Lots of helpful people - hang out there. See https://web.libera.chat if you're new to IRC. - -* Join the django-users mailing list, or read the archives, at - https://groups.google.com/group/django-users. - -To contribute to Django: - -* Check out https://docs.djangoproject.com/en/dev/internals/contributing/ for - information about getting involved. - -To run Django's test suite: - -* Follow the instructions in the "Unit tests" section of - ``docs/internals/contributing/writing-code/unit-tests.txt``, published online at - https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/#running-the-unit-tests - -Supporting the Development of Django -==================================== - -Django's development depends on your contributions. - -If you depend on Django, remember to support the Django Software Foundation: https://www.djangoproject.com/fundraising/ - - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/RECORD b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/RECORD deleted file mode 100644 index 7b6a446..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/RECORD +++ /dev/null @@ -1,4495 +0,0 @@ -../../Scripts/django-admin.exe,sha256=YT5FtGjH4ql-BLStUGgbEceEl5RwT5-tbfvGObGcI4c,108462 -Django-4.2.11.dist-info/AUTHORS,sha256=XnaAZyQQxFczdrn4l-fUAmmysNq_u0CVJ5wKIYN4ynw,41362 -Django-4.2.11.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -Django-4.2.11.dist-info/LICENSE,sha256=uEZBXRtRTpwd_xSiLeuQbXlLxUbKYSn5UKGM0JHipmk,1552 -Django-4.2.11.dist-info/LICENSE.python,sha256=pSxfIaEVix6-28uSiusYmITnfjxeOIw41mDVk-cf7x8,14383 -Django-4.2.11.dist-info/METADATA,sha256=G2Vi8tVXEEEERZAC3UoCrGavJeD-4ySjzF4mq2WbyOI,4153 -Django-4.2.11.dist-info/RECORD,, -Django-4.2.11.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -Django-4.2.11.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 -Django-4.2.11.dist-info/entry_points.txt,sha256=daYW_s0r8Z5eiRi_bNU6vodHqVUXQWzm-DHFOQHTV2Q,83 -Django-4.2.11.dist-info/top_level.txt,sha256=V_goijg9tfO20ox_7os6CcnPvmBavbxu46LpJiNLwjA,7 -django/__init__.py,sha256=sAa1Kn_HXdILJkEddiKEKV7dee5PHu7-hpY4fonGihA,800 -django/__main__.py,sha256=9a5To1vQXqf2Jg_eh8nLvIc0GXmDjEXv4jE1QZEqBFk,211 -django/__pycache__/__init__.cpython-312.pyc,, -django/__pycache__/__main__.cpython-312.pyc,, -django/__pycache__/shortcuts.cpython-312.pyc,, -django/apps/__init__.py,sha256=8WZTI_JnNuP4tyfuimH3_pKQYbDAy2haq-xkQT1UXkc,90 -django/apps/__pycache__/__init__.cpython-312.pyc,, -django/apps/__pycache__/config.cpython-312.pyc,, -django/apps/__pycache__/registry.cpython-312.pyc,, -django/apps/config.py,sha256=1Zhxt4OrwRnOmsT_B_BurImz3oi8330TJG0rRRJ58bQ,11482 -django/apps/registry.py,sha256=6AG3X1-GUf4-omJcVxxaH8Zyts6k8HWb53BPu4Ehmk4,17661 -django/conf/__init__.py,sha256=1uIqjMjixiILwdu51vO4mqu5ujWJ5J_tRtqRml-Lzdk,15248 -django/conf/__pycache__/__init__.cpython-312.pyc,, -django/conf/__pycache__/global_settings.cpython-312.pyc,, -django/conf/app_template/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/app_template/admin.py-tpl,sha256=suMo4x8I3JBxAFBVIdE-5qnqZ6JAZV0FESABHOSc-vg,63 -django/conf/app_template/apps.py-tpl,sha256=jrRjsh9lSkUvV4NnKdlAhLDtvydwBNjite0w2J9WPtI,171 -django/conf/app_template/migrations/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/app_template/models.py-tpl,sha256=Vjc0p2XbAPgE6HyTF6vll98A4eDhA5AvaQqsc4kQ9AQ,57 -django/conf/app_template/tests.py-tpl,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60 -django/conf/app_template/views.py-tpl,sha256=xc1IQHrsij7j33TUbo-_oewy3vs03pw_etpBWaMYJl0,63 -django/conf/global_settings.py,sha256=kUiKTtQ9WVXiti500IKBJJZEkCAKkaQeLiWbopqcOB4,23379 -django/conf/locale/__init__.py,sha256=wIcmwRyDihMsG2Uush9UHaLj04mswblCIOh5L2YcDQU,13733 -django/conf/locale/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/af/LC_MESSAGES/django.mo,sha256=GqXA00k3sKdvUz3tD5nSLrN7rfAYm9FBvGFzcaa_AFE,24077 -django/conf/locale/af/LC_MESSAGES/django.po,sha256=oVXTZ2E6Z_EnAwAhjllrb34PG773iksXziMUL5kkRxU,28110 -django/conf/locale/ar/LC_MESSAGES/django.mo,sha256=qBaEPhfJxd2mK1uPH7J06hPI3_leRPsWkVgcKtJSAvQ,35688 -django/conf/locale/ar/LC_MESSAGES/django.po,sha256=MQeB4q0H-uDLurniJP5b2SBOTETAUl9k9NHxtaw0nnU,38892 -django/conf/locale/ar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ar/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ar/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ar/formats.py,sha256=EI9DAiGt1avNY-a6luMnAqKISKGHXHiKE4QLRx7wGHU,696 -django/conf/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=QosXYYYvQjGu13pLrC9LIVwUQXVwdJpIYn7RB9QCJY8,33960 -django/conf/locale/ar_DZ/LC_MESSAGES/django.po,sha256=2iT_sY4XedSSiHagu03OgpYXWNJVaKDwKUfxgEN4k3k,37626 -django/conf/locale/ar_DZ/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ar_DZ/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ar_DZ/formats.py,sha256=T84q3oMKng-L7_xymPqYwpzs78LvvfHy2drfSRj8XjE,901 -django/conf/locale/ast/LC_MESSAGES/django.mo,sha256=XSStt50HP-49AJ8wFcnbn55SLncJCsS2lx_4UwK-h-8,15579 -django/conf/locale/ast/LC_MESSAGES/django.po,sha256=7qZUb5JjfrWLqtXPRjpNOMNycbcsEYpNO-oYmazLTk4,23675 -django/conf/locale/az/LC_MESSAGES/django.mo,sha256=DMupaHNLr95FRZeF1di-6DygIFSZ6YxYRIHrPv4Gv3E,26983 -django/conf/locale/az/LC_MESSAGES/django.po,sha256=ZF-Qz16zoirRayV4_C9AIzbQwt2thq1WeS0DpcD7SIY,29723 -django/conf/locale/az/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/az/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/az/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/az/formats.py,sha256=JQoS2AYHKJxiH6TJas1MoeYgTeUv5XcNtYUHF7ulDmw,1087 -django/conf/locale/be/LC_MESSAGES/django.mo,sha256=VGMEyZiVnanRwtiUwgOjpHuADmCR000T-ti0RnBOXwQ,37041 -django/conf/locale/be/LC_MESSAGES/django.po,sha256=s5Z667KIFceAzV-XDraWCYWo96vD2Bc5bgzBVyKV0jk,39618 -django/conf/locale/bg/LC_MESSAGES/django.mo,sha256=v9y7B1mvekB2WLIAWzhoXo_afpS730NoXqc47v2mssk,34102 -django/conf/locale/bg/LC_MESSAGES/django.po,sha256=jaky_zdmo9XKJovJLetZhVZ9e0h2-IBkujD0dyKg3Wg,36579 -django/conf/locale/bg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/bg/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/bg/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/bg/formats.py,sha256=LC7P_5yjdGgsxLQ_GDtC8H2bz9NTxUze_CAtzlm37TA,705 -django/conf/locale/bn/LC_MESSAGES/django.mo,sha256=sB0RIFrGS11Z8dx5829oOFw55vuO4vty3W4oVzIEe8Q,16660 -django/conf/locale/bn/LC_MESSAGES/django.po,sha256=rF9vML3LDOqXkmK6R_VF3tQaFEoZI7besJAPx5qHNM0,26877 -django/conf/locale/bn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/bn/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/bn/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/bn/formats.py,sha256=jynhZ9XNNuxTXeF7f2FrJYYZuFwlLY58fGfQ6gVs7s8,964 -django/conf/locale/br/LC_MESSAGES/django.mo,sha256=Xow2-sd55CZJsvfF8axtxXNRe27EDwxKixCGelVQ4aU,14009 -django/conf/locale/br/LC_MESSAGES/django.po,sha256=ODCUDdEDAvsOVOAr49YiWT2YQaBZmc-38brdgYWc8Bs,24293 -django/conf/locale/bs/LC_MESSAGES/django.mo,sha256=Xa5QAbsHIdLkyG4nhLCD4UHdCngrw5Oh120abCNdWlA,10824 -django/conf/locale/bs/LC_MESSAGES/django.po,sha256=IB-2VvrQKUivAMLMpQo1LGRAxw3kj-7kB6ckPai0fug,22070 -django/conf/locale/bs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/bs/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/bs/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/bs/formats.py,sha256=760m-h4OHpij6p_BAD2dr3nsWaTb6oR1Y5culX9Gxqw,705 -django/conf/locale/ca/LC_MESSAGES/django.mo,sha256=v6lEJTUbXyEUBsctIdNFOg-Ck5MVFbuz-JgjqkUe32c,27707 -django/conf/locale/ca/LC_MESSAGES/django.po,sha256=16M-EtYLbfKnquh-IPRjWxTdHAqtisDc46Dzo5n-ZMc,30320 -django/conf/locale/ca/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ca/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ca/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ca/formats.py,sha256=s7N6Ns3yIqr_KDhatnUvfjbPhUbrhvemB5HtCeodGZo,940 -django/conf/locale/ckb/LC_MESSAGES/django.mo,sha256=-7x01-x26Us9E5lRRaTgpFNkerqmYdxio5wSIKaMyMY,33473 -django/conf/locale/ckb/LC_MESSAGES/django.po,sha256=5a1UK1J87IlJtEaVpEaOnms0CQxtuFtOKIclGnGaGeI,35708 -django/conf/locale/ckb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ckb/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ckb/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ckb/formats.py,sha256=EbmQC-dyQl8EqVQOVGwy1Ra5-P1n-J3UF4K55p3VzOM,728 -django/conf/locale/cs/LC_MESSAGES/django.mo,sha256=z8TcGqBp91REABKRFu2Iv6Mfn7B9Xn0RrJpds3x5gA8,29060 -django/conf/locale/cs/LC_MESSAGES/django.po,sha256=pCdIvV7JEvQTgSBexXu7hHX-57IbJjDw3Q9Ub24Q3tw,32110 -django/conf/locale/cs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/cs/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/cs/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/cs/formats.py,sha256=3MA70CW0wfr0AIYvYqE0ACmX79tNOx-ZdlR6Aetp9e8,1539 -django/conf/locale/cy/LC_MESSAGES/django.mo,sha256=s7mf895rsoiqrPrXpyWg2k85rN8umYB2aTExWMTux7s,18319 -django/conf/locale/cy/LC_MESSAGES/django.po,sha256=S-1PVWWVgYmugHoYUlmTFAzKCpI81n9MIAhkETbpUoo,25758 -django/conf/locale/cy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/cy/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/cy/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/cy/formats.py,sha256=NY1pYPfpu7XjLMCCuJk5ggdpLcufV1h101ojyxfPUrY,1355 -django/conf/locale/da/LC_MESSAGES/django.mo,sha256=pjsTRDxHHYa48_J_p_aAIJh1u2amXe27-_ETFcwFaiE,27405 -django/conf/locale/da/LC_MESSAGES/django.po,sha256=Tgv9ef3tSkRtlX2AzMEBneKT4JaWsBQ3ok180ndQnQ0,29809 -django/conf/locale/da/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/da/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/da/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/da/formats.py,sha256=-y3033Fo7COyY0NbxeJVYGFybrnLbgXtRf1yBGlouys,876 -django/conf/locale/de/LC_MESSAGES/django.mo,sha256=66JJ37ES3l24PEfgAVMggqetLCpMpptDW2ili352B6w,28810 -django/conf/locale/de/LC_MESSAGES/django.po,sha256=3-tv3AoJ1rEXRy2ZekJcALy1MNQRMstMkTrg7xhgeGs,31245 -django/conf/locale/de/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/de/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/de/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/de/formats.py,sha256=fysX8z5TkbPUWAngoy_sMeFGWp2iaNU6ftkBz8cqplg,996 -django/conf/locale/de_CH/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/de_CH/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/de_CH/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/de_CH/formats.py,sha256=22UDF62ESuU0Jp_iNUqAj-Bhq4_-frpji0-ynBdHXYk,1377 -django/conf/locale/dsb/LC_MESSAGES/django.mo,sha256=lzsl19lpnpyLZ2rJfXYYcNWftfKJo2Gj5F8v4BOQcq4,30298 -django/conf/locale/dsb/LC_MESSAGES/django.po,sha256=40l_xv-o0Rvv7m6Zfe_8Z2eFYa3QetvhApQeqnwot90,32789 -django/conf/locale/el/LC_MESSAGES/django.mo,sha256=P5lTOPFcl9x6_j69ZN3hM_mQbhW7Fbbx02RtTNJwfS0,33648 -django/conf/locale/el/LC_MESSAGES/django.po,sha256=rZCComPQcSSr8ZDLPgtz958uBeBZsmV_gEP-sW88kRA,37123 -django/conf/locale/el/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/el/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/el/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/el/formats.py,sha256=RON2aqQaQK3DYVF_wGlBQJDHrhANxypcUW_udYKI-ro,1241 -django/conf/locale/en/LC_MESSAGES/django.mo,sha256=mVpSj1AoAdDdW3zPZIg5ZDsDbkSUQUMACg_BbWHGFig,356 -django/conf/locale/en/LC_MESSAGES/django.po,sha256=NkyaRGcVx6uSgJTlyFz7Kwd6NkN-oU7MFTMIEZRLOS4,29966 -django/conf/locale/en/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/en/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/en/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/en/formats.py,sha256=VTQUhaZ_WFhS5rQj0PxbnoMySK0nzUSqrd6Gx-DtXxI,2438 -django/conf/locale/en_AU/LC_MESSAGES/django.mo,sha256=SntsKx21R2zdjj0D73BkOXGTDnoN5unsLMJ3y06nONM,25633 -django/conf/locale/en_AU/LC_MESSAGES/django.po,sha256=6Qh4Z6REzhUdG5KwNPNK9xgLlgq3VbAJuoSXyd_eHdE,28270 -django/conf/locale/en_AU/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/en_AU/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/en_AU/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/en_AU/formats.py,sha256=BoI5UviKGZ4TccqLmxpcdMf0Yk1YiEhY_iLQUddjvi0,1650 -django/conf/locale/en_GB/LC_MESSAGES/django.mo,sha256=jSIe44HYGfzQlPtUZ8tWK2vCYM9GqCKs-CxLURn4e1o,12108 -django/conf/locale/en_GB/LC_MESSAGES/django.po,sha256=PTXvOpkxgZFRoyiqftEAuMrFcYRLfLDd6w0K8crN8j4,22140 -django/conf/locale/en_GB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/en_GB/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/en_GB/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/en_GB/formats.py,sha256=cJN8YNthkIOHCIMnwiTaSZ6RCwgSHkjWYMcfw8VFScE,1650 -django/conf/locale/eo/LC_MESSAGES/django.mo,sha256=TPgHTDrh1amnOQjA7sY-lQvicdFewMutOfoptV3OKkU,27676 -django/conf/locale/eo/LC_MESSAGES/django.po,sha256=IPo-3crOWkp5dDQPDAFSzgCbf9OHjWB1zE3mklhTexk,30235 -django/conf/locale/eo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/eo/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/eo/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/eo/formats.py,sha256=zIEAk-SiLX0cvQVmRc3LpmV69jwRrejMMdC7vtVsSh0,1715 -django/conf/locale/es/LC_MESSAGES/django.mo,sha256=GRzAsiW8RPKyBLlgARhcgVrhhDtrxk26UrM-kT-bsVc,28888 -django/conf/locale/es/LC_MESSAGES/django.po,sha256=IRMQt3aOvUv79ykPZAg7zMS1QoHjCjdoEB_yoCndJd0,32844 -django/conf/locale/es/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/es/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/es/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/es/formats.py,sha256=7SusO1dPErY68h5g4lpxvPbsJYdrbTcr_0EX7uDKYNo,978 -django/conf/locale/es_AR/LC_MESSAGES/django.mo,sha256=v2PqjyNd1Zqse7p-cjkuXRklLUUqHTRLd3_BddWaOt4,29113 -django/conf/locale/es_AR/LC_MESSAGES/django.po,sha256=fXPldF0fkDdLksvXcJSf-Tqspy6WV9Dq5eaeYA0hyr4,31561 -django/conf/locale/es_AR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/es_AR/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/es_AR/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/es_AR/formats.py,sha256=4qgOJoR2K5ZE-pA2-aYRwFW7AbK-M9F9u3zVwgebr2w,935 -django/conf/locale/es_CO/LC_MESSAGES/django.mo,sha256=ehUwvqz9InObH3fGnOLuBwivRTVMJriZmJzXcJHsfjc,18079 -django/conf/locale/es_CO/LC_MESSAGES/django.po,sha256=XRgn56QENxEixlyix3v4ZSTSjo4vn8fze8smkrv_gc4,25107 -django/conf/locale/es_CO/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/es_CO/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/es_CO/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/es_CO/formats.py,sha256=0uAbBvOkdJZKjvhrrd0htScdO7sTgbofOkkC8A35_a8,691 -django/conf/locale/es_MX/LC_MESSAGES/django.mo,sha256=UkpQJeGOs_JQRmpRiU6kQmmYGL_tizL4JQOWb9i35M4,18501 -django/conf/locale/es_MX/LC_MESSAGES/django.po,sha256=M0O6o1f3V-EIY9meS3fXP_c7t144rXWZuERF5XeG5Uo,25870 -django/conf/locale/es_MX/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/es_MX/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/es_MX/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/es_MX/formats.py,sha256=fBvyAqBcAXARptSE3hxwzFYNx3lEE8QrhNrCWuuGNlA,768 -django/conf/locale/es_NI/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/es_NI/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/es_NI/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/es_NI/formats.py,sha256=UiOadPoMrNt0iTp8jZVq65xR_4LkOwp-fjvFb8MyNVg,711 -django/conf/locale/es_PR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/es_PR/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/es_PR/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/es_PR/formats.py,sha256=VVTlwyekX80zCKlg1P4jhaAdKNpN5I64pW_xgrhpyVs,675 -django/conf/locale/es_VE/LC_MESSAGES/django.mo,sha256=h-h1D_Kr-LI_DyUJuIG4Zbu1HcLWTM1s5X515EYLXO8,18840 -django/conf/locale/es_VE/LC_MESSAGES/django.po,sha256=Xj38imu4Yw-Mugwge5CqAqWlcnRWnAKpVBPuL06Twjs,25494 -django/conf/locale/et/LC_MESSAGES/django.mo,sha256=Se6FfMItzSi72i3NB0gdIVRI_iDSmpT67oEWYlrwIVY,27057 -django/conf/locale/et/LC_MESSAGES/django.po,sha256=fJY5i5yjUMAadsysbZai3SBFB9p5frPdUgNZJ2LK4zk,29731 -django/conf/locale/et/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/et/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/et/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/et/formats.py,sha256=DyFSZVuGSYGoImrRI2FodeM51OtvIcCkKzkI0KvYTQw,707 -django/conf/locale/eu/LC_MESSAGES/django.mo,sha256=OQAi-HVXLCx_xY8GcHYPYs5I_K1NVaPYhgqxjL_T5ds,21877 -django/conf/locale/eu/LC_MESSAGES/django.po,sha256=RKD5sVlCq-orCsMQfudiUz3Xi0Y46Z_wxMGvpY51OU0,27448 -django/conf/locale/eu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/eu/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/eu/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/eu/formats.py,sha256=-PuRA6eHeXP8R3YV0aIEQRbk2LveaZk-_kjHlBT-Drg,749 -django/conf/locale/fa/LC_MESSAGES/django.mo,sha256=MgVsOtPARiZvxJWzBm4BakPSPYa8Df-X4BHEqu_T02Q,31611 -django/conf/locale/fa/LC_MESSAGES/django.po,sha256=MM5M0HKztRKGP3WAFkXRLHxSJiG7GnSVf1qTH1X-nWY,34779 -django/conf/locale/fa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/fa/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/fa/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/fa/formats.py,sha256=v0dLaIh6-CWCAQHkmX0PaIlA499gTeRcJEi7lVJzw9o,722 -django/conf/locale/fi/LC_MESSAGES/django.mo,sha256=9Q4AgsDXCPtoCtqjfvvEmINGPRW0yg_OLFJC6likxFY,27747 -django/conf/locale/fi/LC_MESSAGES/django.po,sha256=fuZejrZ3-25WLM6UVxh1cOqaygSKNrWcB2WDoo6k4nQ,30042 -django/conf/locale/fi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/fi/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/fi/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/fi/formats.py,sha256=CO_wD5ZBHwAVgjxArXktLCD7M-PPhtHbayX_bBKqhlA,1213 -django/conf/locale/fr/LC_MESSAGES/django.mo,sha256=wg1VghoiQnS7O8FZirl8L-SnRNKiMlZr8cmPdULhEws,29888 -django/conf/locale/fr/LC_MESSAGES/django.po,sha256=M6LNvCeyhc-AJ-VRkmlDx0Su1YbvLhJ4hco3vJLOJOw,32471 -django/conf/locale/fr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/fr/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/fr/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/fr/formats.py,sha256=Idd_fVXKJHJSOuB3jRbo_FgwQ2P6VK2AjJbadv5UxK8,1293 -django/conf/locale/fy/LC_MESSAGES/django.mo,sha256=9P7zoJtaYHfXly8d6zBoqkxLM98dO8uI6nmWtsGu-lM,2286 -django/conf/locale/fy/LC_MESSAGES/django.po,sha256=jveK-2MjopbqC9jWcrYbttIb4DUmFyW1_-0tYaD6R0I,19684 -django/conf/locale/fy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/fy/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/fy/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/fy/formats.py,sha256=mJXj1dHUnO883PYWPwuI07CNbjmnfBTQVRXZMg2hmOk,658 -django/conf/locale/ga/LC_MESSAGES/django.mo,sha256=abQpDgeTUIdZzldVuZLZiBOgf1s2YVSyrvEhxwl0GK8,14025 -django/conf/locale/ga/LC_MESSAGES/django.po,sha256=rppcWQVozZdsbl7Gud6KnJo6yDB8T0xH6hvIiLFi_zA,24343 -django/conf/locale/ga/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ga/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ga/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ga/formats.py,sha256=Qh7R3UMfWzt7QIdMZqxY0o4OMpVsqlchHK7Z0QnDWds,682 -django/conf/locale/gd/LC_MESSAGES/django.mo,sha256=2VKzI7Nqd2NjABVQGdcduWHjj0h2b3UBGQub7xaTVPs,30752 -django/conf/locale/gd/LC_MESSAGES/django.po,sha256=3PfuhhmosuarfPjvM2TVf2kHhZaw5_G8oIM2VWTc3gI,33347 -django/conf/locale/gd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/gd/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/gd/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/gd/formats.py,sha256=7doL7JIoCqA_o-lpCwM3jDHMpptA3BbSgeLRqdZk8Lc,715 -django/conf/locale/gl/LC_MESSAGES/django.mo,sha256=2stdFo73HjJNPR6U_GJjvgGuQJHMicLx6xz8UrywnmM,28045 -django/conf/locale/gl/LC_MESSAGES/django.po,sha256=qwOD7aNeAVNuX0wzUdk3OKiO_d1fFcXVovrUu_tfa3s,30468 -django/conf/locale/gl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/gl/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/gl/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/gl/formats.py,sha256=ygSFv-YTS8htG_LW0awegkkOarPRTZNPbUck5sxkAwI,757 -django/conf/locale/he/LC_MESSAGES/django.mo,sha256=46lIe8tACJ_ga70yOY5qNNDIZhvGZAqNh25zHRoBo_c,30227 -django/conf/locale/he/LC_MESSAGES/django.po,sha256=NrzjGVZoDiXeg6Uolt8m9emSNHpmOCzzIxnyipggDzo,33362 -django/conf/locale/he/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/he/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/he/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/he/formats.py,sha256=M-tu-LmTZd_oYPNH6CZEsdxJN526RUOfnLHlQxRL0N0,712 -django/conf/locale/hi/LC_MESSAGES/django.mo,sha256=8pV5j5q8VbrxdVkcS0qwhVx6DmXRRXPKfRsm3nWhI2g,19712 -django/conf/locale/hi/LC_MESSAGES/django.po,sha256=DPV-I1aXgIiZB7zHdEgAHShZFyb9zlNmMXlyjH5ug0I,29221 -django/conf/locale/hi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/hi/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/hi/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/hi/formats.py,sha256=JArVM9dMluSP-cwpZydSVXHB5Vs9QKyR9c-bftI9hds,684 -django/conf/locale/hr/LC_MESSAGES/django.mo,sha256=HP4PCb-i1yYsl5eqCamg5s3qBxZpS_aXDDKZ4Hlbbcc,19457 -django/conf/locale/hr/LC_MESSAGES/django.po,sha256=qeVJgKiAv5dKR2msD2iokSOApZozB3Gp0xqzC09jnvs,26329 -django/conf/locale/hr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/hr/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/hr/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/hr/formats.py,sha256=F4mIdDoaOYJ_lPmsJ_6bQo4Zj8pOSVwuldm92zRy4Fo,1723 -django/conf/locale/hsb/LC_MESSAGES/django.mo,sha256=H5JqXHXt7cEVdZvqEaJ7YgaFc2fhwXGT9VlnCqtRCl8,29956 -django/conf/locale/hsb/LC_MESSAGES/django.po,sha256=yHVbXAs-xTCQyY0jHZdqN5_Hgo8nAgYH9sIflF1tte0,32419 -django/conf/locale/hu/LC_MESSAGES/django.mo,sha256=4hdYLEQQ4Zrc-i2NPGzj7myDZXLV637iDmbNQovFZhc,27012 -django/conf/locale/hu/LC_MESSAGES/django.po,sha256=9C7bV-hR_WVh1_f_YWV9ioJPPEVweHCFdHGUextmyIo,30456 -django/conf/locale/hu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/hu/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/hu/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/hu/formats.py,sha256=xAD7mNsC5wFA2_KGRbBMPKwj884pq0jCKmXhEenGAEk,1001 -django/conf/locale/hy/LC_MESSAGES/django.mo,sha256=KfmTnB-3ZUKDHeNgLiego2Af0WZoHTuNKss3zE-_XOE,22207 -django/conf/locale/hy/LC_MESSAGES/django.po,sha256=kNKlJ5NqZmeTnnxdqhmU3kXiqT9t8MgAFgxM2V09AIc,28833 -django/conf/locale/ia/LC_MESSAGES/django.mo,sha256=JcrpersrDAoJXrD3AnPYBCQyGJ-6kUzH_Q8StbqmMeE,21428 -django/conf/locale/ia/LC_MESSAGES/django.po,sha256=LG0juYDjf3KkscDxwjY3ac6H1u5BBwGHljW3QWvr1nc,26859 -django/conf/locale/id/LC_MESSAGES/django.mo,sha256=4_75xU4TTvtl40dTB29V3SKnDp3auNve6Y8nwlXW6I4,27163 -django/conf/locale/id/LC_MESSAGES/django.po,sha256=EhUuZElmadPi8aOc20wWkbqVNlIozUDAjryvLvyrr2Q,29469 -django/conf/locale/id/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/id/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/id/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/id/formats.py,sha256=kYyOxWHN3Jyif3rFxLFyBUjTzFUwmuaLrkw5JvGbEz8,1644 -django/conf/locale/ig/LC_MESSAGES/django.mo,sha256=tAZG5GKhEbrUCJtLrUxzmrROe1RxOhep8w-RR7DaDYo,27188 -django/conf/locale/ig/LC_MESSAGES/django.po,sha256=DB_I4JXKMY4M7PdAeIsdqnLSFpq6ImkGPCuY82rNBpY,28931 -django/conf/locale/ig/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ig/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ig/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ig/formats.py,sha256=P3IsxhF5rNFZ5nCWUSyJfFLb0V1QdX_Xn-tYdrcll5Q,1119 -django/conf/locale/io/LC_MESSAGES/django.mo,sha256=uI78C7Qkytf3g1A6kVWiri_CbS55jReO2XmRfLTeNs0,14317 -django/conf/locale/io/LC_MESSAGES/django.po,sha256=FyN4ZTfNPV5TagM8NEhRts8y_FhehIPPouh_MfslnWY,23124 -django/conf/locale/is/LC_MESSAGES/django.mo,sha256=1pFU-dTPg2zs87L0ZqFFGS9q-f-XrzTOlhKujlyNL2E,24273 -django/conf/locale/is/LC_MESSAGES/django.po,sha256=76cQ_9DLg1jR53hiKSc1tLUMeKn8qTdPwpHwutEK014,28607 -django/conf/locale/is/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/is/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/is/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/is/formats.py,sha256=scsNfP4vVacxWIoN03qc2Fa3R8Uh5Izr1MqBicrAl3A,688 -django/conf/locale/it/LC_MESSAGES/django.mo,sha256=39GKwsSkjlL1h4vVysTWMuo4hq2UGQEC-kqJcaVW54A,28587 -django/conf/locale/it/LC_MESSAGES/django.po,sha256=t973TArDuAfpRpPgSTyc-bU6CPti2xkST9O2tVb8vFc,31670 -django/conf/locale/it/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/it/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/it/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/it/formats.py,sha256=KzkSb3KXBwfM3gk2FezyR-W8_RYKpnlFeFuIi5zl-S0,1774 -django/conf/locale/ja/LC_MESSAGES/django.mo,sha256=3xe3p5BBoVaEMv2Jyet5gEsU5L2atkJxGUWKRVF47HQ,30607 -django/conf/locale/ja/LC_MESSAGES/django.po,sha256=d7PAmeJr0N2o5DUQ0IRxtPDUTmOcJej3lZFF3fSJQP8,33093 -django/conf/locale/ja/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ja/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ja/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ja/formats.py,sha256=MQ1KA6l1qmW07rXLYplRs-V1hR1Acbx30k2RpXnMhQg,729 -django/conf/locale/ka/LC_MESSAGES/django.mo,sha256=4e8at-KNaxYJKIJd8r6iPrYhEdnaJ1qtPw-QHPMh-Sc,24759 -django/conf/locale/ka/LC_MESSAGES/django.po,sha256=pIgaLU6hXgVQ2WJp1DTFoubI7zHOUkkKMddwV3PTdt8,32088 -django/conf/locale/ka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ka/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ka/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ka/formats.py,sha256=elTGOjS-mxuoSCAKOm8Wz2aLfh4pWvNyClUFcrYq9ng,1861 -django/conf/locale/kab/LC_MESSAGES/django.mo,sha256=x5Kyq2Uf3XNlQP06--4lT8Q1MacA096hZbyMJRrHYIc,7139 -django/conf/locale/kab/LC_MESSAGES/django.po,sha256=DsFL3IzidcAnPoAWIfIbGJ6Teop1yKPBRALeLYrdiFA,20221 -django/conf/locale/kk/LC_MESSAGES/django.mo,sha256=krjcDvA5bu591zcP76bWp2mD2FL1VUl7wutaZjgD668,13148 -django/conf/locale/kk/LC_MESSAGES/django.po,sha256=RgM4kzn46ZjkSDHMAsyOoUg7GdxGiZ-vaEOdf7k0c5A,23933 -django/conf/locale/km/LC_MESSAGES/django.mo,sha256=kEvhZlH7lkY1DUIHTHhFVQzOMAPd_-QMItXTYX0j1xY,7223 -django/conf/locale/km/LC_MESSAGES/django.po,sha256=QgRxEiJMopO14drcmeSG6XEXQpiAyfQN0Ot6eH4gca8,21999 -django/conf/locale/km/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/km/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/km/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/km/formats.py,sha256=0UMLrZz1aI2sdRPkJ0YzX99co2IV6tldP7pEvGEPdP0,750 -django/conf/locale/kn/LC_MESSAGES/django.mo,sha256=fQ7AD5tUiV_PZFBxUjNPQN79dWBJKqfoYwRdrOaQjU4,17515 -django/conf/locale/kn/LC_MESSAGES/django.po,sha256=fS4Z7L4NGVQ6ipZ7lMHAqAopTBP0KkOc-eBK0IYdbBE,28133 -django/conf/locale/kn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/kn/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/kn/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/kn/formats.py,sha256=X5j9VHIW2XRdeTzDFEyS8tG05OBFzP2R7sEGUQa_INg,680 -django/conf/locale/ko/LC_MESSAGES/django.mo,sha256=1l9RjA5r-TH1KGUuL5EayxgkdY6iYJd5BDgYRmun5Ow,28101 -django/conf/locale/ko/LC_MESSAGES/django.po,sha256=dIMJhzKS8dDBHH-zCIfeP0EGVBazRWyCUJd3C9JCUyw,31179 -django/conf/locale/ko/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ko/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ko/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ko/formats.py,sha256=qn36EjiO4Bu12D_6qitjMDkBfy4M0LgFE-FhK8bPOto,2061 -django/conf/locale/ky/LC_MESSAGES/django.mo,sha256=IBVfwPwaZmaoljMRBGww_wWGMJqbF_IOHHnH2j-yJw8,31395 -django/conf/locale/ky/LC_MESSAGES/django.po,sha256=5ACTPMMbXuPJbU7Rfzs0yZHh3xy483pqo5DwSBQp4s4,33332 -django/conf/locale/ky/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ky/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ky/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ky/formats.py,sha256=QCq7vxAD5fe9VhcjRhG6C3N28jNvdzKR-c-EvDSJ1Pg,1178 -django/conf/locale/lb/LC_MESSAGES/django.mo,sha256=tQSJLQUeD5iUt-eA2EsHuyYqsCSYFtbGdryATxisZsc,8008 -django/conf/locale/lb/LC_MESSAGES/django.po,sha256=GkKPLO3zfGTNync-xoYTf0vZ2GUSAotAjfPSP01SDMU,20622 -django/conf/locale/lt/LC_MESSAGES/django.mo,sha256=cdUzK5RYW-61Upf8Sd8ydAg9wXg21pJaIRWFSKPv17c,21421 -django/conf/locale/lt/LC_MESSAGES/django.po,sha256=Lvpe_xlbxSa5vWEossxBCKryDVT7Lwz0EnuL1kSO6OY,28455 -django/conf/locale/lt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/lt/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/lt/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/lt/formats.py,sha256=C9ScR3gYswT1dQXFedUUnYe6DQPVGAS_nLxs0h2E3dE,1637 -django/conf/locale/lv/LC_MESSAGES/django.mo,sha256=3Hq68BwnRa0ij7r__7HuKFNfNEaBj6CNosGSLH9m0fs,28758 -django/conf/locale/lv/LC_MESSAGES/django.po,sha256=FHx1cQ5GdTppS-YqNys0VCsanRqr-zLUJAGv5yGJg8I,31522 -django/conf/locale/lv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/lv/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/lv/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/lv/formats.py,sha256=k8owdq0U7-x6yl8ll1W5VjRoKdp8a1G2enH04G5_nvU,1713 -django/conf/locale/mk/LC_MESSAGES/django.mo,sha256=uQKmcys0rOsRynEa812XDAaeiNTeBMkqhR4LZ_cfdAk,22737 -django/conf/locale/mk/LC_MESSAGES/django.po,sha256=4K11QRb493wD-FM6-ruCxks9_vl_jB59V1c1rx-TdKg,29863 -django/conf/locale/mk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/mk/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/mk/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/mk/formats.py,sha256=xwnJsXLXGogOqpP18u6GozjehpWAwwKmXbELolYV_k4,1451 -django/conf/locale/ml/LC_MESSAGES/django.mo,sha256=MGvV0e3LGUFdVIA-h__BuY8Ckom2dAhSFvAtZ8FiAXU,30808 -django/conf/locale/ml/LC_MESSAGES/django.po,sha256=iLllS6vlCpBNZfy9Xd_2Cuwi_1-Vz9fW4G1lUNOuZ6k,37271 -django/conf/locale/ml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ml/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ml/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ml/formats.py,sha256=ZR7tMdJF0U6K1H95cTqrFH4gop6ZuSQ7vD2h0yKq6mo,1597 -django/conf/locale/mn/LC_MESSAGES/django.mo,sha256=sd860BHXfgAjDzU3CiwO3JirA8S83nSr4Vy3QUpXHyU,24783 -django/conf/locale/mn/LC_MESSAGES/django.po,sha256=VBgXVee15TTorC7zwYFwmHM4qgpYy11yclv_u7UTNwA,30004 -django/conf/locale/mn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/mn/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/mn/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/mn/formats.py,sha256=fsexJU9_UTig2PS_o11hcEmrbPBS8voI4ojuAVPOd_U,676 -django/conf/locale/mr/LC_MESSAGES/django.mo,sha256=aERpEBdJtkSwBj6zOtiKDaXuFzepi8_IwvPPHi8QtGU,1591 -django/conf/locale/mr/LC_MESSAGES/django.po,sha256=GFtk4tVQVi8b7N7KEhoNubVw_PV08pyRvcGOP270s1Q,19401 -django/conf/locale/ms/LC_MESSAGES/django.mo,sha256=U4_kzfbYF7u78DesFRSReOIeVbOnq8hi_pReFfHfyUQ,27066 -django/conf/locale/ms/LC_MESSAGES/django.po,sha256=49pG3cykGjVfC9N8WPyskz-m7r6KmQiq5i8MR6eOi54,28985 -django/conf/locale/ms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ms/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ms/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ms/formats.py,sha256=YtOBs6s4j4SOmfB3cpp2ekcxVFoVGgUN8mThoSueCt0,1522 -django/conf/locale/my/LC_MESSAGES/django.mo,sha256=SjYOewwnVim3-GrANk2RNanOjo6Hy2omw0qnpkMzTlM,2589 -django/conf/locale/my/LC_MESSAGES/django.po,sha256=b_QSKXc3lS2Xzb45yVYVg307uZNaAnA0eoXX2ZmNiT0,19684 -django/conf/locale/nb/LC_MESSAGES/django.mo,sha256=qX1Z1F3YXVavlrECVkHXek9tsvJEXbWNrogdjjY3jCg,27007 -django/conf/locale/nb/LC_MESSAGES/django.po,sha256=QQ_adZsyp2BfzcJS-LXnZL0EMmUZLbnHsBB1pRRfV-8,29500 -django/conf/locale/nb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/nb/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/nb/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/nb/formats.py,sha256=y1QLE-SG00eHwje0lkAToHtz4t621Rz_HQRyBWCgK8c,1552 -django/conf/locale/ne/LC_MESSAGES/django.mo,sha256=BcK8z38SNWDXXWVWUmOyHEzwk2xHEeaW2t7JwrxehKM,27248 -django/conf/locale/ne/LC_MESSAGES/django.po,sha256=_Kj_i2zMb7JLU7EN7Z7JcUn89YgonJf6agSFCjXa49w,33369 -django/conf/locale/nl/LC_MESSAGES/django.mo,sha256=Kkpwz7ewcF-IgAVofSHExXzLzJA1wpmUF5bnk2r-SZQ,27641 -django/conf/locale/nl/LC_MESSAGES/django.po,sha256=ThDoNwUAe4EqEUD-VgzfyYUGbaWX4tJVvV1xOEHIMMU,30388 -django/conf/locale/nl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/nl/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/nl/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/nl/formats.py,sha256=cKaaOvRdeauORjvuZ1xyVcVsl36J3Zk4FSE-lnx2Xwg,3927 -django/conf/locale/nn/LC_MESSAGES/django.mo,sha256=Ccj8kjvjTefC8H6TuDCOdSrTmtkYXkmRR2V42HBMYo4,26850 -django/conf/locale/nn/LC_MESSAGES/django.po,sha256=oaVJTl0NgZ92XJv9DHdsXVaKAc81ky_R3CA6HljTH-8,29100 -django/conf/locale/nn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/nn/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/nn/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/nn/formats.py,sha256=y1QLE-SG00eHwje0lkAToHtz4t621Rz_HQRyBWCgK8c,1552 -django/conf/locale/os/LC_MESSAGES/django.mo,sha256=LBpf_dyfBnvGOvthpn5-oJuFiSNHrgiVHBzJBR-FxOw,17994 -django/conf/locale/os/LC_MESSAGES/django.po,sha256=WYlAnNYwGFnH76Elnnth6YP2TWA-fEtvV5UinnNj7AA,26278 -django/conf/locale/pa/LC_MESSAGES/django.mo,sha256=H1hCnQzcq0EiSEaayT6t9H-WgONO5V4Cf7l25H2930M,11253 -django/conf/locale/pa/LC_MESSAGES/django.po,sha256=26ifUdCX9fOiXfWvgMkOXlsvS6h6nNskZcIBoASJec4,23013 -django/conf/locale/pl/LC_MESSAGES/django.mo,sha256=RIP5FaWOdbkt78chzsayzZ_Rn1UzvPtUJgn7j40vdkI,30241 -django/conf/locale/pl/LC_MESSAGES/django.po,sha256=irqbGgJqS1wLlIs9hK3CHKkAbUH3Gka2RPvq-2nfHWs,34147 -django/conf/locale/pl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/pl/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/pl/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/pl/formats.py,sha256=KREhPtHuzKS_ZsAqXs5LqYPGhn6O-jLd4WZQ-39BA8I,1032 -django/conf/locale/pt/LC_MESSAGES/django.mo,sha256=nlj_L7Z2FkXs1w6wCGGseuZ_U-IecnlfYRtG5jPkGrs,20657 -django/conf/locale/pt/LC_MESSAGES/django.po,sha256=ETTedbjU2J4FLi2QDHNN8C7zlAsvLWNUlYzkEV1WB6s,26224 -django/conf/locale/pt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/pt/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/pt/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/pt/formats.py,sha256=RQ9MuIwUPhiY2u-1hFU2abs9Wqv1qZE2AUAfYVK-NU8,1520 -django/conf/locale/pt_BR/LC_MESSAGES/django.mo,sha256=WZANPGpTs6PekLuaWRAQ3djerq71VQ5uYWA40Db75ZA,28769 -django/conf/locale/pt_BR/LC_MESSAGES/django.po,sha256=Gf7Sf0f_Pjer0nKsXMVQw3Xc8Z76GxaYlWs_FyA2j6k,32606 -django/conf/locale/pt_BR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/pt_BR/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/pt_BR/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/pt_BR/formats.py,sha256=J1IKV7cS2YMJ5_qlT9h1dDYUX9tLFvqA95l_GpZTLUY,1285 -django/conf/locale/ro/LC_MESSAGES/django.mo,sha256=9RSlC_3Ipn_Vm31ALaGHsrOA1IKmKJ5sN2m6iy5Hk60,21493 -django/conf/locale/ro/LC_MESSAGES/django.po,sha256=XoGlHKEnGlno_sbUTnbkg9nGkRfPIpxv7Wfm3hHGu9w,28099 -django/conf/locale/ro/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ro/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ro/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ro/formats.py,sha256=e_dp0zyfFfoydrGyn6Kk3DnQIj7RTRuvRc6rQ6tSxzA,928 -django/conf/locale/ru/LC_MESSAGES/django.mo,sha256=NC_fdrsaBybjeJS6dFU7k6WT7rGe2vkIgWxwM9-BoZA,38119 -django/conf/locale/ru/LC_MESSAGES/django.po,sha256=KxwNZLMX4We8mOXNd33IoI5mHJjkIxp05yz_h8ZFDI0,41460 -django/conf/locale/ru/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ru/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ru/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ru/formats.py,sha256=lTfYbecdSmHCxebog_2bd0N32iD3nEq_f5buh9il-nI,1098 -django/conf/locale/sk/LC_MESSAGES/django.mo,sha256=LLHZDII9g__AFTHCgyLy05I7DQEjZjk20LO-CkrdhS0,27800 -django/conf/locale/sk/LC_MESSAGES/django.po,sha256=iH6cKWjUfKMqVd4Q6HPEnZwOB-39SpllevZIythjk9M,31062 -django/conf/locale/sk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/sk/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/sk/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/sk/formats.py,sha256=bWj0FNpYfOAgi9J-L4VuiN6C_jsgPsKNdLYd9gTnFs0,1051 -django/conf/locale/sl/LC_MESSAGES/django.mo,sha256=1XuQxMTWef0T0CBqGD8_FMoBQLqqp131TtRQMDKZRls,22514 -django/conf/locale/sl/LC_MESSAGES/django.po,sha256=Icug2_ZQfvjeaw0DcUFUrHs8aM1fcz7hLZUwWnU-Gqs,28908 -django/conf/locale/sl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/sl/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/sl/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/sl/formats.py,sha256=Nq4IfEUnlGebMZeRvB2l9aps-5G5b4y1kQ_3MiJTfe8,1642 -django/conf/locale/sq/LC_MESSAGES/django.mo,sha256=H8eceVADv7d-nO5Hl222sakBh2PVqNYWKe-R2Hbda_c,28267 -django/conf/locale/sq/LC_MESSAGES/django.po,sha256=IJAHTTXNQol0qruHyQJgXXaN0a7_s1lI-aazA9sQXMs,30675 -django/conf/locale/sq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/sq/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/sq/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/sq/formats.py,sha256=SA_jCSNwI8-p79skHoLxrPLZnkyq1PVadwT6gMt7n_M,688 -django/conf/locale/sr/LC_MESSAGES/django.mo,sha256=XVnYuUQmoQy6BZnPmHnSrWVz75J4sTYKxGn4NqdJU4c,34059 -django/conf/locale/sr/LC_MESSAGES/django.po,sha256=jvlDoqR-OhFigYmrjPWm2cXMVqeYvT9qpbT-yAlp7Lg,36513 -django/conf/locale/sr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/sr/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/sr/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/sr/formats.py,sha256=F3_gYopOXINcllaPFzTqZrZ2oZ1ye3xzR0NQtlqXYp0,1729 -django/conf/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=XFg0D4jJjXqpYOGoMV1r9tmibEcebm9gczrjCNeWJfw,24760 -django/conf/locale/sr_Latn/LC_MESSAGES/django.po,sha256=ZBkqSDwmnfn-tefNaWRCBmBL8Nxtzgf2f2c95_YP9jU,28890 -django/conf/locale/sr_Latn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/sr_Latn/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/sr_Latn/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/sr_Latn/formats.py,sha256=BDZm-ajQgCIxQ8mCcckEH32IoCN9233TvAOXkg4mc38,1728 -django/conf/locale/sv/LC_MESSAGES/django.mo,sha256=YzrwB3zyTvLdECT3Rwjdug6MkpBGVWouWxmOZpjZimQ,27605 -django/conf/locale/sv/LC_MESSAGES/django.po,sha256=yo1TejN4Qb8KFAg6IBtustBSfliDKcYE4VDfa0LtJkk,30413 -django/conf/locale/sv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/sv/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/sv/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/sv/formats.py,sha256=9o8ZtaSq1UOa5y6Du3rQsLAAl5ZOEdVY1OVVMbj02RA,1311 -django/conf/locale/sw/LC_MESSAGES/django.mo,sha256=aUmIVLANgSCTK5Lq8QZPEKWjZWnsnBvm_-ZUcih3J6g,13534 -django/conf/locale/sw/LC_MESSAGES/django.po,sha256=GOE6greXZoLhpccsfPZjE6lR3G4vpK230EnIOdjsgPk,22698 -django/conf/locale/ta/LC_MESSAGES/django.mo,sha256=WeM8tElbcmL11P_D60y5oHKtDxUNWZM9UNgXe1CsRQ4,7094 -django/conf/locale/ta/LC_MESSAGES/django.po,sha256=kgHTFqysEMj1hqktLr-bnL1NRM715zTpiwhelqC232s,22329 -django/conf/locale/ta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/ta/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/ta/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/ta/formats.py,sha256=vmjfiM54oJJxqcdgZJUNNQN7oMS-XLVBYJ4lWBb5ctY,682 -django/conf/locale/te/LC_MESSAGES/django.mo,sha256=Sk45kPC4capgRdW5ImOKYEVxiBjHXsosNyhVIDtHLBc,13259 -django/conf/locale/te/LC_MESSAGES/django.po,sha256=IQxpGTpsKUtBGN1P-KdGwvE7ojNCqKqPXEvYD3qT5A4,25378 -django/conf/locale/te/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/te/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/te/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/te/formats.py,sha256=-HOoZgmnME4--4CuXzcnhXqNma0Wh7Ninof3RCCGZkU,680 -django/conf/locale/tg/LC_MESSAGES/django.mo,sha256=ePzS2pD84CTkHBaiaMyXBxiizxfFBjHdsGH7hCt5p_4,28497 -django/conf/locale/tg/LC_MESSAGES/django.po,sha256=oSKu3YT3griCrDLPqptZmHcuviI99wvlfX6I6nLJnDk,33351 -django/conf/locale/tg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/tg/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/tg/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/tg/formats.py,sha256=TG5TGfLNy4JSjl-QAWk46gIEb0ijdBpqPrDtwfJzshw,1160 -django/conf/locale/th/LC_MESSAGES/django.mo,sha256=SJeeJWbdF-Lae5BendxlyMKqx5zdDmh3GCQa8ER5FyY,18629 -django/conf/locale/th/LC_MESSAGES/django.po,sha256=K4ITjzHLq6DyTxgMAfu3CoGxrTd3aG2J6-ZxQj2KG1U,27507 -django/conf/locale/th/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/th/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/th/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/th/formats.py,sha256=SmCUD-zVgI1QE2HwqkFtAO87rJ-FoCjw1s-2-cfl1h0,1072 -django/conf/locale/tk/LC_MESSAGES/django.mo,sha256=4wIabItMR-_J6_0yCKNLHmpuwaQxzYgIl7aJtD7lgC4,27582 -django/conf/locale/tk/LC_MESSAGES/django.po,sha256=8m1T131eY_ozgBrvZ6jqVS1GUOlu8e4JSIkgowf08nA,29918 -django/conf/locale/tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/tk/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/tk/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/tk/formats.py,sha256=TG5TGfLNy4JSjl-QAWk46gIEb0ijdBpqPrDtwfJzshw,1160 -django/conf/locale/tr/LC_MESSAGES/django.mo,sha256=Uuq3g_wuChhAP3fjZRYTwxvTCQRs8MxJcfu-VW-BKig,28433 -django/conf/locale/tr/LC_MESSAGES/django.po,sha256=0QVl_eUAHJcwUbd0t0ei2dQz-nNZ7SFeQ8PryPBXPvc,30991 -django/conf/locale/tr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/tr/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/tr/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/tr/formats.py,sha256=yJg-7hmevD1gvj9iBRMCiYGgd5DxKZcL7T_C3K3ztME,1019 -django/conf/locale/tt/LC_MESSAGES/django.mo,sha256=r554DvdPjD_S8hBRjW8ehccEjEk8h7czQsp46FZZ_Do,14500 -django/conf/locale/tt/LC_MESSAGES/django.po,sha256=W8QgEAH7yXNmjWoF-UeqyVAu5jEMHZ5MXE60e5sawJc,24793 -django/conf/locale/udm/LC_MESSAGES/django.mo,sha256=cIf0i3TjY-yORRAcSev3mIsdGYT49jioTHZtTLYAEyc,12822 -django/conf/locale/udm/LC_MESSAGES/django.po,sha256=n9Az_8M8O5y16yE3iWmK20R9F9VoKBh3jR3iKwMgFlY,23113 -django/conf/locale/uk/LC_MESSAGES/django.mo,sha256=9U34hcSaoTUqrMtp5wpdsu2L0S-l7Hn5RBDHQkhp38Y,30194 -django/conf/locale/uk/LC_MESSAGES/django.po,sha256=XZm1LpBkwoMFEXNJyAOitN223EuMzkT_2iN8yb8oWVs,36096 -django/conf/locale/uk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/uk/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/uk/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/uk/formats.py,sha256=ZmeYmL0eooFwQgmE054V36RQ469ZTfAv6k8SUJrDYQ8,1241 -django/conf/locale/ur/LC_MESSAGES/django.mo,sha256=M6R2DYFRBvcVRAsgVxVOLvH3e8v14b2mJs650UlUb2I,12291 -django/conf/locale/ur/LC_MESSAGES/django.po,sha256=Lr0DXaPqWtCFAxn10BQ0vlvZIMNRvCg_QJQxAC01eWk,23479 -django/conf/locale/uz/LC_MESSAGES/django.mo,sha256=c8eHLqubZqScsU8LjGK-j2uAGeWzHCSmCy-tYu9x_FA,27466 -django/conf/locale/uz/LC_MESSAGES/django.po,sha256=TxmmhZCC1zrAgo0xM0JQKywju0XBd1BujMKZ9HtOLKY,29376 -django/conf/locale/uz/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/uz/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/uz/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/uz/formats.py,sha256=cdmqOUBVnPSyi2k9AkOGl27s89PymFePG2gtnYzYbiw,1176 -django/conf/locale/vi/LC_MESSAGES/django.mo,sha256=TMsBzDnf9kZndozqVUnEKtKxfH2N1ajLdrm8hJ4HkYI,17396 -django/conf/locale/vi/LC_MESSAGES/django.po,sha256=tL2rvgunvaN_yqpPSBYAKImFDaFaeqbnpEw_egI11Lo,25342 -django/conf/locale/vi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/vi/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/vi/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/vi/formats.py,sha256=_xIugkqLnjN9dzIhefMpsJXaTPldr4blKSGS-c3swg0,762 -django/conf/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=bKnjePnZ4hzBNpV7riyY897ztLPjez-7amTqMphbLiw,26598 -django/conf/locale/zh_Hans/LC_MESSAGES/django.po,sha256=6Ur0nzeMoNleIxU-llL7HOfC1KOcAZLKEvaW7x4udRw,29727 -django/conf/locale/zh_Hans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/zh_Hans/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/zh_Hans/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/zh_Hans/formats.py,sha256=iMb9Taj6xQQA3l_NWCC7wUlQuh4YfNUgs2mHcQ6XUEo,1598 -django/conf/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=1U3cID-BpV09p0sgYryzJCCApQYVlCtb4fJ5IPB8wtc,19560 -django/conf/locale/zh_Hant/LC_MESSAGES/django.po,sha256=buHXYy_UKFoGW8xz6PNrSwbMx-p8gwmPRgdWGBYwT2U,24939 -django/conf/locale/zh_Hant/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/locale/zh_Hant/__pycache__/__init__.cpython-312.pyc,, -django/conf/locale/zh_Hant/__pycache__/formats.cpython-312.pyc,, -django/conf/locale/zh_Hant/formats.py,sha256=iMb9Taj6xQQA3l_NWCC7wUlQuh4YfNUgs2mHcQ6XUEo,1598 -django/conf/project_template/manage.py-tpl,sha256=JDuGG02670bELmn3XLUSxHFZ8VFhqZTT_oN9VbT5Acc,674 -django/conf/project_template/project_name/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/conf/project_template/project_name/asgi.py-tpl,sha256=q_6Jo5tLy6ba-S7pLs3YTK7byxSBmU0oYylYJlNvwHI,428 -django/conf/project_template/project_name/settings.py-tpl,sha256=JskIPIEWPSX2p7_rlsPr60JDjmFC0bVEeMChmq--0OY,3342 -django/conf/project_template/project_name/urls.py-tpl,sha256=5en0vlo3TdXdQquXZVNENrmX2DZJxje156HqcRbySKU,789 -django/conf/project_template/project_name/wsgi.py-tpl,sha256=OCfjjCsdEeXPkJgFIrMml_FURt7msovNUPnjzb401fs,428 -django/conf/urls/__init__.py,sha256=qmpaRi5Gn2uaY9h3g9RNu0z3LDEpEeNL9JlfSLed9s0,292 -django/conf/urls/__pycache__/__init__.cpython-312.pyc,, -django/conf/urls/__pycache__/i18n.cpython-312.pyc,, -django/conf/urls/__pycache__/static.cpython-312.pyc,, -django/conf/urls/i18n.py,sha256=Xz83EPb1MwylIF1z3NimtAD7TlJwd_0ZpZoxj2HEO1E,1184 -django/conf/urls/static.py,sha256=gZOYaiIf3SxQ75N69GyVm9C0OmQv1r1IDrUJ0E7zMe0,908 -django/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/__pycache__/__init__.cpython-312.pyc,, -django/contrib/admin/__init__.py,sha256=s4yCvpvHN4PbCIiNNZKSCaUhN_0NdkrLq-qihnJH4L4,1169 -django/contrib/admin/__pycache__/__init__.cpython-312.pyc,, -django/contrib/admin/__pycache__/actions.cpython-312.pyc,, -django/contrib/admin/__pycache__/apps.cpython-312.pyc,, -django/contrib/admin/__pycache__/checks.cpython-312.pyc,, -django/contrib/admin/__pycache__/decorators.cpython-312.pyc,, -django/contrib/admin/__pycache__/exceptions.cpython-312.pyc,, -django/contrib/admin/__pycache__/filters.cpython-312.pyc,, -django/contrib/admin/__pycache__/forms.cpython-312.pyc,, -django/contrib/admin/__pycache__/helpers.cpython-312.pyc,, -django/contrib/admin/__pycache__/models.cpython-312.pyc,, -django/contrib/admin/__pycache__/options.cpython-312.pyc,, -django/contrib/admin/__pycache__/sites.cpython-312.pyc,, -django/contrib/admin/__pycache__/tests.cpython-312.pyc,, -django/contrib/admin/__pycache__/utils.cpython-312.pyc,, -django/contrib/admin/__pycache__/widgets.cpython-312.pyc,, -django/contrib/admin/actions.py,sha256=vjwAZGMGf4rjlJSIaGOX-7SfP0XmkJT_065sGhYDyD8,3257 -django/contrib/admin/apps.py,sha256=BOiulA4tsb3wuAUtLGTGjrbywpSXX0dLo2pUCGV8URw,840 -django/contrib/admin/checks.py,sha256=bf-DZBU7hY_-7zdkpAUX6E5C5oK4UTZI71_9Sp8uu7Y,49782 -django/contrib/admin/decorators.py,sha256=dki7GLFKOPT-mB5rxsYX12rox18BywroxmrzjG_VJXM,3481 -django/contrib/admin/exceptions.py,sha256=wpzdKnp6V_aTYui_4tQZ8hFJf7W5xYkEMym0Keg1k0k,333 -django/contrib/admin/filters.py,sha256=0ELMc0N6AOviELmn9kqw0oOGpcL-I9Ds6p1EspKxwL8,20891 -django/contrib/admin/forms.py,sha256=0UCJstmmBfp_c_0AqlALJQYy9bxXo9fqoQQICQONGEo,1023 -django/contrib/admin/helpers.py,sha256=YNQYZbssIuOWdeIqYCETjs09HsFhjCX6PHUTR12qWKI,18190 -django/contrib/admin/locale/af/LC_MESSAGES/django.mo,sha256=3VNfQp5JaJy4XRqxM7Uu9uKHDihJCvKXYhdWPXOofc8,16216 -django/contrib/admin/locale/af/LC_MESSAGES/django.po,sha256=R2ix5AnK5X35wnhjT38K85JgwewQkmwrYwyVx4YqikQ,17667 -django/contrib/admin/locale/af/LC_MESSAGES/djangojs.mo,sha256=dmctO7tPkPwdbpp-tVmZrR0QLZekrJ1aE3rnm6vvUQM,4477 -django/contrib/admin/locale/af/LC_MESSAGES/djangojs.po,sha256=1wwspqp0rsSupVes7zjYLyNT_wY4lFefqhpXH5wBdJM,4955 -django/contrib/admin/locale/am/LC_MESSAGES/django.mo,sha256=UOwMxYH1r5AEBpu-P9zxHazk3kwI4CtsPosGIYtl6Hs,8309 -django/contrib/admin/locale/am/LC_MESSAGES/django.po,sha256=NmsIZoBEQwyBIqbKjkwCJ2_iMHnMKB87atoT0iuNXrw,14651 -django/contrib/admin/locale/ar/LC_MESSAGES/django.mo,sha256=tzGQ8jSJc406IBBwtAErlXVqaA10glxB8krZtWp1Rq4,19890 -django/contrib/admin/locale/ar/LC_MESSAGES/django.po,sha256=RBJbiYNDy57K592OKghugZFYiHpTvxUoEQ_B26-5i8A,21339 -django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.mo,sha256=xoI2xNKgspuuJe1UCUB9H6Kyp3AGhj5aeo_WEg5e23A,6545 -django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.po,sha256=jwehFDFk3lMIEH43AEU_JyHOm84Seo-OLd5FmGBbaxo,7281 -django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=ipELNNGQYb_nHTEQbUFED8IT26L9c2UXsELf4wk0q6k,19947 -django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po,sha256=2mGF2NfofR8WgSJPShF5CrMjECXj0dGFcFaZ2lriulc,21378 -django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo,sha256=L3N1U9OFXYZ8OfrvKHLbVvXa40biIDdmon0ZV8BOIvY,6423 -django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po,sha256=Atzp95E2dFtSHZHHna0pBCqU_2V7partODX675OBkQs,7206 -django/contrib/admin/locale/ast/LC_MESSAGES/django.mo,sha256=3uffu2zPbQ1rExUsG_ambggq854Vy8HbullkCYdazA4,2476 -django/contrib/admin/locale/ast/LC_MESSAGES/django.po,sha256=wCWFh9viYUhTGOX0mW3fpN2z0kdE6b7IaA-A5zzb3Yo,11676 -django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.mo,sha256=kiG-lzQidkXER5s_6POO1G91mcAv9VAkAXI25jdYBLE,2137 -django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.po,sha256=s4s6aHocTlzGcFi0p7cFGTi3K8AgoPvFCv7-Hji6At0,4085 -django/contrib/admin/locale/az/LC_MESSAGES/django.mo,sha256=wgOltdxxboFzjUqoaqdU_rmlVptlfIpGEWKNdKz3ORo,16008 -django/contrib/admin/locale/az/LC_MESSAGES/django.po,sha256=AK41oVjiPgrYRhnBNGgKUr7NFtxsW_ASfknO2Dj20Uw,18246 -django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo,sha256=sre90ULGTqwvLUyrrTJrj3kEPwlbP-VDg-fqT_02fsE,5225 -django/contrib/admin/locale/az/LC_MESSAGES/djangojs.po,sha256=-o9woCOf9ikbIptd9uTej6G-TtTQPKRSuK86N0Ta0yU,5968 -django/contrib/admin/locale/be/LC_MESSAGES/django.mo,sha256=MswmDKUbDdccJWq8uGLgmQVYN9E5memUUvfMZr7zTvI,22317 -django/contrib/admin/locale/be/LC_MESSAGES/django.po,sha256=8H5O594W0JoUq3K5IFwqaG4wvJFg8au-ba6-RUah5z4,23672 -django/contrib/admin/locale/be/LC_MESSAGES/djangojs.mo,sha256=hv91dG9DIHYIqYiZGID8WfL72MBHWH11k-kE7UWCtH8,7036 -django/contrib/admin/locale/be/LC_MESSAGES/djangojs.po,sha256=K25MRS30il9NTHt0batCjAik-KuUuHVnavGUMPCmbiI,7773 -django/contrib/admin/locale/bg/LC_MESSAGES/django.mo,sha256=dXmqFHEzljMX9uAU2MCD-skechN41CurVfftlx8zW7A,21544 -django/contrib/admin/locale/bg/LC_MESSAGES/django.po,sha256=z1cE3SCchVDdRsVGcRO3zzHkYzhHEm3tDDXNE_X50C4,23007 -django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo,sha256=jg3XbDGEJcfsBegtgjkFa6i_lcm2gf64-Gimh99vKcM,6483 -django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po,sha256=aIRSQTjvzcUDcL3LnCKd8gCqsfw8GiMnT_ZwnLiw75M,7093 -django/contrib/admin/locale/bn/LC_MESSAGES/django.mo,sha256=I3KUX53ePEC-8x_bwkR5spx3WbJRR8Xf67_2Xrr7Ccg,18585 -django/contrib/admin/locale/bn/LC_MESSAGES/django.po,sha256=UvKCBSa5MuxxZ7U5pRWXH6CEQ9WCJH2cQND0jjBmgpQ,22889 -django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.mo,sha256=t_OiMyPMsR2IdH65qfD9qvQfpWbwFueNuY72XSed2Io,2313 -django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.po,sha256=iFwEJi4k3ULklCq9eQNUhKVblivQPJIoC_6lbyEkotY,4576 -django/contrib/admin/locale/br/LC_MESSAGES/django.mo,sha256=yCuMwrrEB_H44UsnKwY0E87sLpect_AMo0GdBjMZRPs,6489 -django/contrib/admin/locale/br/LC_MESSAGES/django.po,sha256=WMU_sN0ENWgyEbKOm8uVQfTQh9sabvKihtSdMt4XQBM,13717 -django/contrib/admin/locale/br/LC_MESSAGES/djangojs.mo,sha256=n7Yx2k9sAVSNtdY-2Ao6VFsnsx4aiExZ3TF_DnnrKU0,1658 -django/contrib/admin/locale/br/LC_MESSAGES/djangojs.po,sha256=gjg-VapbI9n_827CqNYhbtIQ8W9UcMmMObCsxCzReUU,4108 -django/contrib/admin/locale/bs/LC_MESSAGES/django.mo,sha256=44D550fxiO59Pczu5HZ6gvWEClsfmMuaxQWbA4lCW2M,8845 -django/contrib/admin/locale/bs/LC_MESSAGES/django.po,sha256=FrieR1JB4ssdWwYitJVpZO-odzPBKrW4ZsGK9LA595I,14317 -django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.mo,sha256=SupUK-RLDcqJkpLEsOVjgZOWBRKQMALZLRXGEnA623M,1183 -django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.po,sha256=TOtcfw-Spn5Y8Yugv2OlPoaZ5DRwJjRIl-YKiyU092U,3831 -django/contrib/admin/locale/ca/LC_MESSAGES/django.mo,sha256=Wj8KdBSUuUtebE45FK3kvzl155GdTv4KgecoMxFi0_g,17535 -django/contrib/admin/locale/ca/LC_MESSAGES/django.po,sha256=5s5RIsOY5uL1oQQ5IrOhsOgAWWFZ25vTcYURO2dlR8g,19130 -django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo,sha256=_c1kqrOKLefixnqinutLyjB_3At56keptkowLCVX7w8,5309 -django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po,sha256=o-S3be-tNLWkQzJE1yXnByvMKDQvnk1tjZALQ1RKLZs,5990 -django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo,sha256=FP7VM8FOuLqsa0hjG7JNntOXtF2gRHPsntyBE8_NSh8,21468 -django/contrib/admin/locale/ckb/LC_MESSAGES/django.po,sha256=nA8NO-17qMu9VKStsvcHH0kuBv9Ckp1uTaTUt_mvdjw,23208 -django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo,sha256=BKJJBqLUBjw5TfnHRjua4q45YcPox-srsOHLWHvJp88,6604 -django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.po,sha256=JxZ2gNkbkV02p-InndqBbV4Z4lgo5WUvOv52gyMWGm0,7456 -django/contrib/admin/locale/cs/LC_MESSAGES/django.mo,sha256=SGPfh9-MhUiRmguk3CGa5GC-Q8LHIo5aHZa4zkpWgow,17736 -django/contrib/admin/locale/cs/LC_MESSAGES/django.po,sha256=4HVVC6Bb4MhileINcde8RmKbHKomhW4xpiyUx91cTdc,19306 -django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo,sha256=OiM40p3ioK9FD4JWLb2jYP75kcurEcn9ih_HDL7Pyus,5851 -django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po,sha256=hh7P3DpEzkCb7M6d2iFwHKp1CzbrmMgeyAGP96BxprE,6629 -django/contrib/admin/locale/cy/LC_MESSAGES/django.mo,sha256=7ifUyqraN1n0hbyTVb_UjRIG1jdn1HcwehugHBiQvHs,12521 -django/contrib/admin/locale/cy/LC_MESSAGES/django.po,sha256=bS_gUoKklZwd3Vs0YlRTt24-k5ure5ObTu-b5nB5qCA,15918 -django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo,sha256=fOCA1fXEmJw_QaXEISLkuBhaMnEmP1ssP9lhqdCCC3c,3801 -django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po,sha256=OVcS-3tlMJS_T58qnZbWLGczHwFyAjbuWr35YwuxAVM,5082 -django/contrib/admin/locale/da/LC_MESSAGES/django.mo,sha256=j91Oq_O-2YkAF8-TUUnEtGbBOrxM4ZHFHtWujHAsYvk,17361 -django/contrib/admin/locale/da/LC_MESSAGES/django.po,sha256=ZN3xXsqQBewUBSEUBRXPZ7bZAM4XYdnPyIKRxPhUvZA,18813 -django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo,sha256=NLYZx6aUjrLTYjVVEfq3ZuxmKbqfhvRwtsN9Hg-jTnI,5378 -django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po,sha256=m-EkvQYUMtnRM4hZrRoH0gnxc3ZYCZdcpfhyX3eMdaU,6234 -django/contrib/admin/locale/de/LC_MESSAGES/django.mo,sha256=rX48gGThrnotluoDyCPlCf5AQJ8REiyvg6BNyR3judk,18283 -django/contrib/admin/locale/de/LC_MESSAGES/django.po,sha256=WKfY-KKFNlE_16MW8IRdP9U33xUVW-x-Jmm23Sxqt34,19816 -django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo,sha256=2Ql_6TWDhCRCu3lCfHODoNRwYLc4orlWI0zZQ23JYFg,5526 -django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po,sha256=r9D4M9UnSaOd3ITOzcQZVriPST3Yt6cH9Wds3pKGQ-o,6286 -django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo,sha256=O2BECdh_nbONFC0lvz8OCEw-vXjM1cvUtw4Gnio4Iqo,18382 -django/contrib/admin/locale/dsb/LC_MESSAGES/django.po,sha256=Kfg4FhAtyDvJXckyQ40696qOs_32qo_Kxl8fa_ZaCuw,19681 -django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo,sha256=T6N610W6q4zmf6zAEdrl3rQC6GTRwotsOYku8bknCmI,5996 -django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po,sha256=9Q-xjTP16U5VpiHdno59GEw1zAy3o2ak2Zay8CczvZA,6696 -django/contrib/admin/locale/el/LC_MESSAGES/django.mo,sha256=54kG_94nJigDgJpZM8Cy58G_AGLdS5csJFEjTTvJBfM,22968 -django/contrib/admin/locale/el/LC_MESSAGES/django.po,sha256=f2gUQtedb0sZCBxAoy3hP2rGXT9ysP5UTOlCBvu2NvI,24555 -django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo,sha256=cix1Bkj2hYO_ofRvtPDhJ9rBnTR6-cnKCFKpZrsxJ34,6509 -django/contrib/admin/locale/el/LC_MESSAGES/djangojs.po,sha256=R05tMMuQEjVQpioy_ayQgFBlLM4WdwXthkMguW6ga24,7339 -django/contrib/admin/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/admin/locale/en/LC_MESSAGES/django.po,sha256=bS-vAJBR0H5AvyWQzA2f8nb7jIUw6P4hjitEuVEmGY4,24373 -django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po,sha256=7VX4spPMdiR6QJqBVR182EfnTdQL229lJxBR0KG0Nn4,7877 -django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo,sha256=QEvxPxDqNUmq8NxN-8c_F6KMEcWWum3YzERlc3_S_DM,16191 -django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po,sha256=BoVuGaPoGdQcF3zdgGRxrNKSq2XLHTvKfINCyU8t86Y,17548 -django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo,sha256=s0qPS8TjODtPo4miSznQfS6M8CQK9URDeMKeQsp7DK4,5001 -django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po,sha256=YecPU6VmUDDNNIzZVl2Wgd6lNRp3msJaW8FhdHMtEyc,5553 -django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo,sha256=pFkTMRDDj76WA91wtGPjUB7Pq2PN7IJEC54Tewobrlc,11159 -django/contrib/admin/locale/en_GB/LC_MESSAGES/django.po,sha256=REUJMGLGRyDMkqh4kJdYXO9R0Y6CULFVumJ_P3a0nv0,15313 -django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo,sha256=hW325c2HlYIIdvNE308c935_IaDu7_qeP-NlwPnklhQ,3147 -django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po,sha256=Ol5j1-BLbtSIDgbcC0o7tg_uHImcjJQmkA4-kSmZY9o,4581 -django/contrib/admin/locale/eo/LC_MESSAGES/django.mo,sha256=zAeGKzSNit2LNNX97WXaARyzxKIasOmTutcTPqpRKAE,14194 -django/contrib/admin/locale/eo/LC_MESSAGES/django.po,sha256=LHoYvbenD9A05EkHtOk8raW7aKyyiqN50d6OHMxnAZY,17258 -django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo,sha256=hGXULxueBP24xSZ0StxfFCO0vwZZME7OEERxgnWBqcI,4595 -django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po,sha256=enHGjcvH_B0Z9K2Vk391qHAKT7QamqUcx8xPzYLQltA,5698 -django/contrib/admin/locale/es/LC_MESSAGES/django.mo,sha256=62yVxnEqjBxCWJDmR_SerZ2pJwLnA_W3krnHu1LRg6Y,18441 -django/contrib/admin/locale/es/LC_MESSAGES/django.po,sha256=ZVWgiPROhblI9tz0wdAjMv7bSWbzUBmibvY1uaIDOQ8,20523 -django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo,sha256=id6akiWYWofxMAhlnHGQkiH-dGi9vHmgalQQVMZQG4k,5550 -django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po,sha256=riYipgdH_7KX7wkBzSp0BVvhaZEKCmLg0PbcLGY7DUs,6549 -django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo,sha256=andQgB0m5i0gUXQQ1apigqdL8-P9Y6EHb_Y8xRA1NGo,17979 -django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po,sha256=oPc3BcEwgvjFgyB9eJxWSdaYJllx9cDA2snKRFr1rrE,19240 -django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo,sha256=wnTfaWZm_wIl_MpxHQwCLS7exNgsPxfIwLT6hydPCkg,5585 -django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po,sha256=ztJtT2YVV5f2r6vptiiTgBLJ0bapPLAIq_V5tJxAlAQ,6177 -django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo,sha256=0k8kSiwIawYCa-Lao0uetNPLUzd4m_me3tCAVBvgcSw,15156 -django/contrib/admin/locale/es_CO/LC_MESSAGES/django.po,sha256=4T_syIsVY-nyvn5gEAtfN-ejPrJSUpNT2dmzufxaBsE,17782 -django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo,sha256=PLS10KgX10kxyy7MUkiyLjqhMzRgkAFGPmzugx9AGfs,3895 -django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.po,sha256=Y4bkC8vkJE6kqLbN8t56dR5670B06sB2fbtVzmQygK8,5176 -django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo,sha256=O8CbY83U4fTvvPPuONtlMx6jpA-qkrYxNTkLuMrWiRQ,11517 -django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po,sha256=8MSKNxhHMp0ksr5AUUAbs_H6MtMjIqkaFwmaJlBxELs,16307 -django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo,sha256=2w3CMJFBugP8xMOmXsDU82xUm8cWGRUGZQX5XjiTCpM,3380 -django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po,sha256=OP9cBsdCf3zZAXiKBMJPvY1AHwC_WE1k2vKlzVCtUec,4761 -django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo,sha256=himCORjsM-U3QMYoURSRbVv09i0P7-cfVh26aQgGnKg,16837 -django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po,sha256=mlmaSYIHpa-Vp3f3NJfdt2RXB88CVZRoPEMfl-tccr0,18144 -django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo,sha256=Zy-Hj_Mr2FiMiGGrZyssN7GZJrbxRj3_yKQFZKR36Ro,4635 -django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.po,sha256=RI8CIdewjL3bAivniMOl7lA9tD7caP4zEo2WK71cX7c,5151 -django/contrib/admin/locale/et/LC_MESSAGES/django.mo,sha256=IKo3lF-pwAqoqrq2eoOinbuPpdKBGjfk66GZEw1vmdo,16669 -django/contrib/admin/locale/et/LC_MESSAGES/django.po,sha256=4iINReEHUO4PMcp_iHbaK6FJd0JRaMWm3z-LRK_Zh7s,18532 -django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo,sha256=kxz2ZDbL-1BxlF6iYTIk2tl5yefzh1NCHRdoJI4xlJ8,4965 -django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po,sha256=fEGMNYwWRUXoJcb8xi95SYOcdm4FYxwAzearlMk76yc,5694 -django/contrib/admin/locale/eu/LC_MESSAGES/django.mo,sha256=CBk_9H8S8LlK8hfGQsEB7IgSms-BsURzAFrX9Zrsw4c,15009 -django/contrib/admin/locale/eu/LC_MESSAGES/django.po,sha256=9vnPgJRPcdSa4P5rguB5zqWQC1xAt4POzDw-mSD8UHs,17489 -django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo,sha256=vKtO_mbexiW-EO-L-G0PYruvc8N7GOF94HWQCkDnJNQ,4480 -django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po,sha256=BAWU-6kH8PLBxx_d9ZeeueB_lV5KFXjbRJXgKN43nQ4,5560 -django/contrib/admin/locale/fa/LC_MESSAGES/django.mo,sha256=PSKW46_myUZ-_OESzZK6_TWINOwlHZ6sBf3-J4D2OFk,20535 -django/contrib/admin/locale/fa/LC_MESSAGES/django.po,sha256=nuGa8IZ_aeRzxc7KaJS0g-XPZqxZIy1-jcdDdUzCE24,22283 -django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo,sha256=MAje4ub3vWYhiKrVR_LvxAIqkvOlFpVcXQEBz3ezlPs,6050 -django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.po,sha256=1nzEmRuswDmyCCMShGH2CYdjMY7tUuedfN4kDCEnTCM,6859 -django/contrib/admin/locale/fi/LC_MESSAGES/django.mo,sha256=KkQFxmyPelc56DyeqzNcYkxmLL0qKRME7XTGFSAXr58,16940 -django/contrib/admin/locale/fi/LC_MESSAGES/django.po,sha256=yxbVs2mpWa3tTA5LJ-erc3roqZfPD1UAiOTA4nrUjks,18282 -django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo,sha256=C9Rk5eZ6B_4OF5jTb2IZOjw_58Shos4T0qwci8-unSE,5378 -django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po,sha256=3_9X1ytlRSGdoye16RQZWVA8PBzF7s_nFxLOtp1uZlI,6024 -django/contrib/admin/locale/fr/LC_MESSAGES/django.mo,sha256=V903ukuo4BHERYTt8gdsgRI_mQoX6ZVrnsRgCl5s304,19291 -django/contrib/admin/locale/fr/LC_MESSAGES/django.po,sha256=IVKfNsw73BliNgwUend8DOX_G6ctCd3FDpNrphbKYR0,20663 -django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo,sha256=iVwMb4YEgVA9ukU0d8VSyhLKp68dYDtGrSicc9y57Go,5906 -django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po,sha256=yNUK45xekpmR90geDynLAwanSBI3D2vVdrzmT7JzOes,6597 -django/contrib/admin/locale/fy/LC_MESSAGES/django.mo,sha256=mWnHXGJUtiewo1F0bsuJCE_YBh7-Ak9gjTpwjOAv-HI,476 -django/contrib/admin/locale/fy/LC_MESSAGES/django.po,sha256=oSKEF_DInUC42Xzhw9HiTobJjE2fLNI1VE5_p6rqnCE,10499 -django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 -django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po,sha256=efBDCcu43j4SRxN8duO5Yfe7NlpcM88kUPzz-qOkC04,2864 -django/contrib/admin/locale/ga/LC_MESSAGES/django.mo,sha256=cIOjVge5KC37U6g-0MMaP5p8N0XJxzK6oJqWNUw9jfI,15075 -django/contrib/admin/locale/ga/LC_MESSAGES/django.po,sha256=Qx1D0cEGIIPnO10I_83IfU3faEYpp0lm-KHg48lJMxE,17687 -django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo,sha256=G-9VfhiMcooTbAI1IMvbvUwj_h_ttNyxGS89nIgrpw4,5247 -django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.po,sha256=DsDMYhm5PEpFBBGepf2iRD0qCkh2r45Y4tIHzFtjJAo,5920 -django/contrib/admin/locale/gd/LC_MESSAGES/django.mo,sha256=HEqiGvjMp0NnfIS0Z-c1i8SicEtMPIg8LvNMh-SXiPg,18871 -django/contrib/admin/locale/gd/LC_MESSAGES/django.po,sha256=cZWnJyEoyGFLbk_M4-eddTJLKJ0dqTIlIj4w6YwcjJg,20139 -django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo,sha256=QA2_hxHGzt_y0U8sAGQaT27IvvyWrehLPKP2X1jAvEs,5904 -django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.po,sha256=KyYGpFHq2E55dK005xzH0I2RD-C2kD6BlJi8bcMjtRA,6540 -django/contrib/admin/locale/gl/LC_MESSAGES/django.mo,sha256=sGPWSa0QTnAnjBzdjDsBRW9dzZsmObqwavtlIc4O3N8,17771 -django/contrib/admin/locale/gl/LC_MESSAGES/django.po,sha256=L8ftF87qznEdwPFX4IrOPxOVJ3mZkkHzluTcwmQXvKQ,19337 -django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo,sha256=i3vLa3hJGltqDu4-l6gniM8w6w4TkFOaK4JLdbSXPlg,5475 -django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.po,sha256=4yFB2SCDEovDQpZyY4OLRMdu7yVw8RzX6U2RSV2fmo8,6234 -django/contrib/admin/locale/he/LC_MESSAGES/django.mo,sha256=5Ckbdd-vF0C-W6tHf2_o2SZzMiRyrv9u9W0CLsqt0XM,16297 -django/contrib/admin/locale/he/LC_MESSAGES/django.po,sha256=FoVOVR6iqKlFLhkHMLJMnQJmLLwzkVKe5wQ7IsFPX_c,18924 -django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo,sha256=sdc97pmpMSUAvoMwrWOHyGPYV4j3DDhz4DlqFeRVTT4,5791 -django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po,sha256=ZXy7lexBNYbzAriBG27Jn-mv2DFoGobsV1Ur2lDtRMQ,6573 -django/contrib/admin/locale/hi/LC_MESSAGES/django.mo,sha256=yWjTYyrVxXxwBWgPsC7IJ9IxL_85v378To4PCEEcwuI,13811 -django/contrib/admin/locale/hi/LC_MESSAGES/django.po,sha256=FpKFToDAMsgc1aG6-CVpi5wAxhMQjkZxz_89kCiKmS4,19426 -django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo,sha256=yCUHDS17dQDKcAbqCg5q8ualaUgaa9qndORgM-tLCIw,4893 -django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.po,sha256=U9rb5tPMICK50bRyTl40lvn-tvh6xL_6o7xIPkzfKi0,6378 -django/contrib/admin/locale/hr/LC_MESSAGES/django.mo,sha256=3TR3uFcd0pnkDi551WaB9IyKX1aOazH7USxqc0lA0KQ,14702 -django/contrib/admin/locale/hr/LC_MESSAGES/django.po,sha256=qcW7tvZoWZIR8l-nMRexGDD8VlrOD7l5Fah6-ecilMk,17378 -django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo,sha256=KR34lviGYh1esCkPE9xcDE1pQ_q-RxK1R2LPjnG553w,3360 -django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.po,sha256=w7AqbYcLtu88R3KIKKKXyRt2gwBBBnr-ulxONWbw01I,4870 -django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo,sha256=Wnkc2h0Ri3RwL3SzQbNLjQ3CAmxOoagWMU8AbTQ3PT8,18171 -django/contrib/admin/locale/hsb/LC_MESSAGES/django.po,sha256=Vob_h-jHNJ7zzEp3fzxZDoXpeCMIvk2_ZYqmCEIQw_c,19469 -django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo,sha256=hCx-YQ554fUj8uGrinpnVljAS39gW9vjCi5P8io6PiI,6082 -django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.po,sha256=6iBeMtQ42dCGGMgYF35k9D6wVOSGMxScb4Ku2jP5p88,6788 -django/contrib/admin/locale/hu/LC_MESSAGES/django.mo,sha256=O_QBDJcYI_rVYvXdI3go3YA2Y1u-NOuKOwshF6Ic7bs,17427 -django/contrib/admin/locale/hu/LC_MESSAGES/django.po,sha256=Gt0lw5n8KxK0ReE0HWrMjPFOXxVGZxxZ3YX4MiV9z1M,18962 -django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo,sha256=CgDVu17Y4DDNfuzUGWyfHyAMFc4ZulYcTFPcU7Yot74,5121 -django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po,sha256=U52dESIGFfZIzUTgeNUKcLjZGGFmTGU0fSxDw2LMhiQ,5816 -django/contrib/admin/locale/hy/LC_MESSAGES/django.mo,sha256=Dcx9cOsYBfbgQgoAQoLhn_cG1d2sKGV6dag4DwnUTaY,18274 -django/contrib/admin/locale/hy/LC_MESSAGES/django.po,sha256=CnQlRZ_DUILMIqVEgUTT2sufAseEKJHHjWsYr_LAqi8,20771 -django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo,sha256=ttfGmyEN0-3bM-WmfCge2lG8inubMPOzFXfZrfX9sfw,5636 -django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po,sha256=jf94wzUOMQaKSBR-77aijQXfdRAqiYSeAQopiT_8Obc,6046 -django/contrib/admin/locale/ia/LC_MESSAGES/django.mo,sha256=SRKlr8RqW8FQhzMsXdA9HNqttO3hc0xf4QdQJd4Dy8c,11278 -django/contrib/admin/locale/ia/LC_MESSAGES/django.po,sha256=pBQLQsMinRNh0UzIHBy3qEW0etUWMhFALu4-h-woFyE,15337 -django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo,sha256=28MiqUf-0-p3PIaongqgPQp2F3D54MLAujPslVACAls,3177 -django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po,sha256=CauoEc8Fiowa8k6K-f9N8fQDle40qsgtXdNPDHBiudQ,4567 -django/contrib/admin/locale/id/LC_MESSAGES/django.mo,sha256=u97GjdI4jRBI2YqxZFdSA-2wUlTUlExsLerRnNEQDEw,16835 -django/contrib/admin/locale/id/LC_MESSAGES/django.po,sha256=pLW14pRvriYdkpR2aIVD_Mqu4nmcUbo6ZsrZG1s1zmU,18295 -django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo,sha256=x7BZREqK1nPL5aKuVJXcVyK2aPEePDzqJv_rcQQOeB4,5206 -django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po,sha256=16gYF3igZkmfU8B_T0AlSXBNdKDKG4mMBMJ1ZTJ0fiQ,5878 -django/contrib/admin/locale/io/LC_MESSAGES/django.mo,sha256=URiYZQZpROBedC-AkpVo0q3Tz78VfkmwN1W7j6jYpMo,12624 -django/contrib/admin/locale/io/LC_MESSAGES/django.po,sha256=y0WXY7v_9ff-ZbFasj33loG-xWlFO8ttvCB6YPyF7FQ,15562 -django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo,sha256=nMu5JhIy8Fjie0g5bT8-h42YElCiS00b4h8ej_Ie-w0,464 -django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po,sha256=WLh40q6yDs-8ZG1hpz6kfMQDXuUzOZa7cqtEPDywxG4,2852 -django/contrib/admin/locale/is/LC_MESSAGES/django.mo,sha256=csD3bmz3iQgLLdSqCKOmY_d893147TvDumrpRVoRTY0,16804 -django/contrib/admin/locale/is/LC_MESSAGES/django.po,sha256=tXgb3ARXP5tPa5iEYwwiHscDGfjS5JgIV2BsUX8OnjE,18222 -django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo,sha256=Z3ujWoenX5yYTAUmHUSCvHcuV65nQmYKPv6Jo9ygx_c,5174 -django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po,sha256=YPf4XqfnpvrS9irAS8O4G0jgU5PCoQ9C-w3MoDipelk,5847 -django/contrib/admin/locale/it/LC_MESSAGES/django.mo,sha256=Kej2-6lAc8GT9X8ewt88e2u2BLEvxOUpfrqNziLFNqs,18064 -django/contrib/admin/locale/it/LC_MESSAGES/django.po,sha256=jqkw9x9PSqDaG5rNXtLQh1s4WX2ImvSqYpB9QyzGMmE,19881 -django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo,sha256=FWtyPVubufiaNKFxy4DQ0KbW93GUt-x1Mc8ZKhqokwg,5640 -django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po,sha256=VRqeY7gYmcP5oWVMgpHL_Br8cAkFXphFQStFpIbWOrc,6578 -django/contrib/admin/locale/ja/LC_MESSAGES/django.mo,sha256=V5hnXVKWl1_Bz1Vg79ii9OWCXHU_08zhG5Sv7jlmDv0,19150 -django/contrib/admin/locale/ja/LC_MESSAGES/django.po,sha256=_PiZS_hgHjHJzfuw3KlyUYMRZmvap5Q6qEVx86VzghU,20747 -django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo,sha256=HGwRneHWWLOnVNmDqtrbyChS9x_9OU3ipPj11Y8pWRc,5612 -django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.po,sha256=nxFFn_JimkySY6ThIjt4mhSMfTkOLZb31HWSGCZQ5b0,6321 -django/contrib/admin/locale/ka/LC_MESSAGES/django.mo,sha256=M3FBRrXFFa87DlUi0HDD_n7a_0IYElQAOafJoIH_i60,20101 -django/contrib/admin/locale/ka/LC_MESSAGES/django.po,sha256=abkt7pw4Kc-Y74ZCpAk_VpFWIkr7trseCtQdM6IUYpQ,23527 -django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo,sha256=GlPU3qUavvU0FXPfvCl-8KboYhDOmMsKM-tv14NqOac,5516 -django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.po,sha256=jDpB9c_edcLoFPHFIogOSPrFkssOjIdxtCA_lum8UCs,6762 -django/contrib/admin/locale/kab/LC_MESSAGES/django.mo,sha256=9QKEWgr8YQV17OJ14rMusgV8b79ZgOOsX4aIFMZrEto,3531 -django/contrib/admin/locale/kab/LC_MESSAGES/django.po,sha256=cSOG_HqsNE4tA5YYDd6txMFoUul8d5UKvk77ZhaqOK0,11711 -django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo,sha256=nqwZHJdtjHUSFDJmC0nPNyvWcAdcoRcN3f-4XPIItvs,1844 -django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po,sha256=tF3RH22p2E236Cv6lpIWQxtuPFeWOvJ-Ery3vBUv6co,3713 -django/contrib/admin/locale/kk/LC_MESSAGES/django.mo,sha256=f2WU3e7dOz0XXHFFe0gnCm1MAPCJ9sva2OUnWYTHOJg,12845 -django/contrib/admin/locale/kk/LC_MESSAGES/django.po,sha256=D1vF3nqANT46f17Gc2D2iGCKyysHAyEmv9nBei6NRA4,17837 -django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo,sha256=cBxp5pFJYUF2-zXxPVBIG06UNq6XAeZ72uRLwGeLbiE,2387 -django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po,sha256=Y30fcDpi31Fn7DU7JGqROAiZY76iumoiW9qGAgPCCbU,4459 -django/contrib/admin/locale/km/LC_MESSAGES/django.mo,sha256=eOe9EcFPzAWrTjbGUr-m6RAz2TryC-qHKbqRP337lPY,10403 -django/contrib/admin/locale/km/LC_MESSAGES/django.po,sha256=RSxy5vY2sgC43h-9sl6eomkFvxClvH_Ka4lFiwTvc2I,17103 -django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo,sha256=Ja8PIXmw6FMREHZhhBtGrr3nRKQF_rVjgLasGPnU95w,1334 -django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po,sha256=LH4h4toEgpVBb9yjw7d9JQ8sdU0WIZD-M025JNlLXAU,3846 -django/contrib/admin/locale/kn/LC_MESSAGES/django.mo,sha256=955iPq05ru6tm_iPFVMebxwvZMtEa5_7GaFG1mPt6HU,9203 -django/contrib/admin/locale/kn/LC_MESSAGES/django.po,sha256=-4YAm0MyhS-wp4RQmo0TzWvqYqmzHFNpIBtdQlg_8Dw,16059 -django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo,sha256=kJsCOGf62XOWTKcB9AF6Oc-GqHl2LFtz-qw0spjcU_w,1847 -django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po,sha256=zzl7QZ5DfdyNWrkIqYlpUcZiTdlZXx_ktahyXqM2-0Q,5022 -django/contrib/admin/locale/ko/LC_MESSAGES/django.mo,sha256=Q6ARBDqvyPrAuVuwP3C7GhCXl71kgP4KaTF7EUvVPCc,18524 -django/contrib/admin/locale/ko/LC_MESSAGES/django.po,sha256=rh6WGn5SaCpjGSZ6LImOnQlLnqVv_Kbjrj2-E5dE0tU,20364 -django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo,sha256=kXw221dYlR9a5bcprVUhrkjk3Scr8Qu1y2p_UKuE7wk,5252 -django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.po,sha256=Ftgvvf0RCwSUwjiqz1oLeh_aYV_yjo0-H36jIjCh0Ts,6167 -django/contrib/admin/locale/ky/LC_MESSAGES/django.mo,sha256=eg-TnIzJO4h3q_FS2a1LnCs7qOf5dpNJwvRD99ZZ0GQ,20129 -django/contrib/admin/locale/ky/LC_MESSAGES/django.po,sha256=dWxU3yUAKHUGKdVJbRLkS6fJEefPBk2XM0i2INcRPms,21335 -django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo,sha256=VuBYBwFwIHC27GFZiHY2_4AB0cME2R0Q3juczjOs3G0,5888 -django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.po,sha256=uMk9CxL1wP45goq2093lYMza7LRuO4XbVo5RRWlsbaE,6432 -django/contrib/admin/locale/lb/LC_MESSAGES/django.mo,sha256=8GGM2sYG6GQTQwQFJ7lbg7w32SvqgSzNRZIUi9dIe6M,913 -django/contrib/admin/locale/lb/LC_MESSAGES/django.po,sha256=PZ3sL-HvghnlIdrdPovNJP6wDrdDMSYp_M1ok6dodrw,11078 -django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 -django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po,sha256=fiMelo6K0_RITx8b9k26X1R86Ck2daQXm86FLJpzt20,2862 -django/contrib/admin/locale/lt/LC_MESSAGES/django.mo,sha256=SpaNUiaGtDlX5qngVj0dWdqNLSin8EOXXyBvRM9AnKg,17033 -django/contrib/admin/locale/lt/LC_MESSAGES/django.po,sha256=tHnRrSNG2ENVduP0sOffCIYQUn69O6zIev3Bb7PjKb0,18497 -django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo,sha256=vZtnYQupzdTjVHnWrtjkC2QKNpsca5yrpb4SDuFx0_0,5183 -django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.po,sha256=dMjFClA0mh5g0aNFTyHC8nbYxwmFD0-j-7gCKD8NFnw,5864 -django/contrib/admin/locale/lv/LC_MESSAGES/django.mo,sha256=e0vb6nDWIrbLi2-fRQQ0wYFL4ejGNKeCL6HwoTNIldE,17729 -django/contrib/admin/locale/lv/LC_MESSAGES/django.po,sha256=zkPxkBwgNC1GOVs_7KGnwEL0kmLQ3ZHNKEQSrGMNA7U,19310 -django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo,sha256=07uy1Q3pxk7HWZ11_tzuXssLrh6QaNuDFHp2mIAC2Ig,5799 -django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po,sha256=PgRMzlmi30ylkTpS6jC6YTO_PL9kcPwQLrY8thzf0vE,6663 -django/contrib/admin/locale/mk/LC_MESSAGES/django.mo,sha256=xcKetKf7XcO-4vbWEIoI2c40gRE2twuiINaby6ypO7Q,17948 -django/contrib/admin/locale/mk/LC_MESSAGES/django.po,sha256=hx2peq-wztDHtiST_zZ58c7rjZ6jSvDDXhVOTmyUDzI,21063 -django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo,sha256=8BkWjadml2f1lDeH-IULdxsogXSK8NpVuu293GvcQc8,4719 -django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po,sha256=u9mVSzbIgA1uRgV_L8ZOZLelyknoKFvXH0HbBurezf8,6312 -django/contrib/admin/locale/ml/LC_MESSAGES/django.mo,sha256=4Y1KAip3NNsoRc9Zz3k0YFLzes3DNRFvAXWSTBivXDk,20830 -django/contrib/admin/locale/ml/LC_MESSAGES/django.po,sha256=jL9i3kmOnoKYDq2RiF90WCc55KeA8EBN9dmPHjuUfmo,24532 -django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo,sha256=COohY0mAHAOkv1eNzLkaGZy8mimXzcDK1EgRd3tTB_E,6200 -django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.po,sha256=NvN0sF_w5tkc3bND4lBtCHsIDLkwqdEPo-8wi2MTQ14,7128 -django/contrib/admin/locale/mn/LC_MESSAGES/django.mo,sha256=Lu8mM_3lJuByz4xXE7shq4nuBwE71_yh4_HIuy7KK64,14812 -django/contrib/admin/locale/mn/LC_MESSAGES/django.po,sha256=yNbv9cOeXEHPiDOKPXIbq2-cBZvUXSXCfL4TPe74x0s,18851 -django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo,sha256=H7fIPdWTK3_iuC0WRBJdfXN8zO77p7-IzTviEUVQJ2U,5228 -django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po,sha256=vJIqqVG34Zd7q8-MhTgZcXTtl6gukOSb6egt70AOyAc,5757 -django/contrib/admin/locale/mr/LC_MESSAGES/django.mo,sha256=UAxGnGliid2PTx6SMgIuHVfbCcqVvcwC4FQUWtDuSTc,468 -django/contrib/admin/locale/mr/LC_MESSAGES/django.po,sha256=TNARpu8Pfmu9fGOLUP0bRwqqDdyFmlh9rWjFspboTyc,10491 -django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo,sha256=2Z5jaGJzpiJTCnhCk8ulCDeAdj-WwR99scdHFPRoHoA,468 -django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.po,sha256=uGe9kH2mwrab97Ue77oggJBlrpzZNckKGRUMU1vaigs,2856 -django/contrib/admin/locale/ms/LC_MESSAGES/django.mo,sha256=Xj5v1F4_m1ZFUn42Rbep9eInxIV-NE-oA_NyfQkbp00,16840 -django/contrib/admin/locale/ms/LC_MESSAGES/django.po,sha256=ykFH-mPbv2plm2NIvKgaj3WVukJ3SquU8nQIAXuOrWA,17967 -django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo,sha256=9VY_MrHK-dGOIkucLCyR9psy4o5p4nHd8kN_5N2E-gY,5018 -django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po,sha256=P4GvM17rlX1Vl-7EbCyfWVasAJBEv_RvgWEvfJqcErA,5479 -django/contrib/admin/locale/my/LC_MESSAGES/django.mo,sha256=xvlgM0vdYxZuA7kPQR7LhrLzgmyVCHAvqaqvFhKX9wY,3677 -django/contrib/admin/locale/my/LC_MESSAGES/django.po,sha256=zdUCYcyq2-vKudkYvFcjk95YUtbMDDSKQHCysmQ-Pvc,12522 -django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo,sha256=1fS9FfWi8b9NJKm3DBKETmuffsrTX-_OHo9fkCCXzpg,3268 -django/contrib/admin/locale/my/LC_MESSAGES/djangojs.po,sha256=-z1j108uoswi9YZfh3vSIswLXu1iUKgDXNdZNEA0yrA,5062 -django/contrib/admin/locale/nb/LC_MESSAGES/django.mo,sha256=viQKBFH6ospYn2sE-DokVJGGYhSqosTgbNMn5sBVnmM,16244 -django/contrib/admin/locale/nb/LC_MESSAGES/django.po,sha256=x0ANRpDhe1rxxAH0qjpPxRfccCvR73_4g5TNUdJqmrc,17682 -django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo,sha256=KwrxBpvwveERK4uKTIgh-DCc9aDLumpHQYh5YroqxhQ,4939 -django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po,sha256=ygn6a5zkHkoIYMC8Hgup8Uw1tMbZcLGgwwDu3x33M-o,5555 -django/contrib/admin/locale/ne/LC_MESSAGES/django.mo,sha256=yrm85YXwXIli7eNaPyBTtV7y3TxQuH4mokKuHdAja2A,15772 -django/contrib/admin/locale/ne/LC_MESSAGES/django.po,sha256=F8vfWKvSNngkLPZUIwik_qDYu0UAnrWepbI9Z9Iz35g,20400 -django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo,sha256=mJdtpLT9k4vDbN9fk2fOeiy4q720B3pLD3OjLbAjmUI,5362 -django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po,sha256=N91RciTV1m7e8-6Ihod5U2xR9K0vrLoFnyXjn2ta098,6458 -django/contrib/admin/locale/nl/LC_MESSAGES/django.mo,sha256=Sk06I7RNlzalBB7waVFyOlWxFGlkVXejmstQDjk3kZo,17426 -django/contrib/admin/locale/nl/LC_MESSAGES/django.po,sha256=ANHtLahN6G5CW8lSDs8bJNF69Qukh_67OmYbqEfcHP8,19144 -django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo,sha256=HATZkr9m09TLZqQqxvsxTfRz7U1Qw4sjnNwu7sqUTx8,5401 -django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po,sha256=chyt-p5vexp07EjxAnYA-cf8nlNaVskLdmzYuTvEW8A,6387 -django/contrib/admin/locale/nn/LC_MESSAGES/django.mo,sha256=yAdb8Yew1ARlnAnvd5gHL7-SDzpkXedBwCSSPEzGCKk,16504 -django/contrib/admin/locale/nn/LC_MESSAGES/django.po,sha256=sFxr3UYzltQRqiotm_d5Qqtf8iLXI0LgCw_V6kYffJ0,17932 -django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo,sha256=RsDri1DmCwrby8m7mLWkFdCe6HK7MD7GindOarVYPWc,4939 -django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.po,sha256=koVTt2mmdku1j7SUDRbnug8EThxXuCIF2XPnGckMi7A,5543 -django/contrib/admin/locale/os/LC_MESSAGES/django.mo,sha256=c51PwfOeLU2YcVNEEPCK6kG4ZyNc79jUFLuNopmsRR8,14978 -django/contrib/admin/locale/os/LC_MESSAGES/django.po,sha256=yugDw7iziHto6s6ATNDK4yuG6FN6yJUvYKhrGxvKmcY,18188 -django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo,sha256=0gMkAyO4Zi85e9qRuMYmxm6JV98WvyRffOKbBVJ_fLQ,3806 -django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po,sha256=skiTlhgUEN8uKk7ihl2z-Rxr1ZXqu5qV4wB4q9qXVq0,5208 -django/contrib/admin/locale/pa/LC_MESSAGES/django.mo,sha256=EEitcdoS-iQ9QWHPbJBK2ajdN56mBi0BzGnVl3KTmU4,8629 -django/contrib/admin/locale/pa/LC_MESSAGES/django.po,sha256=xscRlOkn9Jc8bDsSRM5bzQxEsCLMVsV-Wwin0rfkHDI,16089 -django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo,sha256=Hub-6v7AfF-tWhw53abpyhnVHo76h_xBgGIhlGIcS70,1148 -django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po,sha256=7L8D4qqhq53XG83NJUZNoM8zCCScwMwzsrzzsyO4lHY,4357 -django/contrib/admin/locale/pl/LC_MESSAGES/django.mo,sha256=jjQLGNe-KxoEhNnwOkgLg0jppnoPJZ1TnKkmGQWrbjk,18666 -django/contrib/admin/locale/pl/LC_MESSAGES/django.po,sha256=7gYZ_6iGTfyHNdj06eTUU642kVqBsXEkMjU5ws_PQtA,20641 -django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo,sha256=Y1e-hyxaGkraZWDcXWAPk6MX2dBQUe2UzqErlQdIWeI,6046 -django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po,sha256=HiQneGkdEpWT7i4HfFpFHcqNMP7zCQyNR3o3Z_xqvPo,7176 -django/contrib/admin/locale/pt/LC_MESSAGES/django.mo,sha256=MTFRTfUKot-0r-h7qtggPe8l_q0JPAzVF9GzdtB9600,16912 -django/contrib/admin/locale/pt/LC_MESSAGES/django.po,sha256=gzRkbl35HZ-88mlA1Bdj1Y-CUJ752pZKCUIG-NNw2os,18436 -django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo,sha256=D6-8QwX6lsACkEcYXq1tK_4W2q_NMc6g5lZQJDZRFHw,4579 -django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po,sha256=__a9WBgO_o0suf2xvMhyRk_Wkg2tfqNHmJOM5YF86sk,5118 -django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo,sha256=LgFtBTd1wNMgnO662gwaCo1v0GKeC_rCW2ovno8Clug,18060 -django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po,sha256=IwgI3Ex8aaOKxoGKVuHz03UIbpOsU8gAYzZKdqrHpqs,20568 -django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo,sha256=BUSFb7OciR49CWPBTwzpqUKqByOsf1VlVnDk-eGJuBE,5527 -django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po,sha256=H9_WjquHgxzXQZ_kO-LpEHxYdDfSTSYMYPlIhx9hjF4,6612 -django/contrib/admin/locale/ro/LC_MESSAGES/django.mo,sha256=SEbnJ1aQ3m2nF7PtqzKvYYCdvgg_iG5hzrdO_Xxiv_k,15157 -django/contrib/admin/locale/ro/LC_MESSAGES/django.po,sha256=wPfGo9yi3j28cwikkogZ_erQKtUZ9WmzdZ2FuMVugFE,18253 -django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo,sha256=voEqSN3JUgJM9vumLxE_QNPV7kA0XOoTktN7E7AYV6o,4639 -django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po,sha256=SO7FAqNnuvIDfZ_tsWRiwSv91mHx5NZHyR2VnmoYBWY,5429 -django/contrib/admin/locale/ru/LC_MESSAGES/django.mo,sha256=h9viCIosk9nNZCGnjTyKBeF9SzYxyIlHyaI3-NuoXrg,22541 -django/contrib/admin/locale/ru/LC_MESSAGES/django.po,sha256=jjVQOuz4PAzxlfVlMICtH3Qy7FRkyCkTQSjvAG6pPpM,24240 -django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo,sha256=O9G6neCrWRvZj67hhxbk-Yh9Da4-lNrAfXyi1dV8B7A,7440 -django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po,sha256=w7UmFYBzKJFIRyPUaqP2uu8P_t_Lu4X9YSt3avYPj4g,8468 -django/contrib/admin/locale/sk/LC_MESSAGES/django.mo,sha256=hSHmImczSCOq8Fq1zVyZD5Sn5bhqUGBHiqM7WFMIMnw,17090 -django/contrib/admin/locale/sk/LC_MESSAGES/django.po,sha256=u4mxos-LzwOoZ0KqzYlynCFGagw9y2kQhx9nHE8svJg,18791 -django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo,sha256=-9dSuiVIPqZDSkF5arXISKP3TXbHtEveZO3vXy5ZotQ,5291 -django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po,sha256=wHjVgHIHxubOaeAuf8nBmj1vlXcPeWTGf1xMrhdVL2E,6083 -django/contrib/admin/locale/sl/LC_MESSAGES/django.mo,sha256=iqcg1DYwwDVacRAKJ3QR4fTmKQhRGXU4WkwYco9ASaA,16136 -django/contrib/admin/locale/sl/LC_MESSAGES/django.po,sha256=VeIJDh1PojyUy-4AdPcVezbQ-XVWqp04vFE_u3KU2tU,17508 -django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo,sha256=--wrlI4_qva1mlKR9ehUjaYGA5LLIY9otgvq7BYtUic,4637 -django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po,sha256=u-8YLLTAOmAQHA6qIGPueP6BOswjPctbFc8L8FrX51w,5956 -django/contrib/admin/locale/sq/LC_MESSAGES/django.mo,sha256=LLChsUL0O-4ssvH9OmUB89ImYmlUvduzryr5kFNWNi4,18094 -django/contrib/admin/locale/sq/LC_MESSAGES/django.po,sha256=8Pjo6vznPCnkz8jc7qH5EriK36CykBYjBTg8XFcm54Q,19464 -django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo,sha256=HJop8KDVdDWA94549RJ8vLJ34c19VRJUcWDpR8U0bhU,5505 -django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po,sha256=jISDoKjEy1fesqQbznfmIQlrSYLZFyscocJT0F9itUo,6221 -django/contrib/admin/locale/sr/LC_MESSAGES/django.mo,sha256=AMEp3NrqHBcqdJb41fQowVTkx8F9-fdg2PluKKykT9w,15816 -django/contrib/admin/locale/sr/LC_MESSAGES/django.po,sha256=ifY6hofsf9PhuDNCa38Y2gkGteylhesQzKBdvIWJcVY,19622 -django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo,sha256=KWwJNCHP5cKHyg8un97RJPx50ngujHXkb6py4F-QCog,6565 -django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.po,sha256=bgXig-bNkbQ_QnhFB9GqhXH-riScJhayCdr2F6ipjN0,7318 -django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=8wcRn4O2WYMFJal760MvjtSPBNoDgHAEYtedg8CC7Ao,12383 -django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po,sha256=N4fPEJTtUrQnc8q1MioPZ2a7E55YXrE-JvfAcWZubfA,16150 -django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo,sha256=qyZM6sLb6BxwYxvrSOn3JRYtkU6LUxUvhB_JEf9V13M,5466 -django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po,sha256=2cJ1HPgHoj35lJZgIwWoYVESVjtW7xoZvQc7--AMI2U,6176 -django/contrib/admin/locale/sv/LC_MESSAGES/django.mo,sha256=rkpwbTO2BibbaE2IW1YLhJMzLliIns06mKcU5eHY5LE,16893 -django/contrib/admin/locale/sv/LC_MESSAGES/django.po,sha256=VonLZDGA_OVrDlPoyJ9rBR_39ikQjQoOOXi36PXv0l4,18923 -django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo,sha256=xaik7riKlY_kanfHZ34gGM6bu87hNmGoJLhEfy-bPg4,5304 -django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po,sha256=B1BUjK6MANg5I7GiMCwz6Y9siAj5unMzkbG7KIuQELs,6110 -django/contrib/admin/locale/sw/LC_MESSAGES/django.mo,sha256=Mtj7jvbugkVTj0qyJ_AMokWEa2btJNSG2XrhpY0U1Mc,14353 -django/contrib/admin/locale/sw/LC_MESSAGES/django.po,sha256=ElU-s0MgtNKF_aXdo-uugBnuJIDzHqMmy1ToMDQhuD0,16419 -django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo,sha256=p0pi6-Zg-qsDVMDjNHO4aav3GfJ3tKKhy6MK7mPtC50,3647 -django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po,sha256=lZFP7Po4BM_QMTj-SXGlew1hqyJApZxu0lxMP-YduHI,4809 -django/contrib/admin/locale/ta/LC_MESSAGES/django.mo,sha256=ZdtNRZLRqquwMk7mE0XmTzEjTno9Zni3mV6j4DXL4nI,10179 -django/contrib/admin/locale/ta/LC_MESSAGES/django.po,sha256=D0TCLM4FFF7K9NqUGXNFE2KfoEzx5IHcJQ6-dYQi2Eg,16881 -django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo,sha256=2-37FOw9Bge0ahIRxFajzxvMkAZL2zBiQFaELmqyhhY,1379 -django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.po,sha256=Qs-D7N3ZVzpZVxXtMWKOzJfSmu_Mk9pge5W15f21ihI,3930 -django/contrib/admin/locale/te/LC_MESSAGES/django.mo,sha256=aIAG0Ey4154R2wa-vNe2x8X4fz2L958zRmTpCaXZzds,10590 -django/contrib/admin/locale/te/LC_MESSAGES/django.po,sha256=-zJYrDNmIs5fp37VsG4EAOVefgbBNl75c-Pp3RGBDAM,16941 -django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo,sha256=VozLzWQwrY-USvin5XyVPtUUKEmCr0dxaWC6J14BReo,1362 -django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po,sha256=HI8IfXqJf4I6i-XZB8ELGyp5ZNr-oi5hW9h7n_8XSaQ,3919 -django/contrib/admin/locale/tg/LC_MESSAGES/django.mo,sha256=gJfgsEn9doTT0erBK77OBDi7_0O7Rb6PF9tRPacliXU,15463 -django/contrib/admin/locale/tg/LC_MESSAGES/django.po,sha256=Wkx7Hk2a9OzZymgrt9N91OL9K5HZXTbpPBXMhyE0pjI,19550 -django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo,sha256=SEaBcnnKupXbTKCJchkSu_dYFBBvOTAOQSZNbCYUuHE,5154 -django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po,sha256=CfUjLtwMmz1h_MLE7c4UYv05ZTz_SOclyKKWmVEP9Jg,5978 -django/contrib/admin/locale/th/LC_MESSAGES/django.mo,sha256=EVlUISdKOvNkGMG4nbQFzSn5p7d8c9zOGpXwoHsHNlY,16394 -django/contrib/admin/locale/th/LC_MESSAGES/django.po,sha256=OqhGCZ87VX-WKdC2EQ8A8WeXdWXu9mj6k8mG9RLZMpM,20187 -django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo,sha256=ukj5tyDor9COi5BT9oRLucO2wVTI6jZWclOM-wNpXHM,6250 -django/contrib/admin/locale/th/LC_MESSAGES/djangojs.po,sha256=3L5VU3BNcmfiqzrAWK0tvRRVOtgR8Ceg9YIxL54RGBc,6771 -django/contrib/admin/locale/tk/LC_MESSAGES/django.mo,sha256=9EGO5sA_1Hz2fhEmkrLbPJXQtWdxQJUBQ3gSREvjEGM,2834 -django/contrib/admin/locale/tk/LC_MESSAGES/django.po,sha256=8dDS2pp8wNI_3J82ZORzOFlCS2_GvFsJ_PY8fPyExHg,12847 -django/contrib/admin/locale/tr/LC_MESSAGES/django.mo,sha256=stVPkQcS3okvAZP3WRnB1R3bhX0hgacfl0JuFYFgtKo,18009 -django/contrib/admin/locale/tr/LC_MESSAGES/django.po,sha256=NoUe_Iayfk1mjchb6UtoylceaUnaEWs6RUCH4yDhEUc,19561 -django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo,sha256=cfmwRw4ltT4xUW-o9glHFgQxlL9uxYLB6dIFJRDFJYA,5433 -django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po,sha256=rYlOYluUMRXir_LfpY8qhJXe9__LixKwxecXdguIzwk,6152 -django/contrib/admin/locale/tt/LC_MESSAGES/django.mo,sha256=ObJ8zwVLhFsS6XZK_36AkNRCeznoJJwLTMh4_LLGPAA,12952 -django/contrib/admin/locale/tt/LC_MESSAGES/django.po,sha256=VDjg5nDrLqRGXpxCyQudEC_n-6kTCIYsOl3izt1Eblc,17329 -django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo,sha256=Sz5qnMHWfLXjaCIHxQNrwac4c0w4oeAAQubn5R7KL84,2607 -django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po,sha256=_Uh3yH_RXVB3PP75RFztvSzVykVq0SQjy9QtTnyH3Qk,4541 -django/contrib/admin/locale/udm/LC_MESSAGES/django.mo,sha256=2Q_lfocM7OEjFKebqNR24ZBqUiIee7Lm1rmS5tPGdZA,622 -django/contrib/admin/locale/udm/LC_MESSAGES/django.po,sha256=L4TgEk2Fm2mtKqhZroE6k_gfz1VC-_dXe39CiJvaOPE,10496 -django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 -django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.po,sha256=ZLYr0yHdMYAl7Z7ipNSNjRFIMNYmzIjT7PsKNMT6XVk,2811 -django/contrib/admin/locale/uk/LC_MESSAGES/django.mo,sha256=LwO4uX79ZynANx47kGLijkDJ-DAdYWlmW3nYOqbXuuo,22319 -django/contrib/admin/locale/uk/LC_MESSAGES/django.po,sha256=9vEMtbw4ck4Sipdu-Y8mYOufWOTWpu7PVrMDu71GT9g,24335 -django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo,sha256=_YwTcBttv3DZNYkBq4Rsl6oq30o8nDvUHPI5Yx0GaA4,5787 -django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po,sha256=4lYvm_LDX5xha4Qj1dXE5tGs4BjGPUgjigvG2n6y1S4,6993 -django/contrib/admin/locale/ur/LC_MESSAGES/django.mo,sha256=HvyjnSeLhUf1JVDy759V_TI7ygZfLaMhLnoCBJxhH_s,13106 -django/contrib/admin/locale/ur/LC_MESSAGES/django.po,sha256=BFxxLbHs-UZWEmbvtWJNA7xeuvO9wDc32H2ysKZQvF4,17531 -django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo,sha256=eYN9Q9KKTV2W0UuqRc-gg7y42yFAvJP8avMeZM-W7mw,2678 -django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.po,sha256=Nj-6L6axLrqA0RHUQbidNAT33sXYfVdGcX4egVua-Pk,4646 -django/contrib/admin/locale/uz/LC_MESSAGES/django.mo,sha256=bWJujZSbu9Q4u2hcVJAkHDQCjx8Uo_Bj5gcU3CbkeLw,4610 -django/contrib/admin/locale/uz/LC_MESSAGES/django.po,sha256=3fxRPvC5_1md4LrntCTLUXVINdrHxgHOav04xabwYUg,13107 -django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo,sha256=LpuFvNKqNRCCiV5VyRnJoZ8gY3Xieb05YV9KakNU7o8,3783 -django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.po,sha256=joswozR3I1ijRapf50FZMzQQhI_aU2XiiSTLeSxkL64,5235 -django/contrib/admin/locale/vi/LC_MESSAGES/django.mo,sha256=coCDRhju7xVvdSaounXO5cMqCmLWICZPJth6JI3Si2c,18077 -django/contrib/admin/locale/vi/LC_MESSAGES/django.po,sha256=Q1etVmaAb1f79f4uVjbNjPkn-_3m2Spz1buNAV3y9lk,19543 -django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo,sha256=45E-fCQkq-BRLzRzsGkw1-AvWlvjL1rdsRFqfsvAq98,5302 -django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.po,sha256=k87QvFnt8psnwMXXrFO6TyH6xCyXIDd_rlnWDfl2FAA,5958 -django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=M5tbcSAPA_H-5fJE11DMXeQh9A_C_Vs30Hd6N5p_XGw,16512 -django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po,sha256=wafZUy6i5YCmk1-BUPQGZf-32XCV64oB-QLpOpcdV8w,18591 -django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo,sha256=4Ot7WJ7AbWOv43eLteU5f_Jh9jzjT3fWM2IsrJmjxqE,4972 -django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po,sha256=NPiunOoL7GXwaXd9hCwIKEMm25Xj6d8M4lMV9nk5Cy4,6128 -django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=kEKX-cQPRFCNkiqNs1BnyzEvJQF-EzA814ASnYPFMsw,15152 -django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.po,sha256=iH3w7Xt_MelkZefKi8F0yAWN6QGdQCJBz8VaFY4maUg,16531 -django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo,sha256=yFwS8aTJUAG5lN4tYLCxx-FLfTsiOxXrCEhlIA-9vcs,4230 -django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po,sha256=C4Yk5yuYcmaovVs_CS8YFYY2iS4RGi0oNaUpTm7akeU,4724 -django/contrib/admin/migrations/0001_initial.py,sha256=9HFpidmBW2Ix8NcpF1SDXgCMloGER_5XmEu_iYWIMzU,2507 -django/contrib/admin/migrations/0002_logentry_remove_auto_add.py,sha256=LBJ-ZZoiNu3qDtV-zNOHhq6E42V5CoC5a3WMYX9QvkM,553 -django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py,sha256=AnAKgnGQcg5cQXSVo5UHG2uqKKNOdLyPkIJK-q_AGEE,538 -django/contrib/admin/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/admin/migrations/__pycache__/0001_initial.cpython-312.pyc,, -django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-312.pyc,, -django/contrib/admin/migrations/__pycache__/0003_logentry_add_action_flag_choices.cpython-312.pyc,, -django/contrib/admin/migrations/__pycache__/__init__.cpython-312.pyc,, -django/contrib/admin/models.py,sha256=y-2sytJ1V-KnhKqUz8KfQho_wzxNbNhXQ38VG41Kb08,6501 -django/contrib/admin/options.py,sha256=bsbxf2O11Z5smAkeLQRZ11I00S7jrfqDQ6fEjl7AkPk,98119 -django/contrib/admin/sites.py,sha256=5mIXxP2lKUuUa6bbruu-FW16pjYmbNJOu2ivg48XC0c,22473 -django/contrib/admin/static/admin/css/autocomplete.css,sha256=6-fcQdqClpGf8EpH1NxgS8YL-diGXc8CFq3Sw2I9K8k,9114 -django/contrib/admin/static/admin/css/base.css,sha256=URDTE_ZfTFDMY8oHsH4_jp2vMt2mFt-I758zNXKXFlc,21310 -django/contrib/admin/static/admin/css/changelists.css,sha256=r27rQDIRWwVmAazytZnWs2Gg3xcJ-sDmasghD-SRTm0,6566 -django/contrib/admin/static/admin/css/dark_mode.css,sha256=A0nHppPPMFLYdu6CziH7hSk-KiY1iKAEGPys_bGmF9c,2929 -django/contrib/admin/static/admin/css/dashboard.css,sha256=iCz7Kkr5Ld3Hyjx_O1r_XfZ2LcpxOpVjcDZS1wbqHWs,441 -django/contrib/admin/static/admin/css/forms.css,sha256=xYIYBoiRpx18wicbhwScviSXNVfBMFD4nlSL-D_Xp4Y,9090 -django/contrib/admin/static/admin/css/login.css,sha256=BdAkR--cxd5HZXDNPInv2Qgs_c305sPbPCctkUkAmDU,958 -django/contrib/admin/static/admin/css/nav_sidebar.css,sha256=hy3d_W9YEVYaASNgYrxZvFX5Vb7MSGwA0-aj_FnLBjw,2694 -django/contrib/admin/static/admin/css/responsive.css,sha256=MG0GPqtJ4P-qsGKJ6bsnZT-3L-PhdPG7NG6KS3IHIwA,18559 -django/contrib/admin/static/admin/css/responsive_rtl.css,sha256=lzUTK8NbPu7qIm6tCsiCcI3Hx0594ewFEfN7zk8-TJE,1864 -django/contrib/admin/static/admin/css/rtl.css,sha256=7p-gxCkRABINtFzOxPc05x7IwluMPfUjOVjdTD792EY,4918 -django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md,sha256=TuDLxRNwr941hlKg-XeXIFNyntV4tqQvXioDfRFPCzk,1124 -django/contrib/admin/static/admin/css/vendor/select2/select2.css,sha256=kalgQ55Pfy9YBkT-4yYYd5N8Iobe-iWeBuzP7LjVO0o,17358 -django/contrib/admin/static/admin/css/vendor/select2/select2.min.css,sha256=FdatTf20PQr_rWg-cAKfl6j4_IY3oohFAJ7gVC3M34E,14966 -django/contrib/admin/static/admin/css/widgets.css,sha256=9ZLVdCth_xgDCED8MiaBmSDYNVSqzQOAe1e3v4V9gfE,11921 -django/contrib/admin/static/admin/img/LICENSE,sha256=0RT6_zSIwWwxmzI13EH5AjnT1j2YU3MwM9j3U19cAAQ,1081 -django/contrib/admin/static/admin/img/README.txt,sha256=XqN5MlT1SIi6sdnYnKJrOiJ6h9lTIejT7nLSY-Y74pk,319 -django/contrib/admin/static/admin/img/calendar-icons.svg,sha256=gbMu26nfxZphlqKFcVOXpcv5zhv5x_Qm_P4ba0Ze84I,1094 -django/contrib/admin/static/admin/img/gis/move_vertex_off.svg,sha256=ou-ppUNyy5QZCKFYlcrzGBwEEiTDX5mmJvM8rpwC5DM,1129 -django/contrib/admin/static/admin/img/gis/move_vertex_on.svg,sha256=DgmcezWDms_3VhgqgYUGn-RGFHyScBP0MeX8PwHy_nE,1129 -django/contrib/admin/static/admin/img/icon-addlink.svg,sha256=kBtPJJ3qeQPWeNftvprZiR51NYaZ2n_ZwJatY9-Zx1Q,331 -django/contrib/admin/static/admin/img/icon-alert.svg,sha256=aXtd9PA66tccls-TJfyECQrmdWrj8ROWKC0tJKa7twA,504 -django/contrib/admin/static/admin/img/icon-calendar.svg,sha256=_bcF7a_R94UpOfLf-R0plVobNUeeTto9UMiUIHBcSHY,1086 -django/contrib/admin/static/admin/img/icon-changelink.svg,sha256=clM2ew94bwVa2xQ6bvfKx8xLtk0i-u5AybNlyP8k-UM,380 -django/contrib/admin/static/admin/img/icon-clock.svg,sha256=k55Yv6R6-TyS8hlL3Kye0IMNihgORFjoJjHY21vtpEA,677 -django/contrib/admin/static/admin/img/icon-deletelink.svg,sha256=06XOHo5y59UfNBtO8jMBHQqmXt8UmohlSMloUuZ6d0A,392 -django/contrib/admin/static/admin/img/icon-no.svg,sha256=QqBaTrrp3KhYJxLYB5E-0cn_s4A_Y8PImYdWjfQSM-c,560 -django/contrib/admin/static/admin/img/icon-unknown-alt.svg,sha256=LyL9oJtR0U49kGHYKMxmmm1vAw3qsfXR7uzZH76sZ_g,655 -django/contrib/admin/static/admin/img/icon-unknown.svg,sha256=ePcXlyi7cob_IcJOpZ66uiymyFgMPHl8p9iEn_eE3fc,655 -django/contrib/admin/static/admin/img/icon-viewlink.svg,sha256=NL7fcy7mQOQ91sRzxoVRLfzWzXBRU59cFANOrGOwWM0,581 -django/contrib/admin/static/admin/img/icon-yes.svg,sha256=_H4JqLywJ-NxoPLqSqk9aGJcxEdZwtSFua1TuI9kIcM,436 -django/contrib/admin/static/admin/img/inline-delete.svg,sha256=Ni1z8eDYBOveVDqtoaGyEMWG5Mdnt9dniiuBWTlnr5Y,560 -django/contrib/admin/static/admin/img/search.svg,sha256=HgvLPNT7FfgYvmbt1Al1yhXgmzYHzMg8BuDLnU9qpMU,458 -django/contrib/admin/static/admin/img/selector-icons.svg,sha256=0RJyrulJ_UR9aYP7Wbvs5jYayBVhLoXR26zawNMZ0JQ,3291 -django/contrib/admin/static/admin/img/sorting-icons.svg,sha256=cCvcp4i3MAr-mo8LE_h8ZRu3LD7Ma9BtpK-p24O3lVA,1097 -django/contrib/admin/static/admin/img/tooltag-add.svg,sha256=fTZCouGMJC6Qq2xlqw_h9fFodVtLmDMrpmZacGVJYZQ,331 -django/contrib/admin/static/admin/img/tooltag-arrowright.svg,sha256=GIAqy_4Oor9cDMNC2fSaEGh-3gqScvqREaULnix3wHc,280 -django/contrib/admin/static/admin/js/SelectBox.js,sha256=b42sGVqaCDqlr0ibFiZus9FbrUweRcKD_y61HDAdQuc,4530 -django/contrib/admin/static/admin/js/SelectFilter2.js,sha256=Cd8WYWj7o1tM_2wduXAh5JAtrmdnGr-Viv1wOE2LKYQ,15292 -django/contrib/admin/static/admin/js/actions.js,sha256=90nO6o7754a2w8bNZOrS7EoEoh_MZEnIOJzJji1zTl8,7872 -django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js,sha256=ryJhtM9SN0fMdfnhV_m2Hv2pc6a9B0Zpc37ocZ82_-0,19319 -django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js,sha256=cj5TC29y-BkajwaDHejWZvHd_BHDAKJrmmMMtCSp6xI,8943 -django/contrib/admin/static/admin/js/autocomplete.js,sha256=OAqSTiHZnTWZzJKEvOm-Z1tdAlLjPWX9jKpYkmH0Ozo,1060 -django/contrib/admin/static/admin/js/calendar.js,sha256=vsYjQ4Nv6LPpqMVMhko8mnsv6U5EXkk5hOHhmkC5m7g,8466 -django/contrib/admin/static/admin/js/cancel.js,sha256=UEZdvvWu5s4ZH16lFfxa8UPgWXJ3i8VseK5Lcw2Kreg,884 -django/contrib/admin/static/admin/js/change_form.js,sha256=zOTeORCq1i9XXV_saSBBDOXbou5UtZvxYFpVPqxQ02Q,606 -django/contrib/admin/static/admin/js/collapse.js,sha256=UONBUueHwsm5SMlG0Ufp4mlqdgu7UGimU6psKzpxbuE,1803 -django/contrib/admin/static/admin/js/core.js,sha256=Y3tmCPjfUwvDPdoAcO1GgpRq33mij8260KPYC1JOUeU,5682 -django/contrib/admin/static/admin/js/filters.js,sha256=T-JlrqZEBSWbiFw_e5lxkMykkACWqWXd_wMy-b3TnaE,978 -django/contrib/admin/static/admin/js/inlines.js,sha256=yWB-KSw_aZmVZpIitKde7imygAa36LBdqoBfB7lTvJQ,15526 -django/contrib/admin/static/admin/js/jquery.init.js,sha256=uM_Kf7EOBMipcCmuQHbyubQkycleSWDCS8-c3WevFW0,347 -django/contrib/admin/static/admin/js/nav_sidebar.js,sha256=1xzV95R3GaqQ953sVmkLIuZJrzFNoDJMHBqwQePp6-Q,3063 -django/contrib/admin/static/admin/js/popup_response.js,sha256=H4ppG14jfrxB1XF5xZp5SS8PapYuYou5H7uwYjHd7eI,551 -django/contrib/admin/static/admin/js/prepopulate.js,sha256=UYkWrHNK1-OWp1a5IWZdg0udfo_dcR-jKSn5AlxxqgU,1531 -django/contrib/admin/static/admin/js/prepopulate_init.js,sha256=mJIPAgn8QHji_rSqO6WKNREbpkCILFrjRCCOQ1-9SoQ,586 -django/contrib/admin/static/admin/js/theme.js,sha256=zBii0JEYGHwG3PiyCjgLmJ3vSSUewb7SlPKzBoI7hQY,1943 -django/contrib/admin/static/admin/js/urlify.js,sha256=8oC4Bcxt8oJY4uy9O4NjPws5lXzDkdfwI2Xo3MxpBTo,7887 -django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt,sha256=1Nuevm8p9RaOrEWtcT8FViOsXQ3NW6ktoj1lCuASAg0,1097 -django/contrib/admin/static/admin/js/vendor/jquery/jquery.js,sha256=a9jBBRygX1Bh5lt8GZjXDzyOB-bWve9EiO7tROUtj_E,292458 -django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js,sha256=oP6HI9z1XaZNBrJURtCoUT5SUnxFr8s3BzRl-cbzUq8,89795 -django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md,sha256=TuDLxRNwr941hlKg-XeXIFNyntV4tqQvXioDfRFPCzk,1124 -django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js,sha256=IpI3uo19fo77jMtN5R3peoP0OriN-nQfPY2J4fufd8g,866 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js,sha256=zxQ3peSnbVIfrH1Ndjx4DrHDsmbpqu6mfeylVWFM5mY,905 -django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js,sha256=N_KU7ftojf2HgvJRlpP8KqG6hKIbqigYN3K0YH_ctuQ,721 -django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js,sha256=5Z6IlHmuk_6IdZdAVvdigXnlj7IOaKXtcjuI0n0FmYQ,968 -django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js,sha256=wdQbgaxZ47TyGlwvso7GOjpmTXUKaWzvVUr_oCRemEE,1291 -django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js,sha256=g56kWSu9Rxyh_rarLSDa_8nrdqL51JqZai4QQx20jwQ,965 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js,sha256=DSyyAXJUI0wTp_TbFhLNGrgvgRsGWeV3IafxYUGBggM,900 -django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js,sha256=t_8OWVi6Yy29Kabqs_l1sM2SSrjUAgZTwbTX_m0MCL8,1292 -django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js,sha256=tF2mvzFYSWYOU3Yktl3G93pCkf-V9gonCxk7hcA5J1o,828 -django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js,sha256=5bspfcihMp8yXDwfcqvC_nV3QTbtBuQDmR3c7UPQtFw,866 -django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js,sha256=KtP2xNoP75oWnobUrS7Ep_BOFPzcMNDt0wyPnkbIF_Q,1017 -django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js,sha256=IdvD8eY_KpX9fdHvld3OMvQfYsnaoJjDeVkgbIemfn8,1182 -django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js,sha256=C66AO-KOXNuXEWwhwfjYBFa3gGcIzsPFHQAZ9qSh3Go,844 -django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js,sha256=IhZaIy8ufTduO2-vBrivswMCjlPk7vrk4P81pD6B0SM,922 -django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js,sha256=LgLgdOkKjc63svxP1Ua7A0ze1L6Wrv0X6np-8iRD5zw,801 -django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js,sha256=rLmtP7bA_atkNIj81l_riTM7fi5CXxVrFBHFyddO-Hw,868 -django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js,sha256=fqZkE9e8tt2rZ7OrDGPiOsTNdj3S2r0CjbddVUBDeMA,1023 -django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js,sha256=KVGirhGGNee_iIpMGLX5EzH_UkNe-FOPC_0484G-QQ0,803 -django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js,sha256=aj0q2rdJN47BRBc9LqvsgxkuPOcWAbZsUFUlbguwdY0,924 -django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js,sha256=HSJafI85yKp4WzjFPT5_3eZ_-XQDYPzzf4BWmu6uXHk,924 -django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js,sha256=DIPRKHw0NkDuUtLNGdTnYZcoCiN3ustHY-UMmw34V_s,984 -django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js,sha256=m6ZqiKZ_jzwzVFgC8vkYiwy4lH5fJEMV-LTPVO2Wu40,1175 -django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js,sha256=NclTlDTiNFX1y0W1Llj10-ZIoXUYd7vDXqyeUJ7v3B4,852 -django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js,sha256=FTLszcrGaelTW66WV50u_rS6HV0SZxQ6Vhpi2tngC6M,1018 -django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js,sha256=3PdUk0SpHY-H-h62womw4AyyRMujlGc6_oxW-L1WyOs,831 -django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js,sha256=BLh0fntrwtwNwlQoiwLkdQOVyNXHdmRpL28p-W5FsDg,1028 -django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js,sha256=fGJ--Aw70Ppzk3EgLjF1V_QvqD2q_ufXjnQIIyZqYgc,768 -django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js,sha256=gn0ddIqTnJX4wk-tWC5gFORJs1dkgIH9MOwLljBuQK0,807 -django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js,sha256=kGxtapwhRFj3u_IhY_7zWZhKgR5CrZmmasT5w-aoXRM,897 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js,sha256=tZ4sqdx_SEcJbiW5-coHDV8FVmElJRA3Z822EFHkjLM,862 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js,sha256=DH6VrnVdR8SX6kso2tzqnJqs32uCpBNyvP9Kxs3ssjI,1195 -django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js,sha256=x9hyjennc1i0oeYrFUHQnYHakXpv7WD7MSF-c9AaTjg,1088 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js,sha256=ImmB9v7g2ZKEmPFUQeXrL723VEjbiEW3YelxeqHEgHc,855 -django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js,sha256=ZT-45ibVwdWnTyo-TqsqW2NjIp9zw4xs5So78KMb_s8,944 -django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js,sha256=hHpEK4eYSoJj_fvA2wl8QSuJluNxh-Tvp6UZm-ZYaeE,900 -django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js,sha256=PSpxrnBpL4SSs9Tb0qdWD7umUIyIoR2V1fpqRQvCXcA,1038 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js,sha256=NCz4RntkJZf8YDDC1TFBvK-nkn-D-cGNy7wohqqaQD4,811 -django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js,sha256=eduKCG76J3iIPrUekCDCq741rnG4xD7TU3E7Lib7sPE,778 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js,sha256=QQjDPQE6GDKXS5cxq2JRjk3MGDvjg3Izex71Zhonbj8,1357 -django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js,sha256=JctLfTpLQ5UFXtyAmgbCvSPUtW0fy1mE7oNYcMI90bI,904 -django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js,sha256=6gEuKYnJdf8cbPERsw-mtdcgdByUJuLf1QUH0aSajMo,947 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js,sha256=4J4sZtSavxr1vZdxmnub2J0H0qr1S8WnNsTehfdfq4M,1049 -django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js,sha256=0DFe1Hu9fEDSXgpjPOQrA6Eq0rGb15NRbsGh1U4vEr0,876 -django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js,sha256=L5jqz8zc5BF8ukrhpI2vvGrNR34X7482dckX-IUuUpA,878 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js,sha256=Aadb6LV0u2L2mCOgyX2cYZ6xI5sDT9OI3V7HwuueivM,938 -django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js,sha256=bV6emVCE9lY0LzbVN87WKAAAFLUT3kKqEzn641pJ29o,1171 -django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js,sha256=MnbUcP6pInuBzTW_L_wmXY8gPLGCOcKyzQHthFkImZo,1306 -django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js,sha256=LPIKwp9gp_WcUc4UaVt_cySlNL5_lmfZlt0bgtwnkFk,925 -django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js,sha256=oIxJLYLtK0vG2g3s5jsGLn4lHuDgSodxYAWL0ByHRHo,903 -django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js,sha256=BoT2KdiceZGgxhESRz3W2J_7CFYqWyZyov2YktUo_2w,1109 -django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js,sha256=7EELYXwb0tISsuvL6eorxzTviMK-oedSvZvEZCMloGU,980 -django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js,sha256=c6nqUmitKs4_6AlYDviCe6HqLyOHqot2IrvJRGjj1JE,786 -django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js,sha256=saDPLk-2dq5ftKCvW1wddkJOg-mXA-GUoPPVOlSZrIY,1074 -django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js,sha256=mUEGlb-9nQHvzcTYI-1kjsB7JsPRGpLxWbjrJ8URthU,771 -django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js,sha256=dDz8iSp07vbx9gciIqz56wmc2TLHj5v8o6es75vzmZU,775 -django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js,sha256=MixhFDvdRda-wj-TjrN018s7R7E34aQhRjz4baxrdKw,1156 -django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js,sha256=mwTeySsUAgqu_IA6hvFzMyhcSIM1zGhNYKq8G7X_tpM,796 -django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js,sha256=olAdvPQ5qsN9IZuxAKgDVQM-blexUnWTDTXUtiorygI,768 -django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js,sha256=DnDBG9ywBOfxVb2VXg71xBR_tECPAxw7QLhZOXiJ4fo,707 -django/contrib/admin/static/admin/js/vendor/select2/select2.full.js,sha256=ugZkER5OAEGzCwwb_4MvhBKE5Gvmc0S59MKn-dooZaI,173566 -django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js,sha256=XG_auAy4aieWldzMImofrFDiySK-pwJC7aoo9St7rS0,79212 -django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt,sha256=xnYLh4GL4QG4S1G_JWwF_AR18rY9KmrwD3kxq7PTZNw,1103 -django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js,sha256=rtvcVZex5zUbQQpBDEwPXetC28nAEksnAblw2Flt9tA,232381 -django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js,sha256=e2iDfG6V1sfGUB92i5yNqQamsMCc8An0SFzoo3vbylg,125266 -django/contrib/admin/templates/admin/404.html,sha256=zyawWu1I9IxDGBRsks6-DgtLUGDDYOKHfj9YQqPl0AA,282 -django/contrib/admin/templates/admin/500.html,sha256=rZNmFXr9POnc9TdZwD06qkY8h2W5K05vCyssrIzbZGE,551 -django/contrib/admin/templates/admin/actions.html,sha256=B2s3wWt4g_uhd7CZdmXp4ZGZlMfh6K9RAH4Bv6Ud9nQ,1235 -django/contrib/admin/templates/admin/app_index.html,sha256=7NPb0bdLKOdja7FoIERyRZRYK-ldX3PcxMoydguWfzc,493 -django/contrib/admin/templates/admin/app_list.html,sha256=ihZHIZLWNwtvmeDnsdXAVEo_mHNiM6X4CHA7y0I9YdA,1716 -django/contrib/admin/templates/admin/auth/user/add_form.html,sha256=5DL3UbNWW2rTvWrpMsxy5XcVNT6_uYv8DjDZZksiVKQ,320 -django/contrib/admin/templates/admin/auth/user/change_password.html,sha256=_sQMWSCS3oda_LfYfbyW1P7rpBk_TzgXMtbXXLfwRUQ,2515 -django/contrib/admin/templates/admin/base.html,sha256=-WP308L7iDhmeX8B2O4iqWGs85Uh7FYyQaqtyoQ2SlM,6110 -django/contrib/admin/templates/admin/base_site.html,sha256=bzQFd1IobilKqzFxhdGi4Ao5ScS9H6xSny_RyUw2-hE,448 -django/contrib/admin/templates/admin/change_form.html,sha256=_FF9GbP-uuzKDdrgjKh_qvRNyv3BBf81c_ddH7AUGEI,3019 -django/contrib/admin/templates/admin/change_form_object_tools.html,sha256=C0l0BJF2HuSjIvtY-Yr-ByZ9dePFRrTc-MR-OVJD-AI,403 -django/contrib/admin/templates/admin/change_list.html,sha256=O3Txt4wGY7mCrz_zgQSJD-FR4FFA9yUh-kgIzgJnygk,3290 -django/contrib/admin/templates/admin/change_list_object_tools.html,sha256=-AX0bYTxDsdLtEpAEK3RFpY89tdvVChMAWPYBLqPn48,378 -django/contrib/admin/templates/admin/change_list_results.html,sha256=yOpb1o-L5Ys9GiRA_nCXoFhIzREDVXLBuYzZk1xrx1w,1502 -django/contrib/admin/templates/admin/color_theme_toggle.html,sha256=owh9iJVw55HfqHEEaKUpeCxEIB4db8qFALv4fsbG0fI,697 -django/contrib/admin/templates/admin/date_hierarchy.html,sha256=Hug06L1uQzPQ-NAeixTtKRtDu2lAWh96o6f8ElnyU0c,453 -django/contrib/admin/templates/admin/delete_confirmation.html,sha256=3eMxQPSITd7Mae22TALXtCvJR4YMwfzNG_iAtuyF0PI,2539 -django/contrib/admin/templates/admin/delete_selected_confirmation.html,sha256=5yyaNqfiK1evhJ7px7gmMqjFwYrrMaKNDvQJ3-Lu4mo,2241 -django/contrib/admin/templates/admin/edit_inline/stacked.html,sha256=o717YOSXLWSvR-Oug7jH5uyqwjZFr9Bkuy9cC0Kx8gs,2580 -django/contrib/admin/templates/admin/edit_inline/tabular.html,sha256=DRI0asniH-EAilQH5rXQ0k-FcEYX5CHpQduhuMLOREI,4086 -django/contrib/admin/templates/admin/filter.html,sha256=cvjazGEln3BL_0iyz8Kcsend5WhT9y-gXKRN2kHqejU,395 -django/contrib/admin/templates/admin/includes/fieldset.html,sha256=-cuBaE0YHvMnrjkah4ZYt54sfmKTiyn3q8tQnjrAeCc,2200 -django/contrib/admin/templates/admin/includes/object_delete_summary.html,sha256=OC7VhKQiczmi01Gt_3jyemelerSNrGyDiWghUK6xKEI,192 -django/contrib/admin/templates/admin/index.html,sha256=6f59gm9sIIoI6yW5a23USqCE609i0DXF7W8-xie26jI,1849 -django/contrib/admin/templates/admin/invalid_setup.html,sha256=F5FS3o7S3l4idPrX29OKlM_azYmCRKzFdYjV_jpTqhE,447 -django/contrib/admin/templates/admin/login.html,sha256=ShZFbs_ITw6YoOBI_L6B-zekHJqjlR14h8WHIo-g5Ro,1899 -django/contrib/admin/templates/admin/nav_sidebar.html,sha256=OfI8XJn3_Q_Wf2ymc1IH61eTGZNMFwkkGwXXTDqeuP8,486 -django/contrib/admin/templates/admin/object_history.html,sha256=5e6ki7C94YKBoFyCvDOfqt4YzCyhNmNMy8NM4aKqiHc,2136 -django/contrib/admin/templates/admin/pagination.html,sha256=OBvC2HWFaH3wIuk6gzKSyCli51NTaW8vnJFyBOpNo_8,549 -django/contrib/admin/templates/admin/popup_response.html,sha256=Lj8dfQrg1XWdA-52uNtWJ9hwBI98Wt2spSMkO4YBjEk,327 -django/contrib/admin/templates/admin/prepopulated_fields_js.html,sha256=PShGpqQWBBVwQ86r7b-SimwJS0mxNiz8AObaiDOSfvY,209 -django/contrib/admin/templates/admin/search_form.html,sha256=X2IUueR-Qys1Sjy-5gSr41z1EjA2NKmIGINS9kEDdzQ,1257 -django/contrib/admin/templates/admin/submit_line.html,sha256=yI7XWZCjvY5JtDAvbzx8hpXZi4vRYWx0mty7Zt5uWjY,1093 -django/contrib/admin/templates/admin/widgets/clearable_file_input.html,sha256=NWjHNdkTZMAxU5HWXrOQCReeAO5A6PXBDRWO8S9gSGI,618 -django/contrib/admin/templates/admin/widgets/date.html,sha256=uJME8ir5DrcrWze9ikzlspoaCudQqxyMMGr6azIMkMc,71 -django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html,sha256=s5BiNQDbL9GcEVzYMwPfoYRFdnMiSeoyLKvyAzMqGnw,339 -django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html,sha256=w18JMKnPKrw6QyqIXBcdPs3YJlTRtHK5HGxj0lVkMlY,54 -django/contrib/admin/templates/admin/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 -django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html,sha256=yBjMl7QILpaIigtdrIhodKPVEWOyykjt1mrVierljI0,2096 -django/contrib/admin/templates/admin/widgets/split_datetime.html,sha256=BQ9XNv3eqtvNqZZGW38VBM2Nan-5PBxokbo2Fm_wwCQ,238 -django/contrib/admin/templates/admin/widgets/time.html,sha256=oiXCD1IvDhALK3w0fCrVc7wBOFMJhvPNTG2_NNz9H7A,71 -django/contrib/admin/templates/admin/widgets/url.html,sha256=Tf7PwdoKAiimfmDTVbWzRVxxUeyfhF0OlsuiOZ1tHgI,218 -django/contrib/admin/templates/registration/logged_out.html,sha256=PuviqzJh7C6SZJl9yKZXDcxxqXNCTDVfRuEpqvwJiPE,425 -django/contrib/admin/templates/registration/password_change_done.html,sha256=Ukca5IPY_VhtO3wfu9jABgY7SsbB3iIGp2KCSJqihlQ,745 -django/contrib/admin/templates/registration/password_change_form.html,sha256=vOyAdwDe7ajx0iFQR-dbWK7Q3bo6NVejWEFIoNlRYbQ,2428 -django/contrib/admin/templates/registration/password_reset_complete.html,sha256=_fc5bDeYBaI5fCUJZ0ZFpmOE2CUqlbk3npGk63uc_Ks,417 -django/contrib/admin/templates/registration/password_reset_confirm.html,sha256=liNee4VBImIVbKqG4llm597x925Eo2m746VnjoFe06s,1366 -django/contrib/admin/templates/registration/password_reset_done.html,sha256=SQsksjWN8vPLpvtFYPBFMMqZtLeiB4nesPq2VxpB3Y8,588 -django/contrib/admin/templates/registration/password_reset_email.html,sha256=rqaoGa900-rsUasaGYP2W9nBd6KOGZTyc1PsGTFozHo,612 -django/contrib/admin/templates/registration/password_reset_form.html,sha256=VkjUrp7hboZAAErAINl42vecYwORxOVG4SOmIJ8RF-E,869 -django/contrib/admin/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/admin/templatetags/__pycache__/__init__.cpython-312.pyc,, -django/contrib/admin/templatetags/__pycache__/admin_list.cpython-312.pyc,, -django/contrib/admin/templatetags/__pycache__/admin_modify.cpython-312.pyc,, -django/contrib/admin/templatetags/__pycache__/admin_urls.cpython-312.pyc,, -django/contrib/admin/templatetags/__pycache__/base.cpython-312.pyc,, -django/contrib/admin/templatetags/__pycache__/log.cpython-312.pyc,, -django/contrib/admin/templatetags/admin_list.py,sha256=oKnqZgQrUlMIeSDeEKKFVtLyuTzszpFgMfPTV1M2Ggk,18492 -django/contrib/admin/templatetags/admin_modify.py,sha256=DGE-YaZB1-bUqvjOwmnWJTrIRiR1qYdY6NyPDj1Hj3U,4978 -django/contrib/admin/templatetags/admin_urls.py,sha256=GaDOb10w0kPIPYNvlwEaAIqhKvLKpHQDqYBVpOQhXQU,1926 -django/contrib/admin/templatetags/base.py,sha256=SyI_Dwh5OvtdP0DaPNehpvjgZknlJmrucck5tF3eUHY,1474 -django/contrib/admin/templatetags/log.py,sha256=3MT5WKsac8S5H1J2kkM-gasYc9faF91b95TEt3y8E-k,2167 -django/contrib/admin/tests.py,sha256=jItB0bAMHtTkDmsPXmg8UZue09a5zGV_Ws2hYH_bL80,8524 -django/contrib/admin/utils.py,sha256=NuzszBwAwORX4MrJLwQnzdfE2zuViSYx51jE0K8A5GY,20469 -django/contrib/admin/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/admin/views/__pycache__/__init__.cpython-312.pyc,, -django/contrib/admin/views/__pycache__/autocomplete.cpython-312.pyc,, -django/contrib/admin/views/__pycache__/decorators.cpython-312.pyc,, -django/contrib/admin/views/__pycache__/main.cpython-312.pyc,, -django/contrib/admin/views/autocomplete.py,sha256=yDp5k-zICP16x-EXY_4ntPX3HewTzcPDLQWQlaHbYEs,4316 -django/contrib/admin/views/decorators.py,sha256=4ndYdYoPLhWsdutME0Lxsmcf6UFP5Z2ou3_pMjgNbw8,639 -django/contrib/admin/views/main.py,sha256=2y45kvfecNj_NEOWtFKs4BSIQkClE65Fb2Tz1PJTsFc,23813 -django/contrib/admin/widgets.py,sha256=RhcuHtc_5RVazHoKdnuCVK-SbaFREJj5vdY8lDzsNbQ,19395 -django/contrib/admindocs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/admindocs/__pycache__/__init__.cpython-312.pyc,, -django/contrib/admindocs/__pycache__/apps.cpython-312.pyc,, -django/contrib/admindocs/__pycache__/middleware.cpython-312.pyc,, -django/contrib/admindocs/__pycache__/urls.cpython-312.pyc,, -django/contrib/admindocs/__pycache__/utils.cpython-312.pyc,, -django/contrib/admindocs/__pycache__/views.cpython-312.pyc,, -django/contrib/admindocs/apps.py,sha256=bklhU4oaTSmPdr0QzpVeuNT6iG77QM1AgiKKZDX05t4,216 -django/contrib/admindocs/locale/af/LC_MESSAGES/django.mo,sha256=MrncgyILquCzFENxkWfJdzauVt6m3yPnQc1sDR4bCMg,2421 -django/contrib/admindocs/locale/af/LC_MESSAGES/django.po,sha256=yHYO9ZMBSGQLiSxd9PLzzNY7GT518wb7M-JAzTjSbw8,5392 -django/contrib/admindocs/locale/ar/LC_MESSAGES/django.mo,sha256=MwAJ0TMsgRN4wrwlhlw3gYCfZK5IKDzNPuvjfJS_Eug,7440 -django/contrib/admindocs/locale/ar/LC_MESSAGES/django.po,sha256=KSmZCjSEizBx5a6yN_u0FPqG5QoXsTV9gdJkqWC8xC8,8052 -django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=lW-fKcGwnRtdpJLfVw9i1HiM25TctVK0oA0bGV7yAzU,7465 -django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.po,sha256=c8LOJTCkHd1objwj6Xqh0wF3LwkLJvWg9FIWSWWMI-I,7985 -django/contrib/admindocs/locale/ast/LC_MESSAGES/django.mo,sha256=d4u-2zZXnnueWm9CLSnt4TRWgZk2NMlrA6gaytJ2gdU,715 -django/contrib/admindocs/locale/ast/LC_MESSAGES/django.po,sha256=TUkc-Hm4h1kD0NKyndteW97jH6bWcJMFXUuw2Bd62qo,4578 -django/contrib/admindocs/locale/az/LC_MESSAGES/django.mo,sha256=oDigGRWoeAjZ4Z2LOrRToycqKjwwV3pjGl1LmedJpwQ,1835 -django/contrib/admindocs/locale/az/LC_MESSAGES/django.po,sha256=MUqRjD4VeiTQluNvnpCbGfwdd8Lw_V_lrxeW-k9ytVQ,5100 -django/contrib/admindocs/locale/be/LC_MESSAGES/django.mo,sha256=VZl0yvgbo0jwQpf-s472jagbUj83A3twnxddQGwGW5c,8163 -django/contrib/admindocs/locale/be/LC_MESSAGES/django.po,sha256=Z8ZtS_t5Tc7iy1p4TTrsKZqiMJl94f1jiTWuv1sep3A,8728 -django/contrib/admindocs/locale/bg/LC_MESSAGES/django.mo,sha256=bNNoMFB0_P1qut4txQqHiXGxJa8-sjIZA8bb_jPaaHk,8242 -django/contrib/admindocs/locale/bg/LC_MESSAGES/django.po,sha256=nJMwR6R19pXmf4u6jBwe8Xn9fObSaAzulNeqsm8bszo,8989 -django/contrib/admindocs/locale/bn/LC_MESSAGES/django.mo,sha256=NOKVcE8id9G1OctSly4C5lm64CgEF8dohX-Pdyt4kCM,3794 -django/contrib/admindocs/locale/bn/LC_MESSAGES/django.po,sha256=6M7LjIEjvDTjyraxz70On_TIsgqJPLW7omQ0Fz_zyfQ,6266 -django/contrib/admindocs/locale/br/LC_MESSAGES/django.mo,sha256=UsPTado4ZNJM_arSMXyuBGsKN-bCHXQZdFbh0GB3dtg,1571 -django/contrib/admindocs/locale/br/LC_MESSAGES/django.po,sha256=SHOxPSgozJbOkm8u5LQJ9VmL58ZSBmlxfOVw1fAGl2s,5139 -django/contrib/admindocs/locale/bs/LC_MESSAGES/django.mo,sha256=clvhu0z3IF5Nt0tZ85hOt4M37pnGEWeIYumE20vLpsI,1730 -django/contrib/admindocs/locale/bs/LC_MESSAGES/django.po,sha256=1-OrVWFqLpeXQFfh7JNjJtvWjVww7iB2s96dcSgLy90,5042 -django/contrib/admindocs/locale/ca/LC_MESSAGES/django.mo,sha256=nI2ctIbZVrsaMbJQGIHQCjwqJNTnH3DKxwI2dWR6G_w,6650 -django/contrib/admindocs/locale/ca/LC_MESSAGES/django.po,sha256=hPjkw0bkoUu-yKU8XYE3ji0NG4z5cE1LGonYPJXeze4,7396 -django/contrib/admindocs/locale/ckb/LC_MESSAGES/django.mo,sha256=QisqerDkDuKrctJ10CspniXNDqBnCI2Wo-CKZUZtsCY,8154 -django/contrib/admindocs/locale/ckb/LC_MESSAGES/django.po,sha256=0adJyGnFg3qoD11s9gZbJlY8O0Dd1mpKF8OLQAkHZHE,8727 -django/contrib/admindocs/locale/cs/LC_MESSAGES/django.mo,sha256=dJ-3fDenE42f6XZFc-yrfWL1pEAmSGt2j1eWAyy-5OQ,6619 -django/contrib/admindocs/locale/cs/LC_MESSAGES/django.po,sha256=uU4n9PsiI96O0UpJzL-inVzB1Kx7OB_SbLkjrFLuyVA,7227 -django/contrib/admindocs/locale/cy/LC_MESSAGES/django.mo,sha256=sYeCCq0CMrFWjT6rKtmFrpC09OEFpYLSI3vu9WtpVTY,5401 -django/contrib/admindocs/locale/cy/LC_MESSAGES/django.po,sha256=GhdikiXtx8Aea459uifQtBjHuTlyUeiKu0_rR_mDKyg,6512 -django/contrib/admindocs/locale/da/LC_MESSAGES/django.mo,sha256=vmsIZeMIVpLkSdJNS0G6alAmBBEtLDBLnOd-P3dSOAs,6446 -django/contrib/admindocs/locale/da/LC_MESSAGES/django.po,sha256=bSoTGPcE7MdRfAtBybZT9jsuww2VDH9t5CssaxSs_GU,7148 -django/contrib/admindocs/locale/de/LC_MESSAGES/django.mo,sha256=ReSz0aH1TKT6AtP13lWoONnwNM2OGo4jK9fXJlo75Hc,6567 -django/contrib/admindocs/locale/de/LC_MESSAGES/django.po,sha256=tVkDIPF_wYb_KaJ7PF9cZyBJoYu6RpznoM9JIk3RYN4,7180 -django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.mo,sha256=K_QuInKk1HrrzQivwJcs_2lc1HreFj7_R7qQh3qMTPY,6807 -django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.po,sha256=flF1D0gfTScuC_RddC9njLe6RrnqnksiRxwODVA9Vqw,7332 -django/contrib/admindocs/locale/el/LC_MESSAGES/django.mo,sha256=1x0sTZwWbGEURyRaSn4ONvTPXHwm7XemNlcun9Nm1QI,8581 -django/contrib/admindocs/locale/el/LC_MESSAGES/django.po,sha256=GebfJfW0QPzAQyBKz1Km9a3saCpAWT7d_Qe2nCBvGn4,9320 -django/contrib/admindocs/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/admindocs/locale/en/LC_MESSAGES/django.po,sha256=pEypE71l-Ude2e3XVf0tkBpGx6BSYNqBagWnSYmEbxI,10688 -django/contrib/admindocs/locale/en_AU/LC_MESSAGES/django.mo,sha256=BQ54LF9Tx88m-pG_QVz_nm_vqvoy6pVJzL8urSO4l1Q,486 -django/contrib/admindocs/locale/en_AU/LC_MESSAGES/django.po,sha256=ho7s1uKEs9FGooyZBurvSjvFz1gDSX6R4G2ZKpF1c9Q,5070 -django/contrib/admindocs/locale/en_GB/LC_MESSAGES/django.mo,sha256=xKGbswq1kuWCbn4zCgUQUb58fEGlICIOr00oSdCgtU4,1821 -django/contrib/admindocs/locale/en_GB/LC_MESSAGES/django.po,sha256=No09XHkzYVFBgZqo7bPlJk6QD9heE0oaI3JmnrU_p24,4992 -django/contrib/admindocs/locale/eo/LC_MESSAGES/django.mo,sha256=114OOVg9hP0H0UU2aQngCm0wE7zEEAp7QFMupOuWCfQ,6071 -django/contrib/admindocs/locale/eo/LC_MESSAGES/django.po,sha256=h8P3lmvBaJ8J2xiytReJvI8iGK0gCe-LPK27kWxSNKI,6799 -django/contrib/admindocs/locale/es/LC_MESSAGES/django.mo,sha256=wVt9I5M6DGKZFhPhYuS2yKRGVzSROthx98TFiJvJA80,6682 -django/contrib/admindocs/locale/es/LC_MESSAGES/django.po,sha256=F72OFWbIZXvopNMzy7eIibNKc5EM0jsYgbN4PobD6tc,7602 -django/contrib/admindocs/locale/es_AR/LC_MESSAGES/django.mo,sha256=mZ7OKAmlj2_FOabKsEiWycxiKLSLCPFldponKNxINjs,6658 -django/contrib/admindocs/locale/es_AR/LC_MESSAGES/django.po,sha256=deaOq0YMCb1B1PHWYUbgUrQsyXFutn4wQ2BAXiyzugA,7257 -django/contrib/admindocs/locale/es_CO/LC_MESSAGES/django.mo,sha256=KFjQyWtSxH_kTdSJ-kNUDAFt3qVZI_3Tlpg2pdkvJfs,6476 -django/contrib/admindocs/locale/es_CO/LC_MESSAGES/django.po,sha256=dwrTVjYmueLiVPu2yiJ_fkFF8ZeRntABoVND5H2WIRI,7038 -django/contrib/admindocs/locale/es_MX/LC_MESSAGES/django.mo,sha256=3hZiFFVO8J9cC624LUt4lBweqmpgdksRtvt2TLq5Jqs,1853 -django/contrib/admindocs/locale/es_MX/LC_MESSAGES/django.po,sha256=gNmx1QTbmyMxP3ftGXGWJH_sVGThiSe_VNKkd7M9jOY,5043 -django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.mo,sha256=sMwJ7t5GqPF496w-PvBYUneZ9uSwmi5jP-sWulhc6BM,6663 -django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.po,sha256=ZOcE0f95Q6uD9SelK6bQlKtS2c3JX9QxNYCihPdlM5o,7201 -django/contrib/admindocs/locale/et/LC_MESSAGES/django.mo,sha256=JQHVKehV0sxNaBQRqbsN-Of22CMV70bQ9TUId3QDudY,6381 -django/contrib/admindocs/locale/et/LC_MESSAGES/django.po,sha256=qrS3cPEy16hEi1857jvqsmr9zHF9_AkkJUw4mKimg98,7096 -django/contrib/admindocs/locale/eu/LC_MESSAGES/django.mo,sha256=WHgK7vGaqjO4MwjBkWz2Y3ABPXCqfnwSGelazRhOiuo,6479 -django/contrib/admindocs/locale/eu/LC_MESSAGES/django.po,sha256=718XgJN7UQcHgE9ku0VyFp7Frs-cvmCTO1o-xS5kpqc,7099 -django/contrib/admindocs/locale/fa/LC_MESSAGES/django.mo,sha256=Qrkrb_CHPGymnXBoBq5oeTs4W54R6nLz5hLIWH63EHM,7499 -django/contrib/admindocs/locale/fa/LC_MESSAGES/django.po,sha256=L-rxiKqUmlQgrPTLQRaS50woZWB9JuEamJpgDpLvIXw,8251 -django/contrib/admindocs/locale/fi/LC_MESSAGES/django.mo,sha256=SzuPvgeiaBwABvkJbOoTHsbP7juAuyyMWAjENr50gYk,6397 -django/contrib/admindocs/locale/fi/LC_MESSAGES/django.po,sha256=jn4ZMVQ_Gh6I-YLSmBhlyTn5ICP5o3oj7u0VKpV2hnI,6972 -django/contrib/admindocs/locale/fr/LC_MESSAGES/django.mo,sha256=dD92eLXIDeI-a_BrxX1G49qRwLS4Vt56bTP9cha5MeE,6755 -django/contrib/admindocs/locale/fr/LC_MESSAGES/django.po,sha256=hiUeHTul4Z3JWmkClGZmD5Xn4a1Tj1A5OLRfKU5Zdmo,7329 -django/contrib/admindocs/locale/fy/LC_MESSAGES/django.mo,sha256=_xVO-FkPPoTla_R0CzktpRuafD9fuIP_G5N-Q08PxNg,476 -django/contrib/admindocs/locale/fy/LC_MESSAGES/django.po,sha256=b3CRH9bSUl_jjb9s51RlvFXp3bmsmuxTfN_MTmIIVNA,5060 -django/contrib/admindocs/locale/ga/LC_MESSAGES/django.mo,sha256=PkY5sLKd7gEIE2IkuuNJXP5RmjC-D4OODRv6KCCUDX8,1940 -django/contrib/admindocs/locale/ga/LC_MESSAGES/django.po,sha256=-l6VME96KR1KKNACVu7oHzlhCrnkC1PaJQyskOUqOvk,5211 -django/contrib/admindocs/locale/gd/LC_MESSAGES/django.mo,sha256=k5-Ov9BkwYHZ_IvIxQdHKVBdOUN7kWGft1l7w5Scd5o,6941 -django/contrib/admindocs/locale/gd/LC_MESSAGES/django.po,sha256=FyvfRNkSrEZo8x1didB6nFHYD54lZfKSoAGcwJ2wLso,7478 -django/contrib/admindocs/locale/gl/LC_MESSAGES/django.mo,sha256=15OYKk17Dlz74RReFrCHP3eHmaxP8VeRE2ylDOeUY8w,6564 -django/contrib/admindocs/locale/gl/LC_MESSAGES/django.po,sha256=mvQmxR4LwDLbCWyIU-xmJEw6oeSY3KFWC1nqnbnuDyc,7197 -django/contrib/admindocs/locale/he/LC_MESSAGES/django.mo,sha256=mJKr2rC_1OWQpRaRCecnz01YDEu5APFhJHqRHgGQxXA,6743 -django/contrib/admindocs/locale/he/LC_MESSAGES/django.po,sha256=sYlIetORzAXaKk7DAhr-6J0TGucV7RsOftT9Zilz6yE,7427 -django/contrib/admindocs/locale/hi/LC_MESSAGES/django.mo,sha256=sZhObIxqrmFu5Y-ZOQC0JGM3ly4IVFr02yqOOOHnDag,2297 -django/contrib/admindocs/locale/hi/LC_MESSAGES/django.po,sha256=X6UfEc6q0BeaxVP_C4priFt8irhh-YGOUUzNQyVnEYY,5506 -django/contrib/admindocs/locale/hr/LC_MESSAGES/django.mo,sha256=fMsayjODNoCdbpBAk9GHtIUaGJGFz4sD9qYrguj-BQA,2550 -django/contrib/admindocs/locale/hr/LC_MESSAGES/django.po,sha256=qi2IB-fBkGovlEz2JAQRUNE54MDdf5gjNJWXM-dIG1s,5403 -django/contrib/admindocs/locale/hsb/LC_MESSAGES/django.mo,sha256=4CbZ95VHJUg3UNt-FdzPtUtHJLralgnhadz-evigiFA,6770 -django/contrib/admindocs/locale/hsb/LC_MESSAGES/django.po,sha256=ty8zWmqY160ZpSbt1-_2iY2M4RIL7ksh5-ggQGc_TO8,7298 -django/contrib/admindocs/locale/hu/LC_MESSAGES/django.mo,sha256=ATEt9wE2VNQO_NMcwepgxpS7mYXdVD5OySFFPWpnBUA,6634 -django/contrib/admindocs/locale/hu/LC_MESSAGES/django.po,sha256=3XKQrlonyLXXpU8xeS1OLXcKmmE2hiBoMJN-QZ3k82g,7270 -django/contrib/admindocs/locale/ia/LC_MESSAGES/django.mo,sha256=KklX2loobVtA6PqHOZHwF1_A9YeVGlqORinHW09iupI,1860 -django/contrib/admindocs/locale/ia/LC_MESSAGES/django.po,sha256=Z7btOCeARREgdH4CIJlVob_f89r2M9j55IDtTLtgWJU,5028 -django/contrib/admindocs/locale/id/LC_MESSAGES/django.mo,sha256=2HZrdwFeJV4Xk2HIKsxp_rDyBrmxCuRb92HtFtW8MxE,6343 -django/contrib/admindocs/locale/id/LC_MESSAGES/django.po,sha256=O01yt7iDXvEwkebUxUlk-vCrLR26ebuqI51x64uqFl4,7041 -django/contrib/admindocs/locale/io/LC_MESSAGES/django.mo,sha256=5t9Vurrh6hGqKohwsZIoveGeYCsUvRBRMz9M7k9XYY8,464 -django/contrib/admindocs/locale/io/LC_MESSAGES/django.po,sha256=SVZZEmaS1WbXFRlLLGg5bzUe09pXR23TeJtHUbhyl0w,5048 -django/contrib/admindocs/locale/is/LC_MESSAGES/django.mo,sha256=pEr-_MJi4D-WpNyFaQe3tVKVLq_9V-a4eIF18B3Qyko,1828 -django/contrib/admindocs/locale/is/LC_MESSAGES/django.po,sha256=-mD5fFnL6xUqeW4MITzm8Lvx6KXq4C9DGsEM9kDluZ8,5045 -django/contrib/admindocs/locale/it/LC_MESSAGES/django.mo,sha256=AzCkkJ8x-V38XSOdOG2kMSUujcn0mD8TIvdAeNT6Qcw,6453 -django/contrib/admindocs/locale/it/LC_MESSAGES/django.po,sha256=SUsGtCKkCVoj5jaM6z_-JQR8kv8W4Wv_OE26hpOb96s,7171 -django/contrib/admindocs/locale/ja/LC_MESSAGES/django.mo,sha256=KoPwCbH9VlKoP_7zTEjOzPsHZ7jVWl2grQRckQmshw4,7358 -django/contrib/admindocs/locale/ja/LC_MESSAGES/django.po,sha256=6ZTqM2qfBS_j5aLH52yJPYW4e4X5MqiQFdqV1fmEQGg,8047 -django/contrib/admindocs/locale/ka/LC_MESSAGES/django.mo,sha256=w2cHLI1O3pVt43H-h71cnNcjNNvDC8y9uMYxZ_XDBtg,4446 -django/contrib/admindocs/locale/ka/LC_MESSAGES/django.po,sha256=omKVSzNA3evF5Mk_Ud6utHql-Do7s9xDzCVQGQA0pSg,6800 -django/contrib/admindocs/locale/kab/LC_MESSAGES/django.mo,sha256=XTuWnZOdXhCFXEW4Hp0zFtUtAF0wJHaFpQqoDUTWYGw,1289 -django/contrib/admindocs/locale/kab/LC_MESSAGES/django.po,sha256=lQWewMZncWUvGhpkgU_rtwWHcgAyvhIkrDfjFu1l-d8,4716 -django/contrib/admindocs/locale/kk/LC_MESSAGES/django.mo,sha256=mmhLzn9lo4ff_LmlIW3zZuhE77LoSUfpaMMMi3oyi38,1587 -django/contrib/admindocs/locale/kk/LC_MESSAGES/django.po,sha256=72sxLw-QDSFnsH8kuzeQcV5jx7Hf1xisBmxI8XqSCYw,5090 -django/contrib/admindocs/locale/km/LC_MESSAGES/django.mo,sha256=Fff1K0qzialXE_tLiGM_iO5kh8eAmQhPZ0h-eB9iNOU,1476 -django/contrib/admindocs/locale/km/LC_MESSAGES/django.po,sha256=E_CaaYc4GqOPgPh2t7iuo0Uf4HSQQFWAoxSOCG-uEGU,4998 -django/contrib/admindocs/locale/kn/LC_MESSAGES/django.mo,sha256=lisxE1zzW-Spdm7hIzXxDAfS7bM-RdrAG_mQVwz9WMU,1656 -django/contrib/admindocs/locale/kn/LC_MESSAGES/django.po,sha256=u6JnB-mYoYWvLl-2pzKNfeNlT1s6A2I3lRi947R_0yA,5184 -django/contrib/admindocs/locale/ko/LC_MESSAGES/django.mo,sha256=nVBVLfXUlGQCeF2foSQ2kksBmR3KbweXdbD6Kyq-PrU,6563 -django/contrib/admindocs/locale/ko/LC_MESSAGES/django.po,sha256=y2YjuXM3p0haXrGpxRtm6I84o75TQaMeT4xbHCg7zOM,7342 -django/contrib/admindocs/locale/ky/LC_MESSAGES/django.mo,sha256=HEJo4CLoIOWpK-MPcTqLhbNMA8Mt3totYN1YbJ_SNn4,7977 -django/contrib/admindocs/locale/ky/LC_MESSAGES/django.po,sha256=VaSXjz8Qlr2EI8f12gtziN7yA7IWsaVoEzL3G6dERXs,8553 -django/contrib/admindocs/locale/lb/LC_MESSAGES/django.mo,sha256=N0hKFuAdDIq5clRKZirGh4_YDLsxi1PSX3DVe_CZe4k,474 -django/contrib/admindocs/locale/lb/LC_MESSAGES/django.po,sha256=B46-wRHMKUMcbvMCdojOCxqIVL5qVEh4Czo20Qgz6oU,5058 -django/contrib/admindocs/locale/lt/LC_MESSAGES/django.mo,sha256=KOnpaVeomKJIHcVLrkeRVnaqQHzFdYM_wXZbbqxWs4g,6741 -django/contrib/admindocs/locale/lt/LC_MESSAGES/django.po,sha256=-uzCS8193VCZPyhO8VOi11HijtBG9CWVKStFBZSXfI4,7444 -django/contrib/admindocs/locale/lv/LC_MESSAGES/django.mo,sha256=5PAE_peuqlRcc45pm6RsSqnBpG-o8OZpfdt2aasYM2w,6449 -django/contrib/admindocs/locale/lv/LC_MESSAGES/django.po,sha256=_mFvAQT1ZVBuDhnWgKY3bVQUWA8DoEf-HFAEsMfkGuU,7085 -django/contrib/admindocs/locale/mk/LC_MESSAGES/django.mo,sha256=8H9IpRASM7O2-Ql1doVgM9c4ybZ2KcfnJr12PpprgP4,8290 -django/contrib/admindocs/locale/mk/LC_MESSAGES/django.po,sha256=Uew7tEljjgmslgfYJOP9JF9ELp6NbhkZG_v50CZgBg8,8929 -django/contrib/admindocs/locale/ml/LC_MESSAGES/django.mo,sha256=bm4tYwcaT8XyPcEW1PNZUqHJIds9CAq3qX_T1-iD4k4,6865 -django/contrib/admindocs/locale/ml/LC_MESSAGES/django.po,sha256=yNINX5M7JMTbYnFqQGetKGIXqOjGJtbN2DmIW9BKQ_c,8811 -django/contrib/admindocs/locale/mn/LC_MESSAGES/django.mo,sha256=KqdcvSpqmjRfA8M4nGB9Cnu9Auj4pTu9aH07XtCep3I,7607 -django/contrib/admindocs/locale/mn/LC_MESSAGES/django.po,sha256=PGhlnzDKyAIRzaPCbNujpxSpf_JaOG66LK_NMlnZy6I,8316 -django/contrib/admindocs/locale/mr/LC_MESSAGES/django.mo,sha256=LDGC7YRyVBU50W-iH0MuESunlRXrNfNjwjXRCBdfFVg,468 -django/contrib/admindocs/locale/mr/LC_MESSAGES/django.po,sha256=5cUgPltXyS2Z0kIKF5ER8f5DuBhwmAINJQyfHj652d0,5052 -django/contrib/admindocs/locale/ms/LC_MESSAGES/django.mo,sha256=vgoSQlIQeFWaVfJv3YK9_0FOywWwxLhWGICKBdxcqJY,6557 -django/contrib/admindocs/locale/ms/LC_MESSAGES/django.po,sha256=Qy_NjgqwEwLGk4oaHB4Np3dVbPeCK2URdI73S73IZLE,7044 -django/contrib/admindocs/locale/my/LC_MESSAGES/django.mo,sha256=AsdUmou0FjCiML3QOeXMdbHiaSt2GdGMcEKRJFonLOQ,1721 -django/contrib/admindocs/locale/my/LC_MESSAGES/django.po,sha256=c75V-PprKrWzgrHbfrZOpm00U_zZRzxAUr2U_j8MF4w,5189 -django/contrib/admindocs/locale/nb/LC_MESSAGES/django.mo,sha256=qlzN0-deW2xekojbHi2w6mYKeBe1Cf1nm8Z5FVrmYtA,6308 -django/contrib/admindocs/locale/nb/LC_MESSAGES/django.po,sha256=a60vtwHJXhjbRAtUIlO0w3XfQcQ0ljwmwFG3WbQ7PNo,6875 -django/contrib/admindocs/locale/ne/LC_MESSAGES/django.mo,sha256=fWPAUZOX9qrDIxGhVVouJCVDWEQLybZ129wGYymuS-c,2571 -django/contrib/admindocs/locale/ne/LC_MESSAGES/django.po,sha256=wb8pCm141YfGSHVW84FnAvsKt5KnKvzNyzGcPr-Wots,5802 -django/contrib/admindocs/locale/nl/LC_MESSAGES/django.mo,sha256=1-s_SdVm3kci2yLQhv1q6kt7zF5EdbaneGAr6PJ7dQU,6498 -django/contrib/admindocs/locale/nl/LC_MESSAGES/django.po,sha256=7s4RysNYRSisywqqZOrRR0il530jRlbEFP3kr4Hq2PA,7277 -django/contrib/admindocs/locale/nn/LC_MESSAGES/django.mo,sha256=tIOU1WrHkAfxD6JBpdakiMi6pVzzvIg0jun6gii-D08,6299 -django/contrib/admindocs/locale/nn/LC_MESSAGES/django.po,sha256=oekYY3xjjM2sPnHv_ZXxAti1ySPF-HxLrvLLk7Izibk,6824 -django/contrib/admindocs/locale/os/LC_MESSAGES/django.mo,sha256=zSQBgSj4jSu5Km0itNgDtbkb1SbxzRvQeZ5M9sXHI8k,2044 -django/contrib/admindocs/locale/os/LC_MESSAGES/django.po,sha256=hZlMmmqfbGmoiElGbJg7Fp791ZuOpRFrSu09xBXt6z4,5215 -django/contrib/admindocs/locale/pa/LC_MESSAGES/django.mo,sha256=yFeO0eZIksXeDhAl3CrnkL1CF7PHz1PII2kIxGA0opQ,1275 -django/contrib/admindocs/locale/pa/LC_MESSAGES/django.po,sha256=DA5LFFLOXHIJIqrrnj9k_rqL-wr63RYX_i-IJFhBuc0,4900 -django/contrib/admindocs/locale/pl/LC_MESSAGES/django.mo,sha256=DHxRNP6YK8qocDqSd2DZg7n-wPp2hJSbjNBLFti7U8o,6633 -django/contrib/admindocs/locale/pl/LC_MESSAGES/django.po,sha256=mRjleE2-9r9TfseHWeyjvRwzBZP_t2LMvihq8n_baU8,7575 -django/contrib/admindocs/locale/pt/LC_MESSAGES/django.mo,sha256=WcXhSlbGdJgVMvydkPYYee7iOQ9SYdrLkquzgIBhVWU,6566 -django/contrib/admindocs/locale/pt/LC_MESSAGES/django.po,sha256=J98Hxa-ApyzRevBwcAldK9bRYbkn5DFw3Z5P7SMEwx0,7191 -django/contrib/admindocs/locale/pt_BR/LC_MESSAGES/django.mo,sha256=L8t589rbg4vs4HArLpgburmMufZ6BTuwxxkv1QUetBA,6590 -django/contrib/admindocs/locale/pt_BR/LC_MESSAGES/django.po,sha256=EG4xELZ8emUIWB78cw8gFeiqTiN9UdAuEaXHyPyNtIE,7538 -django/contrib/admindocs/locale/ro/LC_MESSAGES/django.mo,sha256=9K8Sapn6sOg1wtt2mxn7u0cnqPjEHH70qjwM-XMPzNA,6755 -django/contrib/admindocs/locale/ro/LC_MESSAGES/django.po,sha256=b4AsPjWBYHQeThAtLP_TH4pJitwidtoPNkJ7dowUuRg,7476 -django/contrib/admindocs/locale/ru/LC_MESSAGES/django.mo,sha256=9pIPv2D0rq29vrBNWZENM_SOdNpaPidxmgT20hWtBis,8434 -django/contrib/admindocs/locale/ru/LC_MESSAGES/django.po,sha256=BTlxkS4C0DdfC9QJCegXwi5ejfG9pMsAdfy6UJzec3s,9175 -django/contrib/admindocs/locale/sk/LC_MESSAGES/django.mo,sha256=GtiqSwQxKsrC-HBexRMuV3qQhZa8vJeukTpeJdXxsz4,6639 -django/contrib/admindocs/locale/sk/LC_MESSAGES/django.po,sha256=45J2eddF99_xWbWUoUgQ5NrawMYNreUWpeyXHF6KjsI,7339 -django/contrib/admindocs/locale/sl/LC_MESSAGES/django.mo,sha256=FMg_s9ZpeRD42OsSF9bpe8pRQ7wP7-a9WWnaVliqXpU,6508 -django/contrib/admindocs/locale/sl/LC_MESSAGES/django.po,sha256=JWO_WZAwBpXw-4FoB7rkWXGhi9aEVq1tH2fOC69rcgg,7105 -django/contrib/admindocs/locale/sq/LC_MESSAGES/django.mo,sha256=XvNDzCc3-Hh5Pz7SHhG8zCT_3dtqGzBLkDqhim4jJpc,6551 -django/contrib/admindocs/locale/sq/LC_MESSAGES/django.po,sha256=0GZvLpxbuYln7GrTsFyzgjIleSw6Z9IRSPgAWWdx6Eo,7165 -django/contrib/admindocs/locale/sr/LC_MESSAGES/django.mo,sha256=PyE8DXRYELzSs4RWh1jeADXOPrDEN3k-nLr8sbM1Ssw,3672 -django/contrib/admindocs/locale/sr/LC_MESSAGES/django.po,sha256=ri7v9WHXORY-3Dl-YDKGsCFfQzH-a5y8t1vT6yziIyo,6108 -django/contrib/admindocs/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=au90IT43VR162L2jEsYqhRpso2dvOjpCPSCFiglokTc,1932 -django/contrib/admindocs/locale/sr_Latn/LC_MESSAGES/django.po,sha256=tJ4tHLJj0tDaVZba3WIkI0kg95_jEYWTmqXD0rFb6T8,5140 -django/contrib/admindocs/locale/sv/LC_MESSAGES/django.mo,sha256=5i9qxo9V7TghSIpKCOw5PpITYYHMP-0NhFivwc-w0yw,6394 -django/contrib/admindocs/locale/sv/LC_MESSAGES/django.po,sha256=WhABV5B-rhBly6ueJPOMsIBjSiw7i1yCZUQsXWE_jV4,7137 -django/contrib/admindocs/locale/sw/LC_MESSAGES/django.mo,sha256=pyJfGL7UdPrJAVlCB3YimXxTjTfEkoZQWX-CSpDkcWc,1808 -django/contrib/admindocs/locale/sw/LC_MESSAGES/django.po,sha256=SIywrLX1UGx4OiPxoxUYelmQ1YaY2LMa3dxynGQpHp8,4929 -django/contrib/admindocs/locale/ta/LC_MESSAGES/django.mo,sha256=8SjQ9eGGyaZGhkuDoZTdtYKuqcVyEtWrJuSabvNRUVM,1675 -django/contrib/admindocs/locale/ta/LC_MESSAGES/django.po,sha256=k593yzVqpSQOsdpuF-rdsSLwKQU8S_QFMRpZXww__1A,5194 -django/contrib/admindocs/locale/te/LC_MESSAGES/django.mo,sha256=eAzNpYRy_G1erCcKDAMnJC4809ITRHvJjO3vpyAC_mk,1684 -django/contrib/admindocs/locale/te/LC_MESSAGES/django.po,sha256=oDg_J8JxepFKIe5m6lDKVC4YWQ_gDLibgNyQ3508VOM,5204 -django/contrib/admindocs/locale/tg/LC_MESSAGES/django.mo,sha256=jSMmwS6F_ChDAZDyTZxRa3YuxkXWlO-M16osP2NLRc0,7731 -django/contrib/admindocs/locale/tg/LC_MESSAGES/django.po,sha256=mewOHgRsFydk0d5IY3jy3rOWa6uHdatlSIvFNZFONsc,8441 -django/contrib/admindocs/locale/th/LC_MESSAGES/django.mo,sha256=bHK49r45Q1nX4qv0a0jtDja9swKbDHHJVLa3gM13Cb4,2167 -django/contrib/admindocs/locale/th/LC_MESSAGES/django.po,sha256=_GMgPrD8Zs0lPKQOMlBmVu1I59yXSV42kfkrHzeiehY,5372 -django/contrib/admindocs/locale/tr/LC_MESSAGES/django.mo,sha256=L1iBsNGqqfdNkZZmvnnBB-HxogAgngwhanY1FYefveE,6661 -django/contrib/admindocs/locale/tr/LC_MESSAGES/django.po,sha256=D4vmznsY4icyKLXQUgAL4WZL5TOUZYVUSCJ4cvZuFg8,7311 -django/contrib/admindocs/locale/tt/LC_MESSAGES/django.mo,sha256=pQmAQOPbrBVzBqtoQ0dsFWFwC6LxA5mQZ9QPqL6pSFw,1869 -django/contrib/admindocs/locale/tt/LC_MESSAGES/django.po,sha256=NCLv7sSwvEficUOSoMJlHGqjgjYvrvm2V3j1Gkviw80,5181 -django/contrib/admindocs/locale/udm/LC_MESSAGES/django.mo,sha256=hwDLYgadsKrQEPi9HiuMWF6jiiYUSy4y-7PVNJMaNpY,618 -django/contrib/admindocs/locale/udm/LC_MESSAGES/django.po,sha256=29fpfn4p8KxxrBdg4QB0GW_l8genZVV0kYi50zO-qKs,5099 -django/contrib/admindocs/locale/uk/LC_MESSAGES/django.mo,sha256=G-3yCDj2jK7ZTu80YXGJ_ZR1E7FejbLxTFe866G4Pr0,8468 -django/contrib/admindocs/locale/uk/LC_MESSAGES/django.po,sha256=bbWzP-gpbslzbTBc_AO7WBNmtr3CkLOwkSJHI0Z_dTA,9330 -django/contrib/admindocs/locale/ur/LC_MESSAGES/django.mo,sha256=VNg9o_7M0Z2LC0n3_-iwF3zYmncRJHaFqqpxuPmMq84,1836 -django/contrib/admindocs/locale/ur/LC_MESSAGES/django.po,sha256=QTg85c4Z13hMN_PnhjaLX3wx6TU4SH4hPTzNBfNVaMU,5148 -django/contrib/admindocs/locale/vi/LC_MESSAGES/django.mo,sha256=F6dyo00yeyUND_w1Ocm9SL_MUdXb60QQpmAQPto53IU,1306 -django/contrib/admindocs/locale/vi/LC_MESSAGES/django.po,sha256=JrVKjT848Y1cS4tpH-eRivFNwM-cUs886UEhY2FkTPw,4836 -django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=ngPlxN85wGOMKoo3OK3wUQeikoaxPKqAIsgw2_0ovN4,6075 -django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.po,sha256=TNdJGJCAi0OijBN6w23SwKieZqNqkgNt2qdlPfY-r20,6823 -django/contrib/admindocs/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=7c2QywaTzF_GX8T2PUknQ_PN5s0Cx37_cO-walIg8mk,4725 -django/contrib/admindocs/locale/zh_Hant/LC_MESSAGES/django.po,sha256=uX-3zu8RQdntg__qYBweKtcuBgLsXPUYApf4bQx9eSU,6153 -django/contrib/admindocs/middleware.py,sha256=owqLbigBtxKmhPQmz767KOAkN3nKRIJrwZAUuHRIAQM,1329 -django/contrib/admindocs/templates/admin_doc/bookmarklets.html,sha256=PnfojSYh6lJA03UPjWbvxci64CNPQmrhJhycdyqlT5U,1281 -django/contrib/admindocs/templates/admin_doc/index.html,sha256=o710lPn-AHBJfKSUS6x1eUjAOZYRO9dbnuq_Cg7HEiY,1369 -django/contrib/admindocs/templates/admin_doc/missing_docutils.html,sha256=f8CcVOHCgUmbG_V56rVLV1tttQYPdkcxAHY_IWiMPK4,786 -django/contrib/admindocs/templates/admin_doc/model_detail.html,sha256=0O5-Kxf8RNyZ_slYJ1kq26HmKoarGMkf0S27fqhrFYE,1880 -django/contrib/admindocs/templates/admin_doc/model_index.html,sha256=7fgybgDWYcWZaDPgf25DxFkdxtnrqnpLem7iVmPQmLk,1346 -django/contrib/admindocs/templates/admin_doc/template_detail.html,sha256=C_shsOpJiW0Rngv8ZSXi12dgoepUUCqU3dPdaq9Bmio,1049 -django/contrib/admindocs/templates/admin_doc/template_filter_index.html,sha256=U2HBVHXtgCqUp9hLuOMVqCxBbXyYMMgAORG8fziN7uc,1775 -django/contrib/admindocs/templates/admin_doc/template_tag_index.html,sha256=S4U-G05yi1YIlFEv-HG20bDiq4rhdiZCgebhVBzNzdY,1731 -django/contrib/admindocs/templates/admin_doc/view_detail.html,sha256=u2rjpM0cLlHxSY-Na7wxqnv76zaGf0P1FgdnHl9XqdQ,928 -django/contrib/admindocs/templates/admin_doc/view_index.html,sha256=ZLfmxMkVlPYETRFnjLmU3bagve4ZvY1Xzsya1Lntgkw,1734 -django/contrib/admindocs/urls.py,sha256=zUZG14KLznM6CVtoxnCsJEa7TRwKRN44XLNAp9EgUy8,1310 -django/contrib/admindocs/utils.py,sha256=38lwFUI08_m5OK6d-EUzp90qxysM9Da7lAn-rwcSnwI,7554 -django/contrib/admindocs/views.py,sha256=cE0JQDfLWR9Wj3xobMpit11I599LgvSN90YQldb_y10,18626 -django/contrib/auth/__init__.py,sha256=K5zVFGbhq1Phxzl-ELYsRTYAgNEtRxXEPv92Ti2QMD4,8722 -django/contrib/auth/__pycache__/__init__.cpython-312.pyc,, -django/contrib/auth/__pycache__/admin.cpython-312.pyc,, -django/contrib/auth/__pycache__/apps.cpython-312.pyc,, -django/contrib/auth/__pycache__/backends.cpython-312.pyc,, -django/contrib/auth/__pycache__/base_user.cpython-312.pyc,, -django/contrib/auth/__pycache__/checks.cpython-312.pyc,, -django/contrib/auth/__pycache__/context_processors.cpython-312.pyc,, -django/contrib/auth/__pycache__/decorators.cpython-312.pyc,, -django/contrib/auth/__pycache__/forms.cpython-312.pyc,, -django/contrib/auth/__pycache__/hashers.cpython-312.pyc,, -django/contrib/auth/__pycache__/middleware.cpython-312.pyc,, -django/contrib/auth/__pycache__/mixins.cpython-312.pyc,, -django/contrib/auth/__pycache__/models.cpython-312.pyc,, -django/contrib/auth/__pycache__/password_validation.cpython-312.pyc,, -django/contrib/auth/__pycache__/signals.cpython-312.pyc,, -django/contrib/auth/__pycache__/tokens.cpython-312.pyc,, -django/contrib/auth/__pycache__/urls.cpython-312.pyc,, -django/contrib/auth/__pycache__/validators.cpython-312.pyc,, -django/contrib/auth/__pycache__/views.cpython-312.pyc,, -django/contrib/auth/admin.py,sha256=kWCo5QJ0u6YIBrK8Rr2riy354bQvCMD9txzWlxW2urQ,9001 -django/contrib/auth/apps.py,sha256=JE5zuVw7Tx6NFULN_u8sOxs0OnHczMC9bM0N_m1xsmA,1224 -django/contrib/auth/backends.py,sha256=QG17twHQSV5ts-Db5gZTAeA6N9L7lyWp2WXP1fIniO0,9217 -django/contrib/auth/base_user.py,sha256=k7pIb7zpp8SZsxBkL0oOwwP6jVUVlD7XROXb2xPzwyk,5073 -django/contrib/auth/checks.py,sha256=q05m4ylm3r3z8t7BPKeJLlpz5qfv6HOiPNcEl6sgAfw,8442 -django/contrib/auth/common-passwords.txt.gz,sha256=MrUGEpphkJZUW9O7s1yYu5g7PnYWd48T5BWySr3CO-c,82262 -django/contrib/auth/context_processors.py,sha256=8BbvdbTVPl8GVgB5-2LTzx6FrGsMzev-E7JMnUgr-rM,1911 -django/contrib/auth/decorators.py,sha256=0ghSVBcSxUgjfi4HWOK1_7AkSo6S4q6YsHM-d8mSbM0,2901 -django/contrib/auth/forms.py,sha256=V5qgl6lKIYr8SX3m1-7v3afQ0fHkHnUsLltgWPTWSU4,17620 -django/contrib/auth/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/auth/handlers/__pycache__/__init__.cpython-312.pyc,, -django/contrib/auth/handlers/__pycache__/modwsgi.cpython-312.pyc,, -django/contrib/auth/handlers/modwsgi.py,sha256=bTXKVMezywsn1KA2MVyDWeHvTNa2KrwIxn2olH7o_5I,1248 -django/contrib/auth/hashers.py,sha256=aBwa7G6PwjIsgLhs_k4jJ7t3Wx7Lav7qmOnfpuiO5ww,29060 -django/contrib/auth/locale/af/LC_MESSAGES/django.mo,sha256=UKEGdzrpTwNnuhPcejOS-682hL88yV83xh-55dMZzyg,7392 -django/contrib/auth/locale/af/LC_MESSAGES/django.po,sha256=GFM0MbuRB9axSqvFQzZXhyeZF9JTKqoMMdfNEgNQVFY,7618 -django/contrib/auth/locale/ar/LC_MESSAGES/django.mo,sha256=7LhxFfL9y6RAfZ8PU-1lKI2V02LbHxXtB1UAf_vXpuc,10040 -django/contrib/auth/locale/ar/LC_MESSAGES/django.po,sha256=2QIaioY0RedAB0CFKVZLhGoCnhLzgUh84sAR7i6QUnQ,10520 -django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=0UokSPc3WDs_0PozSalfBaq4JFYgF1Rt7b90CKvY5jE,10228 -django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.po,sha256=GDvm2m1U7NOY5l7FijKGR77DEZt6rYWoSPCxsY5BZ3Y,10574 -django/contrib/auth/locale/ast/LC_MESSAGES/django.mo,sha256=Pt3gYY3j8Eroo4lAEmf-LR6u9U56mpE3vqLhjR4Uq-o,2250 -django/contrib/auth/locale/ast/LC_MESSAGES/django.po,sha256=Kiq4s8d1HnYpo3DQGlgUl3bOkxmgGW8CvGp9AbryRk8,5440 -django/contrib/auth/locale/az/LC_MESSAGES/django.mo,sha256=kwobdDjncjpc7x7AQgAGSrAdrNlV3mJm1rxyAwweGKo,7576 -django/contrib/auth/locale/az/LC_MESSAGES/django.po,sha256=HQB__hodya8egKUqZElnuw47NYOHKpNnXYUpnl3P8LI,7932 -django/contrib/auth/locale/be/LC_MESSAGES/django.mo,sha256=ofb4WISgh93fPJemtBF0VyZ-pg0RHys1iMpO5eGYHQc,10123 -django/contrib/auth/locale/be/LC_MESSAGES/django.po,sha256=CY1dPSnUX4LIbI4sHE43nO-4yHYJLn5BlGPDhjxZX88,10450 -django/contrib/auth/locale/bg/LC_MESSAGES/django.mo,sha256=_GtYha6epRz701qkKltG6obRnwK2rVbyrTIZb_pJ7K8,9476 -django/contrib/auth/locale/bg/LC_MESSAGES/django.po,sha256=VqLBBcqwTy8vzBxsVx1cEIfrjh15V6y2_zMI-5mPaD4,10004 -django/contrib/auth/locale/bn/LC_MESSAGES/django.mo,sha256=cJSawQn3rNh2I57zK9vRi0r1xc598Wr26AyHh6D50ZQ,5455 -django/contrib/auth/locale/bn/LC_MESSAGES/django.po,sha256=5Vqd4n9ab98IMev4GHLxpO7f4r9nnhC3Nfx27HQNd8s,7671 -django/contrib/auth/locale/br/LC_MESSAGES/django.mo,sha256=nxLj88BBhT3Hudev1S_BRC8P6Jv7eoR8b6CHGt5eoPo,1436 -django/contrib/auth/locale/br/LC_MESSAGES/django.po,sha256=rFo68wfXMyju633KCAhg0Jcb3GVm3rk4opFQqI89d6Y,5433 -django/contrib/auth/locale/bs/LC_MESSAGES/django.mo,sha256=jDjP1qIs02k6RixY9xy3V7Cr6zi-henR8nDnhqNG18s,3146 -django/contrib/auth/locale/bs/LC_MESSAGES/django.po,sha256=NOICHHU8eFtltH0OBlnasz9TF0uZGZd3hMibRmn158E,5975 -django/contrib/auth/locale/ca/LC_MESSAGES/django.mo,sha256=lqiOLv_LZDLeXbJZYsrWRHzcnwd1vd00tW5Jrh-HHkY,7643 -django/contrib/auth/locale/ca/LC_MESSAGES/django.po,sha256=v-3t7bDTh1835nZnjYh3_HyN4yw4a1HyHpC3-jX79Z0,8216 -django/contrib/auth/locale/ckb/LC_MESSAGES/django.mo,sha256=YiyQ7keGzWy_TSSjneCqj3TOqagupIgwsu038MyBh_k,9295 -django/contrib/auth/locale/ckb/LC_MESSAGES/django.po,sha256=ELvFy8shrwy_ZI5zfOT6z9bRRfPENhfM5lKfY9VeIBI,9656 -django/contrib/auth/locale/cs/LC_MESSAGES/django.mo,sha256=7TuyZNQ11j4iLxxr_xch3gBDQ0cSTh0VFUa0FMzH1Uo,7836 -django/contrib/auth/locale/cs/LC_MESSAGES/django.po,sha256=qoA5lHFEwLZZakgYONzA-TxBqpBNhBytGHxS40YCf0s,8292 -django/contrib/auth/locale/cy/LC_MESSAGES/django.mo,sha256=lSfCwEVteW4PDaiGKPDxnSnlDUcGMkPfsxIluExZar0,4338 -django/contrib/auth/locale/cy/LC_MESSAGES/django.po,sha256=-LPAKGXNzB77lVHfCRmFlH3SUaLgOXk_YxfC0BomcEs,6353 -django/contrib/auth/locale/da/LC_MESSAGES/django.mo,sha256=ZZgOToa8qKpjra9CS7SjjNiYjLTbEDmKIpzws0wpjaI,7560 -django/contrib/auth/locale/da/LC_MESSAGES/django.po,sha256=9MhLbrd25hBd5bG5w5xhUyXdENOzcdtA3mZJoXiM7g4,8045 -django/contrib/auth/locale/de/LC_MESSAGES/django.mo,sha256=nvwrbU-uvQonGW_UD5zVh7u70csi_5qCehsI-AlTRx4,7607 -django/contrib/auth/locale/de/LC_MESSAGES/django.po,sha256=MJGIuwfkwEs9oiktL4C2uB0XXG6gh2zCI_jr-DcH5Tk,8158 -django/contrib/auth/locale/dsb/LC_MESSAGES/django.mo,sha256=ENymm4sXNqH7K1z1zP7afU18b4NUcMezi7onBMArLRc,8249 -django/contrib/auth/locale/dsb/LC_MESSAGES/django.po,sha256=iOQZuKzPrsA-NE70SxzKsJWsy1CdvGLBL7y0oogOFso,8559 -django/contrib/auth/locale/el/LC_MESSAGES/django.mo,sha256=KaP9RLYThwYWLBx0W90HI0zJZ09iNhZ3tk8UVF63n74,10072 -django/contrib/auth/locale/el/LC_MESSAGES/django.po,sha256=O5JsNCUNr1YcNNqMugoM5epN6nC5pgq3E6nKXDh3OY0,10795 -django/contrib/auth/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/auth/locale/en/LC_MESSAGES/django.po,sha256=ygtJurKRiMx7o1RW1RhoPQT09d7TXFNQaTfgr0CryVA,8256 -django/contrib/auth/locale/en_AU/LC_MESSAGES/django.mo,sha256=7cPKOZX0ZmWCYU2ZwgCp8LwXj7FAdP3lMoI2u4nzgeU,7183 -django/contrib/auth/locale/en_AU/LC_MESSAGES/django.po,sha256=92Q42wfwKhGxDkomv8JlGBHVUdFIc_wvm_LUNBc9Q1k,7467 -django/contrib/auth/locale/en_GB/LC_MESSAGES/django.mo,sha256=p57gDaYVvgEk1x80Hq4Pn2SZbsp9ly3XrJ5Ttlt2yOE,3179 -django/contrib/auth/locale/en_GB/LC_MESSAGES/django.po,sha256=-yDflw5-81VOlyqkmLJN17FRuwDrhYXItFUJwx2aqpE,5787 -django/contrib/auth/locale/eo/LC_MESSAGES/django.mo,sha256=OCEu7qwKb20Cq2UO-dmHjNPXRfDTsQHp9DbyVXCxNMw,7421 -django/contrib/auth/locale/eo/LC_MESSAGES/django.po,sha256=wrvLqKIJycioUFAI7GkCRtDNZ9_OigG_Bf79Dmgpa7c,7868 -django/contrib/auth/locale/es/LC_MESSAGES/django.mo,sha256=rIAA3E42jRwvZUuuWtfunhZthN36nGSEJ2nKlgRSCoI,7945 -django/contrib/auth/locale/es/LC_MESSAGES/django.po,sha256=Il5B7l35jDdPS2FUti4BdBKwhkS_cQKXRWsxpyyg7rM,8765 -django/contrib/auth/locale/es_AR/LC_MESSAGES/django.mo,sha256=tPRhIvlvgn5urawLpgF-YIoO4zqc06LtHflK_G_FYFU,7943 -django/contrib/auth/locale/es_AR/LC_MESSAGES/django.po,sha256=XqPd_mBJmPG-YYZrDdfVe7nbC6B5NLcHp2aISkk23xI,8214 -django/contrib/auth/locale/es_CO/LC_MESSAGES/django.mo,sha256=K5VaKTyeV_WoKsLR1x8ZG4VQmk3azj6ZM8Phqjs81So,6529 -django/contrib/auth/locale/es_CO/LC_MESSAGES/django.po,sha256=qJywTaYi7TmeMB1sjwsiwG8GXtxAOaOX0voj7lLVZRw,7703 -django/contrib/auth/locale/es_MX/LC_MESSAGES/django.mo,sha256=dCav1yN5q3bU4PvXZd_NxHQ8cZ9KqQCiNoe4Xi8seoY,7822 -django/contrib/auth/locale/es_MX/LC_MESSAGES/django.po,sha256=_4un21ALfFsFaqpLrkE2_I18iEfJlcAnd_X8YChfdWo,8210 -django/contrib/auth/locale/es_VE/LC_MESSAGES/django.mo,sha256=GwpZytNHtK7Y9dqQKDiVi4SfA1AtPlk824_k7awqrdI,7415 -django/contrib/auth/locale/es_VE/LC_MESSAGES/django.po,sha256=G3mSCo_XGRUfOAKUeP_UNfWVzDPpbQrVYQt8Hv3VZVM,7824 -django/contrib/auth/locale/et/LC_MESSAGES/django.mo,sha256=yilio-iPwr09MPHPgrDLQ-G5d2xNg1o75lcv5-yzcM4,7393 -django/contrib/auth/locale/et/LC_MESSAGES/django.po,sha256=OvUyjbna_KS-bI4PUUHagS-JuwtB7G0J1__MtFGxB-M,7886 -django/contrib/auth/locale/eu/LC_MESSAGES/django.mo,sha256=K0AoFJGJJSnD1IzYqCY9qB4HZHwx-F7QaDTAGehyo7w,7396 -django/contrib/auth/locale/eu/LC_MESSAGES/django.po,sha256=y9BAASQYTTYfoTKWFVQUYs5-zPlminfJ6C5ZORD6g-s,7749 -django/contrib/auth/locale/fa/LC_MESSAGES/django.mo,sha256=yeA_5LAPu7OyQssunvUNlH07bPVCyGLpnvijNenrtHQ,8979 -django/contrib/auth/locale/fa/LC_MESSAGES/django.po,sha256=NChJSgpkXrwAiTrCJzvwlm9mh-LFSD1rR1ESdRQD43o,9513 -django/contrib/auth/locale/fi/LC_MESSAGES/django.mo,sha256=fH_rcYkl9L2dK1G3MjVETXAHunCPhsXQYMTbDcNe-00,7537 -django/contrib/auth/locale/fi/LC_MESSAGES/django.po,sha256=PVwyNBaToxjyHkxy4t4L-kULjJslTe94coSxWNseyn4,7892 -django/contrib/auth/locale/fr/LC_MESSAGES/django.mo,sha256=-OY_FLVUMHl7vTazzjtjvsveuggUtY839WkITcmLfQQ,8448 -django/contrib/auth/locale/fr/LC_MESSAGES/django.po,sha256=DkL1v2GwfRWEQ5sTcyAWK6_emBLz4LZaft70nUONsxM,8809 -django/contrib/auth/locale/fy/LC_MESSAGES/django.mo,sha256=95N-77SHF0AzQEer5LuBKu5n5oWf3pbH6_hQGvDrlP4,476 -django/contrib/auth/locale/fy/LC_MESSAGES/django.po,sha256=8XOzOFx-WerF7whzTie03hgO-dkbUFZneyrpZtat5JY,3704 -django/contrib/auth/locale/ga/LC_MESSAGES/django.mo,sha256=Nd02Ed9ACCY6JCCSwtiWl3DTODLFFu9Mq6JVlr5YbYk,3572 -django/contrib/auth/locale/ga/LC_MESSAGES/django.po,sha256=FQJMR5DosuKqo4vvF0NAQnjfqbH54MSzqL2-4BO4-uM,6127 -django/contrib/auth/locale/gd/LC_MESSAGES/django.mo,sha256=BLBYJV9Adx1BsXZaM0qZ54mNRAF5s4dxB1TBLtIyMHQ,8743 -django/contrib/auth/locale/gd/LC_MESSAGES/django.po,sha256=rqPK26mtE_U-TG2qyjc5xCR-feI3sGXZR5H6ohNzx4s,9099 -django/contrib/auth/locale/gl/LC_MESSAGES/django.mo,sha256=LEs4FmCgnInkfREWy4ytvs4txunfkDuwGK4x1iDdfq8,7806 -django/contrib/auth/locale/gl/LC_MESSAGES/django.po,sha256=CRlrXwKY_gYmJRxlnCmY51N7SoFpzQen0xTSEju2goM,8239 -django/contrib/auth/locale/he/LC_MESSAGES/django.mo,sha256=MeI7B43KSAIZL7_qxceKnnFKnyoUVYeZDRkGWabrclw,8606 -django/contrib/auth/locale/he/LC_MESSAGES/django.po,sha256=aDJlOsxyGpm-t6BydtqPMDB9lPcBCie8a1IfW_Ennvc,9012 -django/contrib/auth/locale/hi/LC_MESSAGES/django.mo,sha256=7CxV1H37hMbgKIhnAWx-aJmipLRosJe1qg8BH2CABfw,5364 -django/contrib/auth/locale/hi/LC_MESSAGES/django.po,sha256=DU5YM6r1kd5fo40yqFXzEaNh42ezFQFQ-0dmVqkaKQ0,7769 -django/contrib/auth/locale/hr/LC_MESSAGES/django.mo,sha256=GEap3QClwCkuwQZKJE7qOZl93RRxmyyvTTnOTYaAWUo,5894 -django/contrib/auth/locale/hr/LC_MESSAGES/django.po,sha256=ALftoYSaI1U90RNDEvnaFATbw1SL0m8fNXAyl6DkSvo,7355 -django/contrib/auth/locale/hsb/LC_MESSAGES/django.mo,sha256=bkFfrGhbVkopx8X9W5i2HJ6L-nCgebwT5w5WDbYvePY,8082 -django/contrib/auth/locale/hsb/LC_MESSAGES/django.po,sha256=Xb_73b2geSGdwolmiCnNoO8TfzbgAzbt6iXAlzH_5rI,8383 -django/contrib/auth/locale/hu/LC_MESSAGES/django.mo,sha256=TLGY7EaLD12NHYM1hQlqb4D4BM0T68jv8yhECOHIgcA,7655 -django/contrib/auth/locale/hu/LC_MESSAGES/django.po,sha256=E51MM5qqplgrOSrh60bfz-EvyL91Ik3kL3YJOK-dqzk,8040 -django/contrib/auth/locale/hy/LC_MESSAGES/django.mo,sha256=zoLe0EqIH8HQYC5XAWd8b8mA2DpbmDSEBsF-WIKX_OQ,8001 -django/contrib/auth/locale/hy/LC_MESSAGES/django.po,sha256=wIWLbz6f0n44ZcjEbZZsgoWTpzXRGND15hudr_DQ3l0,8787 -django/contrib/auth/locale/ia/LC_MESSAGES/django.mo,sha256=OTxh6u0QmsytMrp8IKWBwMnhrYCpyS6qVnF7YBCAWe0,7626 -django/contrib/auth/locale/ia/LC_MESSAGES/django.po,sha256=ue4RXEXweO1-9sZOKkLZsyZe8yxnPWB3JZyyh3qzmlA,7895 -django/contrib/auth/locale/id/LC_MESSAGES/django.mo,sha256=Shn7YL4gYpKmw3tkL3upWpehmSMkLs6ODIFpIhmHSeM,7243 -django/contrib/auth/locale/id/LC_MESSAGES/django.po,sha256=7bCK44c-CqLcgcltuOfoTsDJ-tYNW0Fdfq6KaSHLKd4,7638 -django/contrib/auth/locale/io/LC_MESSAGES/django.mo,sha256=YwAS3aWljAGXWcBhGU_GLVuGJbHJnGY8kUCE89CPdks,464 -django/contrib/auth/locale/io/LC_MESSAGES/django.po,sha256=W36JXuA1HQ72LspixRxeuvxogVxtk7ZBbT0VWI38_oM,3692 -django/contrib/auth/locale/is/LC_MESSAGES/django.mo,sha256=0PBYGqQKJaAG9m2jmJUzcqRVPc16hCe2euECMCrNGgI,7509 -django/contrib/auth/locale/is/LC_MESSAGES/django.po,sha256=o6dQ8WMuPCw4brSzKUU3j8PYhkLBO7XQ3M7RlsIw-VY,7905 -django/contrib/auth/locale/it/LC_MESSAGES/django.mo,sha256=pcBcdOXLqT4shr7Yw5l-pxfYknJyDW6d-jGtkncl24E,7862 -django/contrib/auth/locale/it/LC_MESSAGES/django.po,sha256=f03_tMPiwLF1ZyWfnB_j2vhPR1AXkborGQS2Tbxufzk,8471 -django/contrib/auth/locale/ja/LC_MESSAGES/django.mo,sha256=yd8QAELWqvHDRaf0rZw8Omc0IhTiqe4a3gtsujennec,8174 -django/contrib/auth/locale/ja/LC_MESSAGES/django.po,sha256=EOasPPqLOtSKPeObb5DMDextIgtAdznPe4VQb61eyxE,8533 -django/contrib/auth/locale/ka/LC_MESSAGES/django.mo,sha256=0QWYd58Dz5Az3OfZo7wV3o-QCre2oc5dgEPu0rnLVJI,10625 -django/contrib/auth/locale/ka/LC_MESSAGES/django.po,sha256=oCtz7gS4--mhv7biS1rIh43I4v1UpZX4DKdrB-xZ2RA,11217 -django/contrib/auth/locale/kab/LC_MESSAGES/django.mo,sha256=9qKeQ-gDByoOdSxDpSbLaM4uSP5sIi7qlTn8tJidVDs,2982 -django/contrib/auth/locale/kab/LC_MESSAGES/django.po,sha256=8cq5_rjRXPzTvn1jPo6H_Jcrv6IXkWr8n9fTPvghsS8,5670 -django/contrib/auth/locale/kk/LC_MESSAGES/django.mo,sha256=RJablrXpRba6YVB_8ACSt2q_BjmxrHQZzX6RxMJImlA,3542 -django/contrib/auth/locale/kk/LC_MESSAGES/django.po,sha256=OebwPN9iWBvjDu0P2gQyBbShvIFxFIqCw8DpKuti3xk,6360 -django/contrib/auth/locale/km/LC_MESSAGES/django.mo,sha256=FahcwnCgzEamtWcDEPOiJ4KpXCIHbnSowfSRdRQ2F9U,2609 -django/contrib/auth/locale/km/LC_MESSAGES/django.po,sha256=lvRHHIkClbt_8-9Yn0xY57dMxcS72z4sUkxLb4cohP0,5973 -django/contrib/auth/locale/kn/LC_MESSAGES/django.mo,sha256=u0YygqGJYljBZwI9rm0rRk_DdgaBEMA1etL-Lk-7Mls,4024 -django/contrib/auth/locale/kn/LC_MESSAGES/django.po,sha256=J67MIAas5egVq_FJBNsug3Y7rZ8KakhQt6isyF23HAA,6957 -django/contrib/auth/locale/ko/LC_MESSAGES/django.mo,sha256=vwD0-GW2g4uAPCQbvsr2CyZ1Y-9VHcF4xlN3qaJbolU,7607 -django/contrib/auth/locale/ko/LC_MESSAGES/django.po,sha256=6PX6SMXjv_bYolpgHfcFpzaKPdkwJSVg95GU5EpjdeM,8350 -django/contrib/auth/locale/ky/LC_MESSAGES/django.mo,sha256=mnBXtpInYxaSNIURJTmx8uBg_PH-NuPN9r54pkQY3q4,8924 -django/contrib/auth/locale/ky/LC_MESSAGES/django.po,sha256=7FeO_Kb2er0S84KnFeXVHO3TgAmEJ0gTQEDHImoxiZ4,9170 -django/contrib/auth/locale/lb/LC_MESSAGES/django.mo,sha256=OFhpMA1ZXhrs5fwZPO5IjubvWDiju4wfwWiV94SFkiA,474 -django/contrib/auth/locale/lb/LC_MESSAGES/django.po,sha256=dOfY9HjTfMQ0nkRYumw_3ZaywbUrTgT-oTXAnrRyfxo,3702 -django/contrib/auth/locale/lt/LC_MESSAGES/django.mo,sha256=-nlZHl7w__TsFUmBb5pQV_XJtKGsi9kzP6CBZXkfM8M,8146 -django/contrib/auth/locale/lt/LC_MESSAGES/django.po,sha256=-rdhB6eroSSemsdZkG1Jl4CruNZc_7dj4m5IVoyRBUQ,8620 -django/contrib/auth/locale/lv/LC_MESSAGES/django.mo,sha256=3vBq92k5qYRbQGLgkLSxuTpnf1GdDdeGJ09_OqgU8gQ,7730 -django/contrib/auth/locale/lv/LC_MESSAGES/django.po,sha256=z1gylOSLagSoNfqwTp9AkOaOpdtRjm7duNixlNM8dlk,8236 -django/contrib/auth/locale/mk/LC_MESSAGES/django.mo,sha256=XS9dslnD_YBeD07P8WQkss1gT7GIV-qLiCx4i5_Vd_k,9235 -django/contrib/auth/locale/mk/LC_MESSAGES/django.po,sha256=QOLgcwHub9Uo318P2z6sp69MI8syIIWCcr4VOom9vfs,9799 -django/contrib/auth/locale/ml/LC_MESSAGES/django.mo,sha256=UEaqq7nnGvcZ8vqFicLiuqsuEUhEjd2FpWfyzy2HqdU,12611 -django/contrib/auth/locale/ml/LC_MESSAGES/django.po,sha256=xBROIwJb5h2LmyBLAafZ2tUlPVTAOcMgt-olq5XnPT8,13107 -django/contrib/auth/locale/mn/LC_MESSAGES/django.mo,sha256=hBYT0p3LcvIKKPtIn2NzPk_2di9L8jYrUt9j3TcVvaY,9403 -django/contrib/auth/locale/mn/LC_MESSAGES/django.po,sha256=R3wAEwnefEHZsma8J-XOn4XlLtuWYKDPLwJ99DUYmvE,9913 -django/contrib/auth/locale/mr/LC_MESSAGES/django.mo,sha256=zGuqUTqcWZZn8lZY56lf5tB0_lELn7Dd0Gj78wwO5T4,468 -django/contrib/auth/locale/mr/LC_MESSAGES/django.po,sha256=yLW9WuaBHqdp9PXoDEw7c05Vt0oOtlks5TS8oxYPAO8,3696 -django/contrib/auth/locale/ms/LC_MESSAGES/django.mo,sha256=eCAZrzQxsM_pAxr_XQo2fIOsCbj5LjGKpLNCzob2l-I,7654 -django/contrib/auth/locale/ms/LC_MESSAGES/django.po,sha256=FAtyzSGcD1mIhRIg8O_1SHLdisTPGYZK-QUjzgw-wCY,7847 -django/contrib/auth/locale/my/LC_MESSAGES/django.mo,sha256=gYzFJKi15RbphgG1IHbJF3yGz3P2D9vaPoHZpA7LoH8,1026 -django/contrib/auth/locale/my/LC_MESSAGES/django.po,sha256=lH5mrq-MyY8gvrNkH2_20rkjFnbviq23wIUqIjPIgFI,5130 -django/contrib/auth/locale/nb/LC_MESSAGES/django.mo,sha256=vLJ9F73atlexwVRzZJpQjcB9arodHIMCh-z8lP5Ah9w,7023 -django/contrib/auth/locale/nb/LC_MESSAGES/django.po,sha256=c3sTCdzWGZgs94z9dIIpfrFuujBuvWvQ-P0gb1tuqlA,7520 -django/contrib/auth/locale/ne/LC_MESSAGES/django.mo,sha256=pq8dEr1ugF5ldwkCDHOq5sXaXV31InbLHYyXU56U_Ao,7722 -django/contrib/auth/locale/ne/LC_MESSAGES/django.po,sha256=bV-uWvT1ViEejrbRbVTtwC2cZVD2yX-KaESxKBnxeRI,8902 -django/contrib/auth/locale/nl/LC_MESSAGES/django.mo,sha256=rC50p1YuxjzC0qIsV139uhrFkJhPi5sFERoNdD7XYIY,7509 -django/contrib/auth/locale/nl/LC_MESSAGES/django.po,sha256=B1K9ZLH0fvz5jY85bIZI8NUDTOqaufezfTUgEObb-fk,8301 -django/contrib/auth/locale/nn/LC_MESSAGES/django.mo,sha256=83HdNOuNQVgJXBZMytPz1jx3wWDy8-e6t_JNEUu6W8w,7147 -django/contrib/auth/locale/nn/LC_MESSAGES/django.po,sha256=4ciwQsZFYSV6CjFqzxxcESAm16huv9XyXvU-nchD-Fs,7363 -django/contrib/auth/locale/os/LC_MESSAGES/django.mo,sha256=DVsYGz-31nofEjZla4YhM5L7qoBnQaYnZ4TBki03AI4,4434 -django/contrib/auth/locale/os/LC_MESSAGES/django.po,sha256=Akc1qelQWRA1DE6xseoK_zsY7SFI8SpiVflsSTUhQLw,6715 -django/contrib/auth/locale/pa/LC_MESSAGES/django.mo,sha256=PeOLukzQ_CZjWBa5FGVyBEysat4Gwv40xGMS29UKRww,3666 -django/contrib/auth/locale/pa/LC_MESSAGES/django.po,sha256=7ts9PUSuvfXGRLpfyVirJLDtsQcsVWFXDepVKUVlmtc,6476 -django/contrib/auth/locale/pl/LC_MESSAGES/django.mo,sha256=3t1UX7uu6kRAo90REXiJklBvvOzpS_q9J2Krw3lGDGY,8044 -django/contrib/auth/locale/pl/LC_MESSAGES/django.po,sha256=UNPOh_qohNom1u9Zyj80gGwTT0NerYjgJsT8Hyd7TCk,8908 -django/contrib/auth/locale/pt/LC_MESSAGES/django.mo,sha256=oyKCSXRo55UiO3-JKcodMUnK7fuOuQxQrXcU7XkWidA,7756 -django/contrib/auth/locale/pt/LC_MESSAGES/django.po,sha256=tEazw0kctJ3BaP21IblsMhno6qooOGW54zwende522Q,8128 -django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.mo,sha256=Ni5q4FjW3EZsTQ2LnJU2WimEsAym4oC246g6RkVpYqg,7711 -django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.po,sha256=9prgcgsX-HKvmljeXRZFV1i2Usb17dEOgvg067se62g,8767 -django/contrib/auth/locale/ro/LC_MESSAGES/django.mo,sha256=GD04tb5R6nEeD6ZMAcZghVhXwr8en1omw0c6BxnyHas,7777 -django/contrib/auth/locale/ro/LC_MESSAGES/django.po,sha256=YfkFuPrMwAR50k6lfOYeBbMosEbvXGWwMBD8B7p_2ZA,8298 -django/contrib/auth/locale/ru/LC_MESSAGES/django.mo,sha256=XbKViOjMVctjl4C7lcMDhOh70U3iTKCDGufBn4BbEkc,10419 -django/contrib/auth/locale/ru/LC_MESSAGES/django.po,sha256=Ll6bJLOFF08q7KH15W5gO3wqTY5Dtll0nR4Dw_rOu9k,11014 -django/contrib/auth/locale/sk/LC_MESSAGES/django.mo,sha256=1xmFLKSKxwWOoW7MLQ6oLhOi5fRs_YEqYQ6VlQ0f7ag,7853 -django/contrib/auth/locale/sk/LC_MESSAGES/django.po,sha256=sNAtYJYT-QLmTRaYpoyAeC9j3adeQwvQqtxjKuDFkn0,8292 -django/contrib/auth/locale/sl/LC_MESSAGES/django.mo,sha256=BWza8NHox8osJ0VzZIfPLrwZY4YgSeL1iGy-ZvemmEg,7342 -django/contrib/auth/locale/sl/LC_MESSAGES/django.po,sha256=-1VpMnlclV-X6e0AiMIzXfKHD67agIcwK7aAxuSd-uw,7972 -django/contrib/auth/locale/sq/LC_MESSAGES/django.mo,sha256=3bm81rsRuQmV_1mD9JrAwSjRIDUlsb3lPmBxRNHfz8w,7813 -django/contrib/auth/locale/sq/LC_MESSAGES/django.po,sha256=BWfyT4qg1jMoDGwmpLq4uPHJ1hJXLHI7gyo4BnzVHZI,8128 -django/contrib/auth/locale/sr/LC_MESSAGES/django.mo,sha256=3dRNH8jjE8I2vQwyTZ5J6tGLeBr3_XhlAjdPqcMea0M,9761 -django/contrib/auth/locale/sr/LC_MESSAGES/django.po,sha256=33D4YxtMpY3s0cDsK0L2-bCvfZHlbfxR4XX9oMjCQXM,10081 -django/contrib/auth/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=SXl_MvkY_idYMT3sF7nIuh8z2qMdMC1lJ69Y6FcJMaA,3191 -django/contrib/auth/locale/sr_Latn/LC_MESSAGES/django.po,sha256=hlU8JVlqIKv-Wx9urJDnFxvyT_m8mLz0vTl8Tcat4lw,5958 -django/contrib/auth/locale/sv/LC_MESSAGES/django.mo,sha256=hdFeVy7UXyyHylfvuWrzcLE9eIDBTGWy91ReCvFgXAg,7484 -django/contrib/auth/locale/sv/LC_MESSAGES/django.po,sha256=Ia6YyrYr3hOKBojOfMVQBlY1LvcX0hi3LRvMmf9mOIw,8130 -django/contrib/auth/locale/sw/LC_MESSAGES/django.mo,sha256=I_lEsKuMGm07X1vM3-ReGDx2j09PGLkWcG0onC8q1uQ,5029 -django/contrib/auth/locale/sw/LC_MESSAGES/django.po,sha256=TiZS5mh0oN0e6dFEdh-FK81Vk-tdv35ngJ-EbM1yX80,6455 -django/contrib/auth/locale/ta/LC_MESSAGES/django.mo,sha256=T1t5CKEb8hIumvbOtai-z4LKj2et8sX-PgBMd0B3zuA,2679 -django/contrib/auth/locale/ta/LC_MESSAGES/django.po,sha256=X8UDNmk02X9q1leNV1qWWwPNakhvNd45mCKkQ8EpZQQ,6069 -django/contrib/auth/locale/te/LC_MESSAGES/django.mo,sha256=i9hG4thA0P-Hc-S2oX7GufWFDO4Y_LF4RcdQ22cbLyE,2955 -django/contrib/auth/locale/te/LC_MESSAGES/django.po,sha256=txND8Izv2oEjSlcsx3q6l5fEUqsS-zv-sjVVILB1Bmc,6267 -django/contrib/auth/locale/tg/LC_MESSAGES/django.mo,sha256=MwdyYwC4ILX4MFsqCy46NNfPKLbW1GzRhFxMV0uIbLI,7932 -django/contrib/auth/locale/tg/LC_MESSAGES/django.po,sha256=miOPNThjHZODwjXMbON8PTMQhaCGJ0Gy6FZr6Jcj4J8,8938 -django/contrib/auth/locale/th/LC_MESSAGES/django.mo,sha256=zRpZ2xM5JEQoHtfXm2_XYdhe2FtaqH-hULJadLJ1MHU,6013 -django/contrib/auth/locale/th/LC_MESSAGES/django.po,sha256=Yhh_AQS_aM_9f_yHNNSu_3THbrU-gOoMpfiDKhkaSHo,7914 -django/contrib/auth/locale/tk/LC_MESSAGES/django.mo,sha256=HSN9CgJEGgCCUcU3KECQkYMsVhKawYbP0Mc9r5JbGmM,7159 -django/contrib/auth/locale/tk/LC_MESSAGES/django.po,sha256=NZhEwgQYBmu82tu-LXFqz2nvdmL8YYFTYhSOed-aWNk,7608 -django/contrib/auth/locale/tr/LC_MESSAGES/django.mo,sha256=mYG9uXXM3nGlu6LPpE5bI50ijVE2o30Ozlzj-nYGmcI,7594 -django/contrib/auth/locale/tr/LC_MESSAGES/django.po,sha256=lMpqDnx1JyK7yzFws5SSdqhGg4Cgdi1jgVRjxOteS9A,8183 -django/contrib/auth/locale/tt/LC_MESSAGES/django.mo,sha256=g4pTk8QLQFCOkU29RZvR1wOd1hkOZe_o5GV9Cg5u8N4,1371 -django/contrib/auth/locale/tt/LC_MESSAGES/django.po,sha256=owkJ7iPT-zJYkuKLykfWsw8j7O8hbgzVTOD0DVv956E,5222 -django/contrib/auth/locale/udm/LC_MESSAGES/django.mo,sha256=zey19UQmS79AJFxHGrOziExPDDpJ1AbUegbCRm0x0hM,462 -django/contrib/auth/locale/udm/LC_MESSAGES/django.po,sha256=gLVgaMGg0GA3Tey1_nWIjV1lnM7czLC0XR9NFBgL2Zk,3690 -django/contrib/auth/locale/uk/LC_MESSAGES/django.mo,sha256=hjA-VzGMy8ReYSjuELwK3WEliLLjGsi0iRadzoX8UyU,10146 -django/contrib/auth/locale/uk/LC_MESSAGES/django.po,sha256=8R2bP3QC6jhcz_XSpK-GK1OPTCCb7PN6bz-1ZRX37fs,10850 -django/contrib/auth/locale/ur/LC_MESSAGES/django.mo,sha256=rippTNHoh49W19c4HDUF8G5Yo3SknL3C87Afu8YXxzA,698 -django/contrib/auth/locale/ur/LC_MESSAGES/django.po,sha256=gwSd8noEwbcvDE1Q4ZsrftvoWMwhw1J15gvdtK6E9ns,4925 -django/contrib/auth/locale/uz/LC_MESSAGES/django.mo,sha256=bDkhpvduocjekq6eZiuEfWJqnIt5hQmxxoIMhLQWzqM,2549 -django/contrib/auth/locale/uz/LC_MESSAGES/django.po,sha256=tPp8tRZwSMQCQ9AyAeUDtnRfmOk54UQMwok3HH8VNSQ,5742 -django/contrib/auth/locale/vi/LC_MESSAGES/django.mo,sha256=eBMTwnpRWRj8SZVZ1tN592Re_8CPyJzuF4Vtg9IMmFw,7892 -django/contrib/auth/locale/vi/LC_MESSAGES/django.po,sha256=mOr5WgFpwztdW-pEZ4O80MGlltYQyL2cAMhz6-Esfo0,8246 -django/contrib/auth/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=xV9wTiaL7hMCKmUOHuEs5XtxEibXWLnywDYTjeXoVCA,6907 -django/contrib/auth/locale/zh_Hans/LC_MESSAGES/django.po,sha256=CUdR2ch2mOf5v3GTOTIQg2IOj-7M1mS6Dw9yvz891Yw,7638 -django/contrib/auth/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=yQ5Gllu4hXzuBpBNAgtJaBMVivJeXUUlpfDS4CT1wg4,6728 -django/contrib/auth/locale/zh_Hant/LC_MESSAGES/django.po,sha256=Rw18_ZEtobUhmj2oF544zdQ6Vrac0T9UI9RJO4plOdc,7145 -django/contrib/auth/management/__init__.py,sha256=SGcjDZGJsHYG70R_VG7EXyNzaa-mV2xobfP6Fy6KN7c,5490 -django/contrib/auth/management/__pycache__/__init__.cpython-312.pyc,, -django/contrib/auth/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/auth/management/commands/__pycache__/__init__.cpython-312.pyc,, -django/contrib/auth/management/commands/__pycache__/changepassword.cpython-312.pyc,, -django/contrib/auth/management/commands/__pycache__/createsuperuser.cpython-312.pyc,, -django/contrib/auth/management/commands/changepassword.py,sha256=uMA0bm8Xy2JovP9M4WrVdZF4qxgRLMaebx3sET2BKSY,2633 -django/contrib/auth/management/commands/createsuperuser.py,sha256=WyKuwuSJjBMGccAlBEaaZUgQhUOxjEzNXVU3xPRkcp8,13206 -django/contrib/auth/middleware.py,sha256=_Y3pB-F4WhZdAZZMHL4iQ-TSBQrivkz2flALIjodXiM,5431 -django/contrib/auth/migrations/0001_initial.py,sha256=hFz_MZYGMy9J7yDOFl0aF-UixCbF5W12FhM-nk6rpe8,7281 -django/contrib/auth/migrations/0002_alter_permission_name_max_length.py,sha256=_q-X4Oj30Ui-w9ubqyNJxeFYiBF8H_KCne_2PvnhbP8,346 -django/contrib/auth/migrations/0003_alter_user_email_max_length.py,sha256=nVZXtNuYctwmwtY0wvWRGj1pqx2FUq9MbWM7xAAd-r8,418 -django/contrib/auth/migrations/0004_alter_user_username_opts.py,sha256=lTjbNCyam-xMoSsxN_uAdyxOpK-4YehkeilisepYNEo,880 -django/contrib/auth/migrations/0005_alter_user_last_login_null.py,sha256=efYKNdwAD91Ce8BchSM65bnEraB4_waI_J94YEv36u4,410 -django/contrib/auth/migrations/0006_require_contenttypes_0002.py,sha256=AMsW40BfFLYtvv-hXGjJAwKR5N3VE9czZIukYNbF54E,369 -django/contrib/auth/migrations/0007_alter_validators_add_error_messages.py,sha256=EV24fcMnUw-14ZZLo9A_l0ZJL5BgBAaUe-OfVPbMBC8,802 -django/contrib/auth/migrations/0008_alter_user_username_max_length.py,sha256=AoV_ZffWSBR6XRJZayAKg-KRRTkdP5hs64SzuGWiw1E,814 -django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py,sha256=GaiVAOfxCKc5famxczGB-SEF91hmOzaFtg9cLaOE124,415 -django/contrib/auth/migrations/0010_alter_group_name_max_length.py,sha256=CWPtZJisCzqEMLbKNMG0pLHV9VtD09uQLxWgP_dLFM0,378 -django/contrib/auth/migrations/0011_update_proxy_permissions.py,sha256=haXd5wjcS2ER4bxxznI-z7p7H4rt7P0TCQD_d4J2VDY,2860 -django/contrib/auth/migrations/0012_alter_user_first_name_max_length.py,sha256=bO-8n4CQN2P_hJKlN6IoNu9p8iJ-GdQCUJuAmdK67LA,411 -django/contrib/auth/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/auth/migrations/__pycache__/0001_initial.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0009_alter_user_last_name_max_length.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0010_alter_group_name_max_length.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0011_update_proxy_permissions.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/0012_alter_user_first_name_max_length.cpython-312.pyc,, -django/contrib/auth/migrations/__pycache__/__init__.cpython-312.pyc,, -django/contrib/auth/mixins.py,sha256=rHq9HsX4W8lKtfXsazxM3chhTFLqd3eKI-OVKpbeLjQ,4652 -django/contrib/auth/models.py,sha256=7DKhZJdEgTkm1j38W_BSfMQ3qh1y-AhqmElQ8kHKhAY,16500 -django/contrib/auth/password_validation.py,sha256=lLTPVZb2bGCiikcG1U3ySzZrdcvPRQhYhMPe84hMOtg,9376 -django/contrib/auth/signals.py,sha256=BFks70O0Y8s6p1fr8SCD4-yk2kjucv7HwTcdRUzVDFM,118 -django/contrib/auth/templates/auth/widgets/read_only_password_hash.html,sha256=hP5lekZa5ww1wQbWNiEHkT_KGnXoCKFBm5yxIlJm3d8,196 -django/contrib/auth/templates/registration/password_reset_subject.txt,sha256=-TZcy_r0vArBgdPK7feeUY6mr9EkYwy7esQ62_onbBk,132 -django/contrib/auth/tokens.py,sha256=ljqQWO0dAkd45-bBJ6W85oZZU9pEjzNh3VbZfeANwxQ,4328 -django/contrib/auth/urls.py,sha256=Uh8DrSqpJXDA5a17Br9fMmIbEcgLkxdN9FvCRg-vxyg,1185 -django/contrib/auth/validators.py,sha256=VO7MyackTaTiK8OjEm7YyLtsjKrteVjdzPbNZki0irU,722 -django/contrib/auth/views.py,sha256=8CbrdLoy6NnCdxmzm4BETTHIZvVzS654Fnbu3g61JKw,14446 -django/contrib/contenttypes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/contenttypes/__pycache__/__init__.cpython-312.pyc,, -django/contrib/contenttypes/__pycache__/admin.cpython-312.pyc,, -django/contrib/contenttypes/__pycache__/apps.cpython-312.pyc,, -django/contrib/contenttypes/__pycache__/checks.cpython-312.pyc,, -django/contrib/contenttypes/__pycache__/fields.cpython-312.pyc,, -django/contrib/contenttypes/__pycache__/forms.cpython-312.pyc,, -django/contrib/contenttypes/__pycache__/models.cpython-312.pyc,, -django/contrib/contenttypes/__pycache__/views.cpython-312.pyc,, -django/contrib/contenttypes/admin.py,sha256=a0KrlT8k2aPIKn54fNwCDTaAVdVr1fLY1BDz_FrE3ts,5200 -django/contrib/contenttypes/apps.py,sha256=1Q1mWjPvfYU7EaO50JvsWuDg_3uK8DoCwpvdIdT7iKY,846 -django/contrib/contenttypes/checks.py,sha256=KKB-4FOfPO60TM-uxqK8m9sIXzB3CRx7Imr-jaauM_U,1268 -django/contrib/contenttypes/fields.py,sha256=NlE4X8KDQg8qkBXc4gc8LzhkcwPDih6qlOZWceXmMsE,29513 -django/contrib/contenttypes/forms.py,sha256=T6fZZkJjPrD6R3h5Wos2a9aDM3mZJLerHSh6NXHJp4I,3956 -django/contrib/contenttypes/locale/af/LC_MESSAGES/django.mo,sha256=93nlniPFfVcxfBCs_PsLtMKrJ2BqpcofPRNYYTTlels,1070 -django/contrib/contenttypes/locale/af/LC_MESSAGES/django.po,sha256=SY04sW55-xpO_qBjv8pHoN7eqB2C5q_9CxQguMz7Q94,1244 -django/contrib/contenttypes/locale/ar/LC_MESSAGES/django.mo,sha256=2t3y_6wxi0khsYi6s9ZyJwjRB8bnRT1PKvazWOKhJcQ,1271 -django/contrib/contenttypes/locale/ar/LC_MESSAGES/django.po,sha256=t6M3XYQLotNMFCjzB8aWFXnlRI8fU744YZvAoFdScQY,1634 -django/contrib/contenttypes/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=upFxoSvOvdmqCvC5irRV_8yYpFidanHfRk6i3tPrFAc,1233 -django/contrib/contenttypes/locale/ar_DZ/LC_MESSAGES/django.po,sha256=jUg-4BVi0arx5v-osaUDAfM6cQgaBh7mE8Mr8aVTp5A,1447 -django/contrib/contenttypes/locale/ast/LC_MESSAGES/django.mo,sha256=y88CPGGbwTVRmZYIipCNIWkn4OuzuxEk2QCYsBhc7RY,643 -django/contrib/contenttypes/locale/ast/LC_MESSAGES/django.po,sha256=H-qMo5ikva84ycnlmBT4XXEWhzMIw-r7J_zuqxo3wu4,1088 -django/contrib/contenttypes/locale/az/LC_MESSAGES/django.mo,sha256=VTQ2qQ7aoZYUVl2yht2DbYzj2acs71Szqz7iZyySAqI,1065 -django/contrib/contenttypes/locale/az/LC_MESSAGES/django.po,sha256=9NcmP1jMQPfjPraoXui6iqJn3z3f3uG1RYN7K5-_-dU,1359 -django/contrib/contenttypes/locale/be/LC_MESSAGES/django.mo,sha256=Kp1TpXX1v0IgGp9HZxleXJ6y5ZvMZ6AqJrSIVcDs7xA,1353 -django/contrib/contenttypes/locale/be/LC_MESSAGES/django.po,sha256=Oy5QXZBmBM_OYLT5OeXJQzTBCHXBp8NVMYuKmr_TUm0,1615 -django/contrib/contenttypes/locale/bg/LC_MESSAGES/django.mo,sha256=IFghXuYj0yxP5j-LfRsNJXlyS2b2dUNJXD01uhUqxLg,1225 -django/contrib/contenttypes/locale/bg/LC_MESSAGES/django.po,sha256=y-OpKdDHxHDYATSmi8DAUXuhpIwgujKZUe48G8So8AU,1613 -django/contrib/contenttypes/locale/bn/LC_MESSAGES/django.mo,sha256=2Z1GL6c1ukKQCMcls7R0_n4eNdH3YOXZSR8nCct7SLI,1201 -django/contrib/contenttypes/locale/bn/LC_MESSAGES/django.po,sha256=PLjnppx0FxfGBQMuWVjo0N4sW2QYc2DAEMK6ziGWUc8,1491 -django/contrib/contenttypes/locale/br/LC_MESSAGES/django.mo,sha256=kAlOemlwBvCdktgYoV-4NpC7XFDaIue_XN7GJYzDu88,1419 -django/contrib/contenttypes/locale/br/LC_MESSAGES/django.po,sha256=BQmHVQqOc6xJWJLeAo49rl_Ogfv-lFtx18mj82jT_to,1613 -django/contrib/contenttypes/locale/bs/LC_MESSAGES/django.mo,sha256=klj9n7AKBkTf7pIa9m9b-itsy4UlbYPnHiuvSLcFZXY,700 -django/contrib/contenttypes/locale/bs/LC_MESSAGES/django.po,sha256=pmJaMBLWbYtYFFXYBvPEvwXkTPdjQDv2WkFI5jNGmTI,1151 -django/contrib/contenttypes/locale/ca/LC_MESSAGES/django.mo,sha256=uYq1BXdw1AXjnLusUQfN7ox1ld6siiy41C8yKVTry7Q,1095 -django/contrib/contenttypes/locale/ca/LC_MESSAGES/django.po,sha256=-dsOzvzVzEPVvA9lYsIP-782BbtJxGRo-OHtS3fIjmU,1403 -django/contrib/contenttypes/locale/ckb/LC_MESSAGES/django.mo,sha256=_dJ-2B3tupoUHRS7HjC-EIlghIYLWebwsy4IvEXI13w,1213 -django/contrib/contenttypes/locale/ckb/LC_MESSAGES/django.po,sha256=SrQwgQTltnR7OExi6sP5JsnEOg6qDzd8dSPXjX92B-M,1419 -django/contrib/contenttypes/locale/cs/LC_MESSAGES/django.mo,sha256=QexBQDuGdMFhVBtA9XWUs2geFBROcxyzdU_IBUGQ7x4,1108 -django/contrib/contenttypes/locale/cs/LC_MESSAGES/django.po,sha256=8pdPwZmpGOeSZjILGLZEAzqvmmV69ogpkh0c3tukT2g,1410 -django/contrib/contenttypes/locale/cy/LC_MESSAGES/django.mo,sha256=2QyCWeXFyymoFu0Jz1iVFgOIdLtt4N1rCZATZAwiH-8,1159 -django/contrib/contenttypes/locale/cy/LC_MESSAGES/django.po,sha256=ZWDxQTHJcw1UYav1C3MX08wCFrSeJNNI2mKjzRVd6H0,1385 -django/contrib/contenttypes/locale/da/LC_MESSAGES/django.mo,sha256=EyancRrTWxM6KTpLq65gIQB0sO_PLtVr1ESN2v1pSNU,1038 -django/contrib/contenttypes/locale/da/LC_MESSAGES/django.po,sha256=J09u3IjLgv4g77Kea_WQAhevHb8DskGU-nVxyucYf_0,1349 -django/contrib/contenttypes/locale/de/LC_MESSAGES/django.mo,sha256=MGUZ4Gw8rSFjBO2OfFX9ooGGpJYwAapgNkc-GdBMXa0,1055 -django/contrib/contenttypes/locale/de/LC_MESSAGES/django.po,sha256=T5ucSqa6VyfUcoN6nFWBtjUkrSrz7wxr8t0NGTBrWow,1308 -django/contrib/contenttypes/locale/dsb/LC_MESSAGES/django.mo,sha256=QpdSZObmfb-DQZb3Oh6I1bFRnaPorXMznNZMyVIM7Hc,1132 -django/contrib/contenttypes/locale/dsb/LC_MESSAGES/django.po,sha256=_tNajamEnnf9FEjI-XBRraKjJVilwvpv2TBf9PAzPxw,1355 -django/contrib/contenttypes/locale/el/LC_MESSAGES/django.mo,sha256=1ySEbSEzhH1lDjHQK9Kv59PMA3ZPdqY8EJe6xEQejIM,1286 -django/contrib/contenttypes/locale/el/LC_MESSAGES/django.po,sha256=8rlMKE5SCLTtm1myjLFBtbEIFyuRmSrL9HS2PA7gneQ,1643 -django/contrib/contenttypes/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/contenttypes/locale/en/LC_MESSAGES/django.po,sha256=BRgOISCCJb4TU0dNxG4eeQJFe-aIe7U3GKLPip03d_Q,1110 -django/contrib/contenttypes/locale/en_AU/LC_MESSAGES/django.mo,sha256=dTndJxA-F1IE_nMUOtf1sRr7Kq2s_8yjgKk6mkWkVu4,486 -django/contrib/contenttypes/locale/en_AU/LC_MESSAGES/django.po,sha256=wmxyIJtz628AbsxgkB-MjdImcIJWhcW7NV3tWbDpedg,1001 -django/contrib/contenttypes/locale/en_GB/LC_MESSAGES/django.mo,sha256=_uM-jg43W7Pz8RQhMcR_o15wRkDaYD8aRcl2_NFGoNs,1053 -django/contrib/contenttypes/locale/en_GB/LC_MESSAGES/django.po,sha256=SyzwSvqAgKF8BEhXYh4598GYP583OK2GUXH1lc4iDMk,1298 -django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.mo,sha256=4EgHUHPb4TuK2DKf0dWOf7rNzJNsyT8CG39SQixI0oM,1072 -django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.po,sha256=gbxNuagxW01xLd3DY0Lc5UNNSlw1nEiBExzcElrB61E,1350 -django/contrib/contenttypes/locale/es/LC_MESSAGES/django.mo,sha256=KzgypFDwIlVzr_h9Dq2X8dXu3XnsbdSaHwJKJWZ6qc8,1096 -django/contrib/contenttypes/locale/es/LC_MESSAGES/django.po,sha256=Dpn9dTvdy87bVf3It8pZFOdEEKnO91bDeYyY1YujkIA,1456 -django/contrib/contenttypes/locale/es_AR/LC_MESSAGES/django.mo,sha256=WkHABVDmtKidPyo6zaYGVGrgXpe6tZ69EkxaIBu6mtg,1084 -django/contrib/contenttypes/locale/es_AR/LC_MESSAGES/django.po,sha256=yVSu_fJSKwS4zTlRud9iDochIaY0zOPILF59biVfkeY,1337 -django/contrib/contenttypes/locale/es_CO/LC_MESSAGES/django.mo,sha256=aACo1rOrgs_BYK3AWzXEljCdAc4bC3BXpyXrwE4lzAs,1158 -django/contrib/contenttypes/locale/es_CO/LC_MESSAGES/django.po,sha256=vemhoL-sESessGmIlHoRvtWICqF2aO05WvcGesUZBRM,1338 -django/contrib/contenttypes/locale/es_MX/LC_MESSAGES/django.mo,sha256=vD9rSUAZC_rgkwiOOsrrra07Gnx7yEpNHI96tr8xD3U,840 -django/contrib/contenttypes/locale/es_MX/LC_MESSAGES/django.po,sha256=tLgjAi9Z1kZloJFVQuUdAvyiJy1J-5QHfoWmxbqQZCc,1237 -django/contrib/contenttypes/locale/es_VE/LC_MESSAGES/django.mo,sha256=TVGDydYVg_jGfnYghk_cUFjCCtpGchuoTB4Vf0XJPYk,1152 -django/contrib/contenttypes/locale/es_VE/LC_MESSAGES/django.po,sha256=vJW37vuKYb_KpXBPmoNSqtNstFgCDlKmw-8iOoSCenU,1342 -django/contrib/contenttypes/locale/et/LC_MESSAGES/django.mo,sha256=TE84lZl6EP54-pgmv275jiTOW0vIsnsGU97qmtxMEVg,1028 -django/contrib/contenttypes/locale/et/LC_MESSAGES/django.po,sha256=KO9fhmRCx25VeHNDGXVNhoFx3VFH-6PSLVXZJ6ohOSA,1368 -django/contrib/contenttypes/locale/eu/LC_MESSAGES/django.mo,sha256=K0f1cXEhfg_djPzgCL9wC0iHGWF_JGIhWGFL0Y970g0,1077 -django/contrib/contenttypes/locale/eu/LC_MESSAGES/django.po,sha256=sSuVV0o8MeWN6BxlaeKcjKA3h4H29fCo1kKEtkczEp4,1344 -django/contrib/contenttypes/locale/fa/LC_MESSAGES/django.mo,sha256=hW3A3_9b-NlLS4u6qDnPS1dmNdn1UJCt-nihXvnXywI,1130 -django/contrib/contenttypes/locale/fa/LC_MESSAGES/django.po,sha256=TPiYsGGN-j-VD--Rentx1p-IcrNJYoYxrxDO_5xeZHI,1471 -django/contrib/contenttypes/locale/fi/LC_MESSAGES/django.mo,sha256=dWar3g1rJAkUG1xRLlmGkH63Fy_h2YqzhMVv0Z25aWc,1036 -django/contrib/contenttypes/locale/fi/LC_MESSAGES/django.po,sha256=yALWMFU8-gFD2G0NdWqIDIenrAMUY4VCW1oi8TJXFAc,1325 -django/contrib/contenttypes/locale/fr/LC_MESSAGES/django.mo,sha256=CTOu_JOAQeC72VX5z9cg8Bn3HtZsdgbtjA7XKcy681o,1078 -django/contrib/contenttypes/locale/fr/LC_MESSAGES/django.po,sha256=6LArEWoBpdaJa7UPcyv4HJKD3YoKUxrwGQGd16bi9DM,1379 -django/contrib/contenttypes/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 -django/contrib/contenttypes/locale/fy/LC_MESSAGES/django.po,sha256=SB07aEGG7n4oX_5rqHB6OnjpK_K0KwFM7YxaWYNpB_4,991 -django/contrib/contenttypes/locale/ga/LC_MESSAGES/django.mo,sha256=GYQYfYWbgwL3nQJR5d7XGjc5KeYYXsB0yRQJz7zxd_k,1097 -django/contrib/contenttypes/locale/ga/LC_MESSAGES/django.po,sha256=byvw9sQ9VLVjS7Au81LcNpxOzwA29_4Al9nB1ZyV2b4,1408 -django/contrib/contenttypes/locale/gd/LC_MESSAGES/django.mo,sha256=dQz7j45qlY3M1rL2fCVdPnuHMUdUcJ0K6cKgRD7Js2w,1154 -django/contrib/contenttypes/locale/gd/LC_MESSAGES/django.po,sha256=_hwx9XqeX5QYRFtDpEYkChswn8WMdYTQlbzL1LjREbY,1368 -django/contrib/contenttypes/locale/gl/LC_MESSAGES/django.mo,sha256=OS8R8sck0Q__XBw3M9brT4jOHmXYUHH71zU2a0mY0vQ,1080 -django/contrib/contenttypes/locale/gl/LC_MESSAGES/django.po,sha256=i-kmfgIuDtreavYL3mCc_BSRi-GmTklAsqE4AhP3wgk,1417 -django/contrib/contenttypes/locale/he/LC_MESSAGES/django.mo,sha256=oaxWykyc3N63WpxyHPI5CyhCTBqhM5-2Sasp_DNm1xc,1219 -django/contrib/contenttypes/locale/he/LC_MESSAGES/django.po,sha256=wCm08UMCiCa6y1-5E-7bEz-8Kd0oMRMwgzoEJjMwFyw,1486 -django/contrib/contenttypes/locale/hi/LC_MESSAGES/django.mo,sha256=KAZuQMKOvIPj3a7GrNJE3yhT70O2abCEF2GOsbwTE5A,1321 -django/contrib/contenttypes/locale/hi/LC_MESSAGES/django.po,sha256=PcsNgu2YmT0biklhwOF_nSvoGTvWVKw2IsBxIwSVAtI,1577 -django/contrib/contenttypes/locale/hr/LC_MESSAGES/django.mo,sha256=DbOUA8ks3phsEwQvethkwZ9-ymrd36aQ6mP7OnGdpjU,1167 -django/contrib/contenttypes/locale/hr/LC_MESSAGES/django.po,sha256=722KxvayO6YXByAmO4gfsfzyVbT-HqqrLYQsr02KDc8,1445 -django/contrib/contenttypes/locale/hsb/LC_MESSAGES/django.mo,sha256=tPtv_lIzCPIUjGkAYalnNIUxVUQFE3MShhVXTnfVx3Q,1106 -django/contrib/contenttypes/locale/hsb/LC_MESSAGES/django.po,sha256=rbI3G8ARG7DF7uEe82SYCfotBnKTRJJ641bGhjdptTQ,1329 -django/contrib/contenttypes/locale/hu/LC_MESSAGES/django.mo,sha256=2nsylOwBIDOnkUjE2GYU-JRvgs_zxent7q3_PuscdXk,1102 -django/contrib/contenttypes/locale/hu/LC_MESSAGES/django.po,sha256=Dzcf94ZSvJtyNW9EUKpmyNJ1uZbXPvc7dIxCccZrDYc,1427 -django/contrib/contenttypes/locale/hy/LC_MESSAGES/django.mo,sha256=hKOErB5dzj44ThQ1_nZHak2-aXZlwMoxYcDWmPb3Xo8,1290 -django/contrib/contenttypes/locale/hy/LC_MESSAGES/django.po,sha256=UeGzaghsEt9Lt5DsEzRb9KCbuphWUQwLayt4AN194ao,1421 -django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.mo,sha256=9B0XhxH0v3FvkEvS5MOHHqVbgV6KQITPrjzx1Sn76GA,1105 -django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.po,sha256=NX8jpTaIhtVbVlwEsOl5aufZ80ljHZZwqtsVVozQb4M,1318 -django/contrib/contenttypes/locale/id/LC_MESSAGES/django.mo,sha256=4-6RBAvrtA1PY3LNxMrgwzBLZE0ZKwWaXa7SmtmAIyk,1031 -django/contrib/contenttypes/locale/id/LC_MESSAGES/django.po,sha256=xdxEOgfta1kaXyQAngmmbL8wDQzJU6boC9HdbmoM1iI,1424 -django/contrib/contenttypes/locale/io/LC_MESSAGES/django.mo,sha256=3SSRXx4tYiMUc00LZ9kGHuvTgaWpsICEf5G208CEqgg,1051 -django/contrib/contenttypes/locale/io/LC_MESSAGES/django.po,sha256=1ku9WPcenn47DOF05HL2eRqghZeRYfklo2huYUrkeJ0,1266 -django/contrib/contenttypes/locale/is/LC_MESSAGES/django.mo,sha256=ZYWbT4qeaco8h_J9SGF2Bs7Rdu3auZ969xZ0RQ_03go,1049 -django/contrib/contenttypes/locale/is/LC_MESSAGES/django.po,sha256=iNdghSbBVPZmfrHu52hRG8vHMgGUfOjLqie09fYcuso,1360 -django/contrib/contenttypes/locale/it/LC_MESSAGES/django.mo,sha256=GSP0BJc3bGLoNS0tnhiz_5dtSh5NXCrBiZbnwEhWbpk,1075 -django/contrib/contenttypes/locale/it/LC_MESSAGES/django.po,sha256=njEgvhDwWOc-CsGBDz1_mtEsXx2aTU6cP3jZzcLkkYk,1457 -django/contrib/contenttypes/locale/ja/LC_MESSAGES/django.mo,sha256=tVH6RvZ5tXz56lEM3aoJtFp5PKsSR-XXpi8ZNCHjiFw,1211 -django/contrib/contenttypes/locale/ja/LC_MESSAGES/django.po,sha256=5_-Uo7Ia3X9gAWm2f72ezQnNr_pQzf6Ax4AUutULuZU,1534 -django/contrib/contenttypes/locale/ka/LC_MESSAGES/django.mo,sha256=1_yGL68sK0QG_mhwFAVdksiDlB57_1W5QkL7NGGE5L0,1429 -django/contrib/contenttypes/locale/ka/LC_MESSAGES/django.po,sha256=6iUBbKjXsIgrq7Dj_xhxzoxItSSSKwQjIZsDayefGr8,1654 -django/contrib/contenttypes/locale/kk/LC_MESSAGES/django.mo,sha256=SNY0vydwLyR2ExofAHjmg1A2ykoLI7vU5Ryq-QFu5Gs,627 -django/contrib/contenttypes/locale/kk/LC_MESSAGES/django.po,sha256=PU-NAl6xUEeGV0jvJx9siVBTZIzHywL7oKc4DgUjNkc,1130 -django/contrib/contenttypes/locale/km/LC_MESSAGES/django.mo,sha256=BXifukxf48Lr0t0V3Y0GJUMhD1KiHN1wwbueoK0MW1A,678 -django/contrib/contenttypes/locale/km/LC_MESSAGES/django.po,sha256=fTPlBbnaNbLZxjzJutGvqe33t6dWsEKiHQYaw27m7KQ,1123 -django/contrib/contenttypes/locale/kn/LC_MESSAGES/django.mo,sha256=a4sDGaiyiWn-1jFozYI4vdAvuHXrs8gbZErP_SAUk9Y,714 -django/contrib/contenttypes/locale/kn/LC_MESSAGES/django.po,sha256=A6Vss8JruQcPUKQvY-zaubVZDTLEPwHsnd_rXcyzQUs,1168 -django/contrib/contenttypes/locale/ko/LC_MESSAGES/django.mo,sha256=myRfFxf2oKcbpmCboongTsL72RTM95nEmAC938M-ckE,1089 -django/contrib/contenttypes/locale/ko/LC_MESSAGES/django.po,sha256=uui_LhgGTrW0uo4p-oKr4JUzhjvkLbFCqRVLNMrptzY,1383 -django/contrib/contenttypes/locale/ky/LC_MESSAGES/django.mo,sha256=ULoIe36zGKPZZs113CenA6J9HviYcBOKagXrPGxyBUI,1182 -django/contrib/contenttypes/locale/ky/LC_MESSAGES/django.po,sha256=FnW5uO8OrTYqbvoRuZ6gnCD6CHnuLjN00s2Jo1HX1NE,1465 -django/contrib/contenttypes/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 -django/contrib/contenttypes/locale/lb/LC_MESSAGES/django.po,sha256=dwVKpCRYmXTD9h69v5ivkZe-yFtvdZNZ3VfuyIl4olY,989 -django/contrib/contenttypes/locale/lt/LC_MESSAGES/django.mo,sha256=HucsRl-eqfxw6ESTuXvl7IGjPGYSI9dxM5lMly_P1sc,1215 -django/contrib/contenttypes/locale/lt/LC_MESSAGES/django.po,sha256=odzYqHprxKFIrR8TzdxA4WeeMK0W0Nvn2gAVuzAsEqI,1488 -django/contrib/contenttypes/locale/lv/LC_MESSAGES/django.mo,sha256=nWfy7jv2VSsKYT6yhk_xqxjk1TlppJfsQcurC40CeTs,1065 -django/contrib/contenttypes/locale/lv/LC_MESSAGES/django.po,sha256=pHlbzgRpIJumDMp2rh1EKrxFBg_DRcvLLgkQ3mi_L0s,1356 -django/contrib/contenttypes/locale/mk/LC_MESSAGES/django.mo,sha256=KTFZWm0F4S6lmi1FX76YKOyJqIZN5cTsiTBI_D4ADHs,1258 -django/contrib/contenttypes/locale/mk/LC_MESSAGES/django.po,sha256=mQZosS90S-Bil6-EoGjs9BDWYlvOF6mtUDZ8h9NxEdE,1534 -django/contrib/contenttypes/locale/ml/LC_MESSAGES/django.mo,sha256=rtmLWfuxJED-1KuqkUT8F5CU1KGJP0Of718n2Gl_gI0,1378 -django/contrib/contenttypes/locale/ml/LC_MESSAGES/django.po,sha256=Z-kL9X9CD7rYfa4Uoykye2UgCNQlgyql0HTv1eUXAf4,1634 -django/contrib/contenttypes/locale/mn/LC_MESSAGES/django.mo,sha256=J6kKYjUOsQxptNXDcCaY4d3dHJio4HRibRk3qfwO6Xc,1225 -django/contrib/contenttypes/locale/mn/LC_MESSAGES/django.po,sha256=x8aRJH2WQvMBBWlQt3T3vpV4yHeZXLmRTT1U0at4ZIk,1525 -django/contrib/contenttypes/locale/mr/LC_MESSAGES/django.mo,sha256=2Z5jaGJzpiJTCnhCk8ulCDeAdj-WwR99scdHFPRoHoA,468 -django/contrib/contenttypes/locale/mr/LC_MESSAGES/django.po,sha256=FgZKD9E-By0NztUnBM4llpR59K0MJSIMZIrJYGKDqpc,983 -django/contrib/contenttypes/locale/ms/LC_MESSAGES/django.mo,sha256=EIwbOZ0QahW9AFFWRmRdKGKBtYYY_eTcfU4eqDVSVxw,1035 -django/contrib/contenttypes/locale/ms/LC_MESSAGES/django.po,sha256=t7nKsOMxycn_CsXw2nIfU-owJRge3FAixgbTsDhffvo,1225 -django/contrib/contenttypes/locale/my/LC_MESSAGES/django.mo,sha256=YYa2PFe9iJygqL-LZclfpgR6rBmIvx61JRpBkKS6Hrs,1554 -django/contrib/contenttypes/locale/my/LC_MESSAGES/django.po,sha256=6F3nXd9mBc-msMchkC8OwAHME1x1O90xrsZp7xmynpU,1732 -django/contrib/contenttypes/locale/nb/LC_MESSAGES/django.mo,sha256=EHU9Lm49U7WilR5u-Lq0Fg8ChR_OzOce4UyPlkZ6Zs4,1031 -django/contrib/contenttypes/locale/nb/LC_MESSAGES/django.po,sha256=lbktPYsJudrhe4vxnauzpzN9eNwyoVs0ZmZSdkwjkOk,1403 -django/contrib/contenttypes/locale/ne/LC_MESSAGES/django.mo,sha256=-zZAn5cex4PkScoZVqS74PUMThJJuovZSk3WUKZ8hnw,1344 -django/contrib/contenttypes/locale/ne/LC_MESSAGES/django.po,sha256=1ZCUkulQ9Gxb50yMKFKWaTJli2SinBeNj0KpXkKpsNE,1519 -django/contrib/contenttypes/locale/nl/LC_MESSAGES/django.mo,sha256=aXDHgg891TyTiMWNcbNaahfZQ2hqtl5yTkx5gNRocMU,1040 -django/contrib/contenttypes/locale/nl/LC_MESSAGES/django.po,sha256=zDJ_vyQxhP0mP06U-e4p6Uj6v1g863s8oaxc0JIAMjg,1396 -django/contrib/contenttypes/locale/nn/LC_MESSAGES/django.mo,sha256=a_X8e2lMieWwUtENJueBr8wMvkw6at0QSaWXd5AM6yQ,1040 -django/contrib/contenttypes/locale/nn/LC_MESSAGES/django.po,sha256=xFSirHUAKv78fWUpik6xv-6WQSEoUgN5jjPbTOy58C4,1317 -django/contrib/contenttypes/locale/os/LC_MESSAGES/django.mo,sha256=QV533Wu-UpjV3XiCe83jlz7XGuwgRviV0ggoeMaIOIY,1116 -django/contrib/contenttypes/locale/os/LC_MESSAGES/django.po,sha256=UZahnxo8z6oWJfEz4JNHGng0EAifXYtJupB6lx0JB60,1334 -django/contrib/contenttypes/locale/pa/LC_MESSAGES/django.mo,sha256=qacd7eywof8rvJpstNfEmbHgvDiQ9gmkcyG7gfato8s,697 -django/contrib/contenttypes/locale/pa/LC_MESSAGES/django.po,sha256=Kq2NTzdbgq8Q9jLLgV-ZJaSRj43D1dDHcRIgNnJXu-s,1145 -django/contrib/contenttypes/locale/pl/LC_MESSAGES/django.mo,sha256=J5sC36QwKLvrMB4adsojhuw2kYuEckHz6eoTrZwYcnI,1208 -django/contrib/contenttypes/locale/pl/LC_MESSAGES/django.po,sha256=gxP59PjlIHKSiYZcbgIY4PUZSoKYx4YKCpm4W4Gj22g,1577 -django/contrib/contenttypes/locale/pt/LC_MESSAGES/django.mo,sha256=MjyyKlA75YtEG9m6hm0GxKhU-cF3m1PA_j63BuIPPlE,1125 -django/contrib/contenttypes/locale/pt/LC_MESSAGES/django.po,sha256=X2Rec6LXIqPa9AVqF4J2mzYrwfls1BdUfN8XOe0zkdQ,1379 -django/contrib/contenttypes/locale/pt_BR/LC_MESSAGES/django.mo,sha256=qjl-3fBqNcAuoviGejjILC7Z8XmrRd7gHwOgwu1x1zw,1117 -django/contrib/contenttypes/locale/pt_BR/LC_MESSAGES/django.po,sha256=Xp0iBhseS8v13zjDcNQv4BDaroMtDJVs4-BzNc0UOpU,1494 -django/contrib/contenttypes/locale/ro/LC_MESSAGES/django.mo,sha256=sCthDD10v7GY2cui9Jj9HK8cofVEg2WERCm6aktOM-4,1142 -django/contrib/contenttypes/locale/ro/LC_MESSAGES/django.po,sha256=n-BPEfua0Gd6FN0rsP7qAlTGbQEZ14NnDMA8jI2844Y,1407 -django/contrib/contenttypes/locale/ru/LC_MESSAGES/django.mo,sha256=OSf206SFmVLULHmwVhTaRhWTQtyDKsxe03gIzuvAUnY,1345 -django/contrib/contenttypes/locale/ru/LC_MESSAGES/django.po,sha256=xHyJYD66r8We3iN5Hqo69syWkjhz4zM7X9BWPIiI6mU,1718 -django/contrib/contenttypes/locale/sk/LC_MESSAGES/django.mo,sha256=xf95XGPB9Tyz7p8JH1aqiY4BYMkug2cnN5gNNlHV7xU,1082 -django/contrib/contenttypes/locale/sk/LC_MESSAGES/django.po,sha256=wqbW-x6NEJU7nIAmYnKw9ncgmrcD3TKW7aPg7rIiX_M,1395 -django/contrib/contenttypes/locale/sl/LC_MESSAGES/django.mo,sha256=sMML-ubI_9YdKptzeri1du8FOdKcEzJbe4Tt0J4ePFI,1147 -django/contrib/contenttypes/locale/sl/LC_MESSAGES/django.po,sha256=0zxiyzRWWDNVpNNLlcwl-OLh5sLukma1vm-kYrGHYrE,1392 -django/contrib/contenttypes/locale/sq/LC_MESSAGES/django.mo,sha256=jYDQH3OpY4Vx9hp6ISFMI88uxBa2GDQK0BkLGm8Qulk,1066 -django/contrib/contenttypes/locale/sq/LC_MESSAGES/django.po,sha256=JIvguXVOFpQ3MRqRXHpxlg8_YhEzCsZBBMdpekYTxlk,1322 -django/contrib/contenttypes/locale/sr/LC_MESSAGES/django.mo,sha256=GUXj97VN15HdY7XMy5jmMLEu13juD3To5NsztcoyPGs,1204 -django/contrib/contenttypes/locale/sr/LC_MESSAGES/django.po,sha256=T1w_EeB6yT-PXr7mrwzqu270linf_KY3_ZCgl4wfLAQ,1535 -django/contrib/contenttypes/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=m2plistrI8O-ztAs5HmDYXG8N_wChaDfXFev0GYWVys,1102 -django/contrib/contenttypes/locale/sr_Latn/LC_MESSAGES/django.po,sha256=lJrhLPDbJAcXgBPco-_lfUXqs31imj_vGwE5p1EXZjk,1390 -django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.mo,sha256=J5ha8X6jnQ4yuafk-JCqPM5eIGNwKpDOpTwIVCrnGNE,1055 -django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.po,sha256=HeKnQJaRNflAbKxTiC_2EFAg2Sx-e3nDXrReJyVoNTQ,1400 -django/contrib/contenttypes/locale/sw/LC_MESSAGES/django.mo,sha256=XLPle0JYPPkmm5xpJRmWztMTF1_3a2ZubWE4ur2sav8,563 -django/contrib/contenttypes/locale/sw/LC_MESSAGES/django.po,sha256=jRc8Eh6VuWgqc4kM-rxjbVE3yV9uip6mOJLdD6yxGLM,1009 -django/contrib/contenttypes/locale/ta/LC_MESSAGES/django.mo,sha256=L3eF4z9QSmIPqzEWrNk8-2uLteQUMsuxiD9VZyRuSfo,678 -django/contrib/contenttypes/locale/ta/LC_MESSAGES/django.po,sha256=iDb9lRU_-YPmO5tEQeXEZeGeFe-wVZy4k444sp_vTgw,1123 -django/contrib/contenttypes/locale/te/LC_MESSAGES/django.mo,sha256=S_UF_mZbYfScD6Z36aB-kwtTflTeX3Wt4k7z_pEcOV8,690 -django/contrib/contenttypes/locale/te/LC_MESSAGES/django.po,sha256=aAGMMoJPg_pF9_rCNZmda5A_TvDCvQfYEL64Xdoa4jo,1135 -django/contrib/contenttypes/locale/tg/LC_MESSAGES/django.mo,sha256=dkLic6fD2EMzrB7m7MQazaGLoJ_pBw55O4nYZc5UYEs,864 -django/contrib/contenttypes/locale/tg/LC_MESSAGES/django.po,sha256=1nv1cVJewfr44gbQh1Szzy3DT4Y9Dy7rUgAZ81otJQs,1232 -django/contrib/contenttypes/locale/th/LC_MESSAGES/django.mo,sha256=qilt-uZMvt0uw-zFz7-eCmkGEx3XYz7NNo9Xbq3s7uI,1186 -django/contrib/contenttypes/locale/th/LC_MESSAGES/django.po,sha256=42F34fNEn_3yQKBBJnCLttNeyktuLVpilhMyepOd6dg,1444 -django/contrib/contenttypes/locale/tk/LC_MESSAGES/django.mo,sha256=0fuA3E487-pceoGpX9vMCwSnCItN_pbLUIUzzcrAGOE,1068 -django/contrib/contenttypes/locale/tk/LC_MESSAGES/django.po,sha256=pS8wX9dzxys3q8Vvz3PyoVJYqplXhNuAqfq7Dsb07fw,1283 -django/contrib/contenttypes/locale/tr/LC_MESSAGES/django.mo,sha256=gKg2FCxs2fHpDB1U6gh9xrP7mOpYG65pB4CNmdPYiDg,1057 -django/contrib/contenttypes/locale/tr/LC_MESSAGES/django.po,sha256=gmI3RDhq39IlDuvNohT_FTPY5QG8JD0gFxG5CTsvVZs,1345 -django/contrib/contenttypes/locale/tt/LC_MESSAGES/django.mo,sha256=_LQ1N04FgosdDLUYXJOEqpCB2Mg92q95cBRgYPi1MyY,659 -django/contrib/contenttypes/locale/tt/LC_MESSAGES/django.po,sha256=L7wMMpxGnpQiKd_mjv2bJpE2iqCJ8XwiXK0IN4EHSbM,1110 -django/contrib/contenttypes/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 -django/contrib/contenttypes/locale/udm/LC_MESSAGES/django.po,sha256=YVyej0nAhhEf7knk4vCeRQhmSQeGZLhMPPXyIyWObnM,977 -django/contrib/contenttypes/locale/uk/LC_MESSAGES/django.mo,sha256=GgAuuLexfhYl1fRKPfZI5uMTkt2H42Ogil6MQHcejkU,1404 -django/contrib/contenttypes/locale/uk/LC_MESSAGES/django.po,sha256=1HzO_Wmxqk0Kd5gtACKZODiH8ZEpOf5Eh8Mkrg3IMf8,1779 -django/contrib/contenttypes/locale/ur/LC_MESSAGES/django.mo,sha256=OJs_EmDBps-9a_KjFJnrS8IqtJfd25LaSWeyG8u8UfI,671 -django/contrib/contenttypes/locale/ur/LC_MESSAGES/django.po,sha256=f0FnsaAM_qrBuCXzLnkBrW5uFfVc6pUh7S-qp4918Ng,1122 -django/contrib/contenttypes/locale/vi/LC_MESSAGES/django.mo,sha256=kGYgEI1gHkyU4y_73mBJN1hlKC2JujVXMg6iCdWncDg,1155 -django/contrib/contenttypes/locale/vi/LC_MESSAGES/django.po,sha256=RIDUgsElfRF8bvBdUKtshizuMnupdMGAM896s7qZKD4,1439 -django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=RviK0bqLZzPrZ46xUpc0f8IKkw3JLtsrt0gNA74Ypj0,1015 -django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.po,sha256=vSKJDEQ_ANTj3-W8BFJd9u_QGdTMF12iS15rVgeujOs,1380 -django/contrib/contenttypes/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=NMumOJ9dPX-7YjQH5Obm4Yj0-lnGXJmCMN5DGbsLQG4,1046 -django/contrib/contenttypes/locale/zh_Hant/LC_MESSAGES/django.po,sha256=7WIqYRpcs986MjUsegqIido5k6HG8d3FVvkrOQCRVCI,1338 -django/contrib/contenttypes/management/__init__.py,sha256=ZVHVJAYi_jCIXxWUZSkxq0IDECe6bvbFsWayrqbutfc,4937 -django/contrib/contenttypes/management/__pycache__/__init__.cpython-312.pyc,, -django/contrib/contenttypes/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/contenttypes/management/commands/__pycache__/__init__.cpython-312.pyc,, -django/contrib/contenttypes/management/commands/__pycache__/remove_stale_contenttypes.cpython-312.pyc,, -django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py,sha256=t2IpqEgqW7bmS6o59arCGWA7G95fg1r7oVGUny6syao,4533 -django/contrib/contenttypes/migrations/0001_initial.py,sha256=Ne2EiaFH4LQqFcIbXU8OiUDeb3P7Mm6dbeqRtNC5U8w,1434 -django/contrib/contenttypes/migrations/0002_remove_content_type_name.py,sha256=fTZJQHV1Dw7TwPaNDLFUjrpZzFk_UvaR9sw3oEMIN2Y,1199 -django/contrib/contenttypes/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/contenttypes/migrations/__pycache__/0001_initial.cpython-312.pyc,, -django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-312.pyc,, -django/contrib/contenttypes/migrations/__pycache__/__init__.cpython-312.pyc,, -django/contrib/contenttypes/models.py,sha256=9GAtPa7R8DQRNahb7eQJhVPXba8F36R9Yp2e8ViEOZo,6890 -django/contrib/contenttypes/views.py,sha256=HBoIbNpgHTQN5pH8mul77UMEMZHbbkEH_Qdln-XFgd0,3549 -django/contrib/flatpages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/flatpages/__pycache__/__init__.cpython-312.pyc,, -django/contrib/flatpages/__pycache__/admin.cpython-312.pyc,, -django/contrib/flatpages/__pycache__/apps.cpython-312.pyc,, -django/contrib/flatpages/__pycache__/forms.cpython-312.pyc,, -django/contrib/flatpages/__pycache__/middleware.cpython-312.pyc,, -django/contrib/flatpages/__pycache__/models.cpython-312.pyc,, -django/contrib/flatpages/__pycache__/sitemaps.cpython-312.pyc,, -django/contrib/flatpages/__pycache__/urls.cpython-312.pyc,, -django/contrib/flatpages/__pycache__/views.cpython-312.pyc,, -django/contrib/flatpages/admin.py,sha256=ynemOSDgvKoCfRFLXZrPwj27U0mPUXmxdrue7SOZeqQ,701 -django/contrib/flatpages/apps.py,sha256=_OlaDxWbMrUmFNCS4u-RnBsg67rCWs8Qzh_c58wvtXA,252 -django/contrib/flatpages/forms.py,sha256=MyuENmsP1Wn01frdVSug7JnabiwoHf8nm-PthAlcoQw,2493 -django/contrib/flatpages/locale/af/LC_MESSAGES/django.mo,sha256=c0XEKXJYgpy2snfmWFPQqeYeVla1F5s_wXIBaioiyPc,2297 -django/contrib/flatpages/locale/af/LC_MESSAGES/django.po,sha256=_psp14JfICDxrKx_mKF0uLnItkJPkCNMvrNOyE35nFw,2428 -django/contrib/flatpages/locale/ar/LC_MESSAGES/django.mo,sha256=dBHaqsaKH9QOIZ0h2lIDph8l9Bv2UAcD-Hr9TAxj8Ac,2636 -django/contrib/flatpages/locale/ar/LC_MESSAGES/django.po,sha256=-0ZdfA-sDU8fOucgT2Ow1iM3QnRMuQeslMOSwYhAH9M,2958 -django/contrib/flatpages/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=jp6sS05alESJ4-SbEIf574UPVcbllAd_J-FW802lGyk,2637 -django/contrib/flatpages/locale/ar_DZ/LC_MESSAGES/django.po,sha256=yezpjWcROwloS08TEMo9oPXDKS1mfFE9NYI66FUuLaA,2799 -django/contrib/flatpages/locale/ast/LC_MESSAGES/django.mo,sha256=4SEsEE2hIZJwQUNs8jDgN6qVynnUYJUIE4w-usHKA6M,924 -django/contrib/flatpages/locale/ast/LC_MESSAGES/django.po,sha256=5UlyS59bVo1lccM6ZgdYSgHe9NLt_WeOdXX-swLKubU,1746 -django/contrib/flatpages/locale/az/LC_MESSAGES/django.mo,sha256=6ID6KejChxQzsUT4wevUAjd9u7Ly21mfJ22dgbitNN4,2373 -django/contrib/flatpages/locale/az/LC_MESSAGES/django.po,sha256=v7tkbuUUqkbUzXoOOWxS75TpvuMESqoZAEXDXisfbiA,2679 -django/contrib/flatpages/locale/be/LC_MESSAGES/django.mo,sha256=mOQlbfwwIZiwWCrFStwag2irCwsGYsXIn6wZDsPRvyA,2978 -django/contrib/flatpages/locale/be/LC_MESSAGES/django.po,sha256=wlIfhun5Jd6gxbkmmYPSIy_tzPVmSu4CjMwPzBNnvpo,3161 -django/contrib/flatpages/locale/bg/LC_MESSAGES/django.mo,sha256=9Un5mKtsAuNeYWFQKFkIyCpQquE6qVD3zIrFoq8sCDI,2802 -django/contrib/flatpages/locale/bg/LC_MESSAGES/django.po,sha256=Vr6d-9XjgK4_eXdWY3FEpdTlCEGgbCv93bLGyMTE9hs,3104 -django/contrib/flatpages/locale/bn/LC_MESSAGES/django.mo,sha256=2oK2Rm0UtAI7QFRwpUR5aE3-fOltE6kTilsTbah737Y,2988 -django/contrib/flatpages/locale/bn/LC_MESSAGES/django.po,sha256=QrbX69iqXOD6oByLcgPkD1QzAkfthpfTjezIFQ-6kVg,3172 -django/contrib/flatpages/locale/br/LC_MESSAGES/django.mo,sha256=SKbykdilX_NcpkVi_lHF8LouB2G49ZAzdF09xw49ERc,2433 -django/contrib/flatpages/locale/br/LC_MESSAGES/django.po,sha256=O_mwrHIiEwV4oB1gZ7Yua4nVKRgyIf3j5UtedZWAtwk,2783 -django/contrib/flatpages/locale/bs/LC_MESSAGES/django.mo,sha256=bd7ID7OsEhp57JRw_TXoTwsVQNkFYiR_sxSkgi4WvZU,1782 -django/contrib/flatpages/locale/bs/LC_MESSAGES/django.po,sha256=IyFvI5mL_qesEjf6NO1nNQbRHhCAZQm0UhIpmGjrSwQ,2233 -django/contrib/flatpages/locale/ca/LC_MESSAGES/django.mo,sha256=GcMVbg4i5zKCd2Su7oN30WVJN7Q9K7FsFifgTB8jDPI,2237 -django/contrib/flatpages/locale/ca/LC_MESSAGES/django.po,sha256=-aJHSbWPVyNha_uF6R35Q6yn4-Hse3jTInr9jtaxKOI,2631 -django/contrib/flatpages/locale/ckb/LC_MESSAGES/django.mo,sha256=ds26zJRsUHDNdhoUJ8nsLtBdKDhN29Kb51wNiB8Llgo,2716 -django/contrib/flatpages/locale/ckb/LC_MESSAGES/django.po,sha256=jqqMYjrplyX8jtyBLd1ObMEwoFmaETmNXrO3tg2S0BY,2918 -django/contrib/flatpages/locale/cs/LC_MESSAGES/django.mo,sha256=8nwep22P86bMCbW7sj4n0BMGl_XaJIJV0fjnVp-_dqY,2340 -django/contrib/flatpages/locale/cs/LC_MESSAGES/django.po,sha256=1agUeRthwpam1UvZY4vRnZtLLbiop75IEXb6ul_e3mg,2611 -django/contrib/flatpages/locale/cy/LC_MESSAGES/django.mo,sha256=zr_2vsDZsrby3U8AmvlJMU3q1U_4IrrTmz6oS29OWtQ,2163 -django/contrib/flatpages/locale/cy/LC_MESSAGES/django.po,sha256=E_NC_wtuhWKYKB3YvYGB9ccJgKI3AfIZlB2HpXSyOsk,2370 -django/contrib/flatpages/locale/da/LC_MESSAGES/django.mo,sha256=nALoI50EvFPa4f3HTuaHUHATF1zHMjo4v5zcHj4n6sA,2277 -django/contrib/flatpages/locale/da/LC_MESSAGES/django.po,sha256=j4dpnreB7LWdZO7Drj7E9zBwFx_Leuj7ZLyEPi-ccAQ,2583 -django/contrib/flatpages/locale/de/LC_MESSAGES/django.mo,sha256=I4CHFzjYM_Wd-vuIYOMf8E58ntOgkLmgOAg35Chdz3s,2373 -django/contrib/flatpages/locale/de/LC_MESSAGES/django.po,sha256=P6tPVPumP9JwBIv-XXi1QQYJyj1PY3OWoM4yOAmgTRE,2592 -django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.mo,sha256=oTILSe5teHa9XTYWoamstpyPu02yb_xo8S0AtkP7WP8,2391 -django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.po,sha256=1xD2aH5alerranvee6QLZqgxDVXxHThXCHR4kOJAV48,2576 -django/contrib/flatpages/locale/el/LC_MESSAGES/django.mo,sha256=LQ8qIGwzoKwewtLz_1NhnhEeR4dPx2rrQ_hAN4BF6Og,2864 -django/contrib/flatpages/locale/el/LC_MESSAGES/django.po,sha256=gbLO52fcZK7LoG5Rget2Aq5PTFoz467ackXpSsR81kY,3221 -django/contrib/flatpages/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/flatpages/locale/en/LC_MESSAGES/django.po,sha256=0bNWKiu-1MkHFJ_UWrCLhp9ENr-pHzBz1lkhBkkrhJM,2169 -django/contrib/flatpages/locale/en_AU/LC_MESSAGES/django.mo,sha256=dTt7KtwiEyMEKYVzkPSqs6VS0CiUfK7ISz2c6rV2erA,2210 -django/contrib/flatpages/locale/en_AU/LC_MESSAGES/django.po,sha256=_V4RTf0JtmyU7DRQv7jIwtPJs05KA2THPid5nKQ0ego,2418 -django/contrib/flatpages/locale/en_GB/LC_MESSAGES/django.mo,sha256=7zyXYOsqFkUGxclW-VPPxrQTZKDuiYQ7MQJy4m8FClo,1989 -django/contrib/flatpages/locale/en_GB/LC_MESSAGES/django.po,sha256=oHrBd6lVnO7-SdnO-Taa7iIyiqp_q2mQZjkuuU3Qa_s,2232 -django/contrib/flatpages/locale/eo/LC_MESSAGES/django.mo,sha256=W8TkkQkV58oOvFdKCPAyoQNyCxSmfErwik1U8a_W5nE,2333 -django/contrib/flatpages/locale/eo/LC_MESSAGES/django.po,sha256=e54WOtIcIQLjB4bJGol51z6d6dwLBiiJN2k-nrTQlaI,2750 -django/contrib/flatpages/locale/es/LC_MESSAGES/django.mo,sha256=9Q7Qf1eSPvAfPTZSGWq7QMWrROY-CnpUkeRpiH8rpJw,2258 -django/contrib/flatpages/locale/es/LC_MESSAGES/django.po,sha256=3vGZ3uVCyWnIkDSUt6DMMOqyphv3EQteTPLx7e9J_sU,2663 -django/contrib/flatpages/locale/es_AR/LC_MESSAGES/django.mo,sha256=bUnFDa5vpxl27kn2ojTbNaCmwRkBCH-z9zKXAvXe3Z0,2275 -django/contrib/flatpages/locale/es_AR/LC_MESSAGES/django.po,sha256=vEg3wjL_7Ee-PK4FZTaGRCXFscthkoH9szJ7H01K8w8,2487 -django/contrib/flatpages/locale/es_CO/LC_MESSAGES/django.mo,sha256=jt8wzeYky5AEnoNuAv8W4nGgd45XsMbpEdRuLnptr3U,2140 -django/contrib/flatpages/locale/es_CO/LC_MESSAGES/django.po,sha256=xrbAayPoxT7yksXOGPb-0Nc-4g14UmWANaKTD4ItAFA,2366 -django/contrib/flatpages/locale/es_MX/LC_MESSAGES/django.mo,sha256=Y5IOKRzooJHIhJzD9q4PKOe39Z4Rrdz8dBKuvmGkqWU,2062 -django/contrib/flatpages/locale/es_MX/LC_MESSAGES/django.po,sha256=Y-EXhw-jISttA9FGMz7gY_kB-hQ3wEyKEaOc2gu2hKQ,2246 -django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.mo,sha256=EI6WskepXUmbwCPBNFKqLGNcWFVZIbvXayOHxOCLZKo,2187 -django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.po,sha256=ipG6a0A2d0Pyum8GcknA-aNExVLjSyuUqbgHM9VdRQo,2393 -django/contrib/flatpages/locale/et/LC_MESSAGES/django.mo,sha256=zriqETEWD-DDPiNzXgAzgEhjvPAaTo7KBosyvBebyc0,2233 -django/contrib/flatpages/locale/et/LC_MESSAGES/django.po,sha256=tMuITUlzy6LKJh3X3CxssFpTQogg8OaGHlKExzjwyOI,2525 -django/contrib/flatpages/locale/eu/LC_MESSAGES/django.mo,sha256=FoKazUkuPpDgsEEI6Gm-xnZYVHtxILiy6Yzvnu8y-L0,2244 -django/contrib/flatpages/locale/eu/LC_MESSAGES/django.po,sha256=POPFB5Jd8sE9Z_ivYSdnet14u-aaXneTUNDMuOrJy00,2478 -django/contrib/flatpages/locale/fa/LC_MESSAGES/django.mo,sha256=2rA7-OR8lQbl_ZhlAC4cmHEmQ9mwxnA8q5M-gx3NmVQ,2612 -django/contrib/flatpages/locale/fa/LC_MESSAGES/django.po,sha256=_-yKW2xIN9XSXEwZTdkhEpRHJoacN8f56D3AkCvlFs0,3006 -django/contrib/flatpages/locale/fi/LC_MESSAGES/django.mo,sha256=VsQdof8hE_AKQGS-Qp82o8PTN_7NxxEdxelGenIAE-8,2256 -django/contrib/flatpages/locale/fi/LC_MESSAGES/django.po,sha256=RL7eruNkgDjr1b3cF2yCqeM8eDKHwAqF6h8hYuxl6R4,2552 -django/contrib/flatpages/locale/fr/LC_MESSAGES/django.mo,sha256=ZqD4O3_Ny8p5i6_RVHlANCnPiowMd19Qi_LOPfTHav4,2430 -django/contrib/flatpages/locale/fr/LC_MESSAGES/django.po,sha256=liAoOgT2CfpANL_rYzyzsET1MhsM19o7wA2GBnoDvMA,2745 -django/contrib/flatpages/locale/fy/LC_MESSAGES/django.mo,sha256=DRsFoZKo36F34XaiQg_0KUOr3NS_MG3UHptzOI4uEAU,476 -django/contrib/flatpages/locale/fy/LC_MESSAGES/django.po,sha256=9JIrRVsPL1m0NPN6uHiaAYxJXHp5IghZmQhVSkGo5g8,1523 -django/contrib/flatpages/locale/ga/LC_MESSAGES/django.mo,sha256=KKvDhZULHQ4JQ_31ltLkk88H2BKUbBXDQFSvdKFqjn8,2191 -django/contrib/flatpages/locale/ga/LC_MESSAGES/django.po,sha256=Yat7oU2XPQFQ8vhNq1nJFAlX2rqfxz4mjpU5TcnaYO8,2400 -django/contrib/flatpages/locale/gd/LC_MESSAGES/django.mo,sha256=KbaTL8kF9AxDBLDQWlxcP5hZ4zWnbkvY0l2xRKZ9Dg0,2469 -django/contrib/flatpages/locale/gd/LC_MESSAGES/django.po,sha256=DVY_1R0AhIaI1qXIeRej3XSHMtlimeKNUwzFjc4OmwA,2664 -django/contrib/flatpages/locale/gl/LC_MESSAGES/django.mo,sha256=e8hfOxRyLtCsvdd1FVGuI_dnsptVhfW_O9KyuPT0ENk,2256 -django/contrib/flatpages/locale/gl/LC_MESSAGES/django.po,sha256=YqyR8qnKho8jK03igqPv9KlJw5yVIIDCAGc5z2QxckE,2583 -django/contrib/flatpages/locale/he/LC_MESSAGES/django.mo,sha256=PbypHBhT3W_rp37u8wvaCJdtYB4IP-UeE02VUvSHPf0,2517 -django/contrib/flatpages/locale/he/LC_MESSAGES/django.po,sha256=f7phCRqJPFL7CsuSE1xg9xlaBoOpdd-0zoTYotff29M,2827 -django/contrib/flatpages/locale/hi/LC_MESSAGES/django.mo,sha256=w29ukoF48C7iJ6nE045YoWi7Zcrgu_oXoxT-r6gcQy8,2770 -django/contrib/flatpages/locale/hi/LC_MESSAGES/django.po,sha256=nXq5y1FqMGVhpXpQVdV3uU5JcUtBc2BIrf-n__C2q30,3055 -django/contrib/flatpages/locale/hr/LC_MESSAGES/django.mo,sha256=Mt4gpBuUXvcBl8K714ls4PimHQqee82jFxY1BEAYQOE,2188 -django/contrib/flatpages/locale/hr/LC_MESSAGES/django.po,sha256=ZbUMJY6a-os-xDmcDCJNrN4-YqRe9b_zJ4V5gt2wlGI,2421 -django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.mo,sha256=Pk44puT-3LxzNdGYxMALWpFdw6j6W0G-dWwAfv8sopI,2361 -django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.po,sha256=mhnBXgZSK19E4JU8p2qzqyZqozSzltK-3iY5glr9WG8,2538 -django/contrib/flatpages/locale/hu/LC_MESSAGES/django.mo,sha256=rZxICk460iWBubNq53g9j2JfKIw2W7OqyPG5ylGE92s,2363 -django/contrib/flatpages/locale/hu/LC_MESSAGES/django.po,sha256=DDP7OLBkNbWXr-wiulmQgG461qAubJ8VrfCCXbyPk2g,2700 -django/contrib/flatpages/locale/hy/LC_MESSAGES/django.mo,sha256=qocNtyLcQpjmGqQ130VGjJo-ruaOCtfmZehS9If_hWk,2536 -django/contrib/flatpages/locale/hy/LC_MESSAGES/django.po,sha256=WD8ohMnsaUGQItyqQmS46d76tKgzhQ17X_tGevqULO0,2619 -django/contrib/flatpages/locale/ia/LC_MESSAGES/django.mo,sha256=bochtCPlc268n0WLF0bJtUUT-XveZLPOZPQUetnOWfU,500 -django/contrib/flatpages/locale/ia/LC_MESSAGES/django.po,sha256=gOJ850e8sFcjR2G79zGn3_0-9-KSy591i7ketBRFjyw,1543 -django/contrib/flatpages/locale/id/LC_MESSAGES/django.mo,sha256=2kRHbcmfo09pIEuBb8q5AOkgC0sISJrAG37Rb5F0vts,2222 -django/contrib/flatpages/locale/id/LC_MESSAGES/django.po,sha256=1avfX88CkKMh2AjzN7dxRwj9pgohIBgKE0aXB_shZfc,2496 -django/contrib/flatpages/locale/io/LC_MESSAGES/django.mo,sha256=N8R9dXw_cnBSbZtwRbX6Tzw5XMr_ZdRkn0UmsQFDTi4,464 -django/contrib/flatpages/locale/io/LC_MESSAGES/django.po,sha256=_pJveonUOmMu3T6WS-tV1OFh-8egW0o7vU3i5YqgChA,1511 -django/contrib/flatpages/locale/is/LC_MESSAGES/django.mo,sha256=lFtP1N5CN-x2aMtBNpB6j5HsZYZIZYRm6Y-22gNe1Ek,2229 -django/contrib/flatpages/locale/is/LC_MESSAGES/django.po,sha256=9e132zDa-n6IZxB8jO5H8I0Wr7ubYxrFEMBYj2W49vI,2490 -django/contrib/flatpages/locale/it/LC_MESSAGES/django.mo,sha256=oOEG327VGpi0K5P2UOQgQa39ln15t0lAz2Z36MIQQAc,2209 -django/contrib/flatpages/locale/it/LC_MESSAGES/django.po,sha256=ar8i-bTtAKhiXLULCsKMddpmYBjKyg2paYxBI6ImY1s,2526 -django/contrib/flatpages/locale/ja/LC_MESSAGES/django.mo,sha256=Qax3t7FFRonMrszVEeiyQNMtYyWQB3dmOeeIklEmhAg,2469 -django/contrib/flatpages/locale/ja/LC_MESSAGES/django.po,sha256=N6PBvnXLEWELKTx8nHm5KwydDuFFKq5pn6AIHsBSM5M,2848 -django/contrib/flatpages/locale/ka/LC_MESSAGES/django.mo,sha256=R4OSbZ-lGxMdeJYsaXVXpo6-KSZWeKPuErKmEsUvEQE,3022 -django/contrib/flatpages/locale/ka/LC_MESSAGES/django.po,sha256=TWKtkRamM6YD-4WMoqfZ7KY-ZPs5ny7G82Wst6vQRko,3306 -django/contrib/flatpages/locale/kk/LC_MESSAGES/django.mo,sha256=lMPryzUQr21Uy-NAGQhuIZjHz-4LfBHE_zxEc2_UPaw,2438 -django/contrib/flatpages/locale/kk/LC_MESSAGES/django.po,sha256=3y9PbPw-Q8wM7tCq6u3KeYUT6pfTqcQwlNlSxpAXMxQ,2763 -django/contrib/flatpages/locale/km/LC_MESSAGES/django.mo,sha256=FYRfhNSqBtavYb10sHZNfB-xwLwdZEfVEzX116nBs-k,1942 -django/contrib/flatpages/locale/km/LC_MESSAGES/django.po,sha256=d2AfbR78U0rJqbFmJQvwiBl_QvYIeSwsPKEnfYM4JZA,2471 -django/contrib/flatpages/locale/kn/LC_MESSAGES/django.mo,sha256=n5HCZEPYN_YIVCXrgA1qhxvfhZtDbhfiannJy5EkHkI,1902 -django/contrib/flatpages/locale/kn/LC_MESSAGES/django.po,sha256=-CHwu13UuE2-Qg6poG949I_dw3YiPI9ZhMh5h2vP4xw,2443 -django/contrib/flatpages/locale/ko/LC_MESSAGES/django.mo,sha256=M-IInVdIH24ORarb-KgY60tEorJZgrThDfJQOxW-S0c,2304 -django/contrib/flatpages/locale/ko/LC_MESSAGES/django.po,sha256=DjAtWVAN_fwOvZb-7CUSLtO8WN0Sr08z3jQLNqZ98wY,2746 -django/contrib/flatpages/locale/ky/LC_MESSAGES/django.mo,sha256=WmdWR6dRgmJ-nqSzFDUETypf373fj62igDVHC4ww7hQ,2667 -django/contrib/flatpages/locale/ky/LC_MESSAGES/django.po,sha256=0XDF6CjQTGkuaHADytG95lpFRVndlf_136q0lrQiU1U,2907 -django/contrib/flatpages/locale/lb/LC_MESSAGES/django.mo,sha256=Wkvlh5L_7CopayfNM5Z_xahmyVje1nYOBfQJyqucI_0,502 -django/contrib/flatpages/locale/lb/LC_MESSAGES/django.po,sha256=gGeTuniu3ZZ835t9HR-UtwCcd2s_Yr7ihIUm3jgQ7Y0,1545 -django/contrib/flatpages/locale/lt/LC_MESSAGES/django.mo,sha256=es6xV6X1twtqhIMkV-MByA7KZ5SoVsrx5Qh8BuzJS0Q,2506 -django/contrib/flatpages/locale/lt/LC_MESSAGES/django.po,sha256=T__44veTC_u4hpPvkLekDOWfntXYAMzCd5bffRtGxWA,2779 -django/contrib/flatpages/locale/lv/LC_MESSAGES/django.mo,sha256=RJbVUR8qS8iLL3dD5x1TOau4hcdscHUJBfxge3p3dsM,2359 -django/contrib/flatpages/locale/lv/LC_MESSAGES/django.po,sha256=M6GT6S-5-7__RtSbJ9oqkIlxfU3FIWMlGAQ03NEfcKo,2610 -django/contrib/flatpages/locale/mk/LC_MESSAGES/django.mo,sha256=55H8w6fB-B-RYlKKkGw3fg2m-djxUoEp_XpupK-ZL70,2699 -django/contrib/flatpages/locale/mk/LC_MESSAGES/django.po,sha256=OhHJ5OVWb0jvNaOB3wip9tSIZ1yaPPLkfQR--uUEyUI,2989 -django/contrib/flatpages/locale/ml/LC_MESSAGES/django.mo,sha256=VMMeOujp5fiLzrrbDeH24O2qKBPUkvI_YTSPH-LQjZc,3549 -django/contrib/flatpages/locale/ml/LC_MESSAGES/django.po,sha256=KR2CGnZ1sVuRzSGaPj5IlspoAkVuVEdf48XsAzt1se0,3851 -django/contrib/flatpages/locale/mn/LC_MESSAGES/django.mo,sha256=tqwROY6D-bJ4gbDQIowKXfuLIIdCWksGwecL2sj_wco,2776 -django/contrib/flatpages/locale/mn/LC_MESSAGES/django.po,sha256=jqiBpFLXlptDyU4F8ZWbP61S4APSPh0-nuTpNOejA6c,3003 -django/contrib/flatpages/locale/mr/LC_MESSAGES/django.mo,sha256=GvSfsp0Op7st6Ifd8zp8Cj4tTHoFMltQb4p64pebrqI,468 -django/contrib/flatpages/locale/mr/LC_MESSAGES/django.po,sha256=sayU0AfVaSFpBj0dT32Ri55LRafQFUHLi03K06kI7gc,1515 -django/contrib/flatpages/locale/ms/LC_MESSAGES/django.mo,sha256=5t_67bMQhux6v6SSWqHfzzCgc6hm3olxgHAsKOMGGZU,2184 -django/contrib/flatpages/locale/ms/LC_MESSAGES/django.po,sha256=-ZzZ8lfAglGkO_BRYz1lRlywxaF1zZ28-Xv74O2nT04,2336 -django/contrib/flatpages/locale/my/LC_MESSAGES/django.mo,sha256=OcbiA7tJPkyt_WNrqyvoFjHt7WL7tMGHV06AZSxzkho,507 -django/contrib/flatpages/locale/my/LC_MESSAGES/django.po,sha256=EPWE566Vn7tax0PYUKq93vtydvmt-A4ooIau9Cwcdfc,1550 -django/contrib/flatpages/locale/nb/LC_MESSAGES/django.mo,sha256=L_XICESZ0nywkk1dn6RqzdUbFTcR92ju-zHCT1g3iEg,2208 -django/contrib/flatpages/locale/nb/LC_MESSAGES/django.po,sha256=ZtcBVD0UqIcsU8iLu5a2wnHLqu5WRLLboVFye2IuQew,2576 -django/contrib/flatpages/locale/ne/LC_MESSAGES/django.mo,sha256=gDZKhcku1NVlSs5ZPPupc7RI8HOF7ex0R4Rs8tMmrYE,1500 -django/contrib/flatpages/locale/ne/LC_MESSAGES/django.po,sha256=GWlzsDaMsJkOvw2TidJOEf1Fvxx9WxGdGAtfZIHkHwk,2178 -django/contrib/flatpages/locale/nl/LC_MESSAGES/django.mo,sha256=_yV_-SYYjpbo-rOHp8NlRzVHFPOSrfS-ndHOEJ9JP3Y,2231 -django/contrib/flatpages/locale/nl/LC_MESSAGES/django.po,sha256=xUuxx2b4ZTCA-1RIdoMqykLgjLLkmpO4ur1Vh93IITU,2669 -django/contrib/flatpages/locale/nn/LC_MESSAGES/django.mo,sha256=sHkuZneEWo1TItSlarlnOUR7ERjc76bJfHUcuFgd9mQ,2256 -django/contrib/flatpages/locale/nn/LC_MESSAGES/django.po,sha256=MpI9qkWqj4rud__xetuqCP-eFHUgMYJpfBhDnWRKPK4,2487 -django/contrib/flatpages/locale/os/LC_MESSAGES/django.mo,sha256=cXGTA5M229UFsgc7hEiI9vI9SEBrNQ8d3A0XrtazO6w,2329 -django/contrib/flatpages/locale/os/LC_MESSAGES/django.po,sha256=m-qoTiKePeFviKGH1rJRjZRH-doJ2Fe4DcZ6W52rG8s,2546 -django/contrib/flatpages/locale/pa/LC_MESSAGES/django.mo,sha256=69_ZsZ4nWlQ0krS6Mx3oL6c4sP5W9mx-yAmOhZOnjPU,903 -django/contrib/flatpages/locale/pa/LC_MESSAGES/django.po,sha256=N6gkoRXP5MefEnjywzRiE3aeU6kHQ0TUG6IGdLV7uww,1780 -django/contrib/flatpages/locale/pl/LC_MESSAGES/django.mo,sha256=5M5-d-TOx2WHlD6BCw9BYIU6bYrSR0Wlem89ih5k3Pc,2448 -django/contrib/flatpages/locale/pl/LC_MESSAGES/django.po,sha256=oKeeo-vNfPaCYVUbufrJZGk0vsgzAE0kLQOTF5qHAK4,2793 -django/contrib/flatpages/locale/pt/LC_MESSAGES/django.mo,sha256=xD2pWdS3XMg7gAqBrUBmCEXFsOzEs0Npe8AJnlpueRY,2115 -django/contrib/flatpages/locale/pt/LC_MESSAGES/django.po,sha256=-K2jipPUWjXpfSPq3upnC_bvtaRAeOw0OLRFv03HWFY,2326 -django/contrib/flatpages/locale/pt_BR/LC_MESSAGES/django.mo,sha256=YGyagSFIc-ssFN8bnqVRce1_PsybvLmI8RVCygjow8E,2291 -django/contrib/flatpages/locale/pt_BR/LC_MESSAGES/django.po,sha256=pFA8RPNefZpuhbxBHLt9KrI2RiHxct5V-DnZA-XqBv0,2942 -django/contrib/flatpages/locale/ro/LC_MESSAGES/django.mo,sha256=oS3MXuRh2USyLOMrMH0WfMSFpgBcZWfrbCrovYgbONo,2337 -django/contrib/flatpages/locale/ro/LC_MESSAGES/django.po,sha256=UNKGNSZKS92pJDjxKDLqVUW87DKCWP4_Q51xS16IZl0,2632 -django/contrib/flatpages/locale/ru/LC_MESSAGES/django.mo,sha256=AACtHEQuytEohUZVgk-o33O7rJTFAluq22VJOw5JqII,2934 -django/contrib/flatpages/locale/ru/LC_MESSAGES/django.po,sha256=H6JOPAXNxji1oni9kfga_hNZevodStpEl0O6cDnZ148,3312 -django/contrib/flatpages/locale/sk/LC_MESSAGES/django.mo,sha256=8_NZkzRd3Bcewp4GiczCAjQshq5rl29TPEj1RbBPipo,2321 -django/contrib/flatpages/locale/sk/LC_MESSAGES/django.po,sha256=qo9Xvr2whYmwtc1n39T_9ADcI3nP-t-jtVh2S51KkFQ,2601 -django/contrib/flatpages/locale/sl/LC_MESSAGES/django.mo,sha256=kOrhhBdM9nbQbCLN49bBn23hCrzpAPrfKvPs4QMHgvo,2301 -django/contrib/flatpages/locale/sl/LC_MESSAGES/django.po,sha256=oyTrOVH0v76Ttc93qfeyu3FHcWLh3tTiz2TefGkmoq4,2621 -django/contrib/flatpages/locale/sq/LC_MESSAGES/django.mo,sha256=Jv2sebdAM6CfiLzgi1b7rHo5hp-6_BFeeMQ4_BwYpjk,2328 -django/contrib/flatpages/locale/sq/LC_MESSAGES/django.po,sha256=Xm87FbWaQ1JGhhGx8uvtqwUltkTkwk5Oysagu8qIPUA,2548 -django/contrib/flatpages/locale/sr/LC_MESSAGES/django.mo,sha256=p--v7bpD8Pp6zeP3cdh8fnfC8g2nuhbzGJTdN9eoE58,2770 -django/contrib/flatpages/locale/sr/LC_MESSAGES/django.po,sha256=jxcyMN2Qh_osmo4Jf_6QUC2vW3KVKt1BupDWMMZyAXA,3071 -django/contrib/flatpages/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=3N4mGacnZj0tI5tFniLqC2LQCPSopDEM1SGaw5N1bsw,2328 -django/contrib/flatpages/locale/sr_Latn/LC_MESSAGES/django.po,sha256=od7r3dPbZ7tRAJUW80Oe-nm_tHcmIiG6b2OZMsFg53s,2589 -django/contrib/flatpages/locale/sv/LC_MESSAGES/django.mo,sha256=1pFmNWiExWo5owNijZHZb8-Tbd0nYPqqvTmIitcFPbY,2252 -django/contrib/flatpages/locale/sv/LC_MESSAGES/django.po,sha256=l3anvdgLQJzYehCalwr1AAh8e-hRKrL_bSNwmkfgbbc,2613 -django/contrib/flatpages/locale/sw/LC_MESSAGES/django.mo,sha256=Lhf99AGmazKJHzWk2tkGrMInoYOq0mtdCd8SGblnVCQ,1537 -django/contrib/flatpages/locale/sw/LC_MESSAGES/django.po,sha256=cos3eahuznpTfTdl1Vj_07fCOSYE8C9CRYHCBLYZrVw,1991 -django/contrib/flatpages/locale/ta/LC_MESSAGES/django.mo,sha256=nNuoOX-FPAmTvM79o7colM4C7TtBroTFxYtETPPatcQ,1945 -django/contrib/flatpages/locale/ta/LC_MESSAGES/django.po,sha256=XE4SndPZPLf1yXGl5xQSb0uor4OE8CKJ0EIXBRDA3qU,2474 -django/contrib/flatpages/locale/te/LC_MESSAGES/django.mo,sha256=bMxhDMTQc_WseqoeqJMCSNy71o4U5tJZYgD2G0p-jD0,1238 -django/contrib/flatpages/locale/te/LC_MESSAGES/django.po,sha256=tmUWOrAZ98B9T6Cai8AgLCfb_rLeoPVGjDTgdsMOY1Y,2000 -django/contrib/flatpages/locale/tg/LC_MESSAGES/django.mo,sha256=gpzjf_LxwWX6yUrcUfNepK1LGez6yvnuYhmfULDPZ6E,2064 -django/contrib/flatpages/locale/tg/LC_MESSAGES/django.po,sha256=lZFLes8BWdJ-VbczHFDWCSKhKg0qmmk10hTjKcBNr5o,2572 -django/contrib/flatpages/locale/th/LC_MESSAGES/django.mo,sha256=mct17_099pUn0aGuHu8AlZG6UqdKDpYLojqGYDLRXRg,2698 -django/contrib/flatpages/locale/th/LC_MESSAGES/django.po,sha256=PEcRx5AtXrDZvlNGWFH-0arroD8nZbutdJBe8_I02ag,2941 -django/contrib/flatpages/locale/tk/LC_MESSAGES/django.mo,sha256=5iVSzjcnJLfdAnrI1yOKua_OfHmgUu6ydixKkvayrzQ,753 -django/contrib/flatpages/locale/tk/LC_MESSAGES/django.po,sha256=0VK0Ju55wTvmYXqS9hPKLJXyTtTz9Z8mv_qw66ck5gg,1824 -django/contrib/flatpages/locale/tr/LC_MESSAGES/django.mo,sha256=pPNGylfG8S0iBI4ONZbky3V2Q5AG-M1njp27tFrhhZc,2290 -django/contrib/flatpages/locale/tr/LC_MESSAGES/django.po,sha256=0ULZu3Plp8H9zdirHy3MSduJ_QRdpoaaivf3bL9MCwA,2588 -django/contrib/flatpages/locale/tt/LC_MESSAGES/django.mo,sha256=9RfCKyn0ZNYsqLvFNmY18xVMl7wnmDq5uXscrsFfupk,2007 -django/contrib/flatpages/locale/tt/LC_MESSAGES/django.po,sha256=SUwalSl8JWI9tuDswmnGT8SjuWR3DQGND9roNxJtH1o,2402 -django/contrib/flatpages/locale/udm/LC_MESSAGES/django.mo,sha256=7KhzWgskBlHmi-v61Ax9fjc3NBwHB17WppdNMuz-rEc,490 -django/contrib/flatpages/locale/udm/LC_MESSAGES/django.po,sha256=zidjP05Hx1OpXGqWEmF2cg9SFxASM4loOV85uW7zV5U,1533 -django/contrib/flatpages/locale/uk/LC_MESSAGES/django.mo,sha256=r2RZT8xQ1Gi9Yp0nnoNALqQ4zrEJ0JC7m26E5gSeq4g,3002 -django/contrib/flatpages/locale/uk/LC_MESSAGES/django.po,sha256=qcVizoTiKYc1c9KwSTwSALHgjjSGVY2oito_bBRLVTE,3405 -django/contrib/flatpages/locale/ur/LC_MESSAGES/django.mo,sha256=Li4gVdFoNOskGKAKiNuse6B2sz6ePGqGvZu7aGXMNy0,1976 -django/contrib/flatpages/locale/ur/LC_MESSAGES/django.po,sha256=hDasKiKrYov9YaNIHIpoooJo0Bzba___IuN2Hl6ofSc,2371 -django/contrib/flatpages/locale/vi/LC_MESSAGES/django.mo,sha256=FsFUi96oGTWGlZwM4qSMpuL1M2TAxsW51qO70TrybSM,1035 -django/contrib/flatpages/locale/vi/LC_MESSAGES/django.po,sha256=ITX3MWd7nlWPxTCoNPl22_OMLTt0rfvajGvTVwo0QC8,1900 -django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=UTCQr9t2wSj6dYLK1ftpF8-pZ25dAMYLRE2wEUQva-o,2124 -django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.po,sha256=loi9RvOnrgFs4qp8FW4RGis7wgDzBBXuwha5pFfLRxY,2533 -django/contrib/flatpages/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=Y5nDMQ3prLJ6OHuQEeEqjDLBC9_L-4XHDGJSLNoCgqg,2200 -django/contrib/flatpages/locale/zh_Hant/LC_MESSAGES/django.po,sha256=6dKCSJpw_8gnunfTY86_apXdH5Pqe0kKYSVaqRtOIh0,2475 -django/contrib/flatpages/middleware.py,sha256=aXeOeOkUmpdkGOyqZnkR-l1VrDQ161RWIWa3WPBhGac,784 -django/contrib/flatpages/migrations/0001_initial.py,sha256=4xhMsKaXOycsfo9O1QIuknS9wf7r0uVsshAJ7opeqsM,2408 -django/contrib/flatpages/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/flatpages/migrations/__pycache__/0001_initial.cpython-312.pyc,, -django/contrib/flatpages/migrations/__pycache__/__init__.cpython-312.pyc,, -django/contrib/flatpages/models.py,sha256=3ugRRsDwB5C3GHOWvtOzjJl-y0yqqjYZBSOMt24QYuw,1764 -django/contrib/flatpages/sitemaps.py,sha256=CEhZOsLwv3qIJ1hs4eHlE_0AAtYjicb_yRzsstY19eg,584 -django/contrib/flatpages/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/flatpages/templatetags/__pycache__/__init__.cpython-312.pyc,, -django/contrib/flatpages/templatetags/__pycache__/flatpages.cpython-312.pyc,, -django/contrib/flatpages/templatetags/flatpages.py,sha256=QH-suzsoPIMSrgyHR9O8uOdmfIkBv_w3LM-hGfQvnU8,3552 -django/contrib/flatpages/urls.py,sha256=Rs37Ij192SOtSBjd4Lx9YtpINfEMg7XRY01dEOY8Rgg,179 -django/contrib/flatpages/views.py,sha256=H4LG7Janb6Dcn-zINLmp358hR60JigAKGzh4A4PMPaM,2724 -django/contrib/gis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/__pycache__/apps.cpython-312.pyc,, -django/contrib/gis/__pycache__/feeds.cpython-312.pyc,, -django/contrib/gis/__pycache__/geometry.cpython-312.pyc,, -django/contrib/gis/__pycache__/measure.cpython-312.pyc,, -django/contrib/gis/__pycache__/ptr.cpython-312.pyc,, -django/contrib/gis/__pycache__/shortcuts.cpython-312.pyc,, -django/contrib/gis/__pycache__/views.cpython-312.pyc,, -django/contrib/gis/admin/__init__.py,sha256=fPyCk9pBLWojuzrhZ6-dWQIvD3kpYg_HwsFzSxhawg8,672 -django/contrib/gis/admin/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/admin/__pycache__/options.cpython-312.pyc,, -django/contrib/gis/admin/__pycache__/widgets.cpython-312.pyc,, -django/contrib/gis/admin/options.py,sha256=7dR6t_kD3yma_pcz8gwrudWiKbaIkIh6cFX7T5lqoWU,6390 -django/contrib/gis/admin/widgets.py,sha256=2dVstM22JrlIDUZOtzzH9rlFVy97Hrqqv-JfSLc86kY,5097 -django/contrib/gis/apps.py,sha256=dbAFKx9jj9_QdhdNfL5KCC47puH_ZTw098jsJFwDO9Y,417 -django/contrib/gis/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/db/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/db/backends/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/backends/__pycache__/utils.cpython-312.pyc,, -django/contrib/gis/db/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/db/backends/base/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/backends/base/__pycache__/adapter.cpython-312.pyc,, -django/contrib/gis/db/backends/base/__pycache__/features.cpython-312.pyc,, -django/contrib/gis/db/backends/base/__pycache__/models.cpython-312.pyc,, -django/contrib/gis/db/backends/base/__pycache__/operations.cpython-312.pyc,, -django/contrib/gis/db/backends/base/adapter.py,sha256=qbLG-sLB6EZ_sA6-E_uIClyp5E5hz9UQ-CsR3BWx8W8,592 -django/contrib/gis/db/backends/base/features.py,sha256=fF-AKB6__RjkxVRadNkOP7Av4wMaRGkXKybYV6ES2Gk,3718 -django/contrib/gis/db/backends/base/models.py,sha256=WqpmVLqK21m9J6k_N-SGPXq1VZMuNHafyB9xqxUwR4k,4009 -django/contrib/gis/db/backends/base/operations.py,sha256=7GwgfCmw4RexrOJunxP2tQwV7TkE3BoQwFpjZQxg3a4,6835 -django/contrib/gis/db/backends/mysql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/db/backends/mysql/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/backends/mysql/__pycache__/base.cpython-312.pyc,, -django/contrib/gis/db/backends/mysql/__pycache__/features.cpython-312.pyc,, -django/contrib/gis/db/backends/mysql/__pycache__/introspection.cpython-312.pyc,, -django/contrib/gis/db/backends/mysql/__pycache__/operations.cpython-312.pyc,, -django/contrib/gis/db/backends/mysql/__pycache__/schema.cpython-312.pyc,, -django/contrib/gis/db/backends/mysql/base.py,sha256=z75wKhm-e9JfRLCvgDq-iv9OqOjBBAS238JTTrWfHRQ,498 -django/contrib/gis/db/backends/mysql/features.py,sha256=dVRo3CuV8Zp5822h9l48nApiXyn3lCuXQV3vsRZKeao,866 -django/contrib/gis/db/backends/mysql/introspection.py,sha256=ZihcSzwN0f8iqKOYKMHuQ_MY41ERSswjP46dvCF0v68,1602 -django/contrib/gis/db/backends/mysql/operations.py,sha256=_QX71zWVeD1EQPleSCWIOEFk4ThZZE3pxG-QLkE2YG4,4230 -django/contrib/gis/db/backends/mysql/schema.py,sha256=XZb1ImKNFZNUEZMxdgLYXGs4Xirgw8kKoGHNVJv763E,3205 -django/contrib/gis/db/backends/oracle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/db/backends/oracle/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/backends/oracle/__pycache__/adapter.cpython-312.pyc,, -django/contrib/gis/db/backends/oracle/__pycache__/base.cpython-312.pyc,, -django/contrib/gis/db/backends/oracle/__pycache__/features.cpython-312.pyc,, -django/contrib/gis/db/backends/oracle/__pycache__/introspection.cpython-312.pyc,, -django/contrib/gis/db/backends/oracle/__pycache__/models.cpython-312.pyc,, -django/contrib/gis/db/backends/oracle/__pycache__/operations.cpython-312.pyc,, -django/contrib/gis/db/backends/oracle/__pycache__/schema.cpython-312.pyc,, -django/contrib/gis/db/backends/oracle/adapter.py,sha256=IB5C_zBe_yvbZ-w71kuh_A77sGESuJOUbxGTFKEHDw4,2025 -django/contrib/gis/db/backends/oracle/base.py,sha256=_7qhvEdbnrJQEKL51sg8YYu8kRYmQNAlBgNb2OUbBkw,507 -django/contrib/gis/db/backends/oracle/features.py,sha256=3yCDutKz4iX01eOjLf0CLe_cemMaRjDmH8ZKNy_Sbyk,1021 -django/contrib/gis/db/backends/oracle/introspection.py,sha256=51_nz8_OKGP1TCw44no20Vt6EV1B9MTKu8irSnkqZBo,1890 -django/contrib/gis/db/backends/oracle/models.py,sha256=7mij7owmmwqAl-4rPJmEU_zW3hZZI0hix7HyFOwJkms,2084 -django/contrib/gis/db/backends/oracle/operations.py,sha256=ThWHnX3wlmYqg8UHXNHoSotzxv7GaXuRe_vgNzKGEs4,8766 -django/contrib/gis/db/backends/oracle/schema.py,sha256=4bjssdtSl2_n3CWX67k4yLOCLzevU5CYg-yx8s4A39Y,4469 -django/contrib/gis/db/backends/postgis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/db/backends/postgis/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/adapter.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/base.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/const.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/features.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/introspection.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/models.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/operations.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/pgraster.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/__pycache__/schema.cpython-312.pyc,, -django/contrib/gis/db/backends/postgis/adapter.py,sha256=81hwPi7Z2b7BjKMTbA7MKEuCgSYc8MnGQfB2SL9BWqQ,1980 -django/contrib/gis/db/backends/postgis/base.py,sha256=GrBlgfqfIIZ02wxqRnXkUKQwUlMKvr1uemr79_tI7EM,5239 -django/contrib/gis/db/backends/postgis/const.py,sha256=_ODq71ixhGpojzbO1DAWs5O4REFgzruIpQkNhPw9O-E,2007 -django/contrib/gis/db/backends/postgis/features.py,sha256=qOEJLQTIC1YdlDoJkpLCiVQU4GAy0d9_Dneui7w41bM,455 -django/contrib/gis/db/backends/postgis/introspection.py,sha256=ihrNd_qHQ64DRjoaPj9-1a0y3H8Ko4gWbK2N5fDA3_g,3164 -django/contrib/gis/db/backends/postgis/models.py,sha256=nFFshpCS4Az4js853MuZxdsp_SOOIlghjuu2XZEeB-Y,2002 -django/contrib/gis/db/backends/postgis/operations.py,sha256=sxeX_rmdRhLwBTjheRUdbpYaZ5JH0b4dhCEBSFwgUDc,16576 -django/contrib/gis/db/backends/postgis/pgraster.py,sha256=eCa2y-v3qGLeNbFI4ERFj2UmqgYAE19nuL3SgDFmm0o,4588 -django/contrib/gis/db/backends/postgis/schema.py,sha256=dU-o1GQh2lPdiNYmBgd7QTnKq3L3JYqZck5pKn-BA0o,3020 -django/contrib/gis/db/backends/spatialite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/db/backends/spatialite/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/__pycache__/adapter.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/__pycache__/base.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/__pycache__/client.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/__pycache__/features.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/__pycache__/introspection.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/__pycache__/models.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/__pycache__/operations.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/__pycache__/schema.cpython-312.pyc,, -django/contrib/gis/db/backends/spatialite/adapter.py,sha256=qTiA5BBGUFND3D7xGK_85oo__HSexTH32XF4uin3ZV0,318 -django/contrib/gis/db/backends/spatialite/base.py,sha256=wU1fgp68CLyKELsMfO6zYM85ox4g_GloWESEK8EPrfM,3218 -django/contrib/gis/db/backends/spatialite/client.py,sha256=dNM7mqDyTzFlgQR1XhqZIftnR9VRH7AfcSvvy4vucEs,138 -django/contrib/gis/db/backends/spatialite/features.py,sha256=zkmJPExFtRqjRj608ZTlsSpxkYaPbV3A3SEfX3PcaFY,876 -django/contrib/gis/db/backends/spatialite/introspection.py,sha256=V_iwkz0zyF1U-AKq-UlxvyDImqQCsitcmvxk2cUw81A,3118 -django/contrib/gis/db/backends/spatialite/models.py,sha256=Of5O1At0W9wQ5PPLVpO0LWth2KDCOJt6Cfz5_OwaYR0,1930 -django/contrib/gis/db/backends/spatialite/operations.py,sha256=s549jK8yzs6UAKjLSvXAnRFdtOf3PQBdUNa150VIELE,8394 -django/contrib/gis/db/backends/spatialite/schema.py,sha256=Uqo4Zp3q_HlmdjTWXvMAVn4_p5piK35iJ7UGXzqQ0Hc,7204 -django/contrib/gis/db/backends/utils.py,sha256=rLwSv79tKJPxvDHACY8rhPDLFZC79mEIlIySTyl_qqc,785 -django/contrib/gis/db/models/__init__.py,sha256=TrCS27JdVa-Q7Hok-YaJxb4eLrPdyvRmasJGIu05fvA,865 -django/contrib/gis/db/models/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/models/__pycache__/aggregates.cpython-312.pyc,, -django/contrib/gis/db/models/__pycache__/fields.cpython-312.pyc,, -django/contrib/gis/db/models/__pycache__/functions.cpython-312.pyc,, -django/contrib/gis/db/models/__pycache__/lookups.cpython-312.pyc,, -django/contrib/gis/db/models/__pycache__/proxy.cpython-312.pyc,, -django/contrib/gis/db/models/aggregates.py,sha256=kM-GKfjwurd7D3P6sDbkEpZXBaocqobcSarQ89OEJko,2969 -django/contrib/gis/db/models/fields.py,sha256=n40s9HYbqVpFKIW9b4X4IQ8INWUus7QZi5QdiWVPsTI,14312 -django/contrib/gis/db/models/functions.py,sha256=ZDg8CGax6Cv4sszHM03QTyggs4p21fpdTcq7oR2Y4mQ,18666 -django/contrib/gis/db/models/lookups.py,sha256=1raEdKM1m7e2rdMRZ4g30UKzLieJ1QCXcAdeAyuH1LA,11798 -django/contrib/gis/db/models/proxy.py,sha256=o2wXW3sFIWhjhkSrzrwFaCdatvZLF8Z5Zs3s1ugmriA,3173 -django/contrib/gis/db/models/sql/__init__.py,sha256=-rzcC3izMJi2bnvyQUCMzIOrigBnY6N_5EQIim4wCSY,134 -django/contrib/gis/db/models/sql/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/db/models/sql/__pycache__/conversion.cpython-312.pyc,, -django/contrib/gis/db/models/sql/conversion.py,sha256=AZLJCMSw_svSLQPB5LTvA-YRFnMZSXYdHdvPSTFmK4Y,2432 -django/contrib/gis/feeds.py,sha256=0vNVVScIww13bOxvlQfXAOCItIOGWSXroKKl6QXGB58,5995 -django/contrib/gis/forms/__init__.py,sha256=Zyid_YlZzHUcMYkfGX1GewmPPDNc0ni7HyXKDTeIkjo,318 -django/contrib/gis/forms/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/forms/__pycache__/fields.cpython-312.pyc,, -django/contrib/gis/forms/__pycache__/widgets.cpython-312.pyc,, -django/contrib/gis/forms/fields.py,sha256=FrZaZWXFUdWK1QEu8wlda3u6EtqaVHjQRYrSKKu66PA,4608 -django/contrib/gis/forms/widgets.py,sha256=J29IUZ3HTfepfoiJvSeLoDfzyy6Gf6Hoo_Y-bTUMO3o,4549 -django/contrib/gis/gdal/LICENSE,sha256=VwoEWoNyts1qAOMOuv6OPo38Cn_j1O8sxfFtQZ62Ous,1526 -django/contrib/gis/gdal/__init__.py,sha256=m5cRj_qvD3jbLDjMk0ggDxW_hifeZ-CbtRtHZUIsRiQ,1827 -django/contrib/gis/gdal/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/base.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/datasource.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/driver.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/envelope.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/error.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/feature.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/field.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/geometries.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/geomtype.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/layer.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/libgdal.cpython-312.pyc,, -django/contrib/gis/gdal/__pycache__/srs.cpython-312.pyc,, -django/contrib/gis/gdal/base.py,sha256=yymyL0vZRMBfiFUzrehvaeaunIxMH5ucGjPRfKj-rAo,181 -django/contrib/gis/gdal/datasource.py,sha256=78S8Z5H61PCJS1_-CCJbiJAOP12X-IWo79PwCfyiVXI,4611 -django/contrib/gis/gdal/driver.py,sha256=eCzrqEVOwyTlcRItrUirmEdNaSrsAIvw9jP_Z669xds,3351 -django/contrib/gis/gdal/envelope.py,sha256=Aj3Qn33QWjDYrwX1je2AZOmokffzs-s4kD96HL1easQ,7323 -django/contrib/gis/gdal/error.py,sha256=Vt-Uis9z786UGE3tD7fjiH8_0P5HSTO81n4fad4l6kw,1578 -django/contrib/gis/gdal/feature.py,sha256=HPWoCZjwzsUnhc7QmKh-BBMRqJCjj07RcFI6vjbdnp4,4017 -django/contrib/gis/gdal/field.py,sha256=EKE-Ioj5L79vo93Oixz_JE4TIZbDTRy0YVGvZH-I1z4,6886 -django/contrib/gis/gdal/geometries.py,sha256=tYXqoHD0kY8LWN1SVcabj15kfeXy2WTQW9zKIeR8-iQ,24346 -django/contrib/gis/gdal/geomtype.py,sha256=VD_w5GymdaKJwgBW1cq2Xjtl3EVXCvJh26LIlKgW_PM,3071 -django/contrib/gis/gdal/layer.py,sha256=PygAgsRZzWekp6kq6NEAZ6vhQTSo1Nk4c1Yi_pOdK58,8825 -django/contrib/gis/gdal/libgdal.py,sha256=EVRE0a9yInHI7NuAkkeEuu6MDcezw9Jw495nciN11RM,3618 -django/contrib/gis/gdal/prototypes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/gdal/prototypes/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/gdal/prototypes/__pycache__/ds.cpython-312.pyc,, -django/contrib/gis/gdal/prototypes/__pycache__/errcheck.cpython-312.pyc,, -django/contrib/gis/gdal/prototypes/__pycache__/generation.cpython-312.pyc,, -django/contrib/gis/gdal/prototypes/__pycache__/geom.cpython-312.pyc,, -django/contrib/gis/gdal/prototypes/__pycache__/raster.cpython-312.pyc,, -django/contrib/gis/gdal/prototypes/__pycache__/srs.cpython-312.pyc,, -django/contrib/gis/gdal/prototypes/ds.py,sha256=aWeItuRLGr9N3qcnB7vuooNbeGerkixnDRUjtaX7zk0,4525 -django/contrib/gis/gdal/prototypes/errcheck.py,sha256=wlRqrVnozMingrYIBH_9oMMzY9DMrX00BYzP_n54iu0,4173 -django/contrib/gis/gdal/prototypes/generation.py,sha256=c4m3x0QkDhDDaYxavGcvMLs3RNNb9EzfKTzHudWF1f8,4889 -django/contrib/gis/gdal/prototypes/geom.py,sha256=LjygKS-WbNMXj4Y8kaYGSn0OU5-UlQpjCmpmj3aPjhY,5046 -django/contrib/gis/gdal/prototypes/raster.py,sha256=HPLc2gAsGRhNwkjTgtZzHdjWG8LKbcSdwRl1A3qjQDk,5994 -django/contrib/gis/gdal/prototypes/srs.py,sha256=uJ7XgnrX7TuvpgJu8uwes7CWidC7-C6PSSqNeEpJur8,3731 -django/contrib/gis/gdal/raster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/gdal/raster/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/gdal/raster/__pycache__/band.cpython-312.pyc,, -django/contrib/gis/gdal/raster/__pycache__/base.cpython-312.pyc,, -django/contrib/gis/gdal/raster/__pycache__/const.cpython-312.pyc,, -django/contrib/gis/gdal/raster/__pycache__/source.cpython-312.pyc,, -django/contrib/gis/gdal/raster/band.py,sha256=RPdut6BeQ9vW71rrPMwb2CnXrbCys8YAt1BA8Aholy0,8343 -django/contrib/gis/gdal/raster/base.py,sha256=2GGlL919lPr7YVGFtdIynLPIH-QKYhzrUpoXwVRlM1k,2882 -django/contrib/gis/gdal/raster/const.py,sha256=xBoMW6PeykWg3_IfVIEaGdrKTahxCMENCtDVzHOB8V8,2981 -django/contrib/gis/gdal/raster/source.py,sha256=NmsCjTWDbNFt7oEWfSQSN7ZlofyDZ2yJ3ClSAfDjiW0,18394 -django/contrib/gis/gdal/srs.py,sha256=g_svEEc-3-NgZEwPxkZgi1fUDj_INhDmzmMDgBp8fag,12775 -django/contrib/gis/geoip2/__init__.py,sha256=YY9IoFvLImeagLMqouHeY62qKfo0qXl3AFQh63-_Ego,824 -django/contrib/gis/geoip2/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/geoip2/__pycache__/base.cpython-312.pyc,, -django/contrib/gis/geoip2/__pycache__/resources.cpython-312.pyc,, -django/contrib/gis/geoip2/base.py,sha256=pth-ZPbB9ks3ikY_RVESzqUs_poKPulItSdJVDQXe28,8942 -django/contrib/gis/geoip2/resources.py,sha256=Lzz-Ok677UBmMZQdHsPv1-qPBeJ8bc4HKTk7_UzmY0I,819 -django/contrib/gis/geometry.py,sha256=0INgLWg4LeRjoO3fUm7f68vXXWmaJGBZGbt-GJovTlc,666 -django/contrib/gis/geos/LICENSE,sha256=CL8kt1USOK4yUpUkVCWxyuua0PQvni0wPHs1NQJjIEU,1530 -django/contrib/gis/geos/__init__.py,sha256=LCGbpFFWXYm6SunsMzV9LoPLNRtDKEWaQ7P4VUtsk84,660 -django/contrib/gis/geos/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/base.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/collections.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/coordseq.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/error.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/factory.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/geometry.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/io.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/libgeos.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/linestring.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/mutable_list.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/point.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/polygon.cpython-312.pyc,, -django/contrib/gis/geos/__pycache__/prepared.cpython-312.pyc,, -django/contrib/gis/geos/base.py,sha256=NdlFg5l9akvDp87aqzh9dk0A3ZH2TI3cOq10mmmuHBk,181 -django/contrib/gis/geos/collections.py,sha256=p3-m7yjqxsKPhLZxvLoQUtNKElM3tQjbs860LTCSnYM,3940 -django/contrib/gis/geos/coordseq.py,sha256=zK2p4lzNHzgw6HgYT1vXwEgQg_ad3BdUIMSDHSS2H-U,7284 -django/contrib/gis/geos/error.py,sha256=r3SNTnwDBI6HtuyL3mQ_iEEeKlOqqqdkHnhNoUkMohw,104 -django/contrib/gis/geos/factory.py,sha256=KQF6lqAh5KRlFSDgN-BSXWojmWFabbEUFgz2IGYX_vk,961 -django/contrib/gis/geos/geometry.py,sha256=c1vtDlAUTUfmzRMAKWUTUbU5NwlTYY0N526VLsKOxb4,26418 -django/contrib/gis/geos/io.py,sha256=P3bfg3AIWv99lrqmzFZyP-i6e5YiCuC32fql_IXPgUo,799 -django/contrib/gis/geos/libgeos.py,sha256=rEoKvo3cJ9yqIUyVCeQSIxxuHdVAmburE1cqFQFbtZM,4987 -django/contrib/gis/geos/linestring.py,sha256=BJAoWfHW08EX1UpNFVB09iSKXdTS6pZsTIBc6DcZcfc,6372 -django/contrib/gis/geos/mutable_list.py,sha256=nthCtQ0FsJrDGd29cSERwXb-tJkpK35Vc0T_ywCnXgc,10121 -django/contrib/gis/geos/point.py,sha256=bvatsdXTb1XYy1EaSZvp4Rnr2LwXZU12zILefLu6sRw,4781 -django/contrib/gis/geos/polygon.py,sha256=DZq6Ed9bJA3MqhpDQ9u926hHxcnxBjnbKSppHgbShxw,6710 -django/contrib/gis/geos/prepared.py,sha256=J5Dj6e3u3gEfVPNOM1E_rvcmcXR2-CdwtbAcoiDU5a0,1577 -django/contrib/gis/geos/prototypes/__init__.py,sha256=YEg8BbMqHRMxqy9aQWxItqfa80hzrGpu9GaH6D3fgog,1412 -django/contrib/gis/geos/prototypes/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/coordseq.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/errcheck.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/geom.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/io.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/misc.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/predicates.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/prepared.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/threadsafe.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/__pycache__/topology.cpython-312.pyc,, -django/contrib/gis/geos/prototypes/coordseq.py,sha256=fIcSIzmyCbazQSR-XdvCwtP2YZItQur1Y27vfAKXNfw,3122 -django/contrib/gis/geos/prototypes/errcheck.py,sha256=aW4kLew3tdXZ4NmJhOF2NFY837ACid6Vm-_a10ET5Q8,2788 -django/contrib/gis/geos/prototypes/geom.py,sha256=NlR-rUFCj_V3lppSmYSI2bapLim_VUJXABwElTldZM0,3398 -django/contrib/gis/geos/prototypes/io.py,sha256=s_PezKaVl9JBGEf-6pNMMDE3oZ_GQkLY2WWBMhtTkMw,11489 -django/contrib/gis/geos/prototypes/misc.py,sha256=3Ek1DTeDo4BBsS7LloseeSHPBz70Vu-4mF-dxSjyXLU,1168 -django/contrib/gis/geos/prototypes/predicates.py,sha256=67HWiwf5NWFWNjiDJ8GvdlS5rCw0BcO7brqcDMwv_5s,1599 -django/contrib/gis/geos/prototypes/prepared.py,sha256=4I9pS75Q5MZ1z8A1v0mKkmdCly33Kj_0sDcrqxOppzM,1175 -django/contrib/gis/geos/prototypes/threadsafe.py,sha256=n1yCYvQCtc7piFrhjeZCWH8Pf0-AiOGBH33VZusTgWI,2302 -django/contrib/gis/geos/prototypes/topology.py,sha256=7TNgvTU8L3cyoU0VMXbox3RA3qmUePDXejJiHMntXlU,2327 -django/contrib/gis/locale/af/LC_MESSAGES/django.mo,sha256=TN3GddZjlqXnhK8UKLlMoMIXNw2szzj7BeRjoKjsR5c,470 -django/contrib/gis/locale/af/LC_MESSAGES/django.po,sha256=XPdXaQsZ6yDPxF3jVMEI4bli_5jrEawoO-8DHMk8Q_A,1478 -django/contrib/gis/locale/ar/LC_MESSAGES/django.mo,sha256=5LCO903yJTtRVaaujBrmwMx8f8iLa3ihasgmj8te9eg,2301 -django/contrib/gis/locale/ar/LC_MESSAGES/django.po,sha256=pfUyK0VYgY0VC2_LvWZvG_EEIWa0OqIUfhiPT2Uov3Q,2569 -django/contrib/gis/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=1e2lutVEjsa5vErMdjS6gaBbOLPTVIpDv15rax-wvKg,2403 -django/contrib/gis/locale/ar_DZ/LC_MESSAGES/django.po,sha256=dizXM36w-rUtI7Dv2mSoJDR5ouVR6Ar7zqjywX3xKr0,2555 -django/contrib/gis/locale/ast/LC_MESSAGES/django.mo,sha256=8o0Us4wR14bdv1M5oBeczYC4oW5uKnycWrj1-lMIqV4,850 -django/contrib/gis/locale/ast/LC_MESSAGES/django.po,sha256=0beyFcBkBOUNvPP45iqewTNv2ExvCPvDYwpafCJY5QM,1684 -django/contrib/gis/locale/az/LC_MESSAGES/django.mo,sha256=liiZOQ712WIdLolC8_uIHY6G4QPJ_sYhp5CfwxTXEv0,1976 -django/contrib/gis/locale/az/LC_MESSAGES/django.po,sha256=kUxBJdYhLZNnAO3IWKy4R3ijTZBiG-OFMg2wrZ7Jh28,2172 -django/contrib/gis/locale/be/LC_MESSAGES/django.mo,sha256=4B6F3HmhZmk1eLi42Bw90aipUHF4mT-Zlmsi0aKojHg,2445 -django/contrib/gis/locale/be/LC_MESSAGES/django.po,sha256=4QgQvhlM_O4N_8uikD7RASkS898vov-qT_FkQMhg4cE,2654 -django/contrib/gis/locale/bg/LC_MESSAGES/django.mo,sha256=qZKt6jmYT9ecax0Z1H8nCKWwL5qLoUiZB2MfYMu-SQs,2389 -django/contrib/gis/locale/bg/LC_MESSAGES/django.po,sha256=4MDPVwks5pLvqsXQVA2M9m_3nMFEWMsivkLEWkYm1LA,2654 -django/contrib/gis/locale/bn/LC_MESSAGES/django.mo,sha256=7oNsr_vHQfsanyP-o1FG8jZTSBK8jB3eK2fA9AqNOx4,1070 -django/contrib/gis/locale/bn/LC_MESSAGES/django.po,sha256=PTa9EFZdqfznUH7si3Rq3zp1kNkTOnn2HRTEYXQSOdM,1929 -django/contrib/gis/locale/br/LC_MESSAGES/django.mo,sha256=xN8hOvJi_gDlpdC5_lghXuX6yCBYDPfD_SQLjcvq8gU,1614 -django/contrib/gis/locale/br/LC_MESSAGES/django.po,sha256=LQw3Tp_ymJ_x7mJ6g4SOr6aP00bejkjuaxfFFRZnmaQ,2220 -django/contrib/gis/locale/bs/LC_MESSAGES/django.mo,sha256=9EdKtZkY0FX2NlX_q0tIxXD-Di0SNQJZk3jo7cend0A,1308 -django/contrib/gis/locale/bs/LC_MESSAGES/django.po,sha256=eu_qF8dbmlDiRKGNIz80XtIunrF8QIOcy8O28X02GvQ,1905 -django/contrib/gis/locale/ca/LC_MESSAGES/django.mo,sha256=nPWtfc4Fbm2uaY-gCASaye9CxzOYIfjG8mDTQGvn2As,2007 -django/contrib/gis/locale/ca/LC_MESSAGES/django.po,sha256=pPMDNc3hAWsbC_BM4UNmziX2Bq7vs6bHbNqVkEvCSic,2359 -django/contrib/gis/locale/ckb/LC_MESSAGES/django.mo,sha256=h9Hjp1EvPo9LFfMGm_uK3kc80jANSbjComJ3LQAIOqQ,2337 -django/contrib/gis/locale/ckb/LC_MESSAGES/django.po,sha256=Jh51irZqa1qvdpjtEyOfRnhluRF5SBWLyT4rsDrNNVo,2528 -django/contrib/gis/locale/cs/LC_MESSAGES/django.mo,sha256=V7MNXNsOaZ3x1G6LqYu6KJn6zeiFQCZKvF7Xk4J0fkg,2071 -django/contrib/gis/locale/cs/LC_MESSAGES/django.po,sha256=mPkcIWtWRILisD6jOlBpPV7CKYJjhTaBcRLf7OqifdM,2321 -django/contrib/gis/locale/cy/LC_MESSAGES/django.mo,sha256=vUG_wzZaMumPwIlKwuN7GFcS9gnE5rpflxoA_MPM_po,1430 -django/contrib/gis/locale/cy/LC_MESSAGES/django.po,sha256=_QjXT6cySUXrjtHaJ3046z-5PoXkCqtOhvA7MCZsXxk,1900 -django/contrib/gis/locale/da/LC_MESSAGES/django.mo,sha256=kH8GcLFe-XvmznQbiY5Ce2-Iz4uKJUfF4Be0yY13AEs,1894 -django/contrib/gis/locale/da/LC_MESSAGES/django.po,sha256=JOVTWeTnSUASbupCd2Fo0IY_veJb6XKDhyKFu6M2J_8,2179 -django/contrib/gis/locale/de/LC_MESSAGES/django.mo,sha256=1PBxHsFHDrbkCslumxKVD_kD2eIElGWOq2chQopcorY,1965 -django/contrib/gis/locale/de/LC_MESSAGES/django.po,sha256=0XnbUsy9yZHhFsGGhcSnXUqJpDlMVqmrRl-0c-kdcYk,2163 -django/contrib/gis/locale/dsb/LC_MESSAGES/django.mo,sha256=NzmmexcIC525FHQ5XvsKdzCZtkkb5wnrSd12fdAkZ-0,2071 -django/contrib/gis/locale/dsb/LC_MESSAGES/django.po,sha256=aTBfL_NB8uIDt2bWBxKCdKi-EUNo9lQ9JZ0ekWeI4Yk,2234 -django/contrib/gis/locale/el/LC_MESSAGES/django.mo,sha256=OBxHnlLrT4tY0bW5TuaRqBCKtchnz_53RtrEc0fZ3V4,2484 -django/contrib/gis/locale/el/LC_MESSAGES/django.po,sha256=q0YzrFC5seve2ralJJDSmMG2uukAAALhoRflYOPFudg,2937 -django/contrib/gis/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/gis/locale/en/LC_MESSAGES/django.po,sha256=8yvqHG1Mawkhx9RqD5tDXX8U0-a7RWr-wCQPGHWAqG0,2225 -django/contrib/gis/locale/en_AU/LC_MESSAGES/django.mo,sha256=IPn5kRqOvv5S7jpbIUw8PEUkHlyjEL-4GuOANd1iAzI,486 -django/contrib/gis/locale/en_AU/LC_MESSAGES/django.po,sha256=x_58HmrHRia2LoYhmmN_NLb1J3f7oTDvwumgTo0LowI,1494 -django/contrib/gis/locale/en_GB/LC_MESSAGES/django.mo,sha256=WkORQDOsFuV2bI7hwVsJr_JTWnDQ8ZaK-VYugqnLv3w,1369 -django/contrib/gis/locale/en_GB/LC_MESSAGES/django.po,sha256=KWPMoX-X-gQhb47zoVsa79-16-SiCGpO0s4xkcGv9z0,1910 -django/contrib/gis/locale/eo/LC_MESSAGES/django.mo,sha256=qls9V1jybymGCdsutcjP6fT5oMaI-GXnt_oNfwq-Yhs,1960 -django/contrib/gis/locale/eo/LC_MESSAGES/django.po,sha256=WPSkCxwq3ZnR-_L-W-CnS0_Qne3ekX7ZAZVaubiWw5s,2155 -django/contrib/gis/locale/es/LC_MESSAGES/django.mo,sha256=oMQQrOdtyzvfCE844C5vM7wUuqtjMQ_HsG0TkKmfhr4,2025 -django/contrib/gis/locale/es/LC_MESSAGES/django.po,sha256=Tqmpl0-dMQELpOc7o-ig9pf6W4p8X-7Hn1EhLTnBN4Q,2476 -django/contrib/gis/locale/es_AR/LC_MESSAGES/django.mo,sha256=J-A7H9J3DjwlJ-8KvO5MC-sq4hUsJhmioAE-wiwOA8E,2012 -django/contrib/gis/locale/es_AR/LC_MESSAGES/django.po,sha256=uWqoO-Tw7lOyPnOKC2SeSFD0MgPIQHWqTfroAws24aQ,2208 -django/contrib/gis/locale/es_CO/LC_MESSAGES/django.mo,sha256=P79E99bXjthakFYr1BMobTKqJN9S1aj3vfzMTbGRhCY,1865 -django/contrib/gis/locale/es_CO/LC_MESSAGES/django.po,sha256=tyu8_dFA9JKeQ2VCpCUy_6yX97SPJcDwVqqAuf_xgks,2347 -django/contrib/gis/locale/es_MX/LC_MESSAGES/django.mo,sha256=bC-uMgJXdbKHQ-w7ez-6vh9E_2YSgCF_LkOQlvb60BU,1441 -django/contrib/gis/locale/es_MX/LC_MESSAGES/django.po,sha256=MYO9fGclp_VvLG5tXDjXY3J_1FXI4lDv23rGElXAyjA,1928 -django/contrib/gis/locale/es_VE/LC_MESSAGES/django.mo,sha256=5YVIO9AOtmjky90DAXVyU0YltfQ4NLEpVYRTTk7SZ5o,486 -django/contrib/gis/locale/es_VE/LC_MESSAGES/django.po,sha256=R8suLsdDnSUEKNlXzow3O6WIT5NcboZoCjir9GfSTSQ,1494 -django/contrib/gis/locale/et/LC_MESSAGES/django.mo,sha256=xrNWaGCM9t14hygJ7a2g3KmhnFIAxVPrfKdJmP9ysrg,1921 -django/contrib/gis/locale/et/LC_MESSAGES/django.po,sha256=ejWpn0QAyxGCsfY1VpsJhUcY4ngNXG5vcwt_qOF5jbA,2282 -django/contrib/gis/locale/eu/LC_MESSAGES/django.mo,sha256=VCs3BT_AwXUHmLnAftVWs9C9rZl1FYB33u4kkQyoedY,1936 -django/contrib/gis/locale/eu/LC_MESSAGES/django.po,sha256=IrFIeK0oZNh3y3RodKxqG_1c84DdPHYqdfufY5a9C6g,2197 -django/contrib/gis/locale/fa/LC_MESSAGES/django.mo,sha256=5S15sLEZkbyZJ_GaWfysYbSo49X2U15ZFqfRHf-q0ZY,2242 -django/contrib/gis/locale/fa/LC_MESSAGES/django.po,sha256=SBQDQA2E3e1e2XniZtEu4dr6-MwNh-q_uJ022xHO_34,2596 -django/contrib/gis/locale/fi/LC_MESSAGES/django.mo,sha256=wbBTW0tVHJZbyVYDLdHourHKw5m6joaX1X_eP9uD6vY,1887 -django/contrib/gis/locale/fi/LC_MESSAGES/django.po,sha256=FYB9ZYdGMBtxt-7ZkxjtsgxVYFLDLOlscqaeSnNUa4s,2114 -django/contrib/gis/locale/fr/LC_MESSAGES/django.mo,sha256=BpmQ_09rbzFR-dRjX0_SbFAHQJs7bZekLTGwsN96j8A,2052 -django/contrib/gis/locale/fr/LC_MESSAGES/django.po,sha256=Nqsu2ILMuPVFGhHo7vYdQH7lwNupJRjl1SsMmFEo_Dw,2306 -django/contrib/gis/locale/fy/LC_MESSAGES/django.mo,sha256=2kCnWU_giddm3bAHMgDy0QqNwOb9qOiEyCEaYo1WdqQ,476 -django/contrib/gis/locale/fy/LC_MESSAGES/django.po,sha256=7ncWhxC5OLhXslQYv5unWurhyyu_vRsi4bGflZ6T2oQ,1484 -django/contrib/gis/locale/ga/LC_MESSAGES/django.mo,sha256=m6Owcr-5pln54TXcZFAkYEYDjYiAkT8bGFyw4nowNHA,1420 -django/contrib/gis/locale/ga/LC_MESSAGES/django.po,sha256=I0kyTnYBPSdYr8RontzhGPShJhylVAdRLBGWRQr2E7g,1968 -django/contrib/gis/locale/gd/LC_MESSAGES/django.mo,sha256=8TAogB3fzblx48Lv6V94mOlR6MKAW6NjZOkKmAhncRY,2082 -django/contrib/gis/locale/gd/LC_MESSAGES/django.po,sha256=vBafKOhKlhMXU2Qzgbiy7GhEGy-RBdHJi5ey5sHx5_I,2259 -django/contrib/gis/locale/gl/LC_MESSAGES/django.mo,sha256=mQEj5OXDGYGYuQvp_VrXgZDvod9DkMRNnRFCCgj8xHU,2021 -django/contrib/gis/locale/gl/LC_MESSAGES/django.po,sha256=yCuR6tHMjkSiesJBISCEgIm4o4Oo_I3UE-MwMGJgGM0,2298 -django/contrib/gis/locale/he/LC_MESSAGES/django.mo,sha256=ngfIMxGYVgNCVs_bfNI2PwjSyj03DF3FmSugZuVti60,2190 -django/contrib/gis/locale/he/LC_MESSAGES/django.po,sha256=N-FTLS0TL8AW5Owtfuqt7mlmqszgfXLUZ_4MQo23F2w,2393 -django/contrib/gis/locale/hi/LC_MESSAGES/django.mo,sha256=3nsy5mxKTPtx0EpqBNA_TJXmLmVZ4BPUZG72ZEe8OPM,1818 -django/contrib/gis/locale/hi/LC_MESSAGES/django.po,sha256=jTFG2gqqYAQct9-to0xL2kUFQu-ebR4j7RGfxn4sBAg,2372 -django/contrib/gis/locale/hr/LC_MESSAGES/django.mo,sha256=0XrRj2oriNZxNhEwTryo2zdMf-85-4X7fy7OJhB5ub4,1549 -django/contrib/gis/locale/hr/LC_MESSAGES/django.po,sha256=iijzoBoD_EJ1n-a5ys5CKnjzZzG299zPoCN-REFkeqE,2132 -django/contrib/gis/locale/hsb/LC_MESSAGES/django.mo,sha256=hA9IBuEZ6JHsTIVjGZdlvD8NcFy6v56pTy1fmA_lWwo,2045 -django/contrib/gis/locale/hsb/LC_MESSAGES/django.po,sha256=LAGSJIa6wd3Dh4IRG5DLigL-mjQzmYwn0o2RmSAdBdw,2211 -django/contrib/gis/locale/hu/LC_MESSAGES/django.mo,sha256=9P8L1-RxODT4NCMBUQnWQJaydNs9FwcAZeuoVmaQUDY,1940 -django/contrib/gis/locale/hu/LC_MESSAGES/django.po,sha256=qTC31EofFBS4HZ5SvxRKDIt2afAV4OS52_LYFnX2OB8,2261 -django/contrib/gis/locale/hy/LC_MESSAGES/django.mo,sha256=4D6em091yzO4s3U_DIdocdlvxtAbXdMt6Ig1ATxRGrQ,2535 -django/contrib/gis/locale/hy/LC_MESSAGES/django.po,sha256=0nkAba1H7qrC5JSakzJuAqsldWPG7lsjH7H8jVfG1SU,2603 -django/contrib/gis/locale/ia/LC_MESSAGES/django.mo,sha256=9MZnSXkQUIfbYB2f4XEtYo_FzuVi5OlsYcX9K_REz3c,1899 -django/contrib/gis/locale/ia/LC_MESSAGES/django.po,sha256=f7OuqSzGHQNldBHp62VIWjqP0BB0bvo8qEx9_wzH090,2116 -django/contrib/gis/locale/id/LC_MESSAGES/django.mo,sha256=FPjGhjf4wy-Wi6f3GnsBhmpBJBFnAPOw5jUPbufHISM,1938 -django/contrib/gis/locale/id/LC_MESSAGES/django.po,sha256=ap7GLVlZO6mmAs6PHgchU5xrChWF-YbwtJU7t0tqz0k,2353 -django/contrib/gis/locale/io/LC_MESSAGES/django.mo,sha256=_yUgF2fBUxVAZAPNw2ROyWly5-Bq0niGdNEzo2qbp8k,464 -django/contrib/gis/locale/io/LC_MESSAGES/django.po,sha256=fgGJ1xzliMK0MlVoV9CQn_BuuS3Kl71Kh5YEybGFS0Y,1472 -django/contrib/gis/locale/is/LC_MESSAGES/django.mo,sha256=UQb3H5F1nUxJSrADpLiYe12TgRhYKCFQE5Xy13MzEqU,1350 -django/contrib/gis/locale/is/LC_MESSAGES/django.po,sha256=8QWtgdEZR7OUVXur0mBCeEjbXTBjJmE-DOiKe55FvMo,1934 -django/contrib/gis/locale/it/LC_MESSAGES/django.mo,sha256=8VddOMr-JMs5D-J5mq-UgNnhf98uutpoJYJKTr8E224,1976 -django/contrib/gis/locale/it/LC_MESSAGES/django.po,sha256=Vp1G-GChjjTsODwABsg5LbmR6_Z-KpslwkNUipuOqk4,2365 -django/contrib/gis/locale/ja/LC_MESSAGES/django.mo,sha256=Ro8-P0647LU_963TJT1uOWTohB77YaGGci_2sMLJwEo,2096 -django/contrib/gis/locale/ja/LC_MESSAGES/django.po,sha256=shMi1KrURuWbFGc3PpSrpatfEQJlW--QTDH6HwHbtv4,2352 -django/contrib/gis/locale/ka/LC_MESSAGES/django.mo,sha256=iqWQ9j8yanPjDhwi9cNSktYgfLVnofIsdICnAg2Y_to,1991 -django/contrib/gis/locale/ka/LC_MESSAGES/django.po,sha256=rkM7RG0zxDN8vqyAudmk5nocajhOYP6CTkdJKu21Pf4,2571 -django/contrib/gis/locale/kk/LC_MESSAGES/django.mo,sha256=NtgQONp0UncUNvrh0W2R7u7Ja8H33R-a-tsQShWq-QI,1349 -django/contrib/gis/locale/kk/LC_MESSAGES/django.po,sha256=78OMHuerBJZJZVo9GjGJ1h5fwdLuSc_X03ZhSRibtf4,1979 -django/contrib/gis/locale/km/LC_MESSAGES/django.mo,sha256=T0aZIZ_gHqHpQyejnBeX40jdcfhrCOjgKjNm2hLrpNE,459 -django/contrib/gis/locale/km/LC_MESSAGES/django.po,sha256=7ARjFcuPQJG0OGLJu9pVfSiAwc2Q-1tT6xcLeKeom1c,1467 -django/contrib/gis/locale/kn/LC_MESSAGES/django.mo,sha256=EkJRlJJSHZJvNZJuOLpO4IIUEoyi_fpKwNWe0OGFcy4,461 -django/contrib/gis/locale/kn/LC_MESSAGES/django.po,sha256=MnsSftGvmgJgGfgayQUVDMj755z8ItkM9vBehORfYbk,1475 -django/contrib/gis/locale/ko/LC_MESSAGES/django.mo,sha256=3cvrvesJ_JU-XWI5oaYSAANVjwFxn3SLd3UrdRSMAfA,1939 -django/contrib/gis/locale/ko/LC_MESSAGES/django.po,sha256=Gg9s__57BxLIYJx5O0c-UJ8cAzsU3TcLuKGE7abn1rE,2349 -django/contrib/gis/locale/ky/LC_MESSAGES/django.mo,sha256=1z_LnGCxvS3_6OBr9dBxsyHrDs7mR3Fzm76sdgNGJrU,2221 -django/contrib/gis/locale/ky/LC_MESSAGES/django.po,sha256=NyWhlb3zgb0iAa6C0hOqxYxA7zaR_XgyjJHffoCIw1g,2438 -django/contrib/gis/locale/lb/LC_MESSAGES/django.mo,sha256=XAyZQUi8jDr47VpSAHp_8nQb0KvSMJHo5THojsToFdk,474 -django/contrib/gis/locale/lb/LC_MESSAGES/django.po,sha256=5rfudPpH4snSq2iVm9E81EBwM0S2vbkY2WBGhpuga1Q,1482 -django/contrib/gis/locale/lt/LC_MESSAGES/django.mo,sha256=9I8bq0gbDGv7wBe60z3QtWZ5x_NgALjCTvR6rBtPPBY,2113 -django/contrib/gis/locale/lt/LC_MESSAGES/django.po,sha256=jD2vv47dySaH1nVzzf7mZYKM5vmofhmaKXFp4GvX1Iw,2350 -django/contrib/gis/locale/lv/LC_MESSAGES/django.mo,sha256=KkVqgndzTA8WAagHB4hg65PUvQKXl_O79fb2r04foXw,2025 -django/contrib/gis/locale/lv/LC_MESSAGES/django.po,sha256=21VWQDPMF27yZ-ctKO-f0sohyvVkIaTXk9MKF-WGmbo,2253 -django/contrib/gis/locale/mk/LC_MESSAGES/django.mo,sha256=PVw73LWWNvaNd95zQbAIA7LA7JNmpf61YIoyuOca2_s,2620 -django/contrib/gis/locale/mk/LC_MESSAGES/django.po,sha256=eusHVHXHRfdw1_JyuBW7H7WPCHFR_z1NBqr79AVqAk0,2927 -django/contrib/gis/locale/ml/LC_MESSAGES/django.mo,sha256=Kl9okrE3AzTPa5WQ-IGxYVNSRo2y_VEdgDcOyJ_Je78,2049 -django/contrib/gis/locale/ml/LC_MESSAGES/django.po,sha256=PWg8atPKfOsnVxg_uro8zYO9KCE1UVhfy_zmCWG0Bdk,2603 -django/contrib/gis/locale/mn/LC_MESSAGES/django.mo,sha256=-Nn70s2On94C-jmSZwTppW2q7_W5xgMpzPXYmxZSKXs,2433 -django/contrib/gis/locale/mn/LC_MESSAGES/django.po,sha256=I0ZHocPlRYrogJtzEGVPsWWHpoVEa7e2KYP9Ystlj60,2770 -django/contrib/gis/locale/mr/LC_MESSAGES/django.mo,sha256=sO2E__g61S0p5I6aEwnoAsA3epxv7_Jn55TyF0PZCUA,468 -django/contrib/gis/locale/mr/LC_MESSAGES/django.po,sha256=McWaLXfWmYTDeeDbIOrV80gwnv07KCtNIt0OXW_v7vw,1476 -django/contrib/gis/locale/ms/LC_MESSAGES/django.mo,sha256=Ws6mtfdx1yajz4NUl1aqrWYc0XNPm2prqAAE8yCNyT0,1887 -django/contrib/gis/locale/ms/LC_MESSAGES/django.po,sha256=wglQEOZ8SF4_d7tZBCoOOSTbRG1U5IM4lIZA1H5MaDg,2017 -django/contrib/gis/locale/my/LC_MESSAGES/django.mo,sha256=e6G8VbCCthUjV6tV6PRCy_ZzsXyZ-1OYjbYZIEShbXI,525 -django/contrib/gis/locale/my/LC_MESSAGES/django.po,sha256=R3v1S-904f8FWSVGHe822sWrOJI6cNJIk93-K7_E_1c,1580 -django/contrib/gis/locale/nb/LC_MESSAGES/django.mo,sha256=a89qhy9BBE_S-MYlOMLaYMdnOvUEJxh8V80jYJqFEj0,1879 -django/contrib/gis/locale/nb/LC_MESSAGES/django.po,sha256=UIk8oXTFdxTn22tTtIXowTl3Nxn2qvpQO72GoQDUmaw,2166 -django/contrib/gis/locale/ne/LC_MESSAGES/django.mo,sha256=nB-Ta8w57S6hIAhAdWZjDT0Dg6JYGbAt5FofIhJT7k8,982 -django/contrib/gis/locale/ne/LC_MESSAGES/django.po,sha256=eMH6uKZZZYn-P3kmHumiO4z9M4923s9tWGhHuJ0eWuI,1825 -django/contrib/gis/locale/nl/LC_MESSAGES/django.mo,sha256=d22j68OCI1Bevtl2WgXHSQHFCiDgkPXmrFHca_uUm14,1947 -django/contrib/gis/locale/nl/LC_MESSAGES/django.po,sha256=ffytg6K7pTQoIRfxY35i1FpolJeox-fpSsG1JQzvb-0,2381 -django/contrib/gis/locale/nn/LC_MESSAGES/django.mo,sha256=Rp1zi-gbaGBPk9MVR4sw1MS4MhCRs6u9v7Aa8IxrkQQ,1888 -django/contrib/gis/locale/nn/LC_MESSAGES/django.po,sha256=ApoLxcaZ3UzO8owOqfDgDMCJuemnGAfrKH_qJVR47eM,2087 -django/contrib/gis/locale/os/LC_MESSAGES/django.mo,sha256=02NpGC8WPjxmPqQkfv9Kj2JbtECdQCtgecf_Tjk1CZc,1594 -django/contrib/gis/locale/os/LC_MESSAGES/django.po,sha256=JBIsv5nJg3Wof7Xy7odCI_xKRBLN_Hlbb__kNqNW4Xw,2161 -django/contrib/gis/locale/pa/LC_MESSAGES/django.mo,sha256=JR1NxG5_h_dFE_7p6trBWWIx-QqWYIgfGomnjaCsWAA,1265 -django/contrib/gis/locale/pa/LC_MESSAGES/django.po,sha256=Ejd_8dq_M0E9XFijk0qj4oC-8_oe48GWWHXhvOrFlnY,1993 -django/contrib/gis/locale/pl/LC_MESSAGES/django.mo,sha256=BkGcSOdz9VE7OYEeFzC9OLANJsTB3pFU1Xs8-CWFgb4,2095 -django/contrib/gis/locale/pl/LC_MESSAGES/django.po,sha256=IIy2N8M_UFanmHB6Ajne9g5NQ7tJCF5JvgrzasFUJDY,2531 -django/contrib/gis/locale/pt/LC_MESSAGES/django.mo,sha256=sE5PPOHzfT8QQXuV5w0m2pnBTRhKYs_vFhk8p_A4Jg0,2036 -django/contrib/gis/locale/pt/LC_MESSAGES/django.po,sha256=TFt6Oj1NlCM3pgs2dIgFZR3S3y_g7oR7S-XRBlM4924,2443 -django/contrib/gis/locale/pt_BR/LC_MESSAGES/django.mo,sha256=5HGIao480s3B6kXtSmdy1AYjGUZqbYuZ9Eapho_jkTk,1976 -django/contrib/gis/locale/pt_BR/LC_MESSAGES/django.po,sha256=4-2WPZT15YZPyYbH7xnBRc7A8675875kVFjM9tr1o5U,2333 -django/contrib/gis/locale/ro/LC_MESSAGES/django.mo,sha256=brEMR8zmBMK6otF_kmR2IVuwM9UImo24vwSVUdRysAY,1829 -django/contrib/gis/locale/ro/LC_MESSAGES/django.po,sha256=EDdumoPfwMHckneEl4OROll5KwYL0ljdY-yJTUkK2JA,2242 -django/contrib/gis/locale/ru/LC_MESSAGES/django.mo,sha256=Beo_YLNtenVNPIyWB-KKMlbxeK0z4DIxhLNkAE8p9Ko,2542 -django/contrib/gis/locale/ru/LC_MESSAGES/django.po,sha256=GKPf50Wm3evmbOdok022P2YZxh-6ROKgDRLyxewPy1g,2898 -django/contrib/gis/locale/sk/LC_MESSAGES/django.mo,sha256=bws9O1h9u-ia1FraYJNIsRCf78_cSo9PNVo802hCMMQ,2043 -django/contrib/gis/locale/sk/LC_MESSAGES/django.po,sha256=DAAMn59_3-aTD8qimDetbY6GFqC311lTD3VOxz80xNQ,2375 -django/contrib/gis/locale/sl/LC_MESSAGES/django.mo,sha256=9-efMT2MoEMa5-SApGWTRiyfvI6vmZzLeMg7qGAr7_A,2067 -django/contrib/gis/locale/sl/LC_MESSAGES/django.po,sha256=foZY7N5QkuAQS7nc3CdnJerCPk-lhSb1xZqU11pNGNo,2303 -django/contrib/gis/locale/sq/LC_MESSAGES/django.mo,sha256=WEq6Bdd9fM_aRhWUBpl_qTc417U9708u9sXNgyB8o1k,1708 -django/contrib/gis/locale/sq/LC_MESSAGES/django.po,sha256=mAOImw7HYWDO2VuoHU-VAp08u5DM-BUC633Lhkc3vRk,2075 -django/contrib/gis/locale/sr/LC_MESSAGES/django.mo,sha256=cQzh-8YOz0FSIE0-BkeQHiqG6Tl4ArHvSN3yMXiaoec,2454 -django/contrib/gis/locale/sr/LC_MESSAGES/django.po,sha256=PQ3FYEidoV200w8WQBFsid7ULKZyGLzCjfCVUUPKWrk,2719 -django/contrib/gis/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=SASOtA8mOnMPxh1Lr_AC0yR82SqyTiPrlD8QmvYgG58,2044 -django/contrib/gis/locale/sr_Latn/LC_MESSAGES/django.po,sha256=BPkwFmsLHVN8jwjf1pqmrTXhxO0fgDzE0-C7QvaBeVg,2271 -django/contrib/gis/locale/sv/LC_MESSAGES/django.mo,sha256=qz5WD6-SV6IYc36G52EccYa6AdGq3_MO35vJjPj5tgA,1944 -django/contrib/gis/locale/sv/LC_MESSAGES/django.po,sha256=VHHxr5TBEBClbH_WosRk8J4vTvkQ0Fa0pbRdflVQlH4,2312 -django/contrib/gis/locale/sw/LC_MESSAGES/django.mo,sha256=uBhpGHluGwYpODTE-xhdJD2e6PHleN07wLE-kjrXr_M,1426 -django/contrib/gis/locale/sw/LC_MESSAGES/django.po,sha256=nHXQQMYYXT1ec3lIBxQIDIAwLtXucX47M4Cozy08kko,1889 -django/contrib/gis/locale/ta/LC_MESSAGES/django.mo,sha256=Rboo36cGKwTebe_MiW4bOiMsRO2isB0EAyJJcoy_F6s,466 -django/contrib/gis/locale/ta/LC_MESSAGES/django.po,sha256=sLYW8_5BSVoSLWUr13BbKRe0hNJ_cBMEtmjCPBdTlAk,1474 -django/contrib/gis/locale/te/LC_MESSAGES/django.mo,sha256=xDkaSztnzQ33Oc-GxHoSuutSIwK9A5Bg3qXEdEvo4h4,824 -django/contrib/gis/locale/te/LC_MESSAGES/django.po,sha256=nYryhktJumcwtZDGZ43xBxWljvdd-cUeBrAYFZOryVg,1772 -django/contrib/gis/locale/tg/LC_MESSAGES/django.mo,sha256=6Jyeaq1ORsnE7Ceh_rrhbfslFskGe12Ar-dQl6NFyt0,611 -django/contrib/gis/locale/tg/LC_MESSAGES/django.po,sha256=9c1zPt7kz1OaRJPPLdqjQqO8MT99KtS9prUvoPa9qJk,1635 -django/contrib/gis/locale/th/LC_MESSAGES/django.mo,sha256=0kekAr7eXc_papwPAxEZ3TxHOBg6EPzdR3q4hmAxOjg,1835 -django/contrib/gis/locale/th/LC_MESSAGES/django.po,sha256=WJPdoZjLfvepGGMhfBB1EHCpxtxxfv80lRjPG9kGErM,2433 -django/contrib/gis/locale/tr/LC_MESSAGES/django.mo,sha256=_bNVyXHbuyM42-fAsL99wW7_Hwu5hF_WD7FzY-yfS8k,1961 -django/contrib/gis/locale/tr/LC_MESSAGES/django.po,sha256=W0pxShIqMePnQvn_7zcY_q4_C1PCnWwFMastDo_gHd0,2242 -django/contrib/gis/locale/tt/LC_MESSAGES/django.mo,sha256=cGVPrWCe4WquVV77CacaJwgLSnJN0oEAepTzNMD-OWk,1470 -django/contrib/gis/locale/tt/LC_MESSAGES/django.po,sha256=98yeRs-JcMGTyizOpEuQenlnWJMYTR1-rG3HGhKCykk,2072 -django/contrib/gis/locale/udm/LC_MESSAGES/django.mo,sha256=I6bfLvRfMn79DO6bVIGfYSVeZY54N6c8BNO7OyyOOsw,462 -django/contrib/gis/locale/udm/LC_MESSAGES/django.po,sha256=B1PCuPYtNOrrhu4fKKJgkqxUrcEyifS2Y3kw-iTmSIk,1470 -django/contrib/gis/locale/uk/LC_MESSAGES/django.mo,sha256=Pnot1RDsNa4HYvy_6ZsFFMGhJ4JyEn6qWbDPPFUXDzg,2586 -django/contrib/gis/locale/uk/LC_MESSAGES/django.po,sha256=uJfVys_Tzi99yJ7F5IEbIDJTcM1MzCz2vpiVv_fVRmc,3090 -django/contrib/gis/locale/ur/LC_MESSAGES/django.mo,sha256=tB5tz7EscuE9IksBofNuyFjk89-h5X7sJhCKlIho5SY,1410 -django/contrib/gis/locale/ur/LC_MESSAGES/django.po,sha256=16m0t10Syv76UcI7y-EXfQHETePmrWX4QMVfyeuX1fQ,2007 -django/contrib/gis/locale/vi/LC_MESSAGES/django.mo,sha256=NT5T0FRCC2XINdtaCFCVUxb5VRv8ta62nE8wwSHGTrc,1384 -django/contrib/gis/locale/vi/LC_MESSAGES/django.po,sha256=y77GtqH5bv1wR78xN5JLHusmQzoENTH9kLf9Y3xz5xk,1957 -django/contrib/gis/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=g_8mpfbj-6HJ-g1PrFU2qTTfvCbztNcjDym_SegaI8Q,1812 -django/contrib/gis/locale/zh_Hans/LC_MESSAGES/django.po,sha256=MBJpb5IJxUaI2k0Hq8Q1GLXHJPFAA-S1w6NRjsmrpBw,2286 -django/contrib/gis/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=jEgcPJy_WzZa65-5rXb64tN_ehUku_yIj2d7tXwweP8,1975 -django/contrib/gis/locale/zh_Hant/LC_MESSAGES/django.po,sha256=iVnQKpbsQ4nJi65PHAO8uGRO6jhHWs22gTOUKPpb64s,2283 -django/contrib/gis/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/management/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/management/commands/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/management/commands/__pycache__/inspectdb.cpython-312.pyc,, -django/contrib/gis/management/commands/__pycache__/ogrinspect.cpython-312.pyc,, -django/contrib/gis/management/commands/inspectdb.py,sha256=8WhDOBICFAbLFu7kwAAS4I5pNs_p1BrCv8GJYI3S49k,760 -django/contrib/gis/management/commands/ogrinspect.py,sha256=XnWAbLxRxTSvbKSvjgePN7D1o_Ep4qWkvMwVrG1TpYY,6071 -django/contrib/gis/measure.py,sha256=KieLLeQFsV23gnPzj1WoJvN5unOIK5v8QThgX0Rk4Sg,12557 -django/contrib/gis/ptr.py,sha256=NeIBB-plwO61wGOOxGg7fFyVXI4a5vbAGUdaJ_Fmjqo,1312 -django/contrib/gis/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/gis/serializers/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/serializers/__pycache__/geojson.cpython-312.pyc,, -django/contrib/gis/serializers/geojson.py,sha256=lgwJ0xh-mjMVwJi_UpHH7MTKtjH_7txIQyLG-G2C4-A,3000 -django/contrib/gis/shortcuts.py,sha256=aa9zFjVU38qaEvRc0vAH_j2AgAERlI01rphYLHbc7Tg,1027 -django/contrib/gis/sitemaps/__init__.py,sha256=Tjj057omOVcoC5Fb8ITEYVhLm0HcVjrZ1Mbz_tKoD1A,138 -django/contrib/gis/sitemaps/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/sitemaps/__pycache__/kml.cpython-312.pyc,, -django/contrib/gis/sitemaps/__pycache__/views.cpython-312.pyc,, -django/contrib/gis/sitemaps/kml.py,sha256=CUn_KKVrwGg2ZmmDcWosBc0QFuJp8hHpeNRCcloVk1U,2573 -django/contrib/gis/sitemaps/views.py,sha256=AFV1ay-oFftFC-IszzeKz3JAGzE0TOCH8pN1cwtg7yI,2353 -django/contrib/gis/static/gis/css/ol3.css,sha256=DmCfOuPC1wUs0kioWxIpSausvF6AYUlURbJLNGyvngA,773 -django/contrib/gis/static/gis/img/draw_line_off.svg,sha256=6XW83xsR5-Guh27UH3y5UFn9y9FB9T_Zc4kSPA-xSOI,918 -django/contrib/gis/static/gis/img/draw_line_on.svg,sha256=Hx-pXu4ped11esG6YjXP1GfZC5q84zrFQDPUo1C7FGA,892 -django/contrib/gis/static/gis/img/draw_point_off.svg,sha256=PICrywZPwuBkaQAKxR9nBJ0AlfTzPHtVn_up_rSiHH4,803 -django/contrib/gis/static/gis/img/draw_point_on.svg,sha256=raGk3oc8w87rJfLdtZ4nIXJyU3OChCcTd4oH-XAMmmM,803 -django/contrib/gis/static/gis/img/draw_polygon_off.svg,sha256=gnVmjeZE2jOvjfyx7mhazMDBXJ6KtSDrV9f0nSzkv3A,981 -django/contrib/gis/static/gis/img/draw_polygon_on.svg,sha256=ybJ9Ww7-bsojKQJtjErLd2cCOgrIzyqgIR9QNhH_ZfA,982 -django/contrib/gis/static/gis/js/OLMapWidget.js,sha256=wNkqWj8CdsMqxBYI57v0SKl-2Ay12ckFvq3eMk1bsg4,9356 -django/contrib/gis/templates/gis/admin/openlayers.html,sha256=41MtWKVz6IR-_-c0zIQi1hvA9wXpD-g5VDJdojkcMgE,1441 -django/contrib/gis/templates/gis/admin/openlayers.js,sha256=KoT3VUMAez9-5QoT5U6OJXzt3MLxlTrJMMwINjQ_k7M,8975 -django/contrib/gis/templates/gis/admin/osm.html,sha256=yvYyZPmgP64r1JT3eZCDun5ENJaaN3d3wbTdCxIOvSo,111 -django/contrib/gis/templates/gis/admin/osm.js,sha256=0wFRJXKZ2plp7tb0F9fgkMzp4NrKZXcHiMkKDJeHMRw,128 -django/contrib/gis/templates/gis/kml/base.kml,sha256=VYnJaGgFVHRzDjiFjbcgI-jxlUos4B4Z1hx_JeI2ZXU,219 -django/contrib/gis/templates/gis/kml/placemarks.kml,sha256=TEC81sDL9RK2FVeH0aFJTwIzs6_YWcMeGnHkACJV1Uc,360 -django/contrib/gis/templates/gis/openlayers-osm.html,sha256=TeiUqCjt73W8Hgrp_6zAtk_ZMBxskNN6KHSmnJ1-GD4,378 -django/contrib/gis/templates/gis/openlayers.html,sha256=Ou-Cwe58NHmSyOuMeCNixrys_SCmd2RzMecNeAW67_I,1587 -django/contrib/gis/utils/__init__.py,sha256=om0rPPBwSmvN4_BZpEkvpZqT44S0b7RCJpLAS2nI9-o,604 -django/contrib/gis/utils/__pycache__/__init__.cpython-312.pyc,, -django/contrib/gis/utils/__pycache__/layermapping.cpython-312.pyc,, -django/contrib/gis/utils/__pycache__/ogrinfo.cpython-312.pyc,, -django/contrib/gis/utils/__pycache__/ogrinspect.cpython-312.pyc,, -django/contrib/gis/utils/__pycache__/srs.cpython-312.pyc,, -django/contrib/gis/utils/layermapping.py,sha256=hSQ-sBvqD0Qy3_xhnOTYXa6puJDc7p20xn9LpHQGsew,28914 -django/contrib/gis/utils/ogrinfo.py,sha256=6m3KaRzLoZtQ0OSrpRkaFIQXi9YOXTkQcYeqYb0S0nw,1956 -django/contrib/gis/utils/ogrinspect.py,sha256=nxKd1cufjbP86uJcsaNb1c3n9IA-uy4ltQjLGgPjB1E,9169 -django/contrib/gis/utils/srs.py,sha256=UXsbxW0cQzdnPKO0d9E5K2HPdekdab5NaLZWNOUq-zk,2962 -django/contrib/gis/views.py,sha256=zdCV8QfUVfxEFGxESsUtCicsbSVtZNI_IXybdmsHKiM,714 -django/contrib/humanize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/humanize/__pycache__/__init__.cpython-312.pyc,, -django/contrib/humanize/__pycache__/apps.cpython-312.pyc,, -django/contrib/humanize/apps.py,sha256=LH3PTbB4V1gbBc8nmCw3BsSuA8La0fNOb4cSISvJAwI,194 -django/contrib/humanize/locale/af/LC_MESSAGES/django.mo,sha256=bNLjjeZ3H-KD_pm-wa1_5eLCDOmG2FXgDHVOg5vgL7o,5097 -django/contrib/humanize/locale/af/LC_MESSAGES/django.po,sha256=p3OduzjtTGkwlgDJhPgSm9aXI2sWzORspsPf7_RnWjs,8923 -django/contrib/humanize/locale/ar/LC_MESSAGES/django.mo,sha256=PokPfBR8w4AbRtNNabl5vO8r5E8_egHvFBjKp4CCvO4,7510 -django/contrib/humanize/locale/ar/LC_MESSAGES/django.po,sha256=QGW-kx-87DlPMGr5l_Eb6Ge-x4tkz2PuwHDe3EIkIQg,12326 -django/contrib/humanize/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=NwCrL5FX_xdxYdqkW_S8tmU8ktDM8LqimmUvkt8me74,9155 -django/contrib/humanize/locale/ar_DZ/LC_MESSAGES/django.po,sha256=tt0AxhohGX79OQ_lX1S5soIo-iSCC07SdAhPpy0O7Q4,15234 -django/contrib/humanize/locale/ast/LC_MESSAGES/django.mo,sha256=WvBk8V6g1vgzGqZ_rR-4p7SMh43PFnDnRhIS9HSwdoQ,3468 -django/contrib/humanize/locale/ast/LC_MESSAGES/django.po,sha256=S9lcUf2y5wR8Ufa-Rlz-M73Z3bMo7zji_63cXwtDK2I,5762 -django/contrib/humanize/locale/az/LC_MESSAGES/django.mo,sha256=h7H_-Y-3YiP_98cdIz953QFmQJq86bHfN-U5pXjQLg8,4345 -django/contrib/humanize/locale/az/LC_MESSAGES/django.po,sha256=prn_LypmpP3By-EYF3_DMXtjrn4o60fpMi-SC9uD8fE,7770 -django/contrib/humanize/locale/be/LC_MESSAGES/django.mo,sha256=7KyJKhNqMqv32CPdJi01RPLBefOVCQW-Gx6-Vf9JVrs,6653 -django/contrib/humanize/locale/be/LC_MESSAGES/django.po,sha256=2mbReEHyXhmZysqhSmaT6A2XCHn8mYb2R_O16TMGCAo,10666 -django/contrib/humanize/locale/bg/LC_MESSAGES/django.mo,sha256=jCdDIbqWlhOs-4gML44wSRIXJQxypfak6ByRG_reMsk,4823 -django/contrib/humanize/locale/bg/LC_MESSAGES/django.po,sha256=v2ih4-pL1cdDXaa3uXm9FxRjRKyULLGyz78Q91eKEG8,8267 -django/contrib/humanize/locale/bn/LC_MESSAGES/django.mo,sha256=jbL4ucZxxtexI10jgldtgnDie3I23XR3u-PrMMMqP6U,4026 -django/contrib/humanize/locale/bn/LC_MESSAGES/django.po,sha256=0l4yyy7q3OIWyFk_PW0y883Vw2Pmu48UcnLM9OBxB68,6545 -django/contrib/humanize/locale/br/LC_MESSAGES/django.mo,sha256=V_tPVAyQzVdDwWPNlVGWmlVJjmVZfbh35alkwsFlCNU,5850 -django/contrib/humanize/locale/br/LC_MESSAGES/django.po,sha256=BcAqEV2JpF0hiCQDttIMblp9xbB7zoHsmj7fJFV632k,12245 -django/contrib/humanize/locale/bs/LC_MESSAGES/django.mo,sha256=1-RNRHPgZR_9UyiEn9Djp4mggP3fywKZho45E1nGMjM,1416 -django/contrib/humanize/locale/bs/LC_MESSAGES/django.po,sha256=M017Iu3hyXmINZkhCmn2he-FB8rQ7rXN0KRkWgrp7LI,5498 -django/contrib/humanize/locale/ca/LC_MESSAGES/django.mo,sha256=WDvXis2Y1ivSq6NdJgddO_WKbz8w5MpVpkT4sq-pWXI,4270 -django/contrib/humanize/locale/ca/LC_MESSAGES/django.po,sha256=AD3h2guGADdp1f9EcbP1vc1lmfDOL8-1qQfwvXa6I04,7731 -django/contrib/humanize/locale/ckb/LC_MESSAGES/django.mo,sha256=Mqv3kRZrOjWtTstmtOEqIJsi3vevf_hZUfYEetGxO7w,5021 -django/contrib/humanize/locale/ckb/LC_MESSAGES/django.po,sha256=q_7p7pEyV_NTw9eBvcztKlSFW7ykl0CIsNnA9g5oy20,8317 -django/contrib/humanize/locale/cs/LC_MESSAGES/django.mo,sha256=VFyZcn19aQUXhVyh2zo2g3PAuzOO38Kx9fMFOCCxzMc,5479 -django/contrib/humanize/locale/cs/LC_MESSAGES/django.po,sha256=mq3LagwA9hyWOGy76M9n_rD4p3wuVk6oQsneB9CF99w,9527 -django/contrib/humanize/locale/cy/LC_MESSAGES/django.mo,sha256=VjJiaUUhvX9tjOEe6x2Bdp7scvZirVcUsA4-iE2-ElQ,5241 -django/contrib/humanize/locale/cy/LC_MESSAGES/django.po,sha256=sylmceSq-NPvtr_FjklQXoBAfueKu7hrjEpMAsVbQC4,7813 -django/contrib/humanize/locale/da/LC_MESSAGES/django.mo,sha256=vfDHopmWFAomwqmmCX3wfmX870-zzVbgUFC6I77n9tE,4316 -django/contrib/humanize/locale/da/LC_MESSAGES/django.po,sha256=v7Al6UOkbYB1p7m8kOe-pPRIAoyWemoyg_Pm9bD5Ldc,7762 -django/contrib/humanize/locale/de/LC_MESSAGES/django.mo,sha256=aOUax9csInbXnjAJc3jq4dcW_9H-6ueVI-TtKz2b9q0,4364 -django/contrib/humanize/locale/de/LC_MESSAGES/django.po,sha256=gW3OfOfoVMvpVudwghKCYztkLrCIPbbcriZjBNnRyGo,7753 -django/contrib/humanize/locale/dsb/LC_MESSAGES/django.mo,sha256=OVKcuW9ZXosNvP_3A98WsIIk_Jl6U_kv3zOx4pvwh-g,5588 -django/contrib/humanize/locale/dsb/LC_MESSAGES/django.po,sha256=VimcsmobK3VXTbbTasg6osWDPOIZ555uimbUoUfNco4,9557 -django/contrib/humanize/locale/el/LC_MESSAGES/django.mo,sha256=o-yjhpzyGRbbdMzwUcG_dBP_FMEMZevm7Wz1p4Wd-pg,6740 -django/contrib/humanize/locale/el/LC_MESSAGES/django.po,sha256=UbD5QEw_-JNoNETaOyDfSReirkRsHnlHeSsZF5hOSkI,10658 -django/contrib/humanize/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/humanize/locale/en/LC_MESSAGES/django.po,sha256=7CzW7XKCntUjZon7-mQU_Z2UX9XReoQ8IsjojNowG1w,9050 -django/contrib/humanize/locale/en_AU/LC_MESSAGES/django.mo,sha256=QFf4EgAsGprbFetnwogmj8vDV7SfGq1E3vhL9D8xTTM,918 -django/contrib/humanize/locale/en_AU/LC_MESSAGES/django.po,sha256=Bnfesr1_T9sa31qkKOMunwKKXbnFzZJhzV8rYC_pdSE,6532 -django/contrib/humanize/locale/en_GB/LC_MESSAGES/django.mo,sha256=mkx192XQM3tt1xYG8EOacMfa-BvgzYCbSsJQsWZGeAo,3461 -django/contrib/humanize/locale/en_GB/LC_MESSAGES/django.po,sha256=MArKzXxY1104jxaq3kvDZs2WzOGYxicfJxFKsLzFavw,5801 -django/contrib/humanize/locale/eo/LC_MESSAGES/django.mo,sha256=b47HphXBi0cax_reCZiD3xIedavRHcH2iRG8pcwqb54,5386 -django/contrib/humanize/locale/eo/LC_MESSAGES/django.po,sha256=oN1YqOZgxKY3L1a1liluhM6X5YA5bawg91mHF_Vfqx8,9095 -django/contrib/humanize/locale/es/LC_MESSAGES/django.mo,sha256=z5ZCmAG4jGYleEE6pESMXihlESRQPkTEo2vIedXdjjI,5005 -django/contrib/humanize/locale/es/LC_MESSAGES/django.po,sha256=WwykwsBM_Q_xtA2vllIbcFSO7eUB72r56AG4ITwM5VM,8959 -django/contrib/humanize/locale/es_AR/LC_MESSAGES/django.mo,sha256=-btiXH3B5M1qkAsW9D5I742Gt9GcJs5VC8ZhJ_DKkGY,4425 -django/contrib/humanize/locale/es_AR/LC_MESSAGES/django.po,sha256=UsiuRj-eq-Vl41wNZGw9XijCMEmcXhcGrMTPWgZn4LA,7858 -django/contrib/humanize/locale/es_CO/LC_MESSAGES/django.mo,sha256=2GhQNtNOjK5mTov5RvnuJFTYbdoGBkDGLxzvJ8Vsrfs,4203 -django/contrib/humanize/locale/es_CO/LC_MESSAGES/django.po,sha256=JBf2fHO8jWi6dFdgZhstKXwyot_qT3iJBixQZc3l330,6326 -django/contrib/humanize/locale/es_MX/LC_MESSAGES/django.mo,sha256=82DL2ztdq10X5RIceshK1nO99DW5628ZIjaN8Xzp9ok,3939 -django/contrib/humanize/locale/es_MX/LC_MESSAGES/django.po,sha256=-O7AQluA5Kce9-bd04GN4tfQKoCxb8Sa7EZR6TZBCdM,6032 -django/contrib/humanize/locale/es_VE/LC_MESSAGES/django.mo,sha256=cJECzKpD99RRIpVFKQW65x0Nvpzrm5Fuhfi-nxOWmkM,942 -django/contrib/humanize/locale/es_VE/LC_MESSAGES/django.po,sha256=tDdYtvRILgeDMgZqKHSebe7Z5ZgI1bZhDdvGVtj_anM,4832 -django/contrib/humanize/locale/et/LC_MESSAGES/django.mo,sha256=_vLDxD-e-pBY7vs6gNkhFZNGYu_dAeETVMKGsjjWOHg,4406 -django/contrib/humanize/locale/et/LC_MESSAGES/django.po,sha256=u0tSkVYckwXUv1tVfe1ODdZ8tJ2wUkS0Vv8pakJ8eBM,7915 -django/contrib/humanize/locale/eu/LC_MESSAGES/django.mo,sha256=k_3NJUSo2JS5OZeQmGuCx0PEa_Xy1DvKIknoSv5EhWo,4312 -django/contrib/humanize/locale/eu/LC_MESSAGES/django.po,sha256=YuD0UCpc-tE1l1MS4gLLgDXhWGoEH6b2JYkgCZyAPds,7733 -django/contrib/humanize/locale/fa/LC_MESSAGES/django.mo,sha256=N32l1DsPALoSGe9GtJ5baIo0XUDm8U09JhcHr0lXtw4,4656 -django/contrib/humanize/locale/fa/LC_MESSAGES/django.po,sha256=YsYRnmvABepSAOgEj6dRvdY_jYZqJb0_dbQ_6daiJAQ,8228 -django/contrib/humanize/locale/fi/LC_MESSAGES/django.mo,sha256=FJfyLFkz-oAz9e15e1aQUct7CJ2EJqSkZKh_ztDxtic,4425 -django/contrib/humanize/locale/fi/LC_MESSAGES/django.po,sha256=j5Z5t9zX1kePdM_Es1hu9AKOpOrijVWTsS2t19CIiaE,7807 -django/contrib/humanize/locale/fr/LC_MESSAGES/django.mo,sha256=pHHD7DV36bC86CKXWUpWUp3NtKuqWu9_YXU04sE6ib4,5125 -django/contrib/humanize/locale/fr/LC_MESSAGES/django.po,sha256=SyN1vUt8zDG-iSTDR4OH1B_CbvKMM2YaMJ2_s-FEyog,8812 -django/contrib/humanize/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 -django/contrib/humanize/locale/fy/LC_MESSAGES/django.po,sha256=pPvcGgBWiZwQ5yh30OlYs-YZUd_XsFro71T9wErVv0M,4732 -django/contrib/humanize/locale/ga/LC_MESSAGES/django.mo,sha256=AOEiBNOak_KQkBeGyUpTNO12zyg3CiK66h4kMoS15_0,5112 -django/contrib/humanize/locale/ga/LC_MESSAGES/django.po,sha256=jTXihbd-ysAUs0TEKkOBmXJJj69V0cFNOHM6VbcPCWw,11639 -django/contrib/humanize/locale/gd/LC_MESSAGES/django.mo,sha256=wHsBVluXm4DW7iWxGHMHexqG9ovXEvgcaXvsmvkNHSE,5838 -django/contrib/humanize/locale/gd/LC_MESSAGES/django.po,sha256=CmmpKK7me-Ujitgx2IVkOcJyZOvie6XEBS7wCY4xZQ0,9802 -django/contrib/humanize/locale/gl/LC_MESSAGES/django.mo,sha256=LbJABG0-USW2C5CQro6WcPlPwT7I1BfuKGi_VFNhJIU,4345 -django/contrib/humanize/locale/gl/LC_MESSAGES/django.po,sha256=caidyTAFJ5iZ-tpEp0bflpUx0xlaH2jIYmPKxCVzlGE,7772 -django/contrib/humanize/locale/he/LC_MESSAGES/django.mo,sha256=phFZMDohKT86DUtiAlnZslPFwSmpcpxTgZaXb8pGohc,5875 -django/contrib/humanize/locale/he/LC_MESSAGES/django.po,sha256=xhEZYcK-fg_mHMyGCEZXEwbd6FvutaGvkDyHTET-sic,9970 -django/contrib/humanize/locale/hi/LC_MESSAGES/django.mo,sha256=qrzm-6vXIUsxA7nOxa-210-6iO-3BPBj67vKfhTOPrY,4131 -django/contrib/humanize/locale/hi/LC_MESSAGES/django.po,sha256=BrypbKaQGOyY_Gl1-aHXiBVlRqrbSjGfZ2OK8omj_9M,6527 -django/contrib/humanize/locale/hr/LC_MESSAGES/django.mo,sha256=29XTvFJHex31hbu2qsOfl5kOusz-zls9eqlxtvw_H0s,1274 -django/contrib/humanize/locale/hr/LC_MESSAGES/django.po,sha256=OuEH4fJE6Fk-s0BMqoxxdlUAtndvvKK7N8Iy-9BP3qA,5424 -django/contrib/humanize/locale/hsb/LC_MESSAGES/django.mo,sha256=a1DqdiuRfFSfSrD8IvzQmZdzE0dhkxDChFddrmt3fjA,5679 -django/contrib/humanize/locale/hsb/LC_MESSAGES/django.po,sha256=V5aRblcqKii4RXSQO87lyoQwwvxL59T3m4-KOBTx4bc,9648 -django/contrib/humanize/locale/hu/LC_MESSAGES/django.mo,sha256=8tEqiZHEc6YmfWjf7hO0Fb3Xd-HSleKaR1gT_XFTQ8g,5307 -django/contrib/humanize/locale/hu/LC_MESSAGES/django.po,sha256=KDVYBAGSuMrtwqO98-oGOOAp7Unfm7ode1sv8lfe81c,9124 -django/contrib/humanize/locale/hy/LC_MESSAGES/django.mo,sha256=C1yx1DrYTrZ7WkOzZ5hvunphWABvGX-DqXbChNQ5_yg,1488 -django/contrib/humanize/locale/hy/LC_MESSAGES/django.po,sha256=MGbuYylBt1C5hvSlktydD4oMLZ1Sjzj7DL_nl7uluTg,7823 -django/contrib/humanize/locale/ia/LC_MESSAGES/django.mo,sha256=d0m-FddFnKp08fQYQSC9Wr6M4THVU7ibt3zkIpx_Y_A,4167 -django/contrib/humanize/locale/ia/LC_MESSAGES/django.po,sha256=qX6fAZyn54hmtTU62oJcHF8p4QcYnoO2ZNczVjvjOeE,6067 -django/contrib/humanize/locale/id/LC_MESSAGES/django.mo,sha256=AdUmhfkQOV9Le4jXQyQSyd5f2GqwNt-oqnJV-WVELVw,3885 -django/contrib/humanize/locale/id/LC_MESSAGES/django.po,sha256=lMnTtM27j1EWg1i9d7NzAeueo7mRztGVfNOXtXdZVjw,7021 -django/contrib/humanize/locale/io/LC_MESSAGES/django.mo,sha256=nMu5JhIy8Fjie0g5bT8-h42YElCiS00b4h8ej_Ie-w0,464 -django/contrib/humanize/locale/io/LC_MESSAGES/django.po,sha256=RUs8JkpT0toKOLwdv1oCbcBP298EOk02dkdNSJiC-_A,4720 -django/contrib/humanize/locale/is/LC_MESSAGES/django.mo,sha256=D6ElUYj8rODRsZwlJlH0QyBSM44sVmuBCNoEkwPVxko,3805 -django/contrib/humanize/locale/is/LC_MESSAGES/django.po,sha256=1VddvtkhsK_5wmpYIqEFqFOo-NxIBnL9wwW74Tw9pbw,8863 -django/contrib/humanize/locale/it/LC_MESSAGES/django.mo,sha256=Zw8reudMUlPGC3eQ-CpsGYHX-FtNrAc5SxgTdmIrUC0,5374 -django/contrib/humanize/locale/it/LC_MESSAGES/django.po,sha256=wJzT-2ygufGLMIULd7afg1sZLQKnwQ55NZ2eAnwIY8M,9420 -django/contrib/humanize/locale/ja/LC_MESSAGES/django.mo,sha256=x8AvfUPBBJkGtE0jvAP4tLeZEByuyo2H4V_UuLoCEmw,3907 -django/contrib/humanize/locale/ja/LC_MESSAGES/django.po,sha256=G2yTPZq6DxgzPV5uJ6zvMK4o3aiuLWbl4vXPH7ylUhc,6919 -django/contrib/humanize/locale/ka/LC_MESSAGES/django.mo,sha256=UeUbonYTkv1d2ljC0Qj8ZHw-59zHu83fuMvnME9Fkmw,4878 -django/contrib/humanize/locale/ka/LC_MESSAGES/django.po,sha256=-eAMexwjm8nSB4ARJU3f811UZnuatHKIFf8FevpJEpo,9875 -django/contrib/humanize/locale/kk/LC_MESSAGES/django.mo,sha256=jujbUM0jOpt3Mw8zN4LSIIkxCJ0ihk_24vR0bXoux78,2113 -django/contrib/humanize/locale/kk/LC_MESSAGES/django.po,sha256=hjZg_NRE9xMA5uEa2mVSv1Hr4rv8inG9es1Yq7uy9Zc,8283 -django/contrib/humanize/locale/km/LC_MESSAGES/django.mo,sha256=mfXs9p8VokORs6JqIfaSSnQshZEhS90rRFhOIHjW7CI,459 -django/contrib/humanize/locale/km/LC_MESSAGES/django.po,sha256=JQBEHtcy-hrV_GVWIjvUJyOf3dZ5jUzzN8DUTAbHKUg,4351 -django/contrib/humanize/locale/kn/LC_MESSAGES/django.mo,sha256=Oq3DIPjgCqkn8VZMb6ael7T8fQ7LnWobPPAZKQSFHl4,461 -django/contrib/humanize/locale/kn/LC_MESSAGES/django.po,sha256=CAJ0etMlQF3voPYrxIRr5ChAwUYO7wI42n5kjpIEVjA,4359 -django/contrib/humanize/locale/ko/LC_MESSAGES/django.mo,sha256=mWmQEoe0MNVn3sNqsz6CBc826x3KIpOL53ziv6Ekf7c,3891 -django/contrib/humanize/locale/ko/LC_MESSAGES/django.po,sha256=UUxIUYM332DOZinJrqOUtQvHfCCHkodFhENDVWj3dpk,7003 -django/contrib/humanize/locale/ky/LC_MESSAGES/django.mo,sha256=jDu1bVgJMDpaZ0tw9-wdkorvZxDdRzcuzdeC_Ot7rUs,4177 -django/contrib/humanize/locale/ky/LC_MESSAGES/django.po,sha256=MEHbKMLIiFEG7BlxsNVF60viXSnlk5iqlFCH3hgamH0,7157 -django/contrib/humanize/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 -django/contrib/humanize/locale/lb/LC_MESSAGES/django.po,sha256=_y0QFS5Kzx6uhwOnzmoHtCrbufMrhaTLsHD0LfMqtcM,4730 -django/contrib/humanize/locale/lt/LC_MESSAGES/django.mo,sha256=O0C-tPhxWNW5J4tCMlB7c7shVjNO6dmTURtIpTVO9uc,7333 -django/contrib/humanize/locale/lt/LC_MESSAGES/django.po,sha256=M5LlRxC1KWh1-3fwS93UqTijFuyRENmQJXfpxySSKik,12086 -django/contrib/humanize/locale/lv/LC_MESSAGES/django.mo,sha256=3gEzmKBtYsFz9wvLw0ltiir91CDLxhK3IG2j55-uM7Y,5033 -django/contrib/humanize/locale/lv/LC_MESSAGES/django.po,sha256=yfeBxpH2J49xHDzZUZI3cK5ms4QbWq0gtTmhj8ejAjE,8836 -django/contrib/humanize/locale/mk/LC_MESSAGES/django.mo,sha256=htUgd6rcaeRPDf6UrEb18onz-Ayltw9LTvWRgEkXm08,4761 -django/contrib/humanize/locale/mk/LC_MESSAGES/django.po,sha256=Wl9Rt8j8WA_0jyxKCswIovSiCQD-ZWFYXbhFsCUKIWo,6665 -django/contrib/humanize/locale/ml/LC_MESSAGES/django.mo,sha256=5As-FXkEJIYetmV9dMtzLtsRPTOm1oUgyx-oeTH_guY,4655 -django/contrib/humanize/locale/ml/LC_MESSAGES/django.po,sha256=I9_Ln0C1nSj188_Zdq9Vy6lC8aLzg_YdNc5gy9hNGjE,10065 -django/contrib/humanize/locale/mn/LC_MESSAGES/django.mo,sha256=gi-b-GRPhg2s2O9wP2ENx4bVlgHBo0mSqoi58d_QpCw,6020 -django/contrib/humanize/locale/mn/LC_MESSAGES/django.po,sha256=0zV7fYPu6xs_DVOCUQ6li36JWOnpc-RQa0HXwo7FrWc,9797 -django/contrib/humanize/locale/mr/LC_MESSAGES/django.mo,sha256=2Z5jaGJzpiJTCnhCk8ulCDeAdj-WwR99scdHFPRoHoA,468 -django/contrib/humanize/locale/mr/LC_MESSAGES/django.po,sha256=M44sYiBJ7woVZZlDO8rPDQmS_Lz6pDTCajdheyxtdaI,4724 -django/contrib/humanize/locale/ms/LC_MESSAGES/django.mo,sha256=Bcictup-1bGKm0FIa3CeGNvrHg8VyxsqUHzWI7UMscs,3839 -django/contrib/humanize/locale/ms/LC_MESSAGES/django.po,sha256=UQEUC2iZxhtrWim96GaEK1VAKxAC0fTQIghg4Zx4R3Q,6774 -django/contrib/humanize/locale/my/LC_MESSAGES/django.mo,sha256=55CWHz34sy9k6TfOeVI9GYvE9GRa3pjSRE6DSPk9uQ8,3479 -django/contrib/humanize/locale/my/LC_MESSAGES/django.po,sha256=jCiDhSqARfqKcMLEHJd-Xe6zo3Uc9QpiCh3BbAAA5UE,5433 -django/contrib/humanize/locale/nb/LC_MESSAGES/django.mo,sha256=957mOf_wFBOTjpcevsRz5tQ6IQ4PJnZZfJUETUgF23s,4318 -django/contrib/humanize/locale/nb/LC_MESSAGES/django.po,sha256=G_4pAxT3QZhC-wmWKIhEkFf0IRBn6gKRQZvx0spqjuk,7619 -django/contrib/humanize/locale/ne/LC_MESSAGES/django.mo,sha256=YFT2D-yEkUdJBO2GfuUowau1OZQA5mS86CZvMzH38Rk,3590 -django/contrib/humanize/locale/ne/LC_MESSAGES/django.po,sha256=SN7yH65hthOHohnyEmQUjXusRTDRjxWJG_kuv5g2Enk,9038 -django/contrib/humanize/locale/nl/LC_MESSAGES/django.mo,sha256=RxwgVgdHvfFirimjPrpDhzqmI1Z9soDC--raoAzgBkw,4311 -django/contrib/humanize/locale/nl/LC_MESSAGES/django.po,sha256=M7dVQho17p71Ud6imsQLGMiBisLrVNEZNP4ufpkEJnM,7872 -django/contrib/humanize/locale/nn/LC_MESSAGES/django.mo,sha256=wyJDAGJWgvyBYZ_-UQnBQ84-Jelk5forKfk7hMFDGpQ,4336 -django/contrib/humanize/locale/nn/LC_MESSAGES/django.po,sha256=zuKg53XCX-C6Asc9M04BKZVVw1X6u5p5hvOXxc0AXnM,7651 -django/contrib/humanize/locale/os/LC_MESSAGES/django.mo,sha256=BwS3Mj7z_Fg5s7Qm-bGLVhzYLZ8nPgXoB0gXLnrMGWc,3902 -django/contrib/humanize/locale/os/LC_MESSAGES/django.po,sha256=CGrxyL5l-5HexruOc7QDyRbum7piADf-nY8zjDP9wVM,6212 -django/contrib/humanize/locale/pa/LC_MESSAGES/django.mo,sha256=TH1GkAhaVVLk2jrcqAmdxZprWyikAX6qMP0eIlr2tWM,1569 -django/contrib/humanize/locale/pa/LC_MESSAGES/django.po,sha256=_7oP0Hn-IU7IPLv_Qxg_wstLEdhgWNBBTCWYwSycMb0,5200 -django/contrib/humanize/locale/pl/LC_MESSAGES/django.mo,sha256=0QheMbF3Y0Q_sxZlN2wAYJRQyK3K_uq6ttVr7wCc33w,5596 -django/contrib/humanize/locale/pl/LC_MESSAGES/django.po,sha256=6wX50O68aIyKiP6CcyLMXZ3xuUnAzasFPIg_8deJQBY,9807 -django/contrib/humanize/locale/pt/LC_MESSAGES/django.mo,sha256=El9Sdr3kXS-yTol_sCg1dquxf0ThDdWyrWGjjim9Dj4,5408 -django/contrib/humanize/locale/pt/LC_MESSAGES/django.po,sha256=XudOc67ybF_fminrTR2XOCKEKwqB5FX14pl3clCNXGE,9281 -django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.mo,sha256=5iQ4VjZG60slrQqHejtlUoqastPUK-nwOLKsUMV4poM,5047 -django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.po,sha256=GZolivUh_cSWH53pjS3THvQMiOV3JwXgd5roJGqEfWA,8915 -django/contrib/humanize/locale/ro/LC_MESSAGES/django.mo,sha256=vP6o72bsgKPsbKGwH0PU8Xyz9BnQ_sPWT3EANLT2wRk,6188 -django/contrib/humanize/locale/ro/LC_MESSAGES/django.po,sha256=JZiW6Y9P5JdQe4vgCvcFg35kFa8bSX0lU_2zdeudQP0,10575 -django/contrib/humanize/locale/ru/LC_MESSAGES/django.mo,sha256=tVtMvbDmHtoXFav2cXzhHpHmT-4-593Vo7kE5sd-Agc,6733 -django/contrib/humanize/locale/ru/LC_MESSAGES/django.po,sha256=0OWESEN33yMIcRUaX_oSQUuDidhbzgKpdivwAS7kNgs,11068 -django/contrib/humanize/locale/sk/LC_MESSAGES/django.mo,sha256=uUeDN0iYDq_3vT3NcTOTpKCGcv2ner5WtkIk6GVIsu0,6931 -django/contrib/humanize/locale/sk/LC_MESSAGES/django.po,sha256=cwmpA5EbD4ZE8aK0I1enRE_4RVbtfp1HQy0g1n_IYAE,11708 -django/contrib/humanize/locale/sl/LC_MESSAGES/django.mo,sha256=ZE_2sG50tX8W72L23TYdFEWjL7qImPR695zun6PPhzw,4739 -django/contrib/humanize/locale/sl/LC_MESSAGES/django.po,sha256=VLAGh12rM4QnnxyYkgJbyrUZiG4ddNlspTjaLZUvBEQ,9486 -django/contrib/humanize/locale/sq/LC_MESSAGES/django.mo,sha256=1XXRe0nurGUUxI7r7gbSIuluRuza7VOeNdkIVX3LIFU,5280 -django/contrib/humanize/locale/sq/LC_MESSAGES/django.po,sha256=BS-5o3aG8Im9dWTkx4E_IbbeTRFcjjohinz1823ZepI,9127 -django/contrib/humanize/locale/sr/LC_MESSAGES/django.mo,sha256=kBcoXTmJJlXEOk2M3l-k0PisT2jN_jXXhcOdPLBAiUY,5415 -django/contrib/humanize/locale/sr/LC_MESSAGES/django.po,sha256=u9ECn0qC8OPkHC9n10rljZc1vxed10eI0OOG7iPyA2w,9055 -django/contrib/humanize/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=Z4hRzn0ks-vAj2ia4ovbsv00pOoZ973jRThbtlLKe5U,1017 -django/contrib/humanize/locale/sr_Latn/LC_MESSAGES/django.po,sha256=T9CYAx-KhtXwrlY4ol3hFv8dzxyJ1FTqeMBgtjYMEj8,6875 -django/contrib/humanize/locale/sv/LC_MESSAGES/django.mo,sha256=7OABdxvdZvKB9j1o99UiecoTXaVGn3XmXnU5xCNov8s,4333 -django/contrib/humanize/locale/sv/LC_MESSAGES/django.po,sha256=71tFrQzwtwzYfeC2BG0v8dZNkSEMbM-tAC5_z2AElLM,7876 -django/contrib/humanize/locale/sw/LC_MESSAGES/django.mo,sha256=cxjSUqegq1JX08xIAUgqq9ByP-HuqaXuxWM8Y2gHdB4,4146 -django/contrib/humanize/locale/sw/LC_MESSAGES/django.po,sha256=bPYrLJ2yY_lZ3y1K-RguNi-qrxq2r-GLlsz1gZcm2A8,6031 -django/contrib/humanize/locale/ta/LC_MESSAGES/django.mo,sha256=1X2vH0iZOwM0uYX9BccJUXqK-rOuhcu5isRzMpnjh2o,466 -django/contrib/humanize/locale/ta/LC_MESSAGES/django.po,sha256=8x1lMzq2KOJveX92ADSuqNmXGIEYf7fZ1JfIJPysS04,4722 -django/contrib/humanize/locale/te/LC_MESSAGES/django.mo,sha256=iKd4dW9tan8xPxgaSoenIGp1qQpvSHHXUw45Tj2ATKQ,1327 -django/contrib/humanize/locale/te/LC_MESSAGES/django.po,sha256=FQdjWKMsiv-qehYZ4AtN9iKRf8Rifzcm5TZzMkQVfQI,5103 -django/contrib/humanize/locale/tg/LC_MESSAGES/django.mo,sha256=1Fiqat0CZSyExRXRjRCBS0AFzwy0q1Iba-2RVnrXoZQ,1580 -django/contrib/humanize/locale/tg/LC_MESSAGES/django.po,sha256=j2iczgQDbqzpthKAAlMt1Jk7gprYLqZ1Ya0ASr2SgD0,7852 -django/contrib/humanize/locale/th/LC_MESSAGES/django.mo,sha256=jT7wGhYWP9HHwOvtr2rNPStiOgZW-rGMcO36w1U8Y4c,3709 -django/contrib/humanize/locale/th/LC_MESSAGES/django.po,sha256=ZO3_wU7z0VASS5E8RSLEtmTveMDjJ0O8QTynb2-jjt0,8318 -django/contrib/humanize/locale/tk/LC_MESSAGES/django.mo,sha256=cI2Ukp5kVTsUookoxyDD9gZKdxh4YezfRWYFBL7KuRU,4419 -django/contrib/humanize/locale/tk/LC_MESSAGES/django.po,sha256=6Qaxa03R4loH0FWQ6PCytT3Yz3LZt7UGTd01WVnHOIk,7675 -django/contrib/humanize/locale/tr/LC_MESSAGES/django.mo,sha256=D4ChMLE1Uz921NIF_Oe1vNkYAGfRpQuC8xANFwtlygE,4319 -django/contrib/humanize/locale/tr/LC_MESSAGES/django.po,sha256=4PjW65seHF9SsWnLv47JhgYPt0Gvzr-7_Ejech3d3ak,7754 -django/contrib/humanize/locale/tt/LC_MESSAGES/django.mo,sha256=z8VgtMhlfyDo7bERDfrDmcYV5aqOeBY7LDgqa5DRxDM,3243 -django/contrib/humanize/locale/tt/LC_MESSAGES/django.po,sha256=j_tRbg1hzLBFAmPQt0HoN-_WzWFtA07PloCkqhvNkcY,5201 -django/contrib/humanize/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 -django/contrib/humanize/locale/udm/LC_MESSAGES/django.po,sha256=AR55jQHmMrbA6RyHGOtqdvUtTFlxWnqvfMy8vZK25Bo,4354 -django/contrib/humanize/locale/uk/LC_MESSAGES/django.mo,sha256=wQOJu-zKyuCazul-elFLZc-iKw2Zea7TGb90OVGZYkQ,6991 -django/contrib/humanize/locale/uk/LC_MESSAGES/django.po,sha256=hxEufGt-NOgSFc5T9OzxCibcfqkhWD7zxhQljoUQssQ,11249 -django/contrib/humanize/locale/ur/LC_MESSAGES/django.mo,sha256=MF9uX26-4FFIz-QpDUbUHUNLQ1APaMLQmISMIaPsOBE,1347 -django/contrib/humanize/locale/ur/LC_MESSAGES/django.po,sha256=D5UhcPEcQ16fsBEdkk_zmpjIF6f0gEv0P86z_pK_1eA,5015 -django/contrib/humanize/locale/uz/LC_MESSAGES/django.mo,sha256=HDah_1qqUz5m_ABBVIEML3WMR2xyomFckX82i6b3n4k,1915 -django/contrib/humanize/locale/uz/LC_MESSAGES/django.po,sha256=Ql3GZOhuoVgS0xHEzxjyYkOWQUyi_jiizfAXBp2Y4uw,7296 -django/contrib/humanize/locale/vi/LC_MESSAGES/django.mo,sha256=ZUK_Na0vnfdhjo0MgnBWnGFU34sxcMf_h0MeyuysKG8,3646 -django/contrib/humanize/locale/vi/LC_MESSAGES/django.po,sha256=DzRpXObt9yP5RK_slWruaIhnVI0-JXux2hn_uGsVZiE,5235 -django/contrib/humanize/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=YgeAjXHMV1rXNNIrlDu_haxnKB0hxU5twJ86LMR10k8,3844 -django/contrib/humanize/locale/zh_Hans/LC_MESSAGES/django.po,sha256=JGfRVW_5UqwyI2mK_WRK8xDPzwBAO2q_mGsGzf89a88,7122 -django/contrib/humanize/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=qYO9_rWuIMxnlL9Q8V9HfhUu7Ebv1HGOlvsnh7MvZkE,4520 -django/contrib/humanize/locale/zh_Hant/LC_MESSAGES/django.po,sha256=AijEfvIlJK9oVaLJ7lplmbvhGRKIbYcLh8WxoBYoQkA,7929 -django/contrib/humanize/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/humanize/templatetags/__pycache__/__init__.cpython-312.pyc,, -django/contrib/humanize/templatetags/__pycache__/humanize.cpython-312.pyc,, -django/contrib/humanize/templatetags/humanize.py,sha256=y2j0O5ey0uuDuFM36gyTnz2F3bAKTh55Ly8ma4YoWhk,12293 -django/contrib/messages/__init__.py,sha256=6myQIwIFgc3SAyH5P1soIjwELREVgbxgxP85fJcge04,106 -django/contrib/messages/__pycache__/__init__.cpython-312.pyc,, -django/contrib/messages/__pycache__/api.cpython-312.pyc,, -django/contrib/messages/__pycache__/apps.cpython-312.pyc,, -django/contrib/messages/__pycache__/constants.cpython-312.pyc,, -django/contrib/messages/__pycache__/context_processors.cpython-312.pyc,, -django/contrib/messages/__pycache__/middleware.cpython-312.pyc,, -django/contrib/messages/__pycache__/utils.cpython-312.pyc,, -django/contrib/messages/__pycache__/views.cpython-312.pyc,, -django/contrib/messages/api.py,sha256=3DbnVG5oOBdg499clMU8l2hxCXMXB6S03-HCKVuBXjA,3250 -django/contrib/messages/apps.py,sha256=mepKl1mUA44s4aiIlQ20SnO5YYFTRYcKC432NKnL8jI,542 -django/contrib/messages/constants.py,sha256=JD4TpaR4C5G0oxIh4BmrWiVmCACv7rnVgZSpJ8Rmzeg,312 -django/contrib/messages/context_processors.py,sha256=xMrgYeX6AcT_WwS9AYKNDDstbvAwE7_u1ssDVLN_bbg,354 -django/contrib/messages/middleware.py,sha256=2mxncCpJVUgLtjouUGSVl39mTF-QskQpWo2jCOOqV8A,986 -django/contrib/messages/storage/__init__.py,sha256=gXDHbQ9KgQdfhYOla9Qj59_SlE9WURQiKzIA0cFH0DQ,392 -django/contrib/messages/storage/__pycache__/__init__.cpython-312.pyc,, -django/contrib/messages/storage/__pycache__/base.cpython-312.pyc,, -django/contrib/messages/storage/__pycache__/cookie.cpython-312.pyc,, -django/contrib/messages/storage/__pycache__/fallback.cpython-312.pyc,, -django/contrib/messages/storage/__pycache__/session.cpython-312.pyc,, -django/contrib/messages/storage/base.py,sha256=sVkSITZRsdYDvyaS5tqjcw8-fylvcbZpR4ctlpWI5bM,5820 -django/contrib/messages/storage/cookie.py,sha256=wxGdxUbklpS6J3HXW_o-VC9cTyxbptyIxTlrxZObkIM,6344 -django/contrib/messages/storage/fallback.py,sha256=K5CrVJfUDakMjIcqSRt1WZd_1Xco1Bc2AQM3O3ld9aA,2093 -django/contrib/messages/storage/session.py,sha256=kvdVosbBAvI3XBA0G4AFKf0vxLleyzlwbGEgl60DfMQ,1764 -django/contrib/messages/utils.py,sha256=_oItQILchdwdXH08SIyZ-DBdYi7q_uobHQajWwmAeUw,256 -django/contrib/messages/views.py,sha256=I_7C4yr-YLkhTEWx3iuhixG7NrKuyuSDG_CVg-EYRD8,524 -django/contrib/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/postgres/__pycache__/__init__.cpython-312.pyc,, -django/contrib/postgres/__pycache__/apps.cpython-312.pyc,, -django/contrib/postgres/__pycache__/constraints.cpython-312.pyc,, -django/contrib/postgres/__pycache__/expressions.cpython-312.pyc,, -django/contrib/postgres/__pycache__/functions.cpython-312.pyc,, -django/contrib/postgres/__pycache__/indexes.cpython-312.pyc,, -django/contrib/postgres/__pycache__/lookups.cpython-312.pyc,, -django/contrib/postgres/__pycache__/operations.cpython-312.pyc,, -django/contrib/postgres/__pycache__/search.cpython-312.pyc,, -django/contrib/postgres/__pycache__/serializers.cpython-312.pyc,, -django/contrib/postgres/__pycache__/signals.cpython-312.pyc,, -django/contrib/postgres/__pycache__/utils.cpython-312.pyc,, -django/contrib/postgres/__pycache__/validators.cpython-312.pyc,, -django/contrib/postgres/aggregates/__init__.py,sha256=QCznqMKqPbpraxSi1Y8-B7_MYlL42F1kEWZ1HeLgTKs,65 -django/contrib/postgres/aggregates/__pycache__/__init__.cpython-312.pyc,, -django/contrib/postgres/aggregates/__pycache__/general.cpython-312.pyc,, -django/contrib/postgres/aggregates/__pycache__/mixins.cpython-312.pyc,, -django/contrib/postgres/aggregates/__pycache__/statistics.cpython-312.pyc,, -django/contrib/postgres/aggregates/general.py,sha256=Qfk8I3VEz6I3tdfNw5m27iTLUR2_Skse-8OE5mhTRVo,5237 -django/contrib/postgres/aggregates/mixins.py,sha256=k2fwYW89490mYW8H5113fMOTf-Y3vzrRH6VvJFHqA1Q,1181 -django/contrib/postgres/aggregates/statistics.py,sha256=xSWk5Z5ZVpM2LSaMgP97pxcijOnPHiPATe3X45poXCI,1511 -django/contrib/postgres/apps.py,sha256=sfjoL-2VJrFzrv0CC3S4WGWZblzR_4BwFDm9bEHs8B0,3692 -django/contrib/postgres/constraints.py,sha256=tmkkoiQtdTdBjopURx9aBn00zUp78wE1Qm-h7rllnrQ,10001 -django/contrib/postgres/expressions.py,sha256=fo5YASHJtIjexadqskuhYYk4WutofxzymYsivWWJS84,405 -django/contrib/postgres/fields/__init__.py,sha256=Xo8wuWPwVNOkKY-EwV9U1zusQ2DjMXXtL7_8R_xAi5s,148 -django/contrib/postgres/fields/__pycache__/__init__.cpython-312.pyc,, -django/contrib/postgres/fields/__pycache__/array.cpython-312.pyc,, -django/contrib/postgres/fields/__pycache__/citext.cpython-312.pyc,, -django/contrib/postgres/fields/__pycache__/hstore.cpython-312.pyc,, -django/contrib/postgres/fields/__pycache__/jsonb.cpython-312.pyc,, -django/contrib/postgres/fields/__pycache__/ranges.cpython-312.pyc,, -django/contrib/postgres/fields/__pycache__/utils.cpython-312.pyc,, -django/contrib/postgres/fields/array.py,sha256=4SUUGDZCUSw6oQWCNJtwFiEihmKxPzjWl5sladB-f3s,12302 -django/contrib/postgres/fields/citext.py,sha256=KMXa7CO8fyNYKa7zcU17hN8IEAw8qJxdHPVIr0jxhPg,2549 -django/contrib/postgres/fields/hstore.py,sha256=WWWEoBfMtAjd226vvjFtGqbHMHFCjSly-BEhm9UN1qQ,3276 -django/contrib/postgres/fields/jsonb.py,sha256=ncMGT6WY70lCbcmhwtu2bjRmfDMUIvCr76foUv7tqv0,406 -django/contrib/postgres/fields/ranges.py,sha256=IbjAQC7IdWuISqHdBXrraiOGPzUP_4pHHcnL8VuYZRs,11417 -django/contrib/postgres/fields/utils.py,sha256=TV-Aj9VpBb13I2iuziSDURttZtz355XakxXnFwvtGio,95 -django/contrib/postgres/forms/__init__.py,sha256=NjENn2-C6BcXH4T8YeC0K2AbDk8MVT8tparL3Q4OF6g,89 -django/contrib/postgres/forms/__pycache__/__init__.cpython-312.pyc,, -django/contrib/postgres/forms/__pycache__/array.cpython-312.pyc,, -django/contrib/postgres/forms/__pycache__/hstore.cpython-312.pyc,, -django/contrib/postgres/forms/__pycache__/ranges.cpython-312.pyc,, -django/contrib/postgres/forms/array.py,sha256=LRUU3fxXePptMh3lolxhX4sbMjNSvnzMvNgcJolKfZc,8401 -django/contrib/postgres/forms/hstore.py,sha256=XN5xOrI-jCeTsWFEjPXf6XMaLzJdXiqA6pTdGSjWdOw,1767 -django/contrib/postgres/forms/ranges.py,sha256=cKAeWvRISPLXIPhm2C57Lu9GoIlAd1xiRxzns69XehA,3652 -django/contrib/postgres/functions.py,sha256=7v6J01QQvX70KFyg9hDc322PgvT62xZqWlzp_vrl8bA,252 -django/contrib/postgres/indexes.py,sha256=jFMzMt6SwC7aCA-tXSrsBlBPCWQhxj3Xu5V04uwxTkw,8123 -django/contrib/postgres/jinja2/postgres/widgets/split_array.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 -django/contrib/postgres/locale/af/LC_MESSAGES/django.mo,sha256=kDeL_SZezO8DRNMRh2oXz94YtAK1ZzPiK5dftqAonKI,2841 -django/contrib/postgres/locale/af/LC_MESSAGES/django.po,sha256=ALKUHbZ8DE6IH80STMJhGOoyHB8HSSxI4PlX_SfxJWc,3209 -django/contrib/postgres/locale/ar/LC_MESSAGES/django.mo,sha256=UTBknYC-W7nclTrBCEiCpTglZxZQY80UqGki8I6j3EM,4294 -django/contrib/postgres/locale/ar/LC_MESSAGES/django.po,sha256=_PgF2T3ylO4vnixVoKRsgmpPDHO-Qhj3mShHtHeSna0,4821 -django/contrib/postgres/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=fND1NtGTmEl7Rukt_VlqJeExdJjphBygmI-qJmE83P0,4352 -django/contrib/postgres/locale/ar_DZ/LC_MESSAGES/django.po,sha256=Z9y3h6lDnbwD4JOn7OACLjEZqNY8OpEwuzoUD8FSdwA,4868 -django/contrib/postgres/locale/az/LC_MESSAGES/django.mo,sha256=K-2weZNapdDjP5-ecOfQhhhWmVR53JneJ2n4amA_zTk,2855 -django/contrib/postgres/locale/az/LC_MESSAGES/django.po,sha256=Pn47g_NvMgSBjguFLT_AE1QzxOGXOYjA-g_heXAT_tU,3214 -django/contrib/postgres/locale/be/LC_MESSAGES/django.mo,sha256=tYaaEbBaVxIgxC9qUAuE3YpHJa-aUu9ufFuJLa8my-s,4143 -django/contrib/postgres/locale/be/LC_MESSAGES/django.po,sha256=CL9BslCvHOvwjTBbCEswW8ISH72gSAyW5Dc-zoXI670,4643 -django/contrib/postgres/locale/bg/LC_MESSAGES/django.mo,sha256=dkM1WSo5SgBglvJXNVvcIhKHU0ZjUJxmy4cX6_cJgZs,3515 -django/contrib/postgres/locale/bg/LC_MESSAGES/django.po,sha256=jalX0o2VjTVhXJIBKkyEk3aMjqYyNywmSGmyve9cu5M,3974 -django/contrib/postgres/locale/ca/LC_MESSAGES/django.mo,sha256=XR1UEZV9AXKFz7XrchjRkd-tEdjnlmccW_I7XANyMns,2904 -django/contrib/postgres/locale/ca/LC_MESSAGES/django.po,sha256=5wPLvkODU_501cHPZ7v0n89rmFrsuctt7T8dUBMfQ0Q,3430 -django/contrib/postgres/locale/ckb/LC_MESSAGES/django.mo,sha256=bue3b5xV84UvuzndoIQvLCNyRCkGKsNHBw1QQOF9MvU,2994 -django/contrib/postgres/locale/ckb/LC_MESSAGES/django.po,sha256=gaiFjvVSbX7_qwH4MIc5ma5oKqmjWBsvxzaEtI4hM0s,3526 -django/contrib/postgres/locale/cs/LC_MESSAGES/django.mo,sha256=_EmT9NnoX3xeRU-AI5sPlAszjzC0XwryWOmj8d07ox8,3388 -django/contrib/postgres/locale/cs/LC_MESSAGES/django.po,sha256=dkWVucs3-avEVtk_Xh5p-C8Tvw_oKDASdgab_-ByP-w,3884 -django/contrib/postgres/locale/da/LC_MESSAGES/django.mo,sha256=VaTePWY3W7YRW-CkTUx6timYDXEYOFRFCkg3F36_k_I,2886 -django/contrib/postgres/locale/da/LC_MESSAGES/django.po,sha256=5j5xI-yKORhnywIACpjvMQA6yHj4aHMYiiN4KVSmBMM,3344 -django/contrib/postgres/locale/de/LC_MESSAGES/django.mo,sha256=iTfG4OxvwSG32U_PQ0Tmtl38v83hSjFa2W0J8Sw0NUE,3078 -django/contrib/postgres/locale/de/LC_MESSAGES/django.po,sha256=GkF6wBg7JAvAB8YExwOx4hzpLr1r2K6HsvSLYfyojow,3611 -django/contrib/postgres/locale/dsb/LC_MESSAGES/django.mo,sha256=zZa1kLFCKar4P1xVNpJ0BTXm4I-xcNi_e8IY7n8Aa4w,3605 -django/contrib/postgres/locale/dsb/LC_MESSAGES/django.po,sha256=5vnAeH9tF9H9xL2nqfwc0MLlhI4hnNr45x2NXlw8owo,4061 -django/contrib/postgres/locale/el/LC_MESSAGES/django.mo,sha256=NmzROkTfSbioGv8exM3UdMDnRAxR65YMteGv9Nhury4,3583 -django/contrib/postgres/locale/el/LC_MESSAGES/django.po,sha256=4WuswUwrInAh-OPX9k7gDdLb-oMKp1vQFUGvfm0ej00,4144 -django/contrib/postgres/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/postgres/locale/en/LC_MESSAGES/django.po,sha256=jrbHgf4TLTbEAaYV9-briB5JoE7sBWTn9r6aaRtpn54,2862 -django/contrib/postgres/locale/en_AU/LC_MESSAGES/django.mo,sha256=WA0RSssD8ljI16g6DynQZQLQhd_0XR8ilrnJnepsIFg,2839 -django/contrib/postgres/locale/en_AU/LC_MESSAGES/django.po,sha256=4JASYUpYlQlSPREPvMxFBqDpDhprlkI1GpAqTJrmb10,3215 -django/contrib/postgres/locale/eo/LC_MESSAGES/django.mo,sha256=1wqM_IVO8Dl9AefzvWYuoS4eNTrBg7LDH6XUMovKi9A,2742 -django/contrib/postgres/locale/eo/LC_MESSAGES/django.po,sha256=r2tpOblfLAAHMacDWU-OVXTQus_vvAPMjUzVfrV_T7U,3217 -django/contrib/postgres/locale/es/LC_MESSAGES/django.mo,sha256=O2Tdel44oxmQ13ZcwMwK3QPxUPChHdUzVKg2pLCPoqo,3163 -django/contrib/postgres/locale/es/LC_MESSAGES/django.po,sha256=YPjvjmvpS69FuNmPm-7Z1K1Eg_W01JwRHNrWkbKzVZ8,3794 -django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.mo,sha256=f_gM-9Y0FK-y67lU2b4yYiFt0hz4ps9gH0NhCZScwaE,2917 -django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.po,sha256=0qNlBk5v2QhZsb90xX3xHp8gw6jXevERbkOLBjwtJOc,3278 -django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.mo,sha256=Q2eOegYKQFY3fAKZCX7VvZAN6lT304W51aGl0lzkbLU,2484 -django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.po,sha256=bbgOn34B7CSq1Kf2IrJh6oRJWPur_Smc4ebljIxAFGE,3233 -django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.mo,sha256=l6WdS59mDfjsV9EMULjKP2DhXR7x3bYax1iokL-AXcU,689 -django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.po,sha256=_-jzhIT71zV539_4SUbwvOXfDHkxRy1FDGdx23iB7B4,2283 -django/contrib/postgres/locale/et/LC_MESSAGES/django.mo,sha256=oPGqGUQhU9xE7j6hQZSVdC-be2WV-_BNrSAaN4csFR4,2886 -django/contrib/postgres/locale/et/LC_MESSAGES/django.po,sha256=xKkb-0CQCAn37xe0G2jfQmjg2kuYBmXB5yBpTA5lYNI,3404 -django/contrib/postgres/locale/eu/LC_MESSAGES/django.mo,sha256=UG7x642-n3U7mamXuNHD66a_mR0agX72xSwBD3PpyJU,2883 -django/contrib/postgres/locale/eu/LC_MESSAGES/django.po,sha256=dAx6nlRd4FF_8i7Xeylwvj4HkEDKi3swFenkdJkDawU,3321 -django/contrib/postgres/locale/fa/LC_MESSAGES/django.mo,sha256=uLh9fJtCSKg5eaj9uGP2muN_71aFxpZwOjRHtnZhPik,3308 -django/contrib/postgres/locale/fa/LC_MESSAGES/django.po,sha256=adN7bh9Q_R0Wzlf2fWaQnTtvxo0NslyoHH5t5V0eeMM,3845 -django/contrib/postgres/locale/fi/LC_MESSAGES/django.mo,sha256=gB2z3nI8Bz-km3DngYfJulwelHSlWgZeBXlj5yWyA08,2943 -django/contrib/postgres/locale/fi/LC_MESSAGES/django.po,sha256=LNVTHv4-FWT5KOre5qTwLEpKIQbaSIusFH2uUmbwYBg,3315 -django/contrib/postgres/locale/fr/LC_MESSAGES/django.mo,sha256=02ug8j0VpkPC2tRDkXrK2snj91M68Ju29PUiv4UhAsQ,3391 -django/contrib/postgres/locale/fr/LC_MESSAGES/django.po,sha256=5T_wkYoHJcpzemKqR-7apZ11Pas4dZhnAitHOgT8gRc,3759 -django/contrib/postgres/locale/gd/LC_MESSAGES/django.mo,sha256=okWU_Ke95EG2pm8rZ4PT5ScO-8f0Hqg65lYZgSid8tM,3541 -django/contrib/postgres/locale/gd/LC_MESSAGES/django.po,sha256=tjt5kfkUGryU3hFzPuAly2DBDLuLQTTD5p-XrxryFEI,4013 -django/contrib/postgres/locale/gl/LC_MESSAGES/django.mo,sha256=1Od7e0SG9tEeTefFLLWkU38tlk5PL5aRF1GTlKkfTAs,2912 -django/contrib/postgres/locale/gl/LC_MESSAGES/django.po,sha256=tE2-GX2OH06krOFxvzdJeYWC7a57QYNFx5OtMXFWTdQ,3316 -django/contrib/postgres/locale/he/LC_MESSAGES/django.mo,sha256=UDu--EyjTrPOqf-XI9rH_Z9z7mhBGnXvrpHrfdGBlKk,3713 -django/contrib/postgres/locale/he/LC_MESSAGES/django.po,sha256=ekkwIceJdQKqL9VlCYwipnrsckSLhGi5OwBKEloZWlU,4188 -django/contrib/postgres/locale/hr/LC_MESSAGES/django.mo,sha256=vdm5GxgpKuVdGoVl3VreD8IB1Mq5HGWuq-2YDeDrNnU,929 -django/contrib/postgres/locale/hr/LC_MESSAGES/django.po,sha256=8TxEnVH2yIQWbmbmDOpR7kksNFSaUGVhimRPQgSgDkM,2501 -django/contrib/postgres/locale/hsb/LC_MESSAGES/django.mo,sha256=SSZpG-PSeVCHrzB-wzW4wRHxIEt7hqobzvRLB-9tu8Y,3518 -django/contrib/postgres/locale/hsb/LC_MESSAGES/django.po,sha256=UQUlfpJsgd-0qa6hZhUkTAi6VF5ZYiygSMrLcsiEC4k,3971 -django/contrib/postgres/locale/hu/LC_MESSAGES/django.mo,sha256=6-9w_URPmVzSCcFea7eThbIE5Q-QSr5Q-i0zvKhpBBI,2872 -django/contrib/postgres/locale/hu/LC_MESSAGES/django.po,sha256=fx4w4FgjfP0dlik7zGCJsZEHmmwQUSA-GRzg4KeVd_s,3394 -django/contrib/postgres/locale/hy/LC_MESSAGES/django.mo,sha256=2QFIJdmh47IGPqI-8rvuHR0HdH2LOAmaYqEeCwUpRuw,3234 -django/contrib/postgres/locale/hy/LC_MESSAGES/django.po,sha256=MLHMbdwdo1txzFOG-fVK4VUvAoDtrLA8CdpQThybSCQ,3825 -django/contrib/postgres/locale/ia/LC_MESSAGES/django.mo,sha256=gn8lf-gOP4vv-iiqnkcxvjzhJ8pTdetBhHyjl4TapXo,582 -django/contrib/postgres/locale/ia/LC_MESSAGES/django.po,sha256=FsqhPQf0j4g06rGuWSTn8A1kJ7E5U9rX16mtB8CAiIE,2251 -django/contrib/postgres/locale/id/LC_MESSAGES/django.mo,sha256=KKI5fjmuD7jqiGe7SgGkWmF6unHNe8JMVoOSDVemB8o,2733 -django/contrib/postgres/locale/id/LC_MESSAGES/django.po,sha256=Me13R5Oi89IZ0T3CtY0MZ34YK3T-HIZ7GbtFiXl2h50,3300 -django/contrib/postgres/locale/is/LC_MESSAGES/django.mo,sha256=rNL5Un5K_iRAZDtpHo4egcySaaBnNEirYDuWw0eI7gk,2931 -django/contrib/postgres/locale/is/LC_MESSAGES/django.po,sha256=UO53ciyI0jCVtBOXWkaip2AbPE2Hd2YhzK1RAlcxyQ8,3313 -django/contrib/postgres/locale/it/LC_MESSAGES/django.mo,sha256=dsn-Xuhg1WeRkJVGHHdoPz-KobYsS8A41BUdnM4wQQ8,3210 -django/contrib/postgres/locale/it/LC_MESSAGES/django.po,sha256=2RpaA-mmvXcYkYTu_y0u3p32aAhP9DyAy641ZJL79sk,3874 -django/contrib/postgres/locale/ja/LC_MESSAGES/django.mo,sha256=IC9mYW8gXWNGuXeh8gGxGFvrjfxiSpj57E63Ka47pkM,3046 -django/contrib/postgres/locale/ja/LC_MESSAGES/django.po,sha256=IPnDsh8rtq158a63zQJekJ0LJlR3uj6KAjx4omc7XN0,3437 -django/contrib/postgres/locale/ka/LC_MESSAGES/django.mo,sha256=A_VhLUZbocGNF5_5mMoYfB3l654MrPIW4dL1ywd3Tw8,713 -django/contrib/postgres/locale/ka/LC_MESSAGES/django.po,sha256=kRIwQ1Nrzdf5arHHxOPzQcB-XwPNK5lUFKU0L3QHfC8,2356 -django/contrib/postgres/locale/kk/LC_MESSAGES/django.mo,sha256=xMc-UwyP1_jBHcGIAGWmDAjvSL50jJaiZbcT5TmzDOg,665 -django/contrib/postgres/locale/kk/LC_MESSAGES/django.po,sha256=f6Z3VUFRJ3FgSReC0JItjA0RaYbblqDb31lbJ3RRExQ,2327 -django/contrib/postgres/locale/ko/LC_MESSAGES/django.mo,sha256=vK52cwamFt1mrvpSaoVcf2RAmQghw_EbPVrx_EA9onI,2897 -django/contrib/postgres/locale/ko/LC_MESSAGES/django.po,sha256=N_HTD-HK_xI27gZJRm_sEX4qM_Wtgdy5Pwqb8A6h9C8,3445 -django/contrib/postgres/locale/ky/LC_MESSAGES/django.mo,sha256=F0Ws34MbE7zJa8FNxA-9rFm5sNLL22D24LyiBb927lE,3101 -django/contrib/postgres/locale/ky/LC_MESSAGES/django.po,sha256=yAzSeT2jBm7R2ZXiuYBQFSKQ_uWIUfNTAobE1UYnlPs,3504 -django/contrib/postgres/locale/lt/LC_MESSAGES/django.mo,sha256=kJ3ih8HrHt2M_hFW0H9BZg7zcj6sXy6H_fD1ReIzngM,3452 -django/contrib/postgres/locale/lt/LC_MESSAGES/django.po,sha256=PNADIV8hdpLoqwW4zpIhxtWnQN8cPkdcoXYngyjFeFw,3972 -django/contrib/postgres/locale/lv/LC_MESSAGES/django.mo,sha256=UwBbbIbC_MO6xhB66UzO80XFcmlyv8-mfFEK4kQd6fE,3153 -django/contrib/postgres/locale/lv/LC_MESSAGES/django.po,sha256=phDSZnB5JeCoCi0f_MYCjQiwhE00gcVl5urOFiAKmkU,3768 -django/contrib/postgres/locale/mk/LC_MESSAGES/django.mo,sha256=WE4nRJKWAZvXuyU2qT2_FGqGlKYsP1KSACCtT10gQQY,3048 -django/contrib/postgres/locale/mk/LC_MESSAGES/django.po,sha256=CQX91LP1Gbkazpt4hTownJtSqZGR1OJfoD-1MCo6C1Y,3783 -django/contrib/postgres/locale/ml/LC_MESSAGES/django.mo,sha256=N47idWIsmtghZ_D5325TRsDFeoUa0MIvMFtdx7ozAHc,1581 -django/contrib/postgres/locale/ml/LC_MESSAGES/django.po,sha256=lt_7fGZV7BCB2XqFWIQQtH4niU4oMBfGzQQuN5sD0fo,2947 -django/contrib/postgres/locale/mn/LC_MESSAGES/django.mo,sha256=VWeXaMvdqhW0GHs1Irb1ikTceH7jMKH_xMzKLH0vKZg,3310 -django/contrib/postgres/locale/mn/LC_MESSAGES/django.po,sha256=p3141FJiYrkV8rocgqdxnV05FReQYZmosv9LI46FlfE,3867 -django/contrib/postgres/locale/ms/LC_MESSAGES/django.mo,sha256=m3JZm1IIMZwmpvIs3oV0roYCeR_UlswHyCpZjjE6-A8,2712 -django/contrib/postgres/locale/ms/LC_MESSAGES/django.po,sha256=HCMBA1fxKLJct14ywap0PYVBi2bDp2F97Ms5_-G_Pwg,3025 -django/contrib/postgres/locale/nb/LC_MESSAGES/django.mo,sha256=3h8DqEFG39i6uHY0vpXuGFmoJnAxTtRFy1RazcYIXfg,2849 -django/contrib/postgres/locale/nb/LC_MESSAGES/django.po,sha256=gDUg-HDg3LiYMKzb2QaDrYopqaJmbvnw2Fo-qhUHFuI,3252 -django/contrib/postgres/locale/ne/LC_MESSAGES/django.mo,sha256=5XdBLGMkn20qeya3MgTCpsIDxLEa7PV-i2BmK993iRc,875 -django/contrib/postgres/locale/ne/LC_MESSAGES/django.po,sha256=1QLLfbrHneJmxM_5UTpNIYalP-qX7Bn7bmj4AfDLIzE,2421 -django/contrib/postgres/locale/nl/LC_MESSAGES/django.mo,sha256=ttUzGWvxJYw71fVbcXCwzetyTWERBsURTe_nsf_axq0,2951 -django/contrib/postgres/locale/nl/LC_MESSAGES/django.po,sha256=ENw-dI6FHFqxclQKdefthCIVgp41HoIYj0IBmRCz0Vw,3515 -django/contrib/postgres/locale/nn/LC_MESSAGES/django.mo,sha256=RdMFozwxYIckBY40mJhN-jjkghztKn0-ytCtqxFHBMY,2836 -django/contrib/postgres/locale/nn/LC_MESSAGES/django.po,sha256=vl8NkY342eonqbrj89eCR_8PsJpeQuaRjxems-OPIBk,3184 -django/contrib/postgres/locale/pl/LC_MESSAGES/django.mo,sha256=Wox9w-HN7Guf8N1nkgemuDVs0LQxxTmEqQDOxriKy60,3462 -django/contrib/postgres/locale/pl/LC_MESSAGES/django.po,sha256=pxm_IKMg8g5qfg19CKc5JEdK6IMnhyeSPHd7THUb1GY,4217 -django/contrib/postgres/locale/pt/LC_MESSAGES/django.mo,sha256=KZvJXjrIdtxbffckcrRV3nJ5GnID6PvqAb7vpOiWpHE,2745 -django/contrib/postgres/locale/pt/LC_MESSAGES/django.po,sha256=2gIDOjnFo6Iom-oTkQek4IX6FYPI9rNp9V-6sJ55aL8,3281 -django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.mo,sha256=PVEiflh0v3AqVOC0S85XO-V3xDU3d8UwS31lzGrLoi8,3143 -django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.po,sha256=onF2K6s-McAXDSRzQ50EpGrKAIv89vvRWjCjsLCVXvs,3896 -django/contrib/postgres/locale/ro/LC_MESSAGES/django.mo,sha256=w4tyByrZlba_Ju_F2OzD52ut5JSD6UGJfjt3A7CG_uc,3188 -django/contrib/postgres/locale/ro/LC_MESSAGES/django.po,sha256=hnotgrr-zeEmE4lgpqDDiJ051GoGbL_2GVs4O9dVLXI,3700 -django/contrib/postgres/locale/ru/LC_MESSAGES/django.mo,sha256=TQ7EuEipMb-vduqTGhQY8PhjmDrCgujKGRX7Im0BymQ,4721 -django/contrib/postgres/locale/ru/LC_MESSAGES/django.po,sha256=Me728Qfq_PXRZDxjGQbs3lLMueG3bNaqGZuZPgqsZQA,5495 -django/contrib/postgres/locale/sk/LC_MESSAGES/django.mo,sha256=0LY5Axf2dGDPCe0d2eQgEJY6OI3VORrIU9IiXPF2MD8,3358 -django/contrib/postgres/locale/sk/LC_MESSAGES/django.po,sha256=jtXuD3iUdd0_COtBzW57sNgWZ9jgXhNNiWKTj8M2X1A,3846 -django/contrib/postgres/locale/sl/LC_MESSAGES/django.mo,sha256=JM9YZagjHIIrCxOKkR4d4oKaEXKJU7bfVdM3_uzSTAE,2810 -django/contrib/postgres/locale/sl/LC_MESSAGES/django.po,sha256=1jI2zXSU4LWxfLEUL-FXpldCExZJLD53Jy7VnA258xs,3602 -django/contrib/postgres/locale/sq/LC_MESSAGES/django.mo,sha256=slZq_bGPIzF8AlmtsfIqo65B14YYfw_uYKNcw_Tun0g,2958 -django/contrib/postgres/locale/sq/LC_MESSAGES/django.po,sha256=TPmtauQdDYM5QIOhGj2EwjRBQ3qOiRmvPMpUavUqh9A,3394 -django/contrib/postgres/locale/sr/LC_MESSAGES/django.mo,sha256=OfsUq8rZdD2NP7NQjBoatSXATxc8d6QL-nxmlPp5QSc,3775 -django/contrib/postgres/locale/sr/LC_MESSAGES/django.po,sha256=vUvFaIp8renqgGs-VgrtPNu7IBkcB38mlTBJ0xxXTaI,4214 -django/contrib/postgres/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=2nDFP43vk1Jih35jns8vSbOhhLq_w7t_2vJHg-crfxY,3112 -django/contrib/postgres/locale/sr_Latn/LC_MESSAGES/django.po,sha256=QN4NEy0zFaPNjTCBrT9TydedWG7w4QBPm-pO7cKvSjg,3510 -django/contrib/postgres/locale/sv/LC_MESSAGES/django.mo,sha256=AkUgWYRBGNJYg5QDPJR3qu4BA_XF9xaZA__3m_KF4hk,2918 -django/contrib/postgres/locale/sv/LC_MESSAGES/django.po,sha256=hhJBRobgyHkLeKxdDxNkEl9XKkDXkrlx6PjyWcERp7I,3487 -django/contrib/postgres/locale/tg/LC_MESSAGES/django.mo,sha256=3yW5NKKsa2f2qDGZ4NGlSn4DHatLOYEv5SEwB9voraA,2688 -django/contrib/postgres/locale/tg/LC_MESSAGES/django.po,sha256=Zuix5sJH5Fz9-joe_ivMRpNz2Fbzefsxz3OOoDV0o1c,3511 -django/contrib/postgres/locale/tk/LC_MESSAGES/django.mo,sha256=ytivs6cnECDuyVKToFQMRnH_RPr4PlVepg8xFHnr0W4,2789 -django/contrib/postgres/locale/tk/LC_MESSAGES/django.po,sha256=bfXIyKNOFRC3U34AEKCsYQn3XMBGtgqHsXpboHvRQq0,3268 -django/contrib/postgres/locale/tr/LC_MESSAGES/django.mo,sha256=hZ2pxkYNOGE4BX--QmDlzqXxT21gHaPGA6CmXDODzhI,2914 -django/contrib/postgres/locale/tr/LC_MESSAGES/django.po,sha256=fzQsDL_wSO62qUaXCutRgq0ifrQ9oOaaxVQRyfnvV7Y,3288 -django/contrib/postgres/locale/uk/LC_MESSAGES/django.mo,sha256=Jg6nM7ah7hEv7eqpe11e0e_MvRaMAQW3mdHTj9hqyG8,4406 -django/contrib/postgres/locale/uk/LC_MESSAGES/django.po,sha256=6gBP1xKxK9hf8ISCR1wABxkKXEUTx2CUYHGr6RVPI94,5100 -django/contrib/postgres/locale/uz/LC_MESSAGES/django.mo,sha256=PcmhhVC1spz3EFrQ2qdhfPFcA1ELHtBhHGWk9Z868Ss,703 -django/contrib/postgres/locale/uz/LC_MESSAGES/django.po,sha256=lbQxX2cmueGCT8sl6hsNWcrf9H-XEUbioP4L7JHGqiU,2291 -django/contrib/postgres/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=ln_p6MRs5JPvTAXFzegXYnCCKki-LEr_YiOw6sK8oPA,2560 -django/contrib/postgres/locale/zh_Hans/LC_MESSAGES/django.po,sha256=7YZE8B0c1HuKVjGzreY7iiyuFeyPgqzKIwzxe5YOKb4,3084 -django/contrib/postgres/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=Twqt8SVetuVV6UQ8ne48RfXILh2I9_-5De7cIrd5Lvc,2586 -django/contrib/postgres/locale/zh_Hant/LC_MESSAGES/django.po,sha256=5qE-q9uXlHM59soKgNSqeCfP-DnFuYI4fXLAbQctJ8c,2962 -django/contrib/postgres/lookups.py,sha256=J50bsr8rLjp_zzdViSVDDcTLfDkY21fEUoyqCgeHauI,1991 -django/contrib/postgres/operations.py,sha256=NAxMCzBMjxMNvEBWdRibbSpJ_UhyheToJTVImRAGS6s,11755 -django/contrib/postgres/search.py,sha256=GAZAOSVpSL-eDjHCPGPrSBqw0Meic44bqdNgLAIsz0c,11676 -django/contrib/postgres/serializers.py,sha256=wCg0IzTNeuVOiC2cdy1wio6gChjqVvH6Ri4hkCkEeXU,435 -django/contrib/postgres/signals.py,sha256=cpkaedbyvajpN4NNAYLA6TfKI_4fe9AU40CeYhYmS8Q,2870 -django/contrib/postgres/templates/postgres/widgets/split_array.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 -django/contrib/postgres/utils.py,sha256=32nCnzdMZ7Ra4dDonbIdv1aCppV3tnQnoEX9AhCJe38,1187 -django/contrib/postgres/validators.py,sha256=TMXBxwiboanDPtso3hiAAu5GSfZtHxAzzY1iInDouws,2803 -django/contrib/redirects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/redirects/__pycache__/__init__.cpython-312.pyc,, -django/contrib/redirects/__pycache__/admin.cpython-312.pyc,, -django/contrib/redirects/__pycache__/apps.cpython-312.pyc,, -django/contrib/redirects/__pycache__/middleware.cpython-312.pyc,, -django/contrib/redirects/__pycache__/models.cpython-312.pyc,, -django/contrib/redirects/admin.py,sha256=1bPOgeZYRYCHdh7s2SpXnuL2WsfdQjD96U5Y3xhRY8g,314 -django/contrib/redirects/apps.py,sha256=1uS5EBp7WwDnY0WHeaRYo7VW9j-s20h4KDdImodjCNg,251 -django/contrib/redirects/locale/af/LC_MESSAGES/django.mo,sha256=EZpwI7hxr96D4CUt6e-kJHgkE3Q5k9RAmPjn6kXvE8A,1136 -django/contrib/redirects/locale/af/LC_MESSAGES/django.po,sha256=kDPrxqvMg3hn12fGyTaImC1gOtTjSxuJtbKdA7jvl_4,1367 -django/contrib/redirects/locale/ar/LC_MESSAGES/django.mo,sha256=FfPauXNUmQxq0R1-eQ2xw2WY1Oi33sLwVhyKX10_zFw,1336 -django/contrib/redirects/locale/ar/LC_MESSAGES/django.po,sha256=X0xX51asSDWedd56riJ4UrsCGEjH-lZdkcilIg4amgI,1595 -django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=hg1lkBEORP2vgLPRbuKcXiIFUcTvAO7KrjbPXlWhvqY,1379 -django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.po,sha256=O4quBKA1jHATGGeDqCONDFfAqvDvOAATIBvueeMphyY,1581 -django/contrib/redirects/locale/ast/LC_MESSAGES/django.mo,sha256=a1ixBQQIdBZ7o-ADnF2r74CBtPLsuatG7txjc05_GXI,1071 -django/contrib/redirects/locale/ast/LC_MESSAGES/django.po,sha256=PguAqeIUeTMWsADOYLTxoC6AuKrCloi8HN18hbm3pZ0,1266 -django/contrib/redirects/locale/az/LC_MESSAGES/django.mo,sha256=KzpRUrONOi5Cdr9sSRz3p0X-gGhD1-3LNhen-XDhO3g,1092 -django/contrib/redirects/locale/az/LC_MESSAGES/django.po,sha256=RGjd2J_pRdSkin4UlKxg7kc3aA8PCQRjDPXkpGZHdn0,1347 -django/contrib/redirects/locale/be/LC_MESSAGES/django.mo,sha256=fVqy28ml508UJf5AA-QVsS5dzKI8Q_ugZZ34WjTpJ-s,1426 -django/contrib/redirects/locale/be/LC_MESSAGES/django.po,sha256=zHBVewcpt0KoavV96v3F4wybqtkGb1jUuPz7sbiWWDI,1662 -django/contrib/redirects/locale/bg/LC_MESSAGES/django.mo,sha256=o-ETSDGtAFZRo3SPd_IHe0mJ3R0RHA32KpgfOmUH11M,1279 -django/contrib/redirects/locale/bg/LC_MESSAGES/django.po,sha256=9qm8s6vj-0LStnyEJ8iYVi13_MfugVAAs2RHvIi7kW8,1587 -django/contrib/redirects/locale/bn/LC_MESSAGES/django.mo,sha256=SbQh_pgxNCogvUFud7xW9T6NTAvpaQb2jngXCtpjICM,1319 -django/contrib/redirects/locale/bn/LC_MESSAGES/django.po,sha256=LgUuiPryDLSXxo_4KMCdjM5XC3BiRfINuEk0s5PUQYQ,1511 -django/contrib/redirects/locale/br/LC_MESSAGES/django.mo,sha256=Yt8xo5B5LJ9HB8IChCkj5mljFQAAKlaW_gurtF8q8Yw,1429 -django/contrib/redirects/locale/br/LC_MESSAGES/django.po,sha256=L2qPx6mZEVUNay1yYEweKBLr_fXVURCnACfsezfP_pI,1623 -django/contrib/redirects/locale/bs/LC_MESSAGES/django.mo,sha256=0Yak4rXHjRRXLu3oYYzvS8qxvk2v4IFvUiDPA68a5YI,1115 -django/contrib/redirects/locale/bs/LC_MESSAGES/django.po,sha256=s9Nhx3H4074hlSqo1zgQRJbozakdJTwA1aTuMSqEJWw,1316 -django/contrib/redirects/locale/ca/LC_MESSAGES/django.mo,sha256=VHE6qHCEoA7rQk0fMUpoTfwqSfu63-CiOFvhvKp5DMQ,1136 -django/contrib/redirects/locale/ca/LC_MESSAGES/django.po,sha256=PSMb_7iZBuYhtdR8byh9zr9dr50Z_tQ518DUlqoEA_M,1484 -django/contrib/redirects/locale/ckb/LC_MESSAGES/django.mo,sha256=23RM9kso65HHxGHQ_DKxGDaUkmdX72DfYvqQfhr7JKw,1340 -django/contrib/redirects/locale/ckb/LC_MESSAGES/django.po,sha256=cGrAq3e6h3vbYrtyi0oFSfZmLlJ0-Y3uqrvFon48n80,1521 -django/contrib/redirects/locale/cs/LC_MESSAGES/django.mo,sha256=UwYsoEHsg7FJLVe0JxdOa1cTGypqJFienAbWe7Vldf0,1229 -django/contrib/redirects/locale/cs/LC_MESSAGES/django.po,sha256=hnWJLXX7IjwZK7_8L3p-dpj5XpDmEo7lQ7-F4upjn7U,1504 -django/contrib/redirects/locale/cy/LC_MESSAGES/django.mo,sha256=NSGoK12A7gbtuAuzQEVFPNSZMqqmhHyRvTEn9PUm9So,1132 -django/contrib/redirects/locale/cy/LC_MESSAGES/django.po,sha256=jDmC64z5exPnO9zwRkBmpa9v3DBlaeHRhqZYPoWqiIY,1360 -django/contrib/redirects/locale/da/LC_MESSAGES/django.mo,sha256=_UVfTMRG__5j7Ak8Q3HtXSy_DPGpZ1XvKj9MHdmR_xI,1132 -django/contrib/redirects/locale/da/LC_MESSAGES/django.po,sha256=RAWWbZXbJciNSdw4skUEoTnOb19iKXAe1KXJLWi0zPQ,1418 -django/contrib/redirects/locale/de/LC_MESSAGES/django.mo,sha256=uh-ldy-QkWS5-ARX6cLyzxzdhbTb_chyEbBPFCvCKuE,1155 -django/contrib/redirects/locale/de/LC_MESSAGES/django.po,sha256=hhGNnVCRV4HNxhCYfmVXTOIkabD7qsVQccwxKa5Tz9g,1424 -django/contrib/redirects/locale/dsb/LC_MESSAGES/django.mo,sha256=LXgczA38RzrN7zSWpxKy8_RY4gPg5tZLl30CJGjJ63s,1236 -django/contrib/redirects/locale/dsb/LC_MESSAGES/django.po,sha256=rI9dyDp7zuZ6CjvFyo2OkGUDK5XzdvdI0ma8IGVkjp4,1431 -django/contrib/redirects/locale/el/LC_MESSAGES/django.mo,sha256=sD3HT4e53Yd3HmQap_Mqlxkm0xF98A6PFW8Lil0PihI,1395 -django/contrib/redirects/locale/el/LC_MESSAGES/django.po,sha256=puhVCcshg5HaPHsVAOucneVgBYT6swhCCBpVGOZykgA,1716 -django/contrib/redirects/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/redirects/locale/en/LC_MESSAGES/django.po,sha256=u4RcMkFmNvlG9Bv6kM0a0scWUMDUbTEDJGR90-G8C0E,1123 -django/contrib/redirects/locale/en_AU/LC_MESSAGES/django.mo,sha256=wxCpSLGl_zsE47kDwilDkpihazwHkA363PvtGOLWhdk,1127 -django/contrib/redirects/locale/en_AU/LC_MESSAGES/django.po,sha256=zujH1WuxoHw_32flptG0x2Ob_BlilLKXuMjQxVbZmgw,1307 -django/contrib/redirects/locale/en_GB/LC_MESSAGES/django.mo,sha256=VscL30uJnV-eiQZITpBCy0xk_FfKdnMh4O9Hk4HGxww,1053 -django/contrib/redirects/locale/en_GB/LC_MESSAGES/django.po,sha256=loe8xIVjZ7eyteQNLPoa-QceBZdgky22dR6deK5ubmA,1246 -django/contrib/redirects/locale/eo/LC_MESSAGES/django.mo,sha256=WZ3NHrS0qMoCJER5jWnGI12bvY5wH0yytM8F7BFTgYc,712 -django/contrib/redirects/locale/eo/LC_MESSAGES/django.po,sha256=T-Gw75sOjZgqpwjIfieIrLxbg1kekWzjrJYSMld2OEQ,1299 -django/contrib/redirects/locale/es/LC_MESSAGES/django.mo,sha256=xyeIQL_pHFyo7p7SkeuxzKdDsma2EXhvnPNDHUhaBv8,1159 -django/contrib/redirects/locale/es/LC_MESSAGES/django.po,sha256=Y3hPQrcbhLtR-pPYRJJXkJME5M8Enr20j9D63hhe9ZA,1490 -django/contrib/redirects/locale/es_AR/LC_MESSAGES/django.mo,sha256=JdKzpdyf9W2m_0_NguvXvyciOh6LAATfE6lqcsp45To,1144 -django/contrib/redirects/locale/es_AR/LC_MESSAGES/django.po,sha256=3zrKJXLh_mrjc4A6g9O6ePyFz8PNUMYTPjNFpvEhaDo,1364 -django/contrib/redirects/locale/es_CO/LC_MESSAGES/django.mo,sha256=wcAMOiqsgz2KEpRwirRH9FNoto6vmo_hxthrQJi0IHU,1147 -django/contrib/redirects/locale/es_CO/LC_MESSAGES/django.po,sha256=n8DM14vHekZRayH0B6Pm3L5XnSo4lto4ZAdu4OhcOmc,1291 -django/contrib/redirects/locale/es_MX/LC_MESSAGES/django.mo,sha256=38fbiReibMAmC75BCCbyo7pA2VA3QvmRqVEo_K6Ejow,1116 -django/contrib/redirects/locale/es_MX/LC_MESSAGES/django.po,sha256=t7R6PiQ1bCc7jhfMrjHlZxVQ6BRlWT2Vv4XXhxBD_Oo,1397 -django/contrib/redirects/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486 -django/contrib/redirects/locale/es_VE/LC_MESSAGES/django.po,sha256=f4XZW8OHjRJoztMJtSDCxd2_Mfy-XK44hLtigjGSsZY,958 -django/contrib/redirects/locale/et/LC_MESSAGES/django.mo,sha256=34-Z1s9msdnj6U7prMctEWCxAR8TNnP44MIoyUuFsls,1131 -django/contrib/redirects/locale/et/LC_MESSAGES/django.po,sha256=1VWcUbM9z_nNmiGnT9Mka3Y3ZLRVHuJdS_j_yNXvmQ0,1479 -django/contrib/redirects/locale/eu/LC_MESSAGES/django.mo,sha256=yHlAEz01pWse4ZworAj7JiATUam5Fp20EZd_3PRgSNw,1126 -django/contrib/redirects/locale/eu/LC_MESSAGES/django.po,sha256=zAvSdahjvq727hXeGjHJ_R5L5meCrOv98tbH3rwlBcE,1404 -django/contrib/redirects/locale/fa/LC_MESSAGES/django.mo,sha256=vZa1KKm2y8duEv9UbJMyiM8WO2EAXcevdR3Lj1ISgLU,1234 -django/contrib/redirects/locale/fa/LC_MESSAGES/django.po,sha256=1quB0Wx5VTIjX2QUCpENl1GA2hpSdsRpgK931jr20B0,1541 -django/contrib/redirects/locale/fi/LC_MESSAGES/django.mo,sha256=xJEd4M2IowXxKBlaGuOEgFKA9OuihcgPoK07Beat4cc,1164 -django/contrib/redirects/locale/fi/LC_MESSAGES/django.po,sha256=1I7AoXMPRDMY6TCjPkQh0Q9g68r9BwKOwki9DybcFWc,1429 -django/contrib/redirects/locale/fr/LC_MESSAGES/django.mo,sha256=YhVNoNaHdSOp2P2F7xfo2MHCd2KkHiehpVjLyJ4VLuw,1155 -django/contrib/redirects/locale/fr/LC_MESSAGES/django.po,sha256=-ljzEKiU05annJ8DHw4OOg8eDCAnWLV2V33R-tQn9dE,1391 -django/contrib/redirects/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 -django/contrib/redirects/locale/fy/LC_MESSAGES/django.po,sha256=D7xverCbf3kTCcFM8h7EKWM5DcxZRqeOSKDB1irbKeE,948 -django/contrib/redirects/locale/ga/LC_MESSAGES/django.mo,sha256=blwOMshClFZKvOZXVvqENK_E_OkdS1ydbjQCDXcHXd4,1075 -django/contrib/redirects/locale/ga/LC_MESSAGES/django.po,sha256=76rdrG4GVbcKwgUQN4bB-B0t6hpivCA_ehf4uzGM_mY,1341 -django/contrib/redirects/locale/gd/LC_MESSAGES/django.mo,sha256=baZXdulbPZwe4_Q3OwfHFl4GJ4hCYtoZz-lE4wcdJvg,1250 -django/contrib/redirects/locale/gd/LC_MESSAGES/django.po,sha256=M4E2giFgzRowd3OsvhD389MyJmT5osKz1Vs1sEfmUpU,1428 -django/contrib/redirects/locale/gl/LC_MESSAGES/django.mo,sha256=au4ulT76A8cd_C_DmtEdiuQ14dIJaprVvFbS9_hYRNk,1131 -django/contrib/redirects/locale/gl/LC_MESSAGES/django.po,sha256=r2t9gHhIvPb8d9XR8fG0b_eW5xkkQswuj4ekJI9x90w,1393 -django/contrib/redirects/locale/he/LC_MESSAGES/django.mo,sha256=MnCcK4Vb3Z5ZQ2A52tb0kM60hmoHQJ0UrWcrhuI2RK0,1204 -django/contrib/redirects/locale/he/LC_MESSAGES/django.po,sha256=gjFr6b15s5JoAT6OoLCA3ApfwiqZ_vhB-EXEWOiUEwo,1427 -django/contrib/redirects/locale/hi/LC_MESSAGES/django.mo,sha256=onR8L7Kvkx6HgFLK7jT-wA_zjarBN8pyltG6BbKFIWU,1409 -django/contrib/redirects/locale/hi/LC_MESSAGES/django.po,sha256=fNv9_qwR9iS-pjWNXnrUFIqvc10lwg3bfj5lgdQOy1U,1649 -django/contrib/redirects/locale/hr/LC_MESSAGES/django.mo,sha256=7wHi6Uu0czZhI6v0ndJJ1wSkalTRfn7D5ovyw8tr4U4,1207 -django/contrib/redirects/locale/hr/LC_MESSAGES/django.po,sha256=HtxZwZ-ymmf-XID0z5s7nGYg-4gJL8i6FDGWt9i4Wns,1406 -django/contrib/redirects/locale/hsb/LC_MESSAGES/django.mo,sha256=6lfIW4LcMGvuLOY0U4w1V6Xwcd_TsUC3r-QzZOOLwys,1221 -django/contrib/redirects/locale/hsb/LC_MESSAGES/django.po,sha256=l5pATo8NHa8ypB8dCigRwqpLZvV8W0v2vPh60oAeGn0,1420 -django/contrib/redirects/locale/hu/LC_MESSAGES/django.mo,sha256=4oYBNGEmFMISzw3LExVf6CHsJD_o20mMy132pwzM-wk,1111 -django/contrib/redirects/locale/hu/LC_MESSAGES/django.po,sha256=UYJ_ZrAnOqA6S8nkkfN_FBLxCyPHJjOMd1OSIUVc8aY,1383 -django/contrib/redirects/locale/hy/LC_MESSAGES/django.mo,sha256=gT5x1TZXMNyBwfmQ-C_cOB60JGYdKIM7tVb3-J5d6nw,1261 -django/contrib/redirects/locale/hy/LC_MESSAGES/django.po,sha256=40QTpth2AVeoy9P36rMJC2C82YsBh_KYup19WL6zM6w,1359 -django/contrib/redirects/locale/ia/LC_MESSAGES/django.mo,sha256=PDB5ZQP6iH31xN6N2YmPZYjt6zzc88TRmh9_gAWH2U0,1152 -django/contrib/redirects/locale/ia/LC_MESSAGES/django.po,sha256=GXjbzY-cQz2QLx_iuqgijT7VUMcoNKL7prbP6yIbj8E,1297 -django/contrib/redirects/locale/id/LC_MESSAGES/django.mo,sha256=XEsvVWMR9As9csO_6iXNAcLZrErxz3HfDj5GTe06fJU,1105 -django/contrib/redirects/locale/id/LC_MESSAGES/django.po,sha256=t8FoC1xIB-XHDplyDJByQGFnHggxR0LSfUMGwWoAKWE,1410 -django/contrib/redirects/locale/io/LC_MESSAGES/django.mo,sha256=vz7TWRML-DFDFapbEXTByb9-pRQwoeJ0ApSdh6nOzXY,1019 -django/contrib/redirects/locale/io/LC_MESSAGES/django.po,sha256=obStuMYYSQ7x2utkGS3gekdPfnsNAwp3DcNwlwdg1sI,1228 -django/contrib/redirects/locale/is/LC_MESSAGES/django.mo,sha256=aMjlGilYfP7clGriAp1Za60uCD40rvLt9sKXuYX3ABg,1040 -django/contrib/redirects/locale/is/LC_MESSAGES/django.po,sha256=nw5fxVV20eQqsk4WKg6cIiKttG3zsITSVzH4p5xBV8s,1299 -django/contrib/redirects/locale/it/LC_MESSAGES/django.mo,sha256=bBj6dvhZSpxojLZ0GiMBamh1xiluxAYMt6RHubi9CxU,1092 -django/contrib/redirects/locale/it/LC_MESSAGES/django.po,sha256=NHSVus7ixtrB7JDIrYw22srZcse5i4Z9y8Ply_-Jcts,1390 -django/contrib/redirects/locale/ja/LC_MESSAGES/django.mo,sha256=XSJw3iLK0gYVjZ86MYuV4jfoiN_-WkH--oMK5uW9cs8,1193 -django/contrib/redirects/locale/ja/LC_MESSAGES/django.po,sha256=SlYrmC3arGgS7SL8cCnq7d37P-bQGcmpgUXAwVC2eRw,1510 -django/contrib/redirects/locale/ka/LC_MESSAGES/django.mo,sha256=0aOLKrhUX6YAIMNyt6KES9q2iFk2GupEr76WeGlJMkk,1511 -django/contrib/redirects/locale/ka/LC_MESSAGES/django.po,sha256=AQWIEdhxp55XnJwwHrUxxQaGbLJPmdo1YLeT86IJqnY,1725 -django/contrib/redirects/locale/kab/LC_MESSAGES/django.mo,sha256=Ogx9NXK1Nfw4ctZfp-slIL81ziDX3f4DZ01OkVNY5Tw,699 -django/contrib/redirects/locale/kab/LC_MESSAGES/django.po,sha256=gI6aUPkXH-XzKrStDsMCMNfQKDEc-D1ffqE-Z-ItQuI,1001 -django/contrib/redirects/locale/kk/LC_MESSAGES/django.mo,sha256=KVLc6PKL1MP_Px0LmpoW2lIvgLiSzlvoJ9062F-s3Zw,1261 -django/contrib/redirects/locale/kk/LC_MESSAGES/django.po,sha256=Xoy4mnOT51F_GS1oIO91EAuwt-ZfePKh-sutedo6D_g,1478 -django/contrib/redirects/locale/km/LC_MESSAGES/django.mo,sha256=tcW1s7jvTG0cagtdRNT0jSNkhX-B903LKl7bK31ZvJU,1248 -django/contrib/redirects/locale/km/LC_MESSAGES/django.po,sha256=KJ4h1umpfFLdsWZtsfXoeOl6cUPUD97U4ISWt80UZ2U,1437 -django/contrib/redirects/locale/kn/LC_MESSAGES/django.mo,sha256=24GHcQlEoCDri-98eLtqLbGjtJz9cTPAfYdAijsL5ck,788 -django/contrib/redirects/locale/kn/LC_MESSAGES/django.po,sha256=xkH24itr2fpuCQMGQ3xssOqaN_7KzM-GLy0u00ti27I,1245 -django/contrib/redirects/locale/ko/LC_MESSAGES/django.mo,sha256=viohri0QV3d46CN-YZP1k7w83Ac8r5lCkWU8fhbAEEc,1134 -django/contrib/redirects/locale/ko/LC_MESSAGES/django.po,sha256=8TsMfyl-BqGb-8fI12pazzlI7x3X1yruIYuvFroLti0,1521 -django/contrib/redirects/locale/ky/LC_MESSAGES/django.mo,sha256=4jX_g-hledmjWEx0RvY99G5QcBj_mQt_HZzpd000J44,1265 -django/contrib/redirects/locale/ky/LC_MESSAGES/django.po,sha256=yvx21nxsqqVzPyyxX9_rF-oeaY2WszXrG4ZDSZTW6-4,1522 -django/contrib/redirects/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 -django/contrib/redirects/locale/lb/LC_MESSAGES/django.po,sha256=Hv1CF9CC78YuVVNpklDtPJDU5-iIUeuXcljewmc9akg,946 -django/contrib/redirects/locale/lt/LC_MESSAGES/django.mo,sha256=reiFMXJnvE4XUosbKjyvUFzl4IKjlJoFK1gVJE9Tbnc,1191 -django/contrib/redirects/locale/lt/LC_MESSAGES/django.po,sha256=G56UIYuuVLgwzHCIj_suHNYPe1z76Y_cauWfGEs4nKI,1448 -django/contrib/redirects/locale/lv/LC_MESSAGES/django.mo,sha256=slGK6O2tYD5yciS8m_7h2WA4LOPf05nQ4oTRKB63etE,1175 -django/contrib/redirects/locale/lv/LC_MESSAGES/django.po,sha256=GUDn1IYQ5UMOQUBvGfuVOeVb-bpf5FHVigqTt_N0I0M,1442 -django/contrib/redirects/locale/mk/LC_MESSAGES/django.mo,sha256=3XGgf2K60LclScPKcgw07TId6x535AW5jtGVJ9lC01A,1353 -django/contrib/redirects/locale/mk/LC_MESSAGES/django.po,sha256=Smsdpid5VByoxvnfzju_XOlp6aTPl8qshFptot3cRYM,1596 -django/contrib/redirects/locale/ml/LC_MESSAGES/django.mo,sha256=IhSkvbgX9xfE4GypOQ7W7SDM-wOOqx1xgSTW7L1JofU,1573 -django/contrib/redirects/locale/ml/LC_MESSAGES/django.po,sha256=9KpXf88GRUB5I51Rj3q9qhvhjHFINuiJ9ig0SZdYE6k,1755 -django/contrib/redirects/locale/mn/LC_MESSAGES/django.mo,sha256=14fdHC_hZrRaA0EAFzBJy8BHj4jMMX6l2e6rLLBtJ8E,1274 -django/contrib/redirects/locale/mn/LC_MESSAGES/django.po,sha256=7_QzUWf5l0P-7gM35p9UW7bOj33NabQq_zSrekUeZsY,1502 -django/contrib/redirects/locale/mr/LC_MESSAGES/django.mo,sha256=2Z5jaGJzpiJTCnhCk8ulCDeAdj-WwR99scdHFPRoHoA,468 -django/contrib/redirects/locale/mr/LC_MESSAGES/django.po,sha256=0aGKTlriCJoP-Tirl-qCl7tjjpjURhgCjRGmurHVO3c,940 -django/contrib/redirects/locale/ms/LC_MESSAGES/django.mo,sha256=WUk6hvvHPWuylCGiDvy0MstWoQ1mdmwwfqlms1Nv4Ng,1094 -django/contrib/redirects/locale/ms/LC_MESSAGES/django.po,sha256=bsQDwxqtS5FgPCqTrfm9kw2hH_R2y44DnI5nluUgduc,1255 -django/contrib/redirects/locale/my/LC_MESSAGES/django.mo,sha256=H5-y9A3_1yIXJzC4sSuHqhURxhOlnYEL8Nvc0IF4zUE,549 -django/contrib/redirects/locale/my/LC_MESSAGES/django.po,sha256=MZGNt0jMQA6aHA6OmjvaC_ajvRWfUfDiKkV0j3_E480,1052 -django/contrib/redirects/locale/nb/LC_MESSAGES/django.mo,sha256=pxRtj5VFxTQBbi_mDS05iGoQs4BZ4y6LLJZ9pozJezY,1110 -django/contrib/redirects/locale/nb/LC_MESSAGES/django.po,sha256=ALYXciVa0d0sG70dqjtk17Yh_qwzKAzTXDlEZSU9kc0,1392 -django/contrib/redirects/locale/ne/LC_MESSAGES/django.mo,sha256=TxTnBGIi5k0PKAjADeCuOAJQV5dtzLrsFRXBXtfszWI,1420 -django/contrib/redirects/locale/ne/LC_MESSAGES/django.po,sha256=5b5R-6AlSIQrDyTtcmquoW5xrQRGZwlxZpBpZfVo5t4,1607 -django/contrib/redirects/locale/nl/LC_MESSAGES/django.mo,sha256=Xeh1YbEAu7Lhz07RXPTMDyv7AyWF9Bhe-9oHdWT74mo,1129 -django/contrib/redirects/locale/nl/LC_MESSAGES/django.po,sha256=QuNgrX7w2wO15KPEe3ogVhXbkt0v60EwKmKfD7-PedU,1476 -django/contrib/redirects/locale/nn/LC_MESSAGES/django.mo,sha256=8TQXBF2mzENl7lFpcrsKxkJ4nKySTOgXJM5_I2OD7q8,1143 -django/contrib/redirects/locale/nn/LC_MESSAGES/django.po,sha256=pfrKVQd1wLKKpq-b7CBpc-rZnEEgyZFDSjbipsEiwxM,1344 -django/contrib/redirects/locale/os/LC_MESSAGES/django.mo,sha256=joQ-ibV9_6ctGMNPLZQLCx5fUamRQngs6_LDd_s9sMQ,1150 -django/contrib/redirects/locale/os/LC_MESSAGES/django.po,sha256=ZwFWiuGS9comy7r2kMnKuqaPOvVehVdAAuFvXM5ldxM,1358 -django/contrib/redirects/locale/pa/LC_MESSAGES/django.mo,sha256=MY-OIDNXlZth-ZRoOJ52nlUPg_51_F5k0NBIpc7GZEw,748 -django/contrib/redirects/locale/pa/LC_MESSAGES/django.po,sha256=TPDTK2ZvDyvO1ob8Qfr64QDbHVWAREfEeBO5w9jf63E,1199 -django/contrib/redirects/locale/pl/LC_MESSAGES/django.mo,sha256=9Sc_8aDC8-PADnr4hYdat6iRUXj0QxsWR1RGWKIQP3M,1285 -django/contrib/redirects/locale/pl/LC_MESSAGES/django.po,sha256=RLuSAlWQPvxDGSNHL3j5ohMdf4IZL-g21-_QIuTdY4c,1605 -django/contrib/redirects/locale/pt/LC_MESSAGES/django.mo,sha256=WocPaVk3fQEz_MLmGVtFBGwsThD-gNU7GDocqEbeaBA,1129 -django/contrib/redirects/locale/pt/LC_MESSAGES/django.po,sha256=ptCzoE41c9uFAbgSjb6VHSFYPEUv_51YyBdoThXN3XA,1350 -django/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.mo,sha256=LxFEZCH75ucCaB5fEmdsjEJi5aJa3barRLqcd6r-gj0,1171 -django/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po,sha256=PO5whkwiagEN_s8ViBDN41dW35wdjAuXZBB1j2m09lY,1615 -django/contrib/redirects/locale/ro/LC_MESSAGES/django.mo,sha256=D8FkmV6IxZOn5QAPBu9PwhStBpVQWudU62wKa7ADfJY,1158 -django/contrib/redirects/locale/ro/LC_MESSAGES/django.po,sha256=Z_-pDi2-A7_KXrEQtFlAJ_KLO0vXFKCbMphsNlqfNJk,1477 -django/contrib/redirects/locale/ru/LC_MESSAGES/django.mo,sha256=IvO0IXq1xuX0wpo2hV8po1AMifLS3ElGyQal0vmC_Jw,1457 -django/contrib/redirects/locale/ru/LC_MESSAGES/django.po,sha256=FHb4L3RMVV5ajxGj9y6ZymPtO_XjZrhHmvCZBPwwzmQ,1762 -django/contrib/redirects/locale/sk/LC_MESSAGES/django.mo,sha256=oVA89AU0UVErADtesum66Oo3D27RRy04qLHy3n0Y9-w,1189 -django/contrib/redirects/locale/sk/LC_MESSAGES/django.po,sha256=Kjbdc7nrKsMCaEphxUdGb4VbpJbFhF0cs3ReqrY7638,1468 -django/contrib/redirects/locale/sl/LC_MESSAGES/django.mo,sha256=GAZtOFSUxsOHdXs3AzT40D-3JFWIlNDZU_Z-cMvdaHo,1173 -django/contrib/redirects/locale/sl/LC_MESSAGES/django.po,sha256=gkZTyxNh8L2gNxyLVzm-M1HTiK8KDvughTa2MK9NzWo,1351 -django/contrib/redirects/locale/sq/LC_MESSAGES/django.mo,sha256=f2HyVjWFGnjNXV-EIk0YMFaMH6_ZwYLYgSDwU4fIJfM,1165 -django/contrib/redirects/locale/sq/LC_MESSAGES/django.po,sha256=gbd4JxoevGfDTRx3iYfDtlnh54EwyRKYXxs4XagHvRM,1453 -django/contrib/redirects/locale/sr/LC_MESSAGES/django.mo,sha256=OK90avxrpYxBcvPIZ_tDlSZP6PyRCzFg_7h0F_JlMy8,1367 -django/contrib/redirects/locale/sr/LC_MESSAGES/django.po,sha256=Ipi7j7q5N8aNGWmkz5XGlOPqpD46xCLKarfs-lNbKqM,1629 -django/contrib/redirects/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=qYXT0j80c7a5jMsxeezncAL9Gff2Pb7eJz8iTX0TRX4,1210 -django/contrib/redirects/locale/sr_Latn/LC_MESSAGES/django.po,sha256=CL3ij3uGK8UOMggLXf0MctEydLbyi-9zvkXN5Teuu9c,1424 -django/contrib/redirects/locale/sv/LC_MESSAGES/django.mo,sha256=2j_IyOgbM_yED5lF10r7KGguEC2qX58dRIVogWj5PVY,1134 -django/contrib/redirects/locale/sv/LC_MESSAGES/django.po,sha256=lIFNLfEondtzlwlG3tDf3AH59uEotLtj-XdL87c-QUo,1404 -django/contrib/redirects/locale/sw/LC_MESSAGES/django.mo,sha256=oJnTp9CTgNsg5TSOV_aPZIUXdr6-l65hAZbaARZCO2w,1078 -django/contrib/redirects/locale/sw/LC_MESSAGES/django.po,sha256=CTVwA3O7GUQb7l1WpbmT8kOfqr7DpqnIyQt3HWJ6YTQ,1245 -django/contrib/redirects/locale/ta/LC_MESSAGES/django.mo,sha256=AE6Py2_CV2gQKjKQAa_UgkLT9i61x3i1hegQpRGuZZM,1502 -django/contrib/redirects/locale/ta/LC_MESSAGES/django.po,sha256=ojdq8p4HnwtK0n6By2I6_xuucOpJIobJEGRMGc_TrS8,1700 -django/contrib/redirects/locale/te/LC_MESSAGES/django.mo,sha256=Gtcs4cbgrD7-bSkPKiPbM5DcjONS2fSdHhvWdbs_E1M,467 -django/contrib/redirects/locale/te/LC_MESSAGES/django.po,sha256=RT-t3TjcOLyNQQWljVrIcPWErKssh_HQMyGujloy-EI,939 -django/contrib/redirects/locale/tg/LC_MESSAGES/django.mo,sha256=6e4Pk9vX1csvSz80spVLhNTd3N251JrXaCga9n60AP8,782 -django/contrib/redirects/locale/tg/LC_MESSAGES/django.po,sha256=2Cmle5usoNZBo8nTfAiqCRq3KqN1WKKdc-mogUOJm9I,1177 -django/contrib/redirects/locale/th/LC_MESSAGES/django.mo,sha256=1l6eO0k1KjcmuRJKUS4ZdtJGhAUmUDMAMIeNwEobQqY,1331 -django/contrib/redirects/locale/th/LC_MESSAGES/django.po,sha256=DVVqpGC6zL8Hy8e6P8ZkhKbvcMJmXV5euLxmfoTCtms,1513 -django/contrib/redirects/locale/tk/LC_MESSAGES/django.mo,sha256=NkxO6C7s1HHT1Jrmwad9zaD3pPyW_sPuZz3F2AGUD7M,1155 -django/contrib/redirects/locale/tk/LC_MESSAGES/django.po,sha256=0EQj1I1oNbAovKmF7o2rQ8_QsQiYqEFDab2KlCFw0s0,1373 -django/contrib/redirects/locale/tr/LC_MESSAGES/django.mo,sha256=-qySxKYwxfFO79cBytvzTBeFGdio1wJlM5DeBBfdxns,1133 -django/contrib/redirects/locale/tr/LC_MESSAGES/django.po,sha256=-03z3YMI6tlt12xwFI2lWchOxiIVbkdVRhghaCoMKlk,1408 -django/contrib/redirects/locale/tt/LC_MESSAGES/django.mo,sha256=Hf1JXcCGNwedxy1nVRM_pQ0yUebC-tvOXr7P0h86JyI,1178 -django/contrib/redirects/locale/tt/LC_MESSAGES/django.po,sha256=2WCyBQtqZk-8GXgtu-x94JYSNrryy2QoMnirhiBrgV0,1376 -django/contrib/redirects/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 -django/contrib/redirects/locale/udm/LC_MESSAGES/django.po,sha256=xsxlm4itpyLlLdPQRIHLuvTYRvruhM3Ezc9jtp3XSm4,934 -django/contrib/redirects/locale/uk/LC_MESSAGES/django.mo,sha256=QbN1ABfbr2YbZQXz2U4DI-6iTvWoKPrLAn5tGq57G5Y,1569 -django/contrib/redirects/locale/uk/LC_MESSAGES/django.po,sha256=pH9M4ilsJneoHw6E1E3T54QCHGS_i4tlhDc0nbAJP8I,1949 -django/contrib/redirects/locale/ur/LC_MESSAGES/django.mo,sha256=CQkt-yxyAaTd_Aj1ZZC8s5-4fI2TRyTEZ-SYJZgpRrQ,1138 -django/contrib/redirects/locale/ur/LC_MESSAGES/django.po,sha256=CkhmN49PvYTccvlSRu8qGpcbx2C-1aY7K3Lq1VC2fuM,1330 -django/contrib/redirects/locale/uz/LC_MESSAGES/django.mo,sha256=vD0Y920SSsRsLROKFaU6YM8CT5KjQxJcgMh5bZ4Pugo,743 -django/contrib/redirects/locale/uz/LC_MESSAGES/django.po,sha256=G2Rj-6g8Vse2Bp8L_hGIO84S--akagMXj8gSa7F2lK4,1195 -django/contrib/redirects/locale/vi/LC_MESSAGES/django.mo,sha256=BquXycJKh-7-D9p-rGUNnjqzs1d6S1YhEJjFW8_ARFA,1106 -django/contrib/redirects/locale/vi/LC_MESSAGES/django.po,sha256=xsCASrGZNbQk4d1mhsTZBcCpPJ0KO6Jr4Zz1wfnL67s,1301 -django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=iftb_HccNV383_odHbB6Tikn2h7EtP_9QK-Plq2xwTY,1100 -django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po,sha256=xZmfuCEYx7ou_qvtxBcBly5mBmkSBEhnx0xqJj3nvMw,1490 -django/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=-H2o5p5v8j5RqKZ6vOsWToFWGOn8CaO3KSTiU42Zqjk,1071 -django/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po,sha256=fQicS5nmJLgloKM83l6NcSJp36-Wjn2Dl9jf03e0pGo,1334 -django/contrib/redirects/middleware.py,sha256=ydqidqi5JTaoguEFQBRzLEkU3HeiohgVsFglHUE-HIU,1921 -django/contrib/redirects/migrations/0001_initial.py,sha256=0mXB5TgK_fwYbmbB_e7tKSjgOvpHWnZXg0IFcVtnmfU,2101 -django/contrib/redirects/migrations/0002_alter_redirect_new_path_help_text.py,sha256=RXPdSbYewnW1bjjXxNqUIL-qIeSxdBUehBp0BjfRl8o,635 -django/contrib/redirects/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/redirects/migrations/__pycache__/0001_initial.cpython-312.pyc,, -django/contrib/redirects/migrations/__pycache__/0002_alter_redirect_new_path_help_text.cpython-312.pyc,, -django/contrib/redirects/migrations/__pycache__/__init__.cpython-312.pyc,, -django/contrib/redirects/models.py,sha256=KJ6mj0BS243BNPKp26K7OSqcT9j49FPth5m0gNWWxFM,1083 -django/contrib/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sessions/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sessions/__pycache__/apps.cpython-312.pyc,, -django/contrib/sessions/__pycache__/base_session.cpython-312.pyc,, -django/contrib/sessions/__pycache__/exceptions.cpython-312.pyc,, -django/contrib/sessions/__pycache__/middleware.cpython-312.pyc,, -django/contrib/sessions/__pycache__/models.cpython-312.pyc,, -django/contrib/sessions/__pycache__/serializers.cpython-312.pyc,, -django/contrib/sessions/apps.py,sha256=5WIMqa3ymqEvYMnFHe3uWZB8XSijUF_NSgaorRD50Lg,194 -django/contrib/sessions/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sessions/backends/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sessions/backends/__pycache__/base.cpython-312.pyc,, -django/contrib/sessions/backends/__pycache__/cache.cpython-312.pyc,, -django/contrib/sessions/backends/__pycache__/cached_db.cpython-312.pyc,, -django/contrib/sessions/backends/__pycache__/db.cpython-312.pyc,, -django/contrib/sessions/backends/__pycache__/file.cpython-312.pyc,, -django/contrib/sessions/backends/__pycache__/signed_cookies.cpython-312.pyc,, -django/contrib/sessions/backends/base.py,sha256=xm9Rs0ZI8ERP6cZ-N4KdfVww3aWiXC8FcgcxQWNdrqw,11744 -django/contrib/sessions/backends/cache.py,sha256=Dz4lOirEI3ZSrvOWnAffQpyA53TuPm3MmV1u8jkT-hI,2741 -django/contrib/sessions/backends/cached_db.py,sha256=pxPlY9klOH0NCht8OZrHQew_UkMrQlKMtIKMLYIv2DI,2098 -django/contrib/sessions/backends/db.py,sha256=qEYZNmyWk1pBbuXGXbTsLtQ2Xt_HgoRALxTQm55ZLy0,3785 -django/contrib/sessions/backends/file.py,sha256=4o1LB0hZz_SCQjAwXHulDnFB1QZrEprAY4LKQdGfkRc,7754 -django/contrib/sessions/backends/signed_cookies.py,sha256=keRgy5CyvufiEo4A91znOKbX6UOzzH2hzaw51UzK_0Y,2676 -django/contrib/sessions/base_session.py,sha256=1woSGGF4IFWm2apOabxtdQHeVS6OmnivL_fwjUYGJwc,1490 -django/contrib/sessions/exceptions.py,sha256=KhkhXiFwfUflSP_t6wCLOEXz1YjBRTKVNbrLmGhOTLo,359 -django/contrib/sessions/locale/af/LC_MESSAGES/django.mo,sha256=0DS0pgVrMN-bUimDfesgHs8Lgr0loz2c6nJdz58RxyQ,717 -django/contrib/sessions/locale/af/LC_MESSAGES/django.po,sha256=ZJRLBshQCAiTTAUycdB3MZIadLeHR5LxbSlDvSWLnEo,838 -django/contrib/sessions/locale/ar/LC_MESSAGES/django.mo,sha256=yoepqaR68PTGLx--cAOzP94Sqyl5xIYpeQ0IFWgY380,846 -django/contrib/sessions/locale/ar/LC_MESSAGES/django.po,sha256=ZgwtBYIdtnqp_8nKHXF1NVJFzQU81-3yv9b7STrQHMc,995 -django/contrib/sessions/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=_iSasR22CxvNWfei6aE_24woPhhhvNzQl5FUO_649dc,817 -django/contrib/sessions/locale/ar_DZ/LC_MESSAGES/django.po,sha256=vop5scstamgFSnO_FWXCEnI7R1N26t7jy_mZUAfETcY,978 -django/contrib/sessions/locale/ast/LC_MESSAGES/django.mo,sha256=hz2m-PkrHby2CKfIOARj6kCzisT-Vs0syfDSTx_iVVw,702 -django/contrib/sessions/locale/ast/LC_MESSAGES/django.po,sha256=M90j1Nx6oDJ16hguUkfKYlyb5OymUeZ5xzPixWxSC7I,846 -django/contrib/sessions/locale/az/LC_MESSAGES/django.mo,sha256=_4XcYdtRasbCjRoaWGoULsXX2cEa--KdRdqbnGoaRuM,731 -django/contrib/sessions/locale/az/LC_MESSAGES/django.po,sha256=qYd7vz6A-hHQNwewzI6wEsxRVLdoc2xLGm1RPW0Hxc4,891 -django/contrib/sessions/locale/be/LC_MESSAGES/django.mo,sha256=FHZ72QuOd-vAOjOXisLs4CaEk7uZuzjO_EfUSB6754M,854 -django/contrib/sessions/locale/be/LC_MESSAGES/django.po,sha256=tHsYVn3XNTcukB0SrHUWP1iV763rrQHCimOyJHRPiek,1023 -django/contrib/sessions/locale/bg/LC_MESSAGES/django.mo,sha256=fFZ8EgRlJ1Z-IP8gPtsUXAnqVHbqQRZpYv6PLWNlNVA,759 -django/contrib/sessions/locale/bg/LC_MESSAGES/django.po,sha256=tXcaDPNmFIv0RU-7sGscRkLCbKEgTBowzVj3AYymarY,997 -django/contrib/sessions/locale/bn/LC_MESSAGES/django.mo,sha256=0BdFN7ou9tmoVG00fCA-frb1Tri3iKz43W7SWal398s,762 -django/contrib/sessions/locale/bn/LC_MESSAGES/django.po,sha256=LycmTel6LXV2HGGN6qzlAfID-cVEQCNnW1Nv_hbWXJk,909 -django/contrib/sessions/locale/br/LC_MESSAGES/django.mo,sha256=6ubPQUyXX08KUssyVZBMMkTlD94mlA6wzsteAMiZ8C8,1027 -django/contrib/sessions/locale/br/LC_MESSAGES/django.po,sha256=LKxGGHOQejKpUp18rCU2FXW8D_H3WuP_P6dPlEluwcE,1201 -django/contrib/sessions/locale/bs/LC_MESSAGES/django.mo,sha256=M7TvlJMrSUAFhp7oUSpUKejnbTuIK-19yiGBBECl9Sc,759 -django/contrib/sessions/locale/bs/LC_MESSAGES/django.po,sha256=Ur0AeRjXUsLgDJhcGiw75hRk4Qe98DzPBOocD7GFDRQ,909 -django/contrib/sessions/locale/ca/LC_MESSAGES/django.mo,sha256=tbaZ48PaihGGD9-2oTKiMFY3kbXjU59nNciCRINOBNk,738 -django/contrib/sessions/locale/ca/LC_MESSAGES/django.po,sha256=tJuJdehKuD9aXOauWOkE5idQhsVsLbeg1Usmc6N_SP0,906 -django/contrib/sessions/locale/ckb/LC_MESSAGES/django.mo,sha256=qTCUlxmStU9w1nXRAc_gRodaN6ojJK_XAxDXoYC5vQI,741 -django/contrib/sessions/locale/ckb/LC_MESSAGES/django.po,sha256=F2bHLL66fWF5_VTM5QvNUFakY7gPRDr1qCjW6AkYxec,905 -django/contrib/sessions/locale/cs/LC_MESSAGES/django.mo,sha256=wEFP4NNaRQDbcbw96UC906jN4rOrlPJMn60VloXr944,759 -django/contrib/sessions/locale/cs/LC_MESSAGES/django.po,sha256=7XkKESwfOmbDRDbUYr1f62-fDOuyI-aCqLGaEiDrmX8,962 -django/contrib/sessions/locale/cy/LC_MESSAGES/django.mo,sha256=GeWVeV2PvgLQV8ecVUA2g3-VvdzMsedgIDUSpn8DByk,774 -django/contrib/sessions/locale/cy/LC_MESSAGES/django.po,sha256=zo18MXtkEdO1L0Q6ewFurx3lsEWTCdh0JpQJTmvw5bY,952 -django/contrib/sessions/locale/da/LC_MESSAGES/django.mo,sha256=7_YecCzfeYQp9zVYt2B7MtjhAAuVb0BcK2D5Qv_uAbg,681 -django/contrib/sessions/locale/da/LC_MESSAGES/django.po,sha256=qX_Oo7niVo57bazlIYFA6bnVmPBclUUTWvZFYNLaG04,880 -django/contrib/sessions/locale/de/LC_MESSAGES/django.mo,sha256=N3kTal0YK9z7Te3zYGLbJmoSB6oWaviWDLGdPlsPa9g,721 -django/contrib/sessions/locale/de/LC_MESSAGES/django.po,sha256=0qnfDeCUQN2buKn6R0MvwhQP05XWxSu-xgvfxvnJe3k,844 -django/contrib/sessions/locale/dsb/LC_MESSAGES/django.mo,sha256=RABl3WZmY6gLh4IqmTUhoBEXygDzjp_5lLF1MU9U5fA,810 -django/contrib/sessions/locale/dsb/LC_MESSAGES/django.po,sha256=cItKs5tASYHzDxfTg0A_dgBQounpzoGyOEFn18E_W_g,934 -django/contrib/sessions/locale/el/LC_MESSAGES/django.mo,sha256=QbTbmcfgc8_4r5hFrIghDhk2XQ4f8_emKmqupMG2ah0,809 -django/contrib/sessions/locale/el/LC_MESSAGES/django.po,sha256=HeaEbpVmFhhrZt2NsZteYaYoeo8FYKZF0IoNJwtzZkc,971 -django/contrib/sessions/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/sessions/locale/en/LC_MESSAGES/django.po,sha256=afaM-IIUZtcRZduojUTS8tT0w7C4Ya9lXgReOvq_iF0,804 -django/contrib/sessions/locale/en_AU/LC_MESSAGES/django.mo,sha256=FgY1K6IVyQjMjXqVZxcsyWW_Tu5ckfrbmIfNYq5P-_E,693 -django/contrib/sessions/locale/en_AU/LC_MESSAGES/django.po,sha256=cMV15gJq8jNSUzkhn7uyOf2JYMFx7BNH1oFYa1vISnc,853 -django/contrib/sessions/locale/en_GB/LC_MESSAGES/django.mo,sha256=T5NQCTYkpERfP9yKbUvixT0VdBt1zGmGB8ITlkVc420,707 -django/contrib/sessions/locale/en_GB/LC_MESSAGES/django.po,sha256=1ks_VE1qpEfPcyKg0HybkTG0-DTttTHTfUPhQCR53sw,849 -django/contrib/sessions/locale/eo/LC_MESSAGES/django.mo,sha256=eBvYQbZS_WxVV3QCSZAOyHNIljC2ZXxVc4mktUuXVjI,727 -django/contrib/sessions/locale/eo/LC_MESSAGES/django.po,sha256=Ru9xicyTgHWVHh26hO2nQNFRQmwBnYKEagsS8TZRv3E,917 -django/contrib/sessions/locale/es/LC_MESSAGES/django.mo,sha256=jbHSvHjO2OCLlBD66LefocKOEbefWbPhj-l3NugiWuc,734 -django/contrib/sessions/locale/es/LC_MESSAGES/django.po,sha256=fY5WXeONEXHeuBlH0LkvzdZ2CSgbvLZ8BJc429aIbhI,909 -django/contrib/sessions/locale/es_AR/LC_MESSAGES/django.mo,sha256=_8icF2dMUWj4WW967rc5npgndXBAdJrIiz_VKf5D-Rw,694 -django/contrib/sessions/locale/es_AR/LC_MESSAGES/django.po,sha256=AnmvjeOA7EBTJ6wMOkCl8JRLVYRU8KS0egPijcKutns,879 -django/contrib/sessions/locale/es_CO/LC_MESSAGES/django.mo,sha256=UP7ia0gV9W-l0Qq5AS4ZPadJtml8iuzzlS5C9guMgh8,754 -django/contrib/sessions/locale/es_CO/LC_MESSAGES/django.po,sha256=_XeiiRWvDaGjofamsRHr5up_EQvcw0w-GLLeWK27Af8,878 -django/contrib/sessions/locale/es_MX/LC_MESSAGES/django.mo,sha256=MDM0K3xMvyf8ymvAurHYuacpxfG_YfJFyNnp1uuc6yY,756 -django/contrib/sessions/locale/es_MX/LC_MESSAGES/django.po,sha256=Y7VNa16F_yyK7_XJvF36rR2XNW8aBJK4UDweufyXpxE,892 -django/contrib/sessions/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486 -django/contrib/sessions/locale/es_VE/LC_MESSAGES/django.po,sha256=zWjgB0AmsmhX2tjk1PgldttqY56Czz8epOVCaYWXTLU,761 -django/contrib/sessions/locale/et/LC_MESSAGES/django.mo,sha256=aL1jZWourEC7jtjsuBZHD-Gw9lpL6L1SoqjTtzguxD0,737 -django/contrib/sessions/locale/et/LC_MESSAGES/django.po,sha256=VNBYohAOs59jYWkjVMY-v2zwVy5AKrtBbFRJZLwdCFg,899 -django/contrib/sessions/locale/eu/LC_MESSAGES/django.mo,sha256=M9piOB_t-ZnfN6pX-jeY0yWh2S_5cCuo1oGiy7X65A4,728 -django/contrib/sessions/locale/eu/LC_MESSAGES/django.po,sha256=bHdSoknoH0_dy26e93tWVdO4TT7rnCPXlSLPsYAhwyw,893 -django/contrib/sessions/locale/fa/LC_MESSAGES/django.mo,sha256=6DdJcqaYuBnhpFFHR42w-RqML0eQPFMAUEEDY0Redy8,755 -django/contrib/sessions/locale/fa/LC_MESSAGES/django.po,sha256=rklhNf0UFl2bM6mt7x9lWvfzPH4XWGbrW9Gc2w-9rzg,922 -django/contrib/sessions/locale/fi/LC_MESSAGES/django.mo,sha256=oAugvlTEvJmG8KsZw09WcfnifYY5oHnGo4lxcxqKeaY,721 -django/contrib/sessions/locale/fi/LC_MESSAGES/django.po,sha256=BVVrjbZZtLGAuZ9HK63p769CbjZFZMlS4BewSMfNMKU,889 -django/contrib/sessions/locale/fr/LC_MESSAGES/django.mo,sha256=aDGYdzx2eInF6IZ-UzPDEJkuYVPnvwVND3qVuSfJNWw,692 -django/contrib/sessions/locale/fr/LC_MESSAGES/django.po,sha256=hARxGdtBOzEZ_iVyzkNvcKlgyM8fOkdXTH3upj2XFYM,893 -django/contrib/sessions/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 -django/contrib/sessions/locale/fy/LC_MESSAGES/django.po,sha256=U-VEY4WbmIkmrnPK4Mv-B-pbdtDzusBCVmE8iHyvzFU,751 -django/contrib/sessions/locale/ga/LC_MESSAGES/django.mo,sha256=zTrydRCRDiUQwF4tQ3cN1-5w36i6KptagsdA5_SaGy0,747 -django/contrib/sessions/locale/ga/LC_MESSAGES/django.po,sha256=Qpk1JaUWiHSEPdgBk-O_KfvGzwlZ4IAA6c6-nsJe400,958 -django/contrib/sessions/locale/gd/LC_MESSAGES/django.mo,sha256=Yi8blY_fUD5YTlnUD6YXZvv1qjm4QDriO6CJIUe1wIk,791 -django/contrib/sessions/locale/gd/LC_MESSAGES/django.po,sha256=fEa40AUqA5vh743Zqv0FO2WxSFXGYk4IzUR4BoaP-C4,890 -django/contrib/sessions/locale/gl/LC_MESSAGES/django.mo,sha256=lC8uu-mKxt48DLzRvaxz-mOqR0ZfvEuaBI1Hi_nuMpo,692 -django/contrib/sessions/locale/gl/LC_MESSAGES/django.po,sha256=L34leIfwmRJoqX0jfefbNHz0CmON5cSaRXeh7pmFqCY,943 -django/contrib/sessions/locale/he/LC_MESSAGES/django.mo,sha256=qhgjSWfGAOgl-i7iwzSrJttx88xcj1pB0iLkEK64mJU,809 -django/contrib/sessions/locale/he/LC_MESSAGES/django.po,sha256=KvQG6wOpokM-2JkhWnB2UUQacy5Ie1402K_pH2zUOu0,1066 -django/contrib/sessions/locale/hi/LC_MESSAGES/django.mo,sha256=naqxOjfAnNKy3qqnUG-4LGf9arLRJpjyWWmSj5tEfao,759 -django/contrib/sessions/locale/hi/LC_MESSAGES/django.po,sha256=WnTGvOz9YINMcUJg2BYCaHceZLKaTfsba_0AZtRNP38,951 -django/contrib/sessions/locale/hr/LC_MESSAGES/django.mo,sha256=axyJAmXmadpFxIhu8rroVD8NsGGadQemh9-_ZDo7L1U,819 -django/contrib/sessions/locale/hr/LC_MESSAGES/django.po,sha256=3G-qOYXBO-eMWWsa5LwTCW9M1oF0hlWgEz7hAK8hJqI,998 -django/contrib/sessions/locale/hsb/LC_MESSAGES/django.mo,sha256=_OXpOlCt4KU0i65Iw4LMjSsyn__E9wH20l9vDNBSEzw,805 -django/contrib/sessions/locale/hsb/LC_MESSAGES/django.po,sha256=yv3vX_UCDrdl07GQ79Mnytwgz2oTvySYOG9enzMpFJA,929 -django/contrib/sessions/locale/hu/LC_MESSAGES/django.mo,sha256=ik40LnsWkKYEUioJB9e11EX9XZ-qWMa-S7haxGhM-iI,727 -django/contrib/sessions/locale/hu/LC_MESSAGES/django.po,sha256=1-UWEEsFxRwmshP2x4pJbitWIGZ1YMeDDxnAX-XGNxc,884 -django/contrib/sessions/locale/hy/LC_MESSAGES/django.mo,sha256=x6VQWGdidRJFUJme-6jf1pcitktcQHQ7fhmw2UBej1Q,815 -django/contrib/sessions/locale/hy/LC_MESSAGES/django.po,sha256=eRMa3_A2Vx195mx2lvza1v-wcEcEeMrU63f0bgPPFjc,893 -django/contrib/sessions/locale/ia/LC_MESSAGES/django.mo,sha256=-o4aQPNJeqSDRSLqcKuYvJuKNBbFqDJDe3IzHgSgZeQ,744 -django/contrib/sessions/locale/ia/LC_MESSAGES/django.po,sha256=PULLDd3QOIU03kgradgQzT6IicoPhLPlUvFgRl-tGbA,869 -django/contrib/sessions/locale/id/LC_MESSAGES/django.mo,sha256=mOaIF0NGOO0-dt-nhHL-i3cfvt9-JKTbyUkFWPqDS9Y,705 -django/contrib/sessions/locale/id/LC_MESSAGES/django.po,sha256=EA6AJno3CaFOO-dEU9VQ_GEI-RAXS0v0uFqn1RJGjEs,914 -django/contrib/sessions/locale/io/LC_MESSAGES/django.mo,sha256=_rqAY6reegqmxmWc-pW8_kDaG9zflZuD-PGOVFsjRHo,683 -django/contrib/sessions/locale/io/LC_MESSAGES/django.po,sha256=tbKMxGuB6mh_m0ex9rO9KkTy6qyuRW2ERrQsGwmPiaw,840 -django/contrib/sessions/locale/is/LC_MESSAGES/django.mo,sha256=3QeMl-MCnBie9Sc_aQ1I7BrBhkbuArpoSJP95UEs4lg,706 -django/contrib/sessions/locale/is/LC_MESSAGES/django.po,sha256=LADIFJv8L5vgDJxiQUmKPSN64zzzrIKImh8wpLBEVWQ,853 -django/contrib/sessions/locale/it/LC_MESSAGES/django.mo,sha256=qTY3O-0FbbpZ5-BR5xOJWP0rlnIkBZf-oSawW_YJWlk,726 -django/contrib/sessions/locale/it/LC_MESSAGES/django.po,sha256=hEv0iTGLuUvEBk-lF-w7a9P3ifC0-eiodNtuSc7cXhg,869 -django/contrib/sessions/locale/ja/LC_MESSAGES/django.mo,sha256=hbv9FzWzXRIGRh_Kf_FLQB34xfmPU_9RQKn9u1kJqGU,757 -django/contrib/sessions/locale/ja/LC_MESSAGES/django.po,sha256=ppGx5ekOWGgDF3vzyrWsqnFUZ-sVZZhiOhvAzl_8v54,920 -django/contrib/sessions/locale/ka/LC_MESSAGES/django.mo,sha256=VZ-ysrDbea_-tMV-1xtlTeW62IAy2RWR94V3Y1iSh4U,803 -django/contrib/sessions/locale/ka/LC_MESSAGES/django.po,sha256=hqiWUiATlrc7qISF7ndlelIrFwc61kzhKje9l-DY6V4,955 -django/contrib/sessions/locale/kab/LC_MESSAGES/django.mo,sha256=W_yE0NDPJrVznA2Qb89VuprJNwyxSg59ovvjkQe6mAs,743 -django/contrib/sessions/locale/kab/LC_MESSAGES/django.po,sha256=FJeEuv4P3NT_PpWHEUsQVSWXu65nYkJ6Z2AlbSKb0ZA,821 -django/contrib/sessions/locale/kk/LC_MESSAGES/django.mo,sha256=FROGz_MuIhsIU5_-EYV38cHnRZrc3-OxxkBeK0ax9Rk,810 -django/contrib/sessions/locale/kk/LC_MESSAGES/django.po,sha256=P-oHO3Oi3V_RjWHjEAHdTrDfTwKP2xh3yJh7BlXL1VQ,1029 -django/contrib/sessions/locale/km/LC_MESSAGES/django.mo,sha256=VOuKsIG2DEeCA5JdheuMIeJlpmAhKrI6lD4KWYqIIPk,929 -django/contrib/sessions/locale/km/LC_MESSAGES/django.po,sha256=09i6Nd_rUK7UqFpJ70LMXTR6xS0NuGETRLe0CopMVBk,1073 -django/contrib/sessions/locale/kn/LC_MESSAGES/django.mo,sha256=TMZ71RqNR6zI20BeozyLa9cjYrWlvfIajGDfpnHd3pQ,810 -django/contrib/sessions/locale/kn/LC_MESSAGES/django.po,sha256=whdM8P74jkAAHvjgJN8Q77dYd9sIsf_135ID8KBu-a8,990 -django/contrib/sessions/locale/ko/LC_MESSAGES/django.mo,sha256=EUyVQYGtiFJg01mP30a0iOqBYHvpzHAcGTZM28Ubs5Q,700 -django/contrib/sessions/locale/ko/LC_MESSAGES/django.po,sha256=PjntvSzRz_Aekj9VFhGsP5yO6rAsxTMzwFj58JqToIU,855 -django/contrib/sessions/locale/ky/LC_MESSAGES/django.mo,sha256=ME7YUgKOYQz9FF_IdrqHImieEONDrkcn4T3HxTZKSV0,742 -django/contrib/sessions/locale/ky/LC_MESSAGES/django.po,sha256=JZHTs9wYmlWzilRMyp-jZWFSzGxWtPiQefPmLL9yhtM,915 -django/contrib/sessions/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 -django/contrib/sessions/locale/lb/LC_MESSAGES/django.po,sha256=3igeAnQjDg6D7ItBkQQhyBoFJOZlBxT7NoZiExwD-Fo,749 -django/contrib/sessions/locale/lt/LC_MESSAGES/django.mo,sha256=L9w8-qxlDlCqR_2P0PZegfhok_I61n0mJ1koJxzufy4,786 -django/contrib/sessions/locale/lt/LC_MESSAGES/django.po,sha256=dEefLGtg5flFr_v4vHS5HhK1kxx9WYWTw98cvEn132M,1023 -django/contrib/sessions/locale/lv/LC_MESSAGES/django.mo,sha256=exEzDUNwNS0GLsUkKPu_SfqBxU7T6VRA_T2schIQZ88,753 -django/contrib/sessions/locale/lv/LC_MESSAGES/django.po,sha256=fBgQEbsGg1ECVm1PFDrS2sfKs2eqmsqrSYzx9ELotNQ,909 -django/contrib/sessions/locale/mk/LC_MESSAGES/django.mo,sha256=4oTWp8-qzUQBiqG32hNieABgT3O17q2C4iEhcFtAxLA,816 -django/contrib/sessions/locale/mk/LC_MESSAGES/django.po,sha256=afApb5YRhPXUWR8yF_TTym73u0ov7lWiwRda1-uNiLY,988 -django/contrib/sessions/locale/ml/LC_MESSAGES/django.mo,sha256=tff5TsHILSV1kAAB3bzHQZDB9fgMglZJTofzCunGBzc,854 -django/contrib/sessions/locale/ml/LC_MESSAGES/django.po,sha256=eRkeupt42kUey_9vJmlH8USshnXPZ8M7aYHq88u-5iY,1016 -django/contrib/sessions/locale/mn/LC_MESSAGES/django.mo,sha256=CcCH2ggVYrD29Q11ZMthcscBno2ePkQDbZfoYquTRPM,784 -django/contrib/sessions/locale/mn/LC_MESSAGES/django.po,sha256=nvcjbJzXiDvWFXrM5CxgOQIq8XucsZEUVdYkY8LnCRE,992 -django/contrib/sessions/locale/mr/LC_MESSAGES/django.mo,sha256=2Z5jaGJzpiJTCnhCk8ulCDeAdj-WwR99scdHFPRoHoA,468 -django/contrib/sessions/locale/mr/LC_MESSAGES/django.po,sha256=FQRdZ-qIDuvTCrwbnWfxoxNi8rywLSebcNbxGvr-hb0,743 -django/contrib/sessions/locale/ms/LC_MESSAGES/django.mo,sha256=rFi4D_ZURYUPjs5AqJ66bW70yL7AekAKWnrZRBvGPiE,649 -django/contrib/sessions/locale/ms/LC_MESSAGES/django.po,sha256=nZuJ_D0JZUzmGensLa7tSgzbBo05qgQcuHmte2oU6WQ,786 -django/contrib/sessions/locale/my/LC_MESSAGES/django.mo,sha256=8zzzyfJYok969YuAwDUaa6YhxaSi3wcXy3HRNXDb_70,872 -django/contrib/sessions/locale/my/LC_MESSAGES/django.po,sha256=mfs0zRBI0tugyyEfXBZzZ_FMIohydq6EYPZGra678pw,997 -django/contrib/sessions/locale/nb/LC_MESSAGES/django.mo,sha256=hfJ1NCFgcAAtUvNEpaZ9b31PyidHxDGicifUWANIbM8,717 -django/contrib/sessions/locale/nb/LC_MESSAGES/django.po,sha256=yXr6oYuiu01oELdQKuztQFWz8x5C2zS5OzEfU9MHJsU,908 -django/contrib/sessions/locale/ne/LC_MESSAGES/django.mo,sha256=slFgMrqGVtLRHdGorLGPpB09SM92_WnbnRR0rlpNlPQ,802 -django/contrib/sessions/locale/ne/LC_MESSAGES/django.po,sha256=1vyoiGnnaB8f9SFz8PGfzpw6V_NoL78DQwjjnB6fS98,978 -django/contrib/sessions/locale/nl/LC_MESSAGES/django.mo,sha256=84BTlTyxa409moKbQMFyJisI65w22p09qjJHBAmQe-g,692 -django/contrib/sessions/locale/nl/LC_MESSAGES/django.po,sha256=smRr-QPGm6h6hdXxghggWES8b2NnL7yDQ07coUypa8g,909 -django/contrib/sessions/locale/nn/LC_MESSAGES/django.mo,sha256=cytH72J3yS1PURcgyrD8R2PV5d3SbPE73IAqOMBPPVg,667 -django/contrib/sessions/locale/nn/LC_MESSAGES/django.po,sha256=y9l60yy_W3qjxWzxgJg5VgEH9KAIHIQb5hv7mgnep9w,851 -django/contrib/sessions/locale/os/LC_MESSAGES/django.mo,sha256=xVux1Ag45Jo9HQBbkrRzcWrNjqP09nMQl16jIh0YVlo,732 -django/contrib/sessions/locale/os/LC_MESSAGES/django.po,sha256=1hG5Vsz2a2yW05_Z9cTNrBKtK9VRPZuQdx4KJ_0n98o,892 -django/contrib/sessions/locale/pa/LC_MESSAGES/django.mo,sha256=qEx4r_ONwXK1-qYD5uxxXEQPqK5I6rf38QZoUSm7UVA,771 -django/contrib/sessions/locale/pa/LC_MESSAGES/django.po,sha256=M7fmVGP8DtZGEuTV3iJhuWWqILVUTDZvUey_mrP4_fM,918 -django/contrib/sessions/locale/pl/LC_MESSAGES/django.mo,sha256=F9CQb7gQ1ltP6B82JNKu8IAsTdHK5TNke0rtDIgNz3c,828 -django/contrib/sessions/locale/pl/LC_MESSAGES/django.po,sha256=C_MJBB-vwTZbx-t4-mzun-RxHhdOVv04b6xrWdnTv8E,1084 -django/contrib/sessions/locale/pt/LC_MESSAGES/django.mo,sha256=dlJF7hF4GjLmQPdAJhtf-FCKX26XsOmZlChOcxxIqPk,738 -django/contrib/sessions/locale/pt/LC_MESSAGES/django.po,sha256=cOycrw3HCHjSYBadpalyrg5LdRTlqZCTyMh93GOQ8O0,896 -django/contrib/sessions/locale/pt_BR/LC_MESSAGES/django.mo,sha256=XHNF5D8oXIia3e3LYwxd46a2JOgDc_ykvc8yuo21fT0,757 -django/contrib/sessions/locale/pt_BR/LC_MESSAGES/django.po,sha256=K_zxKaUKngWPFpvHgXOcymJEsiONSw-OrVrroRXmUUk,924 -django/contrib/sessions/locale/ro/LC_MESSAGES/django.mo,sha256=WR9I9Gum_pq7Qg2Gzhf-zAv43OwR_uDtsbhtx4Ta5gE,776 -django/contrib/sessions/locale/ro/LC_MESSAGES/django.po,sha256=fEgVxL_0Llnjspu9EsXBf8AVL0DGdfF7NgV88G7WN1E,987 -django/contrib/sessions/locale/ru/LC_MESSAGES/django.mo,sha256=n-8vXR5spEbdfyeWOYWC_6kBbAppNoRrWYgqKFY6gJA,913 -django/contrib/sessions/locale/ru/LC_MESSAGES/django.po,sha256=sNqNGdoof6eXzFlh4YIp1O54MdDOAFDjD3GvAFsNP8k,1101 -django/contrib/sessions/locale/sk/LC_MESSAGES/django.mo,sha256=Yntm624Wt410RwuNPU1c-WwQoyrRrBs69VlKMlNUHeQ,766 -django/contrib/sessions/locale/sk/LC_MESSAGES/django.po,sha256=wt7BJk6RpFogJ2Wwa9Mh0mJi9YMpNYKTUSDuDuv1Ong,975 -django/contrib/sessions/locale/sl/LC_MESSAGES/django.mo,sha256=EE6mB8BiYRyAxK6qzurRWcaYVs96FO_4rERYQdtIt3k,770 -django/contrib/sessions/locale/sl/LC_MESSAGES/django.po,sha256=KTjBWyvaNCHbpV9K6vbnavwxxXqf2DlIqVPv7MVFcO8,928 -django/contrib/sessions/locale/sq/LC_MESSAGES/django.mo,sha256=eRaTy3WOC76EYLtMSD4xtJj2h8eE4W-TS4VvCVxI5bw,683 -django/contrib/sessions/locale/sq/LC_MESSAGES/django.po,sha256=9pzp7834LQKafe5fJzC4OKsAd6XfgtEQl6K6hVLaBQM,844 -django/contrib/sessions/locale/sr/LC_MESSAGES/django.mo,sha256=ZDBOYmWIoSyDeT0nYIIFeMtW5jwpr257CbdTZlkVeRQ,855 -django/contrib/sessions/locale/sr/LC_MESSAGES/django.po,sha256=OXQOYeac0ghuzLrwaErJGr1FczuORTu2yroFX5hvRnk,1027 -django/contrib/sessions/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=f3x9f9hTOsJltghjzJMdd8ueDwzxJex6zTXsU-_Hf_Y,757 -django/contrib/sessions/locale/sr_Latn/LC_MESSAGES/django.po,sha256=HKjo7hjSAvgrIvlI0SkgF3zxz8TtKWyBT51UGNhDwek,946 -django/contrib/sessions/locale/sv/LC_MESSAGES/django.mo,sha256=SGbr0K_5iAMA22MfseAldMDgLSEBrI56pCtyV8tMAPc,707 -django/contrib/sessions/locale/sv/LC_MESSAGES/django.po,sha256=vraY3915wBYGeYu9Ro0-TlBeLWqGZP1fbckLv8y47Ys,853 -django/contrib/sessions/locale/sw/LC_MESSAGES/django.mo,sha256=Edhqp8yuBnrGtJqPO7jxobeXN4uU5wKSLrOsFO1F23k,743 -django/contrib/sessions/locale/sw/LC_MESSAGES/django.po,sha256=iY4rN4T-AA2FBQA7DiWWFvrclqKiDYQefqwwVw61-f8,858 -django/contrib/sessions/locale/ta/LC_MESSAGES/django.mo,sha256=qLIThhFQbJKc1_UVr7wVIm1rJfK2rO5m84BCB_oKq7s,801 -django/contrib/sessions/locale/ta/LC_MESSAGES/django.po,sha256=bYqtYf9XgP9IKKFJXh0u64JhRhDvPPUliI1J-NeRpKE,945 -django/contrib/sessions/locale/te/LC_MESSAGES/django.mo,sha256=kteZeivEckt4AmAeKgmgouMQo1qqSQrI8M42B16gMnQ,786 -django/contrib/sessions/locale/te/LC_MESSAGES/django.po,sha256=dQgiNS52RHrL6bV9CEO7Jk9lk3YUQrUBDCg_bP2OSZc,980 -django/contrib/sessions/locale/tg/LC_MESSAGES/django.mo,sha256=N6AiKfV47QTlO5Z_r4SQZXVLtouu-NVSwWkePgD17Tc,747 -django/contrib/sessions/locale/tg/LC_MESSAGES/django.po,sha256=wvvDNu060yqlTxy3swM0x3v6QpvCB9DkfNm0Q-kb9Xk,910 -django/contrib/sessions/locale/th/LC_MESSAGES/django.mo,sha256=D41vbkoYMdYPj3587p-c5yytLVi9pE5xvRZEYhZrxPs,814 -django/contrib/sessions/locale/th/LC_MESSAGES/django.po,sha256=43704TUv4ysKhL8T5MowZwlyv1JZrPyVGrpdIyb3r40,988 -django/contrib/sessions/locale/tk/LC_MESSAGES/django.mo,sha256=pT_hpKCwFT60GUXzD_4z8JOhmh1HRnkZj-QSouVEgUA,699 -django/contrib/sessions/locale/tk/LC_MESSAGES/django.po,sha256=trqXxfyIbh4V4szol0pXETmEWRxAAKywPZ9EzVMVE-I,865 -django/contrib/sessions/locale/tr/LC_MESSAGES/django.mo,sha256=STDnYOeO1d9nSCVf7pSkMq8R7z1aeqq-xAuIYjsofuE,685 -django/contrib/sessions/locale/tr/LC_MESSAGES/django.po,sha256=XYKo0_P5xitYehvjMzEw2MTp_Nza-cIXEECV3dA6BmY,863 -django/contrib/sessions/locale/tt/LC_MESSAGES/django.mo,sha256=Q-FGu_ljTsxXO_EWu7zCzGwoqFXkeoTzWSlvx85VLGc,806 -django/contrib/sessions/locale/tt/LC_MESSAGES/django.po,sha256=UC85dFs_1836noZTuZEzPqAjQMFfSvj7oGmEWOGcfCA,962 -django/contrib/sessions/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 -django/contrib/sessions/locale/udm/LC_MESSAGES/django.po,sha256=CPml2Fn9Ax_qO5brCFDLPBoTiNdvsvJb1btQ0COwUfY,737 -django/contrib/sessions/locale/uk/LC_MESSAGES/django.mo,sha256=jzNrLuFghQMCHNRQ0ihnKMCicgear0yWiTOLnvdPszw,841 -django/contrib/sessions/locale/uk/LC_MESSAGES/django.po,sha256=4K2geuGjRpJCtNfGPMhYWZlGxUy5xzIoDKA2jL2iGos,1171 -django/contrib/sessions/locale/ur/LC_MESSAGES/django.mo,sha256=FkGIiHegr8HR8zjVyJ9TTW1T9WYtAL5Mg77nRKnKqWk,729 -django/contrib/sessions/locale/ur/LC_MESSAGES/django.po,sha256=qR4QEBTP6CH09XFCzsPSPg2Dv0LqzbRV_I67HO2OUwk,879 -django/contrib/sessions/locale/uz/LC_MESSAGES/django.mo,sha256=asPu0RhMB_Ui1li-OTVL4qIXnM9XpjsYyx5yJldDYBY,744 -django/contrib/sessions/locale/uz/LC_MESSAGES/django.po,sha256=KsHuLgGJt-KDH0h6ND7JLP2dDJAdLVHSlau4DkkfqA8,880 -django/contrib/sessions/locale/vi/LC_MESSAGES/django.mo,sha256=KriTpT-Hgr10DMnY5Bmbd4isxmSFLmav8vg2tuL2Bb8,679 -django/contrib/sessions/locale/vi/LC_MESSAGES/django.po,sha256=M7S46Q0Q961ykz_5FCAN8SXQ54w8tp4rZeZpy6bPtXs,909 -django/contrib/sessions/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=zsbhIMocgB8Yn1XEBxbIIbBh8tLifvvYNlhe5U61ch8,722 -django/contrib/sessions/locale/zh_Hans/LC_MESSAGES/django.po,sha256=tPshgXjEv6pME4N082ztamJhd5whHB2_IV_egdP-LlQ,889 -django/contrib/sessions/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=WZzfpFKZ41Pu8Q9SuhGu3hXwp4eiq8Dt8vdiQfxvF9M,733 -django/contrib/sessions/locale/zh_Hant/LC_MESSAGES/django.po,sha256=6IRDQu6-PAYh6SyEIcKdhuR172lX0buY8qqsU0QXlYU,898 -django/contrib/sessions/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sessions/management/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sessions/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sessions/management/commands/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-312.pyc,, -django/contrib/sessions/management/commands/clearsessions.py,sha256=pAiO5o7zgButVlYAV93bPnmiwzWP7V5N7-xPtxSkjJg,661 -django/contrib/sessions/middleware.py,sha256=ziZex9xiqxBYl9SC91i4QIDYuoenz4OoKaNO7sXu8kQ,3483 -django/contrib/sessions/migrations/0001_initial.py,sha256=KqQ44jk-5RNcTdqUv95l_UnoMA8cP5O-0lrjoJ8vabk,1148 -django/contrib/sessions/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sessions/migrations/__pycache__/0001_initial.cpython-312.pyc,, -django/contrib/sessions/migrations/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sessions/models.py,sha256=BguwuQSDzpeTNXhteYRAcspg1rop431tjFeZUVWZNYc,1250 -django/contrib/sessions/serializers.py,sha256=x8cVZhsG5RBJZaK4wKsuAcEYKv6rop9V9Y7mDySyOwM,256 -django/contrib/sitemaps/__init__.py,sha256=ng5muiTD0AJ42jQK-7Fqg2dtgGM3ZBgAa8hAJWdjWfY,9317 -django/contrib/sitemaps/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sitemaps/__pycache__/apps.cpython-312.pyc,, -django/contrib/sitemaps/__pycache__/views.cpython-312.pyc,, -django/contrib/sitemaps/apps.py,sha256=xYE-mAs37nL8ZAnv052LhUKVUwGYKB3xyPy4t8pwOpw,249 -django/contrib/sitemaps/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sitemaps/management/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sitemaps/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sitemaps/management/commands/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sitemaps/management/commands/__pycache__/ping_google.cpython-312.pyc,, -django/contrib/sitemaps/management/commands/ping_google.py,sha256=cU6bAGhDARD7ZM2R9cUZufEPiB9ZrM7Nc3EbghQJI5Y,558 -django/contrib/sitemaps/templates/sitemap.xml,sha256=L092SHTtwtmNJ_Lj_jLrzHhfI0-OKKIw5fpyOfr4qRs,683 -django/contrib/sitemaps/templates/sitemap_index.xml,sha256=SQf9avfFmnT8j-nLEc8lVQQcdhiy_qhnqjssIMti3oU,360 -django/contrib/sitemaps/views.py,sha256=KO6YLAh1aklaw60PyEif9t5G9BNF6V2O5T2r2EmUPls,5032 -django/contrib/sites/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sites/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sites/__pycache__/admin.cpython-312.pyc,, -django/contrib/sites/__pycache__/apps.cpython-312.pyc,, -django/contrib/sites/__pycache__/checks.cpython-312.pyc,, -django/contrib/sites/__pycache__/management.cpython-312.pyc,, -django/contrib/sites/__pycache__/managers.cpython-312.pyc,, -django/contrib/sites/__pycache__/middleware.cpython-312.pyc,, -django/contrib/sites/__pycache__/models.cpython-312.pyc,, -django/contrib/sites/__pycache__/requests.cpython-312.pyc,, -django/contrib/sites/__pycache__/shortcuts.cpython-312.pyc,, -django/contrib/sites/admin.py,sha256=IWvGDQUTDPEUsd-uuxfHxJq4syGtddNKUdkP0nmVUMA,214 -django/contrib/sites/apps.py,sha256=uBLHUyQoSuo1Q7NwLTwlvsTuRU1MXwj4t6lRUnIBdwk,562 -django/contrib/sites/checks.py,sha256=SsFycVVw6JcbMNF1tNgCen9dix-UGrMTWz8Gbb80adQ,340 -django/contrib/sites/locale/af/LC_MESSAGES/django.mo,sha256=A10bZFMs-wUetVfF5UrFwmuiKnN4ZnlrR4Rx8U4Ut1A,786 -django/contrib/sites/locale/af/LC_MESSAGES/django.po,sha256=O0-ZRvmXvV_34kONuqakuXV5OmYbQ569K1Puj3qQNac,907 -django/contrib/sites/locale/ar/LC_MESSAGES/django.mo,sha256=kLoytp2jvhWn6p1c8kNVua2sYAMnrpS4xnbluHD22Vs,947 -django/contrib/sites/locale/ar/LC_MESSAGES/django.po,sha256=HYA3pA29GktzXBP-soUEn9VP2vkZuhVIXVA8TNPCHCs,1135 -django/contrib/sites/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=-ltwY57Th6LNqU3bgOPPP7qWtII5c6rj8Dv8eY7PZ84,918 -django/contrib/sites/locale/ar_DZ/LC_MESSAGES/django.po,sha256=KRTjZ2dFRWVPmE_hC5Hq8eDv3GQs3yQKCgV5ISFmEKk,1079 -django/contrib/sites/locale/ast/LC_MESSAGES/django.mo,sha256=eEvaeiGnZFBPGzKLlRz4M9AHemgJVAb-yNpbpxRqtd0,774 -django/contrib/sites/locale/ast/LC_MESSAGES/django.po,sha256=huBohKzLpdaJRFMFXXSDhDCUOqVqyWXfxb8_lLOkUd0,915 -django/contrib/sites/locale/az/LC_MESSAGES/django.mo,sha256=CjAGI4qGoXN95q4LpCLXLKvaNB33Ocf5SfXdurFBkas,773 -django/contrib/sites/locale/az/LC_MESSAGES/django.po,sha256=E84kNPFhgHmIfYT0uzCnTPGwPkAqKzqwFvJB7pETbVo,933 -django/contrib/sites/locale/be/LC_MESSAGES/django.mo,sha256=HGh78mI50ZldBtQ8jId26SI-lSHv4ZLcveRN2J8VzH8,983 -django/contrib/sites/locale/be/LC_MESSAGES/django.po,sha256=W5FhVJKcmd3WHl2Lpd5NJUsc7_sE_1Pipk3CVPoGPa4,1152 -django/contrib/sites/locale/bg/LC_MESSAGES/django.mo,sha256=a2R52umIQIhnzFaFYSRhQ6nBlywE8RGMj2FUOFmyb0A,904 -django/contrib/sites/locale/bg/LC_MESSAGES/django.po,sha256=awB8RMS-qByhNB6eH2f0Oyxb3SH8waLhrZ--rokGfaI,1118 -django/contrib/sites/locale/bn/LC_MESSAGES/django.mo,sha256=cI3a9_L-OC7gtdyRNaGX7A5w0Za0M4ERnYB7rSNkuRU,925 -django/contrib/sites/locale/bn/LC_MESSAGES/django.po,sha256=8ZxYF16bgtTZSZRZFok6IJxUV02vIztoVx2qXqwO8NM,1090 -django/contrib/sites/locale/br/LC_MESSAGES/django.mo,sha256=rI_dIznbwnadZbxOPtQxZ1pGYePNwcNNXt05iiPkchU,1107 -django/contrib/sites/locale/br/LC_MESSAGES/django.po,sha256=7Ein5Xw73DNGGtdd595Bx6ixfSD-dBXZNBUU44pSLuQ,1281 -django/contrib/sites/locale/bs/LC_MESSAGES/django.mo,sha256=bDeqQNme586LnQRQdvOWaLGZssjOoECef3vMq_OCXno,692 -django/contrib/sites/locale/bs/LC_MESSAGES/django.po,sha256=xRTWInDNiLxikjwsjgW_pYjhy24zOro90-909ns9fig,923 -django/contrib/sites/locale/ca/LC_MESSAGES/django.mo,sha256=lEUuQEpgDY3bVWzRONrPzYlojRoNduT16_oYDkkbdfk,791 -django/contrib/sites/locale/ca/LC_MESSAGES/django.po,sha256=aORAoVn69iG1ynmEfnkBzBO-UZOzzbkPVOU-ZvfMtZg,996 -django/contrib/sites/locale/ckb/LC_MESSAGES/django.mo,sha256=Chp4sX73l_RFw4aaf9x67vEO1_cM8eh5c0URKBgMU-Q,843 -django/contrib/sites/locale/ckb/LC_MESSAGES/django.po,sha256=2NPav4574kEwTS_nZTUoVbYxJFzsaC5MdQUCD9iqC6E,1007 -django/contrib/sites/locale/cs/LC_MESSAGES/django.mo,sha256=mnXnpU7sLDTJ3OrIUTnGarPYsupNIUPV4ex_BPWU8fk,827 -django/contrib/sites/locale/cs/LC_MESSAGES/django.po,sha256=ONzFlwzmt7p5jdp6111qQkkevckRrd7GNS0lkDPKu-4,1035 -django/contrib/sites/locale/cy/LC_MESSAGES/django.mo,sha256=70pOie0K__hkmM9oBUaQfVwHjK8Cl48E26kRQL2mtew,835 -django/contrib/sites/locale/cy/LC_MESSAGES/django.po,sha256=FAZrVc72x-4R1A-1qYOBwADoXngC_F6FO8nRjr5-Z6g,1013 -django/contrib/sites/locale/da/LC_MESSAGES/django.mo,sha256=FTOyV1DIH9sMldyjgPw98d2HCotoO4zJ_KY_C9DCB7Y,753 -django/contrib/sites/locale/da/LC_MESSAGES/django.po,sha256=Po1Z6u52CFCyz9hLfK009pMbZzZgHrBse0ViX8wCYm8,957 -django/contrib/sites/locale/de/LC_MESSAGES/django.mo,sha256=5Q6X0_bDQ1ZRpkTy7UpPNzrhmQsB9Q0P1agB7koRyzs,792 -django/contrib/sites/locale/de/LC_MESSAGES/django.po,sha256=aD0wBinqtDUPvBbwtHrLEhFdoVRx1nOh17cJFuWhN3U,980 -django/contrib/sites/locale/dsb/LC_MESSAGES/django.mo,sha256=pPpWYsYp81MTrqCsGF0QnGktZNIll70bdBwSkuVE8go,868 -django/contrib/sites/locale/dsb/LC_MESSAGES/django.po,sha256=IA3G8AKJls20gzfxnrfPzivMNpL8A0zBQBg7OyzrP6g,992 -django/contrib/sites/locale/el/LC_MESSAGES/django.mo,sha256=G9o1zLGysUePGzZRicQ2aIIrc2UXMLTQmdpbrUMfWBU,878 -django/contrib/sites/locale/el/LC_MESSAGES/django.po,sha256=RBi_D-_znYuV6LXfTlSOf1Mvuyl96fIyEoiZ-lgeyWs,1133 -django/contrib/sites/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356 -django/contrib/sites/locale/en/LC_MESSAGES/django.po,sha256=tSjfrNZ_FqLHsXjm5NuTyo5-JpdlPLsPZjFqF2APhy8,817 -django/contrib/sites/locale/en_AU/LC_MESSAGES/django.mo,sha256=G--2j_CR99JjRgVIX2Y_5pDfO7IgIkvK4kYHZtGzpxU,753 -django/contrib/sites/locale/en_AU/LC_MESSAGES/django.po,sha256=Giw634r94MJT1Q3qgqM7gZakQCasRM9Dm7MDkb9JOc8,913 -django/contrib/sites/locale/en_GB/LC_MESSAGES/django.mo,sha256=FbSh7msJdrHsXr0EtDMuODFzSANG_HJ3iBlW8ePpqFs,639 -django/contrib/sites/locale/en_GB/LC_MESSAGES/django.po,sha256=Ib-DIuTWlrN3kg99kLCuqWJVtt1NWaFD4UbDFK6d4KY,862 -django/contrib/sites/locale/eo/LC_MESSAGES/django.mo,sha256=N4KkH12OHxic3pp1okeBhpfDx8XxxpULk3UC219vjWU,792 -django/contrib/sites/locale/eo/LC_MESSAGES/django.po,sha256=ymXSJaFJWGBO903ObqR-ows-p4T3KyUplc_p_3r1uk8,1043 -django/contrib/sites/locale/es/LC_MESSAGES/django.mo,sha256=qLN1uoCdslxdYWgdjgSBi7szllP-mQZtHbuZnNOthsQ,804 -django/contrib/sites/locale/es/LC_MESSAGES/django.po,sha256=QClia2zY39269VSQzkQsLwwukthN6u2JBsjbLNxA1VQ,1066 -django/contrib/sites/locale/es_AR/LC_MESSAGES/django.mo,sha256=_O4rVk7IM2BBlZvjDP2SvTOo8WWqthQi5exQzt027-s,776 -django/contrib/sites/locale/es_AR/LC_MESSAGES/django.po,sha256=RwyNylXbyxdSXn6qRDXd99-GaEPlmr6TicHTUW0boaQ,969 -django/contrib/sites/locale/es_CO/LC_MESSAGES/django.mo,sha256=a4Xje2M26wyIx6Wlg6puHo_OXjiDEy7b0FquT9gbThA,825 -django/contrib/sites/locale/es_CO/LC_MESSAGES/django.po,sha256=9bnRhVD099JzkheO80l65dufjuawsj9aSFgFu5A-lnM,949 -django/contrib/sites/locale/es_MX/LC_MESSAGES/django.mo,sha256=AtGta5jBL9XNBvfSpsCcnDtDhvcb89ALl4hNjSPxibM,809 -django/contrib/sites/locale/es_MX/LC_MESSAGES/django.po,sha256=TnkpQp-7swH-x9cytUJe-QJRd2n_pYMVo0ltDw9Pu8o,991 -django/contrib/sites/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486 -django/contrib/sites/locale/es_VE/LC_MESSAGES/django.po,sha256=8PWXy2L1l67wDIi98Q45j7OpVITr0Lt4zwitAnB-d_o,791 -django/contrib/sites/locale/et/LC_MESSAGES/django.mo,sha256=I2E-49UQsG-F26OeAfnKlfUdA3YCkUSV8ffA-GMSkE0,788 -django/contrib/sites/locale/et/LC_MESSAGES/django.po,sha256=mEfD6EyQ15PPivb5FTlkabt3Lo_XGtomI9XzHrrh34Y,992 -django/contrib/sites/locale/eu/LC_MESSAGES/django.mo,sha256=1HTAFI3DvTAflLJsN7NVtSd4XOTlfoeLGFyYCOX69Ec,807 -django/contrib/sites/locale/eu/LC_MESSAGES/django.po,sha256=NWxdE5-mF6Ak4nPRpCFEgAMIsVDe9YBEZl81v9kEuX8,1023 -django/contrib/sites/locale/fa/LC_MESSAGES/django.mo,sha256=odtsOpZ6noNqwDb18HDc2e6nz3NMsa-wrTN-9dk7d9w,872 -django/contrib/sites/locale/fa/LC_MESSAGES/django.po,sha256=-DirRvcTqcpIy90QAUiCSoNkCDRifqpWSzLriJ4cwQU,1094 -django/contrib/sites/locale/fi/LC_MESSAGES/django.mo,sha256=I5DUeLk1ChUC32q5uzriABCLLJpJKNbEK4BfqylPQzg,786 -django/contrib/sites/locale/fi/LC_MESSAGES/django.po,sha256=LH2sFIKM3YHPoz9zIu10z1DFv1svXphBdOhXNy4a17s,929 -django/contrib/sites/locale/fr/LC_MESSAGES/django.mo,sha256=W7Ne5HqgnRcl42njzbUaDSY059jdhwvr0tgZzecVWD8,756 -django/contrib/sites/locale/fr/LC_MESSAGES/django.po,sha256=u24rHDJ47AoBgcmBwI1tIescAgbjFxov6y906H_uhK0,999 -django/contrib/sites/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476 -django/contrib/sites/locale/fy/LC_MESSAGES/django.po,sha256=Yh6Lw0QI2Me0zCtlyXraFLjERKqklB6-IJLDTjH_jTs,781 -django/contrib/sites/locale/ga/LC_MESSAGES/django.mo,sha256=g5popLirHXWn6ZWJHESQaG5MmKWZL_JNI_5Vgn5FTqU,683 -django/contrib/sites/locale/ga/LC_MESSAGES/django.po,sha256=34hj3ELt7GQ7CaHL246uBDmvsVUaaN5kTrzt8j7eETM,962 -django/contrib/sites/locale/gd/LC_MESSAGES/django.mo,sha256=df4XIGGD6FIyMUXsb-SoSqNfBFAsRXf4qYtolh_C964,858 -django/contrib/sites/locale/gd/LC_MESSAGES/django.po,sha256=NPKp7A5-y-MR7r8r4WqtcVQJEHCIOP5mLTd0cIfUsug,957 -django/contrib/sites/locale/gl/LC_MESSAGES/django.mo,sha256=tiRYDFC1_V2n1jkEQqhjjQBdZzFkhxzNfHIzG2l3PX4,728 -django/contrib/sites/locale/gl/LC_MESSAGES/django.po,sha256=DNY_rv6w6VrAu3hMUwx3cgLLyH4PFfgaJ9dSKfLBrpI,979 -django/contrib/sites/locale/he/LC_MESSAGES/django.mo,sha256=L3bganfG4gHqp2WXGh4rfWmmbaIxHaGc7-ypAqjSL_E,820 -django/contrib/sites/locale/he/LC_MESSAGES/django.po,sha256=iO3OZwz2aiuAzugkKp5Hxonwdg3kKjBurxR685J2ZMk,1082 -django/contrib/sites/locale/hi/LC_MESSAGES/django.mo,sha256=J4oIS1vJnCvdCCUD4tlTUVyTe4Xn0gKcWedfhH4C0t0,665 -django/contrib/sites/locale/hi/LC_MESSAGES/django.po,sha256=INBrm37jL3okBHuzX8MSN1vMptj77a-4kwQkAyt8w_8,890 -django/contrib/sites/locale/hr/LC_MESSAGES/django.mo,sha256=KjDUhEaOuYSMexcURu2UgfkatN2rrUcAbCUbcpVSInk,876 -django/contrib/sites/locale/hr/LC_MESSAGES/django.po,sha256=-nFMFkVuDoKYDFV_zdNULOqQlnqtiCG57aakN5hqlmg,1055 -django/contrib/sites/locale/hsb/LC_MESSAGES/django.mo,sha256=RyHVb7u9aRn5BXmWzR1gApbZlOioPDJ59ufR1Oo3e8Y,863 -django/contrib/sites/locale/hsb/LC_MESSAGES/django.po,sha256=Aq54y5Gb14bIt28oDDrFltnSOk31Z2YalwaJMDMXfWc,987 -django/contrib/sites/locale/hu/LC_MESSAGES/django.mo,sha256=P--LN84U2BeZAvRVR-OiWl4R02cTTBi2o8XR2yHIwIU,796 -django/contrib/sites/locale/hu/LC_MESSAGES/django.po,sha256=b0VhyFdNaZZR5MH1vFsLL69FmICN8Dz-sTRk0PdK49E,953 -django/contrib/sites/locale/hy/LC_MESSAGES/django.mo,sha256=Hs9XwRHRkHicLWt_NvWvr7nMocmY-Kc8XphhVSAMQRc,906 -django/contrib/sites/locale/hy/LC_MESSAGES/django.po,sha256=MU4hXXGfjXKfYcjxDYzFfsEUIelz5ZzyQLkeSrUQKa0,1049 -django/contrib/sites/locale/ia/LC_MESSAGES/django.mo,sha256=gRMs-W5EiY26gqzwnDXEMbeb1vs0bYZ2DC2a9VCciew,809 -django/contrib/sites/locale/ia/LC_MESSAGES/django.po,sha256=HXZzn9ACIqfR2YoyvpK2FjZ7QuEq_RVZ1kSC4nxMgeg,934 -django/contrib/sites/locale/id/LC_MESSAGES/django.mo,sha256=__2E_2TmVUcbf1ygxtS1lHvkhv8L0mdTAtJpBsdH24Y,791 -django/contrib/sites/locale/id/LC_MESSAGES/django.po,sha256=e5teAHiMjLR8RDlg8q99qtW-K81ltcIiBIdb1MZw2sE,1000 -django/contrib/sites/locale/io/LC_MESSAGES/django.mo,sha256=W-NP0b-zR1oWUZnHZ6fPu5AC2Q6o7nUNoxssgeguUBo,760 -django/contrib/sites/locale/io/LC_MESSAGES/django.po,sha256=G4GUUz3rxoBjWTs-j5RFCvv52AEHiwrCBwom5hYeBSE,914 -django/contrib/sites/locale/is/LC_MESSAGES/django.mo,sha256=lkJgTzDjh5PNfIJpOS2DxKmwVUs9Sl5XwFHv4YdCB30,812 -django/contrib/sites/locale/is/LC_MESSAGES/django.po,sha256=1DVgAcHSZVyDd5xn483oqICIG4ooyZY8ko7A3aDogKM,976 -django/contrib/sites/locale/it/LC_MESSAGES/django.mo,sha256=6NQjjtDMudnAgnDCkemOXinzX0J-eAE5gSq1F8kjusY,795 -django/contrib/sites/locale/it/LC_MESSAGES/django.po,sha256=zxavlLMmp1t1rCDsgrw12kVgxiK5EyR_mOalSu8-ws8,984 -django/contrib/sites/locale/ja/LC_MESSAGES/django.mo,sha256=RNuCS6wv8uK5TmXkSH_7SjsbUFkf24spZfTsvfoTKro,814 -django/contrib/sites/locale/ja/LC_MESSAGES/django.po,sha256=e-cj92VOVc5ycIY6NwyFh5bO7Q9q5vp5CG4dOzd_eWQ,982 -django/contrib/sites/locale/ka/LC_MESSAGES/django.mo,sha256=m8GTqr9j0ijn0YJhvnsYwlk5oYcASKbHg_5hLqZ91TI,993 -django/contrib/sites/locale/ka/LC_MESSAGES/django.po,sha256=1upohcHrQH9T34b6lW09MTtFkk5WswdYOLs2vMAJIuE,1160 -django/contrib/sites/locale/kab/LC_MESSAGES/django.mo,sha256=Utdj5gH5YPeaYMjeMzF-vjqYvYTCipre2qCBkEJSc-Y,808 -django/contrib/sites/locale/kab/LC_MESSAGES/django.po,sha256=d78Z-YanYZkyP5tpasj8oAa5RimVEmce6dlq5vDSscA,886 -django/contrib/sites/locale/kk/LC_MESSAGES/django.mo,sha256=T2dTZ83vBRfQb2dRaKOrhvO00BHQu_2bu0O0k7RsvGA,895 -django/contrib/sites/locale/kk/LC_MESSAGES/django.po,sha256=HvdSFqsumyNurDJ6NKVLjtDdSIg0KZN2v29dM748GtU,1062 -django/contrib/sites/locale/km/LC_MESSAGES/django.mo,sha256=Q7pn5E4qN957j20-iCHgrfI-p8sm3Tc8O2DWeuH0By8,701 -django/contrib/sites/locale/km/LC_MESSAGES/django.po,sha256=TOs76vlCMYOZrdHgXPWZhQH1kTBQTpzsDJ8N4kbJQ7E,926 -django/contrib/sites/locale/kn/LC_MESSAGES/django.mo,sha256=_jl_4_39oe940UMyb15NljGOd45kkCeVNpJy6JvGWTE,673 -django/contrib/sites/locale/kn/LC_MESSAGES/django.po,sha256=cMPXF2DeiQuErhyFMe4i7swxMoqoz1sqtBEXf4Ghx1c,921 -django/contrib/sites/locale/ko/LC_MESSAGES/django.mo,sha256=wlfoWG-vmMSCipUJVVC0Y_W7QbGNNE-oEnVwl_6-AmY,807 -django/contrib/sites/locale/ko/LC_MESSAGES/django.po,sha256=TENAk9obGUxFwMnJQj_V9sZxEKJj4DyWMuGpx3Ft_pM,1049 -django/contrib/sites/locale/ky/LC_MESSAGES/django.mo,sha256=IYxp8jG5iyN81h7YJqOiSQdOH7DnwOiIvelKZfzP6ZA,811 -django/contrib/sites/locale/ky/LC_MESSAGES/django.po,sha256=rxPdgQoBtGQSi5diOy3MXyoM4ffpwdWCc4WE3pjIHEI,927 -django/contrib/sites/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474 -django/contrib/sites/locale/lb/LC_MESSAGES/django.po,sha256=1yRdK9Zyh7kcWG7wUexuF9-zxEaKLS2gG3ggVOHbRJ8,779 -django/contrib/sites/locale/lt/LC_MESSAGES/django.mo,sha256=bK6PJtd7DaOgDukkzuqos5ktgdjSF_ffL9IJTQY839s,869 -django/contrib/sites/locale/lt/LC_MESSAGES/django.po,sha256=T-vdVqs9KCz9vMs9FfushgZN9z7LQOT-C86D85H2X8c,1195 -django/contrib/sites/locale/lv/LC_MESSAGES/django.mo,sha256=t9bQiVqpAmXrq8QijN4Lh0n6EGUGQjnuH7hDcu21z4c,823 -django/contrib/sites/locale/lv/LC_MESSAGES/django.po,sha256=vMaEtXGosD3AcTomiuctbOpjLes8TRBnumLe8DC4yq4,1023 -django/contrib/sites/locale/mk/LC_MESSAGES/django.mo,sha256=_YXasRJRWjYmmiEWCrAoqnrKuHHPBG_v_EYTUe16Nfo,885 -django/contrib/sites/locale/mk/LC_MESSAGES/django.po,sha256=AgdIjiSpN0P5o5rr5Ie4sFhnmS5d4doB1ffk91lmOvY,1062 -django/contrib/sites/locale/ml/LC_MESSAGES/django.mo,sha256=axNQVBY0nbR7hYa5bzNtdxB17AUOs2WXhu0Rg--FA3Q,1007 -django/contrib/sites/locale/ml/LC_MESSAGES/django.po,sha256=Sg7hHfK8OMs05ebtTv8gxS6_2kZv-OODwf7okP95Jtk,1169 -django/contrib/sites/locale/mn/LC_MESSAGES/django.mo,sha256=w2sqJRAe0wyz_IuCZ_Ocubs_VHL6wV1BcutWPz0dseQ,867 -django/contrib/sites/locale/mn/LC_MESSAGES/django.po,sha256=Zh_Eao0kLZsrQ8wkL1f-pRrsAtNJOspu45uStq5t8Mo,1127 -django/contrib/sites/locale/mr/LC_MESSAGES/django.mo,sha256=2Z5jaGJzpiJTCnhCk8ulCDeAdj-WwR99scdHFPRoHoA,468 -django/contrib/sites/locale/mr/LC_MESSAGES/django.po,sha256=pqnjF5oxvpMyjijy6JfI8qJbbbowZzE5tZF0DMYiCBs,773 -django/contrib/sites/locale/ms/LC_MESSAGES/django.mo,sha256=GToJlS8yDNEy-D3-p7p8ZlWEZYHlSzZAcVIH5nQEkkI,727 -django/contrib/sites/locale/ms/LC_MESSAGES/django.po,sha256=_4l4DCIqSWZtZZNyfzpBA0V-CbAaHe9Ckz06VLbTjFo,864 -django/contrib/sites/locale/my/LC_MESSAGES/django.mo,sha256=jN59e9wRheZYx1A4t_BKc7Hx11J5LJg2wQRd21aQv08,961 -django/contrib/sites/locale/my/LC_MESSAGES/django.po,sha256=EhqYIW5-rX33YjsDsBwfiFb3BK6fZKVc3CRYeJpZX1E,1086 -django/contrib/sites/locale/nb/LC_MESSAGES/django.mo,sha256=AaiHGcmcciy5IMBPVAShcc1OQOETJvBCv7GYHMcIQMA,793 -django/contrib/sites/locale/nb/LC_MESSAGES/django.po,sha256=936zoN1sPSiiq7GuH01umrw8W6BtymYEU3bCfOQyfWE,1000 -django/contrib/sites/locale/ne/LC_MESSAGES/django.mo,sha256=n96YovpBax3T5VZSmIfGmd7Zakn9FJShJs5rvUX7Kf0,863 -django/contrib/sites/locale/ne/LC_MESSAGES/django.po,sha256=B14rhDd8GAaIjxd1sYjxO2pZfS8gAwZ1C-kCdVkRXho,1078 -django/contrib/sites/locale/nl/LC_MESSAGES/django.mo,sha256=ghu-tNPNZuE4sVRDWDVmmmVNPYZLWYm_UPJRqh8wmec,735 -django/contrib/sites/locale/nl/LC_MESSAGES/django.po,sha256=1DCQNzMRhy4vW-KkmlPGy58UR27Np5ilmYhmjaq-8_k,1030 -django/contrib/sites/locale/nn/LC_MESSAGES/django.mo,sha256=eSW8kwbzm2HsE9s9IRCsAo9juimVQjcfdd8rtl3TQJM,731 -django/contrib/sites/locale/nn/LC_MESSAGES/django.po,sha256=OOyvE7iji9hwvz8Z_OxWoKw2e3ptk3dqeqlriXgilSc,915 -django/contrib/sites/locale/os/LC_MESSAGES/django.mo,sha256=Su06FkWMOPzBxoung3bEju_EnyAEAXROoe33imO65uQ,806 -django/contrib/sites/locale/os/LC_MESSAGES/django.po,sha256=4i4rX6aXDUKjq64T02iStqV2V2erUsSVnTivh2XtQeY,963 -django/contrib/sites/locale/pa/LC_MESSAGES/django.mo,sha256=tOHiisOtZrTyIFoo4Ipn_XFH9hhu-ubJLMdOML5ZUgk,684 -django/contrib/sites/locale/pa/LC_MESSAGES/django.po,sha256=ztGyuqvzxRfNjqDG0rMLCu_oQ8V3Dxdsx0WZoYUyNv8,912 -django/contrib/sites/locale/pl/LC_MESSAGES/django.mo,sha256=lo5K262sZmo-hXvcHoBsEDqX8oJEPSxJY5EfRIqHZh0,903 -django/contrib/sites/locale/pl/LC_MESSAGES/django.po,sha256=-kQ49UvXITMy1vjJoN_emuazV_EjNDQnZDERXWNoKvw,1181 -django/contrib/sites/locale/pt/LC_MESSAGES/django.mo,sha256=PrcFQ04lFJ7mIYThXbW6acmDigEFIoLAC0PYk5hfaJs,797 -django/contrib/sites/locale/pt/LC_MESSAGES/django.po,sha256=Aj8hYI9W5nk5uxKHj1oE-b9bxmmuoeXLKaJDPfI2x2o,993 -django/contrib/sites/locale/pt_BR/LC_MESSAGES/django.mo,sha256=BsFfarOR6Qk67fB-tTWgGhuOReJSgjwJBkIzZsv28vo,824 -django/contrib/sites/locale/pt_BR/LC_MESSAGES/django.po,sha256=jfvgelpWn2VQqYe2_CE39SLTsscCckvjuZo6dWII28c,1023 -django/contrib/sites/locale/ro/LC_MESSAGES/django.mo,sha256=oGsZw4_uYpaH6adMxnAuifJgHeZ_ytRZ4rFhiNfRQkQ,857 -django/contrib/sites/locale/ro/LC_MESSAGES/django.po,sha256=tWbWVbjFFELNzSXX4_5ltmzEeEJsY3pKwgEOjgV_W_8,1112 -django/contrib/sites/locale/ru/LC_MESSAGES/django.mo,sha256=bIZJWMpm2O5S6RC_2cfkrp5NXaTU2GWSsMr0wHVEmcw,1016 -django/contrib/sites/locale/ru/LC_MESSAGES/django.po,sha256=jHy5GR05ZSjLmAwaVNq3m0WdhO9GYxge3rDBziqesA8,1300 -django/contrib/sites/locale/sk/LC_MESSAGES/django.mo,sha256=-EYdm14ZjoR8bd7Rv2b5G7UJVSKmZa1ItLsdATR3-Cg,822 -django/contrib/sites/locale/sk/LC_MESSAGES/django.po,sha256=VSRlsq8uk-hP0JI94iWsGX8Al76vvGK4N1xIoFtoRQM,1070 -django/contrib/sites/locale/sl/LC_MESSAGES/django.mo,sha256=JmkpTKJGWgnBM3CqOUriGvrDnvg2YWabIU2kbYAOM4s,845 -django/contrib/sites/locale/sl/LC_MESSAGES/django.po,sha256=qWrWrSz5r3UOVraX08ILt3TTmfyTDGKbJKbTlN9YImU,1059 -django/contrib/sites/locale/sq/LC_MESSAGES/django.mo,sha256=DMLN1ZDJeDnslavjcKloXSXn6IvangVliVP3O6U8dAY,769 -django/contrib/sites/locale/sq/LC_MESSAGES/django.po,sha256=zg3ALcMNZErAS_xFxmtv6TmXZ0vxobX5AzCwOSRSwc8,930 -django/contrib/sites/locale/sr/LC_MESSAGES/django.mo,sha256=8kfi9IPdB2reF8C_eC2phaP6qonboHPwes_w3UgNtzw,935 -django/contrib/sites/locale/sr/LC_MESSAGES/django.po,sha256=A7xaen8H1W4uMBRAqCXT_0KQMoA2-45AUNDfGo9FydI,1107 -django/contrib/sites/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=jMXiq18efq0wErJAQfJR1fCnkYcEb7OYXg8sv6kzP0s,815 -django/contrib/sites/locale/sr_Latn/LC_MESSAGES/django.po,sha256=9jkWYcZCTfQr2UZtyvhWDAmEHBrzunJUZcx7FlrFOis,1004 -django/contrib/sites/locale/sv/LC_MESSAGES/django.mo,sha256=1AttMJ2KbQQgJVH9e9KuCKC0UqDHvWSPcKkbPkSLphQ,768 -django/contrib/sites/locale/sv/LC_MESSAGES/django.po,sha256=N7wqrcFb5ZNX83q1ZCkpkP94Lb3ZIBUATDssNT8F51c,1028 -django/contrib/sites/locale/sw/LC_MESSAGES/django.mo,sha256=cWjjDdFXBGmpUm03UDtgdDrREa2r75oMsXiEPT_Bx3g,781 -django/contrib/sites/locale/sw/LC_MESSAGES/django.po,sha256=oOKNdztQQU0sd6XmLI-n3ONmTL7jx3Q0z1YD8673Wi8,901 -django/contrib/sites/locale/ta/LC_MESSAGES/django.mo,sha256=CLO41KsSKqBrgtrHi6fmXaBk-_Y2l4KBLDJctZuZyWY,714 -django/contrib/sites/locale/ta/LC_MESSAGES/django.po,sha256=YsTITHg7ikkNcsP29tDgkZrUdtO0s9PrV1XPu4mgqCw,939 -django/contrib/sites/locale/te/LC_MESSAGES/django.mo,sha256=GmIWuVyIOcoQoAmr2HxCwBDE9JUYEktzYig93H_4v50,687 -django/contrib/sites/locale/te/LC_MESSAGES/django.po,sha256=jbncxU9H3EjXxWPsEoCKJhKi392XXTGvWyuenqLDxps,912 -django/contrib/sites/locale/tg/LC_MESSAGES/django.mo,sha256=wiWRlf3AN5zlFMNyP_rSDZS7M5rHQJ2DTUHARtXjim8,863 -django/contrib/sites/locale/tg/LC_MESSAGES/django.po,sha256=VBGZfJIw40JZe15ghsk-n3qUVX0VH2nFQQhpBy_lk1Y,1026 -django/contrib/sites/locale/th/LC_MESSAGES/django.mo,sha256=dQOp4JoP3gvfsxqEQ73L6F8FgH1YtAA9hYY-Uz5sv6Y,898 -django/contrib/sites/locale/th/LC_MESSAGES/django.po,sha256=auZBoKKKCHZbbh0PaUr9YKiWB1TEYZoj4bE7efAonV8,1077 -django/contrib/sites/locale/tk/LC_MESSAGES/django.mo,sha256=YhzSiVb_NdG1s7G1-SGGd4R3uweZQgnTs3G8Lv9r5z0,755 -django/contrib/sites/locale/tk/LC_MESSAGES/django.po,sha256=sigmzH3Ni2vJwLJ7ba8EeB4wnDXsg8rQRFExZAGycF4,917 -django/contrib/sites/locale/tr/LC_MESSAGES/django.mo,sha256=ryf01jcvvBMGPKkdViieDuor-Lr2KRXZeFF1gPupCOA,758 -django/contrib/sites/locale/tr/LC_MESSAGES/django.po,sha256=L9tsnwxw1BEJD-Nm3m1RAS7ekgdmyC0ETs_mr7tQw1E,1043 -django/contrib/sites/locale/tt/LC_MESSAGES/django.mo,sha256=gmmjXeEQUlBpfDmouhxE-qpEtv-iWdQSobYL5MWprZc,706 -django/contrib/sites/locale/tt/LC_MESSAGES/django.po,sha256=yj49TjwcZ4YrGqnJrKh3neKydlTgwYduto9KsmxI_eI,930 -django/contrib/sites/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462 -django/contrib/sites/locale/udm/LC_MESSAGES/django.po,sha256=vrLZ0XJF63CO3IucbQpd12lxuoM9S8tTUv6cpu3g81c,767 -django/contrib/sites/locale/uk/LC_MESSAGES/django.mo,sha256=H4806mPqOoHJFm549F7drzsfkvAXWKmn1w_WVwQx9rk,960 -django/contrib/sites/locale/uk/LC_MESSAGES/django.po,sha256=CJZTOaurDXwpgBiwXx3W7juaF0EctEImPhJdDn8j1xU,1341 -django/contrib/sites/locale/ur/LC_MESSAGES/django.mo,sha256=s6QL8AB_Mp9haXS4n1r9b0YhEUECPxUyPrHTMI3agts,654 -django/contrib/sites/locale/ur/LC_MESSAGES/django.po,sha256=R9tv3qtett8CUGackoHrc5XADeygVKAE0Fz8YzK2PZ4,885 -django/contrib/sites/locale/uz/LC_MESSAGES/django.mo,sha256=OsuqnLEDl9gUAwsmM2s1KH7VD74ID-k7JXcjGhjFlEY,799 -django/contrib/sites/locale/uz/LC_MESSAGES/django.po,sha256=RoaOwLDjkqqIJTuxpuY7eMLo42n6FoYAYutCfMaDk4I,935 -django/contrib/sites/locale/vi/LC_MESSAGES/django.mo,sha256=YOaKcdrN1238Zdm81jUkc2cpxjInAbdnhsSqHP_jQsI,762 -django/contrib/sites/locale/vi/LC_MESSAGES/django.po,sha256=AHcqR2p0fdscLvzbJO_a-CzMzaeRL4LOw4HB9K3noVQ,989 -django/contrib/sites/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=7D9_pDY5lBRpo1kfzIQL-PNvIg-ofCm7cBHE1-JWlMk,779 -django/contrib/sites/locale/zh_Hans/LC_MESSAGES/django.po,sha256=xI_N00xhV8dWDp4fg5Mmj9ivOBBdHP79T3-JYXPyc5M,946 -django/contrib/sites/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=0F6Qmh1smIXlOUNDaDwDajyyGecc1azfwh8BhXrpETo,790 -django/contrib/sites/locale/zh_Hant/LC_MESSAGES/django.po,sha256=ixbXNBNKNfrpI_B0O_zktTfo63sRFMOk1B1uIh4DGGg,1046 -django/contrib/sites/management.py,sha256=AElGktvFhWXJtlJwOKpUlIeuv2thkNM8F6boliML84U,1646 -django/contrib/sites/managers.py,sha256=uqD_Cu3P4NCp7VVdGn0NvHfhsZB05MLmiPmgot-ygz4,1994 -django/contrib/sites/middleware.py,sha256=qYcVHsHOg0VxQNS4saoLHkdF503nJR-D7Z01vE0SvUM,309 -django/contrib/sites/migrations/0001_initial.py,sha256=8fY63Z5DwbKQ1HtvAajKDhBLEufigRTsoRazyEf5RU4,1361 -django/contrib/sites/migrations/0002_alter_domain_unique.py,sha256=llK7IKQKnFCK5viHLew2ZMdV9e1sHy0H1blszEu_NKs,549 -django/contrib/sites/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/sites/migrations/__pycache__/0001_initial.cpython-312.pyc,, -django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-312.pyc,, -django/contrib/sites/migrations/__pycache__/__init__.cpython-312.pyc,, -django/contrib/sites/models.py,sha256=0DWVfDGMYqTZgs_LP6hlVxY3ztbwPzulE9Dos8z6M3Q,3695 -django/contrib/sites/requests.py,sha256=baABc6fmTejNmk8M3fcoQ1cuI2qpJzF8Y47A1xSt8gY,641 -django/contrib/sites/shortcuts.py,sha256=nekVQADJROFYwKCD7flmWDMQ9uLAaaKztHVKl5emuWc,573 -django/contrib/staticfiles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/staticfiles/__pycache__/__init__.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/apps.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/checks.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/finders.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/handlers.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/storage.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/testing.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/urls.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/utils.cpython-312.pyc,, -django/contrib/staticfiles/__pycache__/views.cpython-312.pyc,, -django/contrib/staticfiles/apps.py,sha256=SbeI6t0nB9pO56qpwyxRYgPvvCfAvbLTwMJDAzFfn6U,423 -django/contrib/staticfiles/checks.py,sha256=rH9A8NIYtEkA_PRYXQJxndm243O6Mz6GwyqWSUe3f24,391 -django/contrib/staticfiles/finders.py,sha256=VqUPjNTjHrJZL5pyMPcrRF2lmqKzjZF9nas_mnyIjaM,11008 -django/contrib/staticfiles/handlers.py,sha256=ic8GzGDr3_PnHNeTWNNTWwjdow3ydnj64ncGlRbB0Eo,4029 -django/contrib/staticfiles/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/staticfiles/management/__pycache__/__init__.cpython-312.pyc,, -django/contrib/staticfiles/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/staticfiles/management/commands/__pycache__/__init__.cpython-312.pyc,, -django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-312.pyc,, -django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-312.pyc,, -django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-312.pyc,, -django/contrib/staticfiles/management/commands/collectstatic.py,sha256=Zd65dgKD8JlXmoDb3ig6tvZka4gMV_6egbLcoRLJ1SA,15137 -django/contrib/staticfiles/management/commands/findstatic.py,sha256=TMMGlbV-B1aq1b27nA6Otu6hV44pqAzeuEtTV2DPmp0,1638 -django/contrib/staticfiles/management/commands/runserver.py,sha256=U_7oCY8LJX5Jn1xlMv-qF4EQoUvlT0ldB5E_0sJmRtw,1373 -django/contrib/staticfiles/storage.py,sha256=k_oeHIh654Ji7z4ouXgON62WI0tzJ1UkQNzvncioFB8,20892 -django/contrib/staticfiles/testing.py,sha256=4X-EtOfXnwkJAyFT8qe4H4sbVTKgM65klLUtY81KHiE,463 -django/contrib/staticfiles/urls.py,sha256=owDM_hdyPeRmxYxZisSMoplwnzWrptI_W8-3K2f7ITA,498 -django/contrib/staticfiles/utils.py,sha256=iPXHA0yMXu37PQwCrq9zjhSzjZf_zEBXJ-dHGsqZoX8,2279 -django/contrib/staticfiles/views.py,sha256=XacxXwbhLlcmxhspeDOYvNF0OhMtSMOHGouxqQf0jlU,1261 -django/contrib/syndication/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/contrib/syndication/__pycache__/__init__.cpython-312.pyc,, -django/contrib/syndication/__pycache__/apps.cpython-312.pyc,, -django/contrib/syndication/__pycache__/views.cpython-312.pyc,, -django/contrib/syndication/apps.py,sha256=7IpHoihPWtOcA6S4O6VoG0XRlqEp3jsfrNf-D-eluic,203 -django/contrib/syndication/views.py,sha256=c8T8V49cyTMk6KLna8fbULOr3aMjkqye6C5lMAFofUU,9309 -django/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/core/__pycache__/__init__.cpython-312.pyc,, -django/core/__pycache__/asgi.cpython-312.pyc,, -django/core/__pycache__/exceptions.cpython-312.pyc,, -django/core/__pycache__/paginator.cpython-312.pyc,, -django/core/__pycache__/signals.cpython-312.pyc,, -django/core/__pycache__/signing.cpython-312.pyc,, -django/core/__pycache__/validators.cpython-312.pyc,, -django/core/__pycache__/wsgi.cpython-312.pyc,, -django/core/asgi.py,sha256=N2L3GS6F6oL-yD9Tu2otspCi2UhbRQ90LEx3ExOP1m0,386 -django/core/cache/__init__.py,sha256=-ofAjaYaEq3HsbfOjMkRnQa8-WU8UYRHeqvEot4mPiY,1928 -django/core/cache/__pycache__/__init__.cpython-312.pyc,, -django/core/cache/__pycache__/utils.cpython-312.pyc,, -django/core/cache/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/core/cache/backends/__pycache__/__init__.cpython-312.pyc,, -django/core/cache/backends/__pycache__/base.cpython-312.pyc,, -django/core/cache/backends/__pycache__/db.cpython-312.pyc,, -django/core/cache/backends/__pycache__/dummy.cpython-312.pyc,, -django/core/cache/backends/__pycache__/filebased.cpython-312.pyc,, -django/core/cache/backends/__pycache__/locmem.cpython-312.pyc,, -django/core/cache/backends/__pycache__/memcached.cpython-312.pyc,, -django/core/cache/backends/__pycache__/redis.cpython-312.pyc,, -django/core/cache/backends/base.py,sha256=fkEigg1NJnT26lrkDuBLm0n9dmhU_rhY_oxIdSZ7vnQ,14227 -django/core/cache/backends/db.py,sha256=HlTGDpZugousm1JUeT9HCdp1_leMdKihOJu8cWyIqfg,11372 -django/core/cache/backends/dummy.py,sha256=fQbFiL72DnVKP9UU4WDsZYaxYKx7FlMOJhtP8aky2ic,1043 -django/core/cache/backends/filebased.py,sha256=rlEb0e2IEVv4WPk-vDxzDAvybkJ1OsNn1-c7bUrAYVY,5800 -django/core/cache/backends/locmem.py,sha256=cqdFgPxYrfEKDvKR2IYiFV7-MwhM0CIHPxLTBxJMDTQ,4035 -django/core/cache/backends/memcached.py,sha256=RDCiTtfAFbtN3f34C2W9wnj1WpQ6SHBqlTKpfKXnnHo,6800 -django/core/cache/backends/redis.py,sha256=TB1bw1JK7jmUMLlu-nzuuMhtUp0JXBxzFOX149RVeFc,7924 -django/core/cache/utils.py,sha256=t9XOrfbjRrJ48gzIS8i5ustrKA5Ldd_0kjdV0-dOBHU,409 -django/core/checks/__init__.py,sha256=gFG0gY0C0L-akCrk1F0Q_WmkptYDLXYdyzr3wNJVIi4,1195 -django/core/checks/__pycache__/__init__.cpython-312.pyc,, -django/core/checks/__pycache__/async_checks.cpython-312.pyc,, -django/core/checks/__pycache__/caches.cpython-312.pyc,, -django/core/checks/__pycache__/database.cpython-312.pyc,, -django/core/checks/__pycache__/files.cpython-312.pyc,, -django/core/checks/__pycache__/messages.cpython-312.pyc,, -django/core/checks/__pycache__/model_checks.cpython-312.pyc,, -django/core/checks/__pycache__/registry.cpython-312.pyc,, -django/core/checks/__pycache__/templates.cpython-312.pyc,, -django/core/checks/__pycache__/translation.cpython-312.pyc,, -django/core/checks/__pycache__/urls.cpython-312.pyc,, -django/core/checks/async_checks.py,sha256=A9p_jebELrf4fiD6jJtBM6Gvm8cMb03sSuW9Ncx3-vU,403 -django/core/checks/caches.py,sha256=hbcIFD_grXUQR2lGAzzlCX6qMJfkXj02ZDJElgdT5Yg,2643 -django/core/checks/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/core/checks/compatibility/__pycache__/__init__.cpython-312.pyc,, -django/core/checks/compatibility/__pycache__/django_4_0.cpython-312.pyc,, -django/core/checks/compatibility/django_4_0.py,sha256=2s7lm9LZ0NrhaYSrw1Y5mMkL5BC68SS-TyD-TKczbEI,657 -django/core/checks/database.py,sha256=sBj-8o4DmpG5QPy1KXgXtZ0FZ0T9xdlT4XBIc70wmEQ,341 -django/core/checks/files.py,sha256=W4yYHiWrqi0d_G6tDWTw79pr2dgJY41rOv7mRpbtp2Q,522 -django/core/checks/messages.py,sha256=vIJtvmeafgwFzwcXaoRBWkcL_t2gLTLjstWSw5xCtjQ,2241 -django/core/checks/model_checks.py,sha256=8aK5uit9yP_lDfdXBJPlz_r-46faP_gIOXLszXqLQqY,8830 -django/core/checks/registry.py,sha256=FaixxLUVKtF-wNVKYXVkOVTg06lLdwOty2mfdDcEfb4,3458 -django/core/checks/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/core/checks/security/__pycache__/__init__.cpython-312.pyc,, -django/core/checks/security/__pycache__/base.cpython-312.pyc,, -django/core/checks/security/__pycache__/csrf.cpython-312.pyc,, -django/core/checks/security/__pycache__/sessions.cpython-312.pyc,, -django/core/checks/security/base.py,sha256=I0Gm446twRIhbRopEmKsdsYW_NdI7_nK_ZV28msRPEo,9140 -django/core/checks/security/csrf.py,sha256=hmFJ4m9oxDGwhDAWedmtpnIYQcI8Mxcge1D6CCoOBbc,2055 -django/core/checks/security/sessions.py,sha256=Qyb93CJeQBM5LLhhrqor4KQJR2tSpFklS-p7WltXcHc,2554 -django/core/checks/templates.py,sha256=fGX25HveO6TJCeFTqhis0rQfVcD8gif4F_iGPeJdiKI,2257 -django/core/checks/translation.py,sha256=it7VjXf10-HBdCc3z55_lSxwok9qEncdojRBG74d4FA,1990 -django/core/checks/urls.py,sha256=NIRbMn2r9GzdgOxhIujAICdYWC2M7SAiC5QuamENfU4,3328 -django/core/exceptions.py,sha256=CCihQfXYhrWW9-r7zwESNdh7g0NsQCxK4vpsA69nZGw,6576 -django/core/files/__init__.py,sha256=Rhz5Jm9BM6gy_nf5yMtswN1VsTIILYUL7Z-5edjh_HI,60 -django/core/files/__pycache__/__init__.cpython-312.pyc,, -django/core/files/__pycache__/base.cpython-312.pyc,, -django/core/files/__pycache__/images.cpython-312.pyc,, -django/core/files/__pycache__/locks.cpython-312.pyc,, -django/core/files/__pycache__/move.cpython-312.pyc,, -django/core/files/__pycache__/temp.cpython-312.pyc,, -django/core/files/__pycache__/uploadedfile.cpython-312.pyc,, -django/core/files/__pycache__/uploadhandler.cpython-312.pyc,, -django/core/files/__pycache__/utils.cpython-312.pyc,, -django/core/files/base.py,sha256=UeErNSLdQMR2McOUNfgjHBadSlmVP_DDHsAwVrn1gYk,4811 -django/core/files/images.py,sha256=nn_GxARZobyRZr15MtCjbcgax8L4JhNQmfBK3-TvB78,2643 -django/core/files/locks.py,sha256=jDXgsIrT154uvOgid_vOzd4f-L1rVXr-GZq5z_84hmQ,3613 -django/core/files/move.py,sha256=XNamwgnbncyAdlo3rEoz4xfOwdYdOHjNgajgIke667A,3250 -django/core/files/storage/__init__.py,sha256=NyYVaA8GSQATXQ0zJya56tP_IqFQDe01QAYiSEKdF0s,1192 -django/core/files/storage/__pycache__/__init__.cpython-312.pyc,, -django/core/files/storage/__pycache__/base.cpython-312.pyc,, -django/core/files/storage/__pycache__/filesystem.cpython-312.pyc,, -django/core/files/storage/__pycache__/handler.cpython-312.pyc,, -django/core/files/storage/__pycache__/memory.cpython-312.pyc,, -django/core/files/storage/__pycache__/mixins.cpython-312.pyc,, -django/core/files/storage/base.py,sha256=XCxIRrkt5Wh5V2d7aYVDCepwCEi1mF19zHj5RE9Lp8c,7424 -django/core/files/storage/filesystem.py,sha256=gpE8z9XPxgPxUl2VMafQzmHM8r6CkpURQLM95hsEIUM,7792 -django/core/files/storage/handler.py,sha256=vecHxIQmiFQmM_02qVI9xhWvGPz7DknAhbKnSuQuIxE,1999 -django/core/files/storage/memory.py,sha256=Mz27sDPbeRXGjh77id2LHt8sErp5WAmNj89NBNRDA3I,9745 -django/core/files/storage/mixins.py,sha256=j_Y3unzk9Ccmx-QQjj4AoC3MUhXIw5nFbDYF3Qn_Fh0,700 -django/core/files/temp.py,sha256=iUegEgQ3UyUrDN10SgvKIrHfBPSej1lk-LAgJqMZBcU,2503 -django/core/files/uploadedfile.py,sha256=6hBjxmx8P0fxmZQbtj4OTsXtUk9GdIA7IUcv_KwSI08,4189 -django/core/files/uploadhandler.py,sha256=riobj6SKikjiacrhObFsW9NFRfjG5qPklsaS1pzpFvE,7179 -django/core/files/utils.py,sha256=f0naLw9ovd9z1DzQHLKXPJxHmBogsg4MEFZH4K9nxvg,2659 -django/core/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/core/handlers/__pycache__/__init__.cpython-312.pyc,, -django/core/handlers/__pycache__/asgi.cpython-312.pyc,, -django/core/handlers/__pycache__/base.cpython-312.pyc,, -django/core/handlers/__pycache__/exception.cpython-312.pyc,, -django/core/handlers/__pycache__/wsgi.cpython-312.pyc,, -django/core/handlers/asgi.py,sha256=SncXXYe3DlGyiAgb2Ajved_oz3wUZlRoLjzF3_u2c-Q,12067 -django/core/handlers/base.py,sha256=j7ScIbMLKYa52HqwHYhIfMWWAG749natcsBsVQsvBjc,14813 -django/core/handlers/exception.py,sha256=Qa03HgQpLx7nqp5emF0bwdiemE0X7U9FfuLfoOHMf_4,5922 -django/core/handlers/wsgi.py,sha256=FIhItPszZzEXhCLdDk-Xdv6oOqtFsfN_O835ti0optM,7339 -django/core/mail/__init__.py,sha256=HJSPyTBz34PsIyv4jTFJvhswauZr51NpsB-gpYR73-A,4958 -django/core/mail/__pycache__/__init__.cpython-312.pyc,, -django/core/mail/__pycache__/message.cpython-312.pyc,, -django/core/mail/__pycache__/utils.cpython-312.pyc,, -django/core/mail/backends/__init__.py,sha256=VJ_9dBWKA48MXBZXVUaTy9NhgfRonapA6UAjVFEPKD8,37 -django/core/mail/backends/__pycache__/__init__.cpython-312.pyc,, -django/core/mail/backends/__pycache__/base.cpython-312.pyc,, -django/core/mail/backends/__pycache__/console.cpython-312.pyc,, -django/core/mail/backends/__pycache__/dummy.cpython-312.pyc,, -django/core/mail/backends/__pycache__/filebased.cpython-312.pyc,, -django/core/mail/backends/__pycache__/locmem.cpython-312.pyc,, -django/core/mail/backends/__pycache__/smtp.cpython-312.pyc,, -django/core/mail/backends/base.py,sha256=Cljbb7nil40Dfpob2R8iLmlO0Yv_wlOCBA9hF2Z6W54,1683 -django/core/mail/backends/console.py,sha256=Z9damLP7VPLswrNDX9kLjL3MdWf9yAM6ZCeUv-3tRgU,1426 -django/core/mail/backends/dummy.py,sha256=sI7tAa3MfG43UHARduttBvEAYYfiLasgF39jzaZPu9E,234 -django/core/mail/backends/filebased.py,sha256=AbEBL9tXr6WIhuSQvm3dHoCpuMoDTSIkx6qFb4GMUe4,2353 -django/core/mail/backends/locmem.py,sha256=AT8ilBy4m5OWaiyqm_k82HdkQIemn4gciIYILGZag2o,885 -django/core/mail/backends/smtp.py,sha256=9BFAvBXQvAxKqWjxZ6RTro2MJk1llSspnMpQr_wtcI0,5740 -django/core/mail/message.py,sha256=G8xWYN99w2MJjMEwmK_8dApNaPwkO1mwd20IQMw2CZk,17717 -django/core/mail/utils.py,sha256=Wf-pdSdv0WLREYzI7EVWr59K6o7tfb3d2HSbAyE3SOE,506 -django/core/management/__init__.py,sha256=tD9qoUYwl-vHtxYAkmCzc3jkymipWsxFKtJPNvL1R9A,17423 -django/core/management/__pycache__/__init__.cpython-312.pyc,, -django/core/management/__pycache__/base.cpython-312.pyc,, -django/core/management/__pycache__/color.cpython-312.pyc,, -django/core/management/__pycache__/sql.cpython-312.pyc,, -django/core/management/__pycache__/templates.cpython-312.pyc,, -django/core/management/__pycache__/utils.cpython-312.pyc,, -django/core/management/base.py,sha256=hBNNQyTWWLDIeHPOSU1t0qU0GnMafGcyoCknN-S0UrU,24215 -django/core/management/color.py,sha256=Efa1K67kd5dwlcs2DgnkDTtZy0FuW6nSo7oaVsLN9Bw,2878 -django/core/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/core/management/commands/__pycache__/__init__.cpython-312.pyc,, -django/core/management/commands/__pycache__/check.cpython-312.pyc,, -django/core/management/commands/__pycache__/compilemessages.cpython-312.pyc,, -django/core/management/commands/__pycache__/createcachetable.cpython-312.pyc,, -django/core/management/commands/__pycache__/dbshell.cpython-312.pyc,, -django/core/management/commands/__pycache__/diffsettings.cpython-312.pyc,, -django/core/management/commands/__pycache__/dumpdata.cpython-312.pyc,, -django/core/management/commands/__pycache__/flush.cpython-312.pyc,, -django/core/management/commands/__pycache__/inspectdb.cpython-312.pyc,, -django/core/management/commands/__pycache__/loaddata.cpython-312.pyc,, -django/core/management/commands/__pycache__/makemessages.cpython-312.pyc,, -django/core/management/commands/__pycache__/makemigrations.cpython-312.pyc,, -django/core/management/commands/__pycache__/migrate.cpython-312.pyc,, -django/core/management/commands/__pycache__/optimizemigration.cpython-312.pyc,, -django/core/management/commands/__pycache__/runserver.cpython-312.pyc,, -django/core/management/commands/__pycache__/sendtestemail.cpython-312.pyc,, -django/core/management/commands/__pycache__/shell.cpython-312.pyc,, -django/core/management/commands/__pycache__/showmigrations.cpython-312.pyc,, -django/core/management/commands/__pycache__/sqlflush.cpython-312.pyc,, -django/core/management/commands/__pycache__/sqlmigrate.cpython-312.pyc,, -django/core/management/commands/__pycache__/sqlsequencereset.cpython-312.pyc,, -django/core/management/commands/__pycache__/squashmigrations.cpython-312.pyc,, -django/core/management/commands/__pycache__/startapp.cpython-312.pyc,, -django/core/management/commands/__pycache__/startproject.cpython-312.pyc,, -django/core/management/commands/__pycache__/test.cpython-312.pyc,, -django/core/management/commands/__pycache__/testserver.cpython-312.pyc,, -django/core/management/commands/check.py,sha256=KPtpSfNkIPPKaBP4od_vh-kp_D439sG8T9MOU41p9DA,2652 -django/core/management/commands/compilemessages.py,sha256=zb5fkLrfXSg5LQgs5m-SUBDFt7OtYmdgEmqiENv1Vrc,6992 -django/core/management/commands/createcachetable.py,sha256=1gXJFZpvuCZPd1I_VlhFlCVOPmxk-LQxFB0Tf2H2eyA,4616 -django/core/management/commands/dbshell.py,sha256=XWBxHQIxXzKd_o81PxmmOCV67VPcqbDr9Und6LEAt9Q,1731 -django/core/management/commands/diffsettings.py,sha256=NNL_J0P3HRzAZd9XcW7Eo_iE_lNliIpKtdcarDbBRpc,3554 -django/core/management/commands/dumpdata.py,sha256=9HW-j7njstiw53VOhFxegH1-ihmyNMB2eThUtSG7Zec,10960 -django/core/management/commands/flush.py,sha256=9KhMxzJFqA3cOCw-0VFZ2Utb2xZ-xCnn8ZGeiVGOm8E,3611 -django/core/management/commands/inspectdb.py,sha256=DE6YVRvT38iGxLhQkIYFxiAqEDoFsFeTT0uQIrFFLbc,17208 -django/core/management/commands/loaddata.py,sha256=D7jivEBlS2vrvSE_26fxUVsy833VX0J73qPbYNWUW2s,15986 -django/core/management/commands/makemessages.py,sha256=HDIB3HJdXrKhg_5KiM_bzvXMIpNOaR88MjmIYZ-TO54,29348 -django/core/management/commands/makemigrations.py,sha256=4iD62w3b2sc1Hj-elD2ZUfzBcle64MPepfpyg2NbBv0,22444 -django/core/management/commands/migrate.py,sha256=Gs52PfG-w8Krv6xprAYvt4fcJDM1EJviWcWh0amlXGI,21401 -django/core/management/commands/optimizemigration.py,sha256=GVWIhX94tOLHEx53w-VrUc48euVWpKCLMw-BbpiQgIg,5224 -django/core/management/commands/runserver.py,sha256=0iA-mwsuZ2dzGCZ0ahjQyppHt1oB5NthDi0Kc6FyCEo,6728 -django/core/management/commands/sendtestemail.py,sha256=sF5TUMbD_tlGBnUsn9t-oFVGNSyeiWRIrgyPbJE88cs,1518 -django/core/management/commands/shell.py,sha256=LKmj6KYv6zpJzQ2mWtR4-u2CDSQL-_Na6TsT4JLYsi4,4613 -django/core/management/commands/showmigrations.py,sha256=dHDyNji_c55LntHanNT7ZF2EOq6pN4nulP-e4WRPMwE,6807 -django/core/management/commands/sqlflush.py,sha256=wivzfu_vA5XeU7fu2x1k7nEBky_vjtJgU4ruPja1pRQ,991 -django/core/management/commands/sqlmigrate.py,sha256=fjC7M5-cFxPV6yiqpSwpBrvo4ygZQeqoGEAVywVhKQY,3308 -django/core/management/commands/sqlsequencereset.py,sha256=Bf6HoGe5WoyAivZv1qYpklFQF9CaG4X2s1sLxT6U0Xw,1061 -django/core/management/commands/squashmigrations.py,sha256=fkNbRS5D2Yu0TCY1gLQgIPNOe8YjxpRwVJOW-b5KB-s,10861 -django/core/management/commands/startapp.py,sha256=Dhllhaf1q3EKVnyBLhJ9QsWf6JmjAtYnVLruHsmMlcQ,503 -django/core/management/commands/startproject.py,sha256=Iv7KOco1GkzGqUEME_LCx5vGi4JfY8-lzdkazDqF7k8,789 -django/core/management/commands/test.py,sha256=R0DDsSQ3rYHvA6rL0tFh-Q66JibpP6naPhirF3PeKnY,2554 -django/core/management/commands/testserver.py,sha256=o0MuEiPYKbZ4w7bj3BnwDQawc5CNOp53nl4e_nretF0,2245 -django/core/management/sql.py,sha256=fP6Bvq4NrQB_9Tb6XsYeCg57xs2Ck6uaCXq0ojFOSvA,1851 -django/core/management/templates.py,sha256=Z-dmv7ufM6qfbr83NdVzEB785_9hMdwqXykycNg0C1A,15498 -django/core/management/utils.py,sha256=aDAQ8AtEQYK4I3Eo8adRD4mGyWQLJiM3qI-wYJO_JWw,5429 -django/core/paginator.py,sha256=bDXEQUZSYjVLEVKNpD_TucZyxNya_XkIVddh6t1A3sQ,7439 -django/core/serializers/__init__.py,sha256=gaH58ip_2dyUFDlfOPenMkVJftQQOBvXqCcZBjAKwTA,8772 -django/core/serializers/__pycache__/__init__.cpython-312.pyc,, -django/core/serializers/__pycache__/base.cpython-312.pyc,, -django/core/serializers/__pycache__/json.cpython-312.pyc,, -django/core/serializers/__pycache__/jsonl.cpython-312.pyc,, -django/core/serializers/__pycache__/python.cpython-312.pyc,, -django/core/serializers/__pycache__/pyyaml.cpython-312.pyc,, -django/core/serializers/__pycache__/xml_serializer.cpython-312.pyc,, -django/core/serializers/base.py,sha256=a-yHSUuRnHr-3VdgUlk79hLDTYVFuSGL_BqyNHqm6uE,13304 -django/core/serializers/json.py,sha256=GK9Slqj1cCeQVZU-jkagTC_hRsvgf2kBmdEseBcRpn8,3446 -django/core/serializers/jsonl.py,sha256=671JRbWRgOH3-oeD3auK9QCziwtrcdbyCIRDy5s4Evw,1879 -django/core/serializers/python.py,sha256=Sokl0FEwRwgKV7hKDAOZL30-Si6DWs9_kANyt7mFjss,6866 -django/core/serializers/pyyaml.py,sha256=77zu6PCfJg_75m36lX9X5018ADcux5qsDGajKNh4pI8,2955 -django/core/serializers/xml_serializer.py,sha256=hMfgLGmn2AuUYd9Eg4_qldfG_xNC6BmWUGBzLnj0dnE,18328 -django/core/servers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/core/servers/__pycache__/__init__.cpython-312.pyc,, -django/core/servers/__pycache__/basehttp.cpython-312.pyc,, -django/core/servers/basehttp.py,sha256=SGp7dTLRoKi7SFlOZoWFCT7ZTymA5e3xyBC6FrU4IlY,9936 -django/core/signals.py,sha256=5vh1e7IgPN78WXPo7-hEMPN9tQcqJSZHu0WCibNgd-E,151 -django/core/signing.py,sha256=l5Ic8e7nkzG6tDet63KF64zd2fx9471s2StvPWZKHq8,9576 -django/core/validators.py,sha256=hQ_yBRILwQ8Zd_aaYkUIx3xOsamtkNTwFCnE2hG2sbA,20758 -django/core/wsgi.py,sha256=2sYMSe3IBrENeQT7rys-04CRmf8hW2Q2CjlkBUIyjHk,388 -django/db/__init__.py,sha256=8W-BApKlr4YNfaDdQ544Gyp3AYYbX2E0dyDmQTiVHr0,1483 -django/db/__pycache__/__init__.cpython-312.pyc,, -django/db/__pycache__/transaction.cpython-312.pyc,, -django/db/__pycache__/utils.cpython-312.pyc,, -django/db/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/db/backends/__pycache__/__init__.cpython-312.pyc,, -django/db/backends/__pycache__/ddl_references.cpython-312.pyc,, -django/db/backends/__pycache__/signals.cpython-312.pyc,, -django/db/backends/__pycache__/utils.cpython-312.pyc,, -django/db/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/db/backends/base/__pycache__/__init__.cpython-312.pyc,, -django/db/backends/base/__pycache__/base.cpython-312.pyc,, -django/db/backends/base/__pycache__/client.cpython-312.pyc,, -django/db/backends/base/__pycache__/creation.cpython-312.pyc,, -django/db/backends/base/__pycache__/features.cpython-312.pyc,, -django/db/backends/base/__pycache__/introspection.cpython-312.pyc,, -django/db/backends/base/__pycache__/operations.cpython-312.pyc,, -django/db/backends/base/__pycache__/schema.cpython-312.pyc,, -django/db/backends/base/__pycache__/validation.cpython-312.pyc,, -django/db/backends/base/base.py,sha256=GSBAQtgBqQgWxBUXIVC3TfBx3x7elKRE0pnnvL2hDpk,28652 -django/db/backends/base/client.py,sha256=90Ffs6zZYCli3tJjwsPH8TItZ8tz1Pp-zhQa-EpsNqc,937 -django/db/backends/base/creation.py,sha256=9EMiIEMjAi2egrOhCZP4ckl6Ss3GIhPEXhUVF5kf8FI,15668 -django/db/backends/base/features.py,sha256=q6NBzD36NxAe9UEPhnDR13z_yPmgQah6jM1j3zIQMdM,14953 -django/db/backends/base/introspection.py,sha256=CJG3MUmR-wJpNm-gNWuMRMNknWp3ZdZ9DRUbKxcnwuo,7900 -django/db/backends/base/operations.py,sha256=T1vpHwC_gWrcZGF6NIzwXAUjIDWsM6I8CI5u-2QOapI,28959 -django/db/backends/base/schema.py,sha256=txNKwjWzFUDrsexvr4SpFNVxn8pFpcszbHJDP3A2ths,73572 -django/db/backends/base/validation.py,sha256=2zpI11hyUJr0I0cA1xmvoFwQVdZ-7_1T2F11TpQ0Rkk,1067 -django/db/backends/ddl_references.py,sha256=eBDnxoh7_PY2H8AGuZ5FUoxsEscpnmMuYEMqzfPRFqk,8129 -django/db/backends/dummy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/db/backends/dummy/__pycache__/__init__.cpython-312.pyc,, -django/db/backends/dummy/__pycache__/base.cpython-312.pyc,, -django/db/backends/dummy/__pycache__/features.cpython-312.pyc,, -django/db/backends/dummy/base.py,sha256=im1_ubNhbY6cP8yNntqDr6Hlg5d5c_5r5IUCPCDfv28,2181 -django/db/backends/dummy/features.py,sha256=Pg8_jND-aoJomTaBBXU3hJEjzpB-rLs6VwpoKkOYuQg,181 -django/db/backends/mysql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/db/backends/mysql/__pycache__/__init__.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/base.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/client.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/compiler.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/creation.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/features.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/introspection.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/operations.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/schema.cpython-312.pyc,, -django/db/backends/mysql/__pycache__/validation.cpython-312.pyc,, -django/db/backends/mysql/base.py,sha256=VHWKbrI5DRp0s2fjHo5kbHRSSE2QuUa5N4LKcvcksw4,16910 -django/db/backends/mysql/client.py,sha256=IpwdI-H5r-QUoM8ZvPXHykNxKb2wevcUx8HvxTn_otU,2988 -django/db/backends/mysql/compiler.py,sha256=SPhbsHi8x_r4ZG8U7-Tnqr6F0G4rsxOyJjITKPHz3zE,3333 -django/db/backends/mysql/creation.py,sha256=8BV8YHk3qEq555nH3NHukxpZZgxtvXFvkv7XvkRlhKA,3449 -django/db/backends/mysql/features.py,sha256=oAaHyBAgPIglUwAa0z8T7DA-8_nhjXhaAVdzsui0JWM,12223 -django/db/backends/mysql/introspection.py,sha256=dGpSrKAS6p2VKj4mLKfTQl4rD78DUbOIMdR6K9NU9O8,14147 -django/db/backends/mysql/operations.py,sha256=Z5rDicNOyT-S4qIXo0-6LeqCBn3xvG8m1E-ZPoR1L0Q,18715 -django/db/backends/mysql/schema.py,sha256=xAGsmY_Agnl1tuvAA0-b-ml_ar4WuU8D5YRvQJV88v4,9654 -django/db/backends/mysql/validation.py,sha256=XERj0lPEihKThPvzoVJmNpWdPOun64cRF3gHv-zmCGk,3093 -django/db/backends/oracle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/db/backends/oracle/__pycache__/__init__.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/base.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/client.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/creation.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/features.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/functions.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/introspection.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/operations.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/schema.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/utils.cpython-312.pyc,, -django/db/backends/oracle/__pycache__/validation.cpython-312.pyc,, -django/db/backends/oracle/base.py,sha256=00KLx6RiPSfWC_TfajaJX-M-OmemzigcDKLGFXBuWlU,23154 -django/db/backends/oracle/client.py,sha256=DfDURfno8Sek13M8r5S2t2T8VUutx2hBT9DZRfow9VQ,784 -django/db/backends/oracle/creation.py,sha256=KVUU5EqNWeaeRMRj0Q2Z3EQ-F-FRuj25JaXdSTA_Q7I,20834 -django/db/backends/oracle/features.py,sha256=pq3gVF6pWGD1hswpt5kTj0EkdcvrEFC-cv5pDQILU0k,6269 -django/db/backends/oracle/functions.py,sha256=2OoBYyY1Lb4B5hYbkRHjd8YY_artr3QeGu2hlojC-vc,812 -django/db/backends/oracle/introspection.py,sha256=qXkMV8KlFKDiEUtKWWSn95IAvf5b8PTdqaX4wvfsaLQ,15519 -django/db/backends/oracle/operations.py,sha256=9Q48kOEAm6f8eHO4tYmEZQbs6QRF8qfxC3t9EGbPmFo,29543 -django/db/backends/oracle/schema.py,sha256=f1xPvhvQO27BG2GSxNwYJDnfsjrGdionbPH7sIn2Kac,10719 -django/db/backends/oracle/utils.py,sha256=y-fIivrmHabu5CBCUgEUoud7kOIH7rGCXMEkMn8gHIs,2685 -django/db/backends/oracle/validation.py,sha256=cq-Bvy5C0_rmkgng0SSQ4s74FKg2yTM1N782Gfz86nY,860 -django/db/backends/postgresql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/db/backends/postgresql/__pycache__/__init__.cpython-312.pyc,, -django/db/backends/postgresql/__pycache__/base.cpython-312.pyc,, -django/db/backends/postgresql/__pycache__/client.cpython-312.pyc,, -django/db/backends/postgresql/__pycache__/creation.cpython-312.pyc,, -django/db/backends/postgresql/__pycache__/features.cpython-312.pyc,, -django/db/backends/postgresql/__pycache__/introspection.cpython-312.pyc,, -django/db/backends/postgresql/__pycache__/operations.cpython-312.pyc,, -django/db/backends/postgresql/__pycache__/psycopg_any.cpython-312.pyc,, -django/db/backends/postgresql/__pycache__/schema.cpython-312.pyc,, -django/db/backends/postgresql/base.py,sha256=UL9QWbJo3bzoftAGBCPkVVCDYwL3RTXOw0LvZdSLuYU,18196 -django/db/backends/postgresql/client.py,sha256=RLsYyqTlSlZyEB4SI0t0TsTItDcN3enyJoIoAKrqTE8,2052 -django/db/backends/postgresql/creation.py,sha256=1KGFQAIdULSPWQ8dmJEgbCDY2F6yYM3BMrbRRM7xyUM,3677 -django/db/backends/postgresql/features.py,sha256=5PwvEhd1YfKvJjDc9QS1mFEDoBqINxclp7jUQf50Cjw,4982 -django/db/backends/postgresql/introspection.py,sha256=0j4Y5ZAuSk8iaMbDBjUF9zHTcL3C5WibIiJygOvZMP8,11604 -django/db/backends/postgresql/operations.py,sha256=d0jjceom-cgJq3x5vVPni0Whsh6W-FugvtxR2ORot1I,15177 -django/db/backends/postgresql/psycopg_any.py,sha256=0-DwOvdWp5Wuu0XlRu_LPLSr1q1EjtzgZS2ZOyiTwXg,3774 -django/db/backends/postgresql/schema.py,sha256=6dcGiEBSAJWXMxmaq2EbNhWoam0P61NHi5nK2M57S68,14877 -django/db/backends/signals.py,sha256=Yl14KjYJijTt1ypIZirp90lS7UTJ8UogPFI_DwbcsSc,66 -django/db/backends/sqlite3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/db/backends/sqlite3/__pycache__/__init__.cpython-312.pyc,, -django/db/backends/sqlite3/__pycache__/_functions.cpython-312.pyc,, -django/db/backends/sqlite3/__pycache__/base.cpython-312.pyc,, -django/db/backends/sqlite3/__pycache__/client.cpython-312.pyc,, -django/db/backends/sqlite3/__pycache__/creation.cpython-312.pyc,, -django/db/backends/sqlite3/__pycache__/features.cpython-312.pyc,, -django/db/backends/sqlite3/__pycache__/introspection.cpython-312.pyc,, -django/db/backends/sqlite3/__pycache__/operations.cpython-312.pyc,, -django/db/backends/sqlite3/__pycache__/schema.cpython-312.pyc,, -django/db/backends/sqlite3/_functions.py,sha256=kHGFqulvEoUyzDb6jo9-V_4FbRzYDyThk1_bC4WCBjQ,14419 -django/db/backends/sqlite3/base.py,sha256=wknxTU56luqEq1ZLhEf6YOMixdktghdlIPz30gHgWmA,13884 -django/db/backends/sqlite3/client.py,sha256=Eb_-P1w0aTbZGVNYkv7KA1ku5Il1N2RQov2lc3v0nho,321 -django/db/backends/sqlite3/creation.py,sha256=AlRZnsKvahKTY9UekhwLgljLOT1Dp9mD7nXT9Qor9aQ,6827 -django/db/backends/sqlite3/features.py,sha256=4ujMZkUTCBxUKqrqnNnZIBIYcpUccWOUYE4UtPZHSJU,6868 -django/db/backends/sqlite3/introspection.py,sha256=_o2N5c_mith09LrF3Rqg45NNh2xPL9VcfCdFLSDNtNQ,17357 -django/db/backends/sqlite3/operations.py,sha256=cDW7SkR1D9O7rBzHWN8iACvRNgs9y1q6mcth7vTDoKc,16961 -django/db/backends/sqlite3/schema.py,sha256=YiLSUESEuTjE8pAS0XCXxwQCDVvD9MGr7p4_aW1DeZI,24501 -django/db/backends/utils.py,sha256=JCgk54fUEyDlp1TkV4nbKC8GO-sL2uW3kE3iouNP1rA,10002 -django/db/migrations/__init__.py,sha256=Oa4RvfEa6hITCqdcqwXYC66YknFKyluuy7vtNbSc-L4,97 -django/db/migrations/__pycache__/__init__.cpython-312.pyc,, -django/db/migrations/__pycache__/autodetector.cpython-312.pyc,, -django/db/migrations/__pycache__/exceptions.cpython-312.pyc,, -django/db/migrations/__pycache__/executor.cpython-312.pyc,, -django/db/migrations/__pycache__/graph.cpython-312.pyc,, -django/db/migrations/__pycache__/loader.cpython-312.pyc,, -django/db/migrations/__pycache__/migration.cpython-312.pyc,, -django/db/migrations/__pycache__/optimizer.cpython-312.pyc,, -django/db/migrations/__pycache__/questioner.cpython-312.pyc,, -django/db/migrations/__pycache__/recorder.cpython-312.pyc,, -django/db/migrations/__pycache__/serializer.cpython-312.pyc,, -django/db/migrations/__pycache__/state.cpython-312.pyc,, -django/db/migrations/__pycache__/utils.cpython-312.pyc,, -django/db/migrations/__pycache__/writer.cpython-312.pyc,, -django/db/migrations/autodetector.py,sha256=2JoMMhWJ3vysMagYkX-P76JrFMU5K6ufXb0SuqeAnUo,78977 -django/db/migrations/exceptions.py,sha256=SotQF7ZKgJpd9KN-gKDL8wCJAKSEgbZToM_vtUAnqHw,1204 -django/db/migrations/executor.py,sha256=_XxTCSHiwAy6KqFsqS_V2fVojDdMdKnDchCdc1nU2Bo,18923 -django/db/migrations/graph.py,sha256=vt7Pc45LuiXR8aRCrXP5Umm6VDCCTs2LAr5NXh-rxcE,13055 -django/db/migrations/loader.py,sha256=KRHdjq7A0sHqOS0JHVNlR8MtQvbY9smjId7rngwrrOU,16863 -django/db/migrations/migration.py,sha256=itZASGGepJYCY2Uv5AmLrxOgjEH1tycGV0bv3EtRjQE,9767 -django/db/migrations/operations/__init__.py,sha256=qIOjQYpm3tOtj1jsJVSpzxDH_kYAWk8MOGj-R3WYvJc,964 -django/db/migrations/operations/__pycache__/__init__.cpython-312.pyc,, -django/db/migrations/operations/__pycache__/base.cpython-312.pyc,, -django/db/migrations/operations/__pycache__/fields.cpython-312.pyc,, -django/db/migrations/operations/__pycache__/models.cpython-312.pyc,, -django/db/migrations/operations/__pycache__/special.cpython-312.pyc,, -django/db/migrations/operations/base.py,sha256=-wdWlbVLtUGeOeWKyuQ67R3HCx_jd0ausstbJcBT4QQ,5082 -django/db/migrations/operations/fields.py,sha256=_6znw6YYwAxs_V4I05BbP_T58rkzR2dqUcLyUmul-Zc,12692 -django/db/migrations/operations/models.py,sha256=AE7XCt9VnF4yhXNAKks73yhR1445NHXr6oF47kshgbM,42988 -django/db/migrations/operations/special.py,sha256=3Zbya6B1nEjvIwhQLoFR8kGBZUlc26kgBxX7XS3aeFQ,7831 -django/db/migrations/optimizer.py,sha256=c0JZ5FGltD_gmh20e5SR6A21q_De6rUKfkAJKwmX4Ks,3255 -django/db/migrations/questioner.py,sha256=HVtcEBRxQwL9JrQO5r1bVIZIZUFBfs9L-siuDQERZh0,13330 -django/db/migrations/recorder.py,sha256=36vtix99DAFnWgKQYnj4G8VQwNfOQUP2OTsC_afAPNM,3535 -django/db/migrations/serializer.py,sha256=KXkB2QX-ZXka-4hjlnNGnpm0NDbBv3iNF3yOBZ3omU4,13560 -django/db/migrations/state.py,sha256=QM63FXvMy3qFUF4jFAxFBiBRJDeLg5ltURQnUv-GTNU,40654 -django/db/migrations/utils.py,sha256=pdrzumGDhgytc5KVWdZov7cQtBt3jRASLqbmBxSRSvg,4401 -django/db/migrations/writer.py,sha256=KqsYN3bDTjGWnuvVvkAj06qk2lhFQLkaWsr9cW-oVYI,11458 -django/db/models/__init__.py,sha256=CB0CfDP1McdMRNfGuDs1OaJ7Xw-br2tC_EIjTcH51X4,2774 -django/db/models/__pycache__/__init__.cpython-312.pyc,, -django/db/models/__pycache__/aggregates.cpython-312.pyc,, -django/db/models/__pycache__/base.cpython-312.pyc,, -django/db/models/__pycache__/constants.cpython-312.pyc,, -django/db/models/__pycache__/constraints.cpython-312.pyc,, -django/db/models/__pycache__/deletion.cpython-312.pyc,, -django/db/models/__pycache__/enums.cpython-312.pyc,, -django/db/models/__pycache__/expressions.cpython-312.pyc,, -django/db/models/__pycache__/indexes.cpython-312.pyc,, -django/db/models/__pycache__/lookups.cpython-312.pyc,, -django/db/models/__pycache__/manager.cpython-312.pyc,, -django/db/models/__pycache__/options.cpython-312.pyc,, -django/db/models/__pycache__/query.cpython-312.pyc,, -django/db/models/__pycache__/query_utils.cpython-312.pyc,, -django/db/models/__pycache__/signals.cpython-312.pyc,, -django/db/models/__pycache__/utils.cpython-312.pyc,, -django/db/models/aggregates.py,sha256=KKYz7KzzLoqEScCBeDq7m2RmpdhNV2tSvi2PqmxxCIA,7642 -django/db/models/base.py,sha256=JPqd5R9BF5yhZr9vx9Ot6WmAT96HBFDlxuduFf_Ha5o,100332 -django/db/models/constants.py,sha256=yfhLjetzfpKFqd5pIIuILL3r2pmD-nhRL-4VzrZYQ4w,209 -django/db/models/constraints.py,sha256=hzfeJt_g0GHQgT0Lm0kKYVbg-fhcJpobmFdK4MVKMjA,15389 -django/db/models/deletion.py,sha256=SkhsZIzb0orGhZOuxZqC_RiEEQRDVJ3nZ1RrN-iUWqM,21099 -django/db/models/enums.py,sha256=Erf-SMu9CD1aZfq4xct3WdoOjjMIZp_vlja6FyJQfyw,2804 -django/db/models/expressions.py,sha256=YhHGR6AgE4haUDn2pYqn1WZh0rLV1ZNcBD0-n7cbYlc,65363 -django/db/models/fields/__init__.py,sha256=EwxET_Q2MExX6O4HIQx_SEJz45Q_wIg-ZISLH9i9Jcs,95674 -django/db/models/fields/__pycache__/__init__.cpython-312.pyc,, -django/db/models/fields/__pycache__/files.cpython-312.pyc,, -django/db/models/fields/__pycache__/json.cpython-312.pyc,, -django/db/models/fields/__pycache__/mixins.cpython-312.pyc,, -django/db/models/fields/__pycache__/proxy.cpython-312.pyc,, -django/db/models/fields/__pycache__/related.cpython-312.pyc,, -django/db/models/fields/__pycache__/related_descriptors.cpython-312.pyc,, -django/db/models/fields/__pycache__/related_lookups.cpython-312.pyc,, -django/db/models/fields/__pycache__/reverse_related.cpython-312.pyc,, -django/db/models/fields/files.py,sha256=YWpdokC8xXj9RYndjqHSNn9pLglakRl8KyIINBPU6Wg,18842 -django/db/models/fields/json.py,sha256=ydrGNRauN3xxjez6aBzot3Xl4w9dm60ot99037n0xIY,22508 -django/db/models/fields/mixins.py,sha256=AfnqL5l3yXQmYh9sW35MPFy9AvKjA7SarXijXfd68J8,1823 -django/db/models/fields/proxy.py,sha256=eFHyl4gRTqocjgd6nID9UlQuOIppBA57Vcr71UReTAs,515 -django/db/models/fields/related.py,sha256=0KxQ1gqP5ammDjXsIC7a3FTuju2pO05GSXFke4gbMiw,75796 -django/db/models/fields/related_descriptors.py,sha256=8Q-eWAPMne2M4tw7oEwiVoc55SrYvXHN8AvUDkpJG6M,61824 -django/db/models/fields/related_lookups.py,sha256=5XrcMSmN7N5uqSjvF6f1RW6P6WY6j8zqdJNe17X4N7U,8151 -django/db/models/fields/reverse_related.py,sha256=sxNPJ3hSgkbChcXH29AsYzN1Xpn0CbzbmJrnKYNsAHg,12480 -django/db/models/functions/__init__.py,sha256=aglCm_JtzDYk2KmxubDN_78CGG3JCfRWnfJ74Oj5YJ4,2658 -django/db/models/functions/__pycache__/__init__.cpython-312.pyc,, -django/db/models/functions/__pycache__/comparison.cpython-312.pyc,, -django/db/models/functions/__pycache__/datetime.cpython-312.pyc,, -django/db/models/functions/__pycache__/math.cpython-312.pyc,, -django/db/models/functions/__pycache__/mixins.cpython-312.pyc,, -django/db/models/functions/__pycache__/text.cpython-312.pyc,, -django/db/models/functions/__pycache__/window.cpython-312.pyc,, -django/db/models/functions/comparison.py,sha256=GVI-IbLj2aTFwhtuJPN4hKlNnvWXnUsefBGRz2JyJO0,8488 -django/db/models/functions/datetime.py,sha256=qz6stD6ClLtC_G16ELXKAoxjZuAQ0yHn4y43cqhRsMY,13658 -django/db/models/functions/math.py,sha256=9BH1yLLP5z_-kcfe5UuSH-4YkSEeBE1Ga88102lX83Y,6092 -django/db/models/functions/mixins.py,sha256=04MuLCiXw4DYDx0kRU3g_QZcOOCbttAkFEa4WtwGeao,2229 -django/db/models/functions/text.py,sha256=T6VcD27lBFCuo1sivkcso_ujSB2Hg_4Qp0F9bTqY4TI,11035 -django/db/models/functions/window.py,sha256=g4fryay1tLQCpZRfmPQhrTiuib4RvPqtwFdodlLbi98,2841 -django/db/models/indexes.py,sha256=hEMb5h9gjVLQTKhS8yYZ3i_o17ppErOx8jlYeFYXn44,11871 -django/db/models/lookups.py,sha256=pS5saSupZhReeJy0U9tG7DuRwevskgmGqAHhDfOFs9U,25047 -django/db/models/manager.py,sha256=n97p4q0ttwmI1XcF9dAl8Pfg5Zs8iudufhWebQ7Xau0,6866 -django/db/models/options.py,sha256=oz_tM65VlITsP0Cn3NYBVzEda-Z04K3Yk6DMuM6tAXk,38977 -django/db/models/query.py,sha256=OtCAai4vx4sVlkc2KeSLNIuE1PaOMQ6r6M1G5eAIhPQ,101762 -django/db/models/query_utils.py,sha256=ZgLSb5T8PZnNn7P5QPxfedZnnWXdYcLtNdtMis5A-NY,15244 -django/db/models/signals.py,sha256=mG6hxVWugr_m0ugTU2XAEMiqlu2FJ4CBuGa34dLJvEQ,1622 -django/db/models/sql/__init__.py,sha256=BGZ1GSn03dTOO8PYx6vF1-ImE3g1keZsQ74AHJoQwmQ,241 -django/db/models/sql/__pycache__/__init__.cpython-312.pyc,, -django/db/models/sql/__pycache__/compiler.cpython-312.pyc,, -django/db/models/sql/__pycache__/constants.cpython-312.pyc,, -django/db/models/sql/__pycache__/datastructures.cpython-312.pyc,, -django/db/models/sql/__pycache__/query.cpython-312.pyc,, -django/db/models/sql/__pycache__/subqueries.cpython-312.pyc,, -django/db/models/sql/__pycache__/where.cpython-312.pyc,, -django/db/models/sql/compiler.py,sha256=LzYqgfUnIgUmOVpDAmb8MoE5tHrnru4GsJ6SGH4vmdI,89132 -django/db/models/sql/constants.py,sha256=usb1LSh9WNGPsurWAGppDkV0wYJJg5GEegKibQdS718,533 -django/db/models/sql/datastructures.py,sha256=9YDS4rDKWxjvCDOAAgHzbJLR7vpsNhJnqYzybn1j2xU,7297 -django/db/models/sql/query.py,sha256=BbK3jKKl-T88TZbnkEmMHnW56PJ06RwZg54B4PEghx4,115198 -django/db/models/sql/subqueries.py,sha256=eqwaqhe_A2-OVKcYu6N3Wi6jDvftnVnQ-30vFfZMB5w,5935 -django/db/models/sql/where.py,sha256=08Ip3J5zs-4QwPe06P9oxO1cM9kypLtgrtFpH_rXha4,12710 -django/db/models/utils.py,sha256=vzojL0uUQHuOm2KxTJ19DHGnQ1pBXbnWaTlzR0vVimI,2182 -django/db/transaction.py,sha256=U9O5DF_Eg8SG1dvcn_oFimU-ONaXKoHdDsXl0ZYtjFM,12504 -django/db/utils.py,sha256=RKtSSyVJmM5__SAs1pY0njX6hLVRy1WIBggYo1zP4RI,9279 -django/dispatch/__init__.py,sha256=qP203zNwjaolUFnXLNZHnuBn7HNzyw9_JkODECRKZbc,286 -django/dispatch/__pycache__/__init__.cpython-312.pyc,, -django/dispatch/__pycache__/dispatcher.cpython-312.pyc,, -django/dispatch/dispatcher.py,sha256=hMPMYVDCkQuUfY1D3XVyP2CqSQDhEHMgp25a-RytTMs,10793 -django/dispatch/license.txt,sha256=VABMS2BpZOvBY68W0EYHwW5Cj4p4oCb-y1P3DAn0qU8,1743 -django/forms/__init__.py,sha256=S6ckOMmvUX-vVST6AC-M8BzsfVQwuEUAdHWabMN-OGI,368 -django/forms/__pycache__/__init__.cpython-312.pyc,, -django/forms/__pycache__/boundfield.cpython-312.pyc,, -django/forms/__pycache__/fields.cpython-312.pyc,, -django/forms/__pycache__/forms.cpython-312.pyc,, -django/forms/__pycache__/formsets.cpython-312.pyc,, -django/forms/__pycache__/models.cpython-312.pyc,, -django/forms/__pycache__/renderers.cpython-312.pyc,, -django/forms/__pycache__/utils.cpython-312.pyc,, -django/forms/__pycache__/widgets.cpython-312.pyc,, -django/forms/boundfield.py,sha256=2H-DUr1HaCRPFmF4oJdt2Z7XOeYLZ68ReTOpj4-tm9E,12344 -django/forms/fields.py,sha256=PxwmEdl6vO4vtU8iAyz9SaHdkAxB8WUAR1AR4JHdAj0,48399 -django/forms/forms.py,sha256=7lAGne4AhOiW8TpLnGm0Nk0gHUoof4bh3v0JlvfpJUg,20512 -django/forms/formsets.py,sha256=tlQZPtMLdQvie9Q5Z4p9tp6x1v5DxyAEfLKNAW2643w,21167 -django/forms/jinja2/django/forms/attrs.html,sha256=TD0lNK-ohDjb_bWg1Kosdn4kU01B_M0_C19dp9kYJqo,165 -django/forms/jinja2/django/forms/default.html,sha256=stPE5cj2dGb6pxqKLtgDHPr14Qr6pcr4i_s2lCZDFF8,40 -django/forms/jinja2/django/forms/div.html,sha256=Fgqt-XPtBFe6qiW7_mTb7w9gf0aNUbUalhxZvNV6gP0,865 -django/forms/jinja2/django/forms/errors/dict/default.html,sha256=1DLQf0Czjr5V4cghQOyJr3v34G2ClF0RAOc-H7GwXUE,49 -django/forms/jinja2/django/forms/errors/dict/text.txt,sha256=E7eqEWc6q2_kLyc9k926klRe2mPp4O2VqG-2_MliYaU,113 -django/forms/jinja2/django/forms/errors/dict/ul.html,sha256=65EYJOqDAn7-ca7FtjrcdbXygLE-RA_IJQTltO7qS1Q,137 -django/forms/jinja2/django/forms/errors/list/default.html,sha256=q41d4u6XcxDL06gRAVdU021kM_iFLIt5BuYa-HATOWE,49 -django/forms/jinja2/django/forms/errors/list/text.txt,sha256=VVbLrGMHcbs1hK9-2v2Y6SIoH9qRMtlKzM6qzLVAFyE,52 -django/forms/jinja2/django/forms/errors/list/ul.html,sha256=AwXfGxnos6llX44dhxMChz6Kk6VStAJiNzUpSLN8_y4,119 -django/forms/jinja2/django/forms/formsets/default.html,sha256=VS7142h_1WElYa58vKdd9vfQiwaRxrQLyatBAI22T3U,77 -django/forms/jinja2/django/forms/formsets/div.html,sha256=uq10XZdQ1WSt6kJFoKxtluvnCKE4L3oYcLkPraF4ovs,86 -django/forms/jinja2/django/forms/formsets/p.html,sha256=HzEX7XdSDt9owDkYJvBdFIETeU9RDbXc1e4R2YEt6ec,84 -django/forms/jinja2/django/forms/formsets/table.html,sha256=L9B4E8lR0roTr7dBoMiUlekuMbO-3y4_b4NHm6Oy_Vg,88 -django/forms/jinja2/django/forms/formsets/ul.html,sha256=ANvMWb6EeFAtLPDTr61IeI3-YHtAYZCT_zmm-_y-5Oc,85 -django/forms/jinja2/django/forms/label.html,sha256=trXo6yF4ezDv-y-8y1yJnP7sSByw0TTppgZLcrmfR6M,147 -django/forms/jinja2/django/forms/p.html,sha256=fQJWWpBV4WgggOA-KULIY6vIIPTHNVlkfj9yOngfOOY,673 -django/forms/jinja2/django/forms/table.html,sha256=B6EEQIJDDpc2SHC5qJzOZylzjmLVA1IWzOQWzzvRZA8,814 -django/forms/jinja2/django/forms/ul.html,sha256=U6aaYi-Wb66KcLhRGJ_GeGc5TQyeUK9LKLTw4a8utoE,712 -django/forms/jinja2/django/forms/widgets/attrs.html,sha256=_J2P-AOpHFhIwaqCNcrJFxEY4s-KPdy0Wcq0KlarIG0,172 -django/forms/jinja2/django/forms/widgets/checkbox.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/checkbox_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55 -django/forms/jinja2/django/forms/widgets/checkbox_select.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 -django/forms/jinja2/django/forms/widgets/clearable_file_input.html,sha256=h5_tWYnKRjGTYkzOq6AfDpkffj31DdEolpdtInilitM,511 -django/forms/jinja2/django/forms/widgets/date.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/datetime.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/email.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/file.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/hidden.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/input.html,sha256=u12fZde-ugkEAAkPAtAfSxwGQmYBkXkssWohOUs-xoE,172 -django/forms/jinja2/django/forms/widgets/input_option.html,sha256=PyRNn9lmE9Da0-RK37zW4yJZUSiJWgIPCU9ou5oUC28,219 -django/forms/jinja2/django/forms/widgets/multiple_hidden.html,sha256=T54-n1ZeUlTd-svM3C4tLF42umKM0R5A7fdfsdthwkA,54 -django/forms/jinja2/django/forms/widgets/multiple_input.html,sha256=voM3dqu69R0Z202TmCgMFM6toJp7FgFPVvbWY9WKEAU,395 -django/forms/jinja2/django/forms/widgets/multiwidget.html,sha256=pr-MxRyucRxn_HvBGZvbc3JbFyrAolbroxvA4zmPz2Y,86 -django/forms/jinja2/django/forms/widgets/number.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/password.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 -django/forms/jinja2/django/forms/widgets/radio_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55 -django/forms/jinja2/django/forms/widgets/select.html,sha256=ESyDzbLTtM7-OG34EuSUnvxCtyP5IrQsZh0jGFrIdEA,365 -django/forms/jinja2/django/forms/widgets/select_date.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 -django/forms/jinja2/django/forms/widgets/select_option.html,sha256=tNa1D3G8iy2ZcWeKyI-mijjDjRmMaqSo-jnAR_VS3Qc,110 -django/forms/jinja2/django/forms/widgets/splitdatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 -django/forms/jinja2/django/forms/widgets/splithiddendatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 -django/forms/jinja2/django/forms/widgets/text.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/textarea.html,sha256=Av1Y-hpXUU2AjrhnUivgZFKNBLdwCSZSeuSmCqmCkDA,145 -django/forms/jinja2/django/forms/widgets/time.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/jinja2/django/forms/widgets/url.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/models.py,sha256=6SXOKVwG3b1ITj6I6TUXiLAfWybCUucDVoqrHPJ6Q4A,60129 -django/forms/renderers.py,sha256=7G1MxTkXh-MYoXcg12Bam_tukUdx_MZfkQkr-FXq8fI,3036 -django/forms/templates/django/forms/attrs.html,sha256=UFPgCXXCAkbumxZE1NM-aJVE4VCe2RjCrHLNseibv3I,165 -django/forms/templates/django/forms/default.html,sha256=stPE5cj2dGb6pxqKLtgDHPr14Qr6pcr4i_s2lCZDFF8,40 -django/forms/templates/django/forms/div.html,sha256=UpjHVpiDG6TL-8wf7egyA2yY8S7igoIWKe-_y1dX388,874 -django/forms/templates/django/forms/errors/dict/default.html,sha256=tFtwfHlkOY_XaKjoUPsWshiSWT5olxm3kDElND-GQtQ,48 -django/forms/templates/django/forms/errors/dict/text.txt,sha256=E7eqEWc6q2_kLyc9k926klRe2mPp4O2VqG-2_MliYaU,113 -django/forms/templates/django/forms/errors/dict/ul.html,sha256=65EYJOqDAn7-ca7FtjrcdbXygLE-RA_IJQTltO7qS1Q,137 -django/forms/templates/django/forms/errors/list/default.html,sha256=Kmx1nwrzQ49MaP80Gd17GC5TQH4B7doWa3I3azXvoHA,48 -django/forms/templates/django/forms/errors/list/text.txt,sha256=VVbLrGMHcbs1hK9-2v2Y6SIoH9qRMtlKzM6qzLVAFyE,52 -django/forms/templates/django/forms/errors/list/ul.html,sha256=5kt2ckbr3esK0yoPzco2EB0WzS8MvGzau_rAcomB508,118 -django/forms/templates/django/forms/formsets/default.html,sha256=VS7142h_1WElYa58vKdd9vfQiwaRxrQLyatBAI22T3U,77 -django/forms/templates/django/forms/formsets/div.html,sha256=lmIRSTBuGczEd2lj-UfDS9zAlVv8ntpmRo-boDDRwEg,84 -django/forms/templates/django/forms/formsets/p.html,sha256=qkoHKem-gb3iqvTtROBcHNJqI-RoUwLHUvJC6EoHg-I,82 -django/forms/templates/django/forms/formsets/table.html,sha256=N0G9GETzJfV16wUesvdrNMDwc8Fhh6durrmkHUPeDZY,86 -django/forms/templates/django/forms/formsets/ul.html,sha256=bGQpjbpKwMahyiIP4-2p3zg3yJP-pN1A48yCqhHdw7o,83 -django/forms/templates/django/forms/label.html,sha256=0bJCdIj8G5e2Gaw3QUR0ZMdwVavC80YwxS5E0ShkzmE,122 -django/forms/templates/django/forms/p.html,sha256=N3sx-PBlt3Trs6lfjE4oQa3owxhM3rqXTy-AQg9Hr44,684 -django/forms/templates/django/forms/table.html,sha256=zuLIyEOeNzV7aeIjIqIwM4XfZP_SlEc_OZ_x87rbOhY,825 -django/forms/templates/django/forms/ul.html,sha256=K8kCd5q4nD-_ChR47s3q5fkHd8BHrHAa830-5H8aXVI,723 -django/forms/templates/django/forms/widgets/attrs.html,sha256=9ylIPv5EZg-rx2qPLgobRkw6Zq_WJSM8kt106PpSYa0,172 -django/forms/templates/django/forms/widgets/checkbox.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/checkbox_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55 -django/forms/templates/django/forms/widgets/checkbox_select.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 -django/forms/templates/django/forms/widgets/clearable_file_input.html,sha256=h5_tWYnKRjGTYkzOq6AfDpkffj31DdEolpdtInilitM,511 -django/forms/templates/django/forms/widgets/date.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/datetime.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/email.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/file.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/hidden.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/input.html,sha256=dwzzrLocGLZQIaGe-_X8k7z87jV6AFtn28LilnUnUH0,189 -django/forms/templates/django/forms/widgets/input_option.html,sha256=PyRNn9lmE9Da0-RK37zW4yJZUSiJWgIPCU9ou5oUC28,219 -django/forms/templates/django/forms/widgets/multiple_hidden.html,sha256=T54-n1ZeUlTd-svM3C4tLF42umKM0R5A7fdfsdthwkA,54 -django/forms/templates/django/forms/widgets/multiple_input.html,sha256=jxEWRqV32a73340eQ0uIn672Xz5jW9qm3V_srByLEd0,426 -django/forms/templates/django/forms/widgets/multiwidget.html,sha256=slk4AgCdXnVmFvavhjVcsza0quTOP2LG50D8wna0dw0,117 -django/forms/templates/django/forms/widgets/number.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/password.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57 -django/forms/templates/django/forms/widgets/radio_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55 -django/forms/templates/django/forms/widgets/select.html,sha256=7U0RzjeESG87ENzQjPRUF71gvKvGjVVvXcpsW2-BTR4,384 -django/forms/templates/django/forms/widgets/select_date.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 -django/forms/templates/django/forms/widgets/select_option.html,sha256=N_psd0JYCqNhx2eh2oyvkF2KU2dv7M9mtMw_4BLYq8A,127 -django/forms/templates/django/forms/widgets/splitdatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 -django/forms/templates/django/forms/widgets/splithiddendatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54 -django/forms/templates/django/forms/widgets/text.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/textarea.html,sha256=Av1Y-hpXUU2AjrhnUivgZFKNBLdwCSZSeuSmCqmCkDA,145 -django/forms/templates/django/forms/widgets/time.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/templates/django/forms/widgets/url.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48 -django/forms/utils.py,sha256=cE0YGhNlmArdpQ6bS_OxFRcPlKNSkAwK1pQfw66x3rg,8161 -django/forms/widgets.py,sha256=4DqalSok0BDrgqtGnRalEUlvX9nlQdJDl2sfx3FzWYo,39447 -django/http/__init__.py,sha256=uVUz0ov-emc29hbD78QKKka_R1L4mpDDPhkyfkx4jzQ,1200 -django/http/__pycache__/__init__.cpython-312.pyc,, -django/http/__pycache__/cookie.cpython-312.pyc,, -django/http/__pycache__/multipartparser.cpython-312.pyc,, -django/http/__pycache__/request.cpython-312.pyc,, -django/http/__pycache__/response.cpython-312.pyc,, -django/http/cookie.py,sha256=t7yGORGClUnCYVKQqyLBlEYsxQLLHn9crsMSWqK_Eic,679 -django/http/multipartparser.py,sha256=VZM9Pu2NnPjhhftgdwIwxE1kLlRc-cr1eun3JiXCZOM,27333 -django/http/request.py,sha256=kTikMi8KmV1vUr9MeT7RuYl6yjFcRmdkSs6NOPNa52c,25533 -django/http/response.py,sha256=7UqDI04qLL1_XOjBmJfC59LhdF8sDTJYqXGADg5YfsU,25245 -django/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/middleware/__pycache__/__init__.cpython-312.pyc,, -django/middleware/__pycache__/cache.cpython-312.pyc,, -django/middleware/__pycache__/clickjacking.cpython-312.pyc,, -django/middleware/__pycache__/common.cpython-312.pyc,, -django/middleware/__pycache__/csrf.cpython-312.pyc,, -django/middleware/__pycache__/gzip.cpython-312.pyc,, -django/middleware/__pycache__/http.cpython-312.pyc,, -django/middleware/__pycache__/locale.cpython-312.pyc,, -django/middleware/__pycache__/security.cpython-312.pyc,, -django/middleware/cache.py,sha256=WAfMAUktNAqHGkTwC8iB0HVcZwQTdXBCLWFng4ERGgM,7951 -django/middleware/clickjacking.py,sha256=rIm2VlbblLWrMTRYJ1JBIui5xshAM-2mpyJf989xOgY,1724 -django/middleware/common.py,sha256=lahRODOz_Gkk_a_toXGJe3iFZ9n0wk_dOqULkMivNyA,7648 -django/middleware/csrf.py,sha256=kafupUsv55BCRSfFhoL_P41vsRAtvBdaJSsBn4E_2uw,19743 -django/middleware/gzip.py,sha256=jsJeYv0-A4iD6-1Pd3Hehl2ZtshpE4WeBTei-4PwciA,2945 -django/middleware/http.py,sha256=RqXN9Kp6GEh8j_ub7YXRi6W2_CKZTZEyAPpFUzeNPBs,1616 -django/middleware/locale.py,sha256=CV8aerSUWmO6cJQ6IrD5BzT3YlOxYNIqFraCqr8DoY4,3442 -django/middleware/security.py,sha256=yqawglqNcPrITIUvQhSpn3BD899It4fhyOyJCTImlXE,2599 -django/shortcuts.py,sha256=UniuxOq4cpBYCN-spLkUCFEYmA2SSXsozeS6xM2Lx8w,5009 -django/template/__init__.py,sha256=-hvAhcRO8ydLdjTJJFr6LYoBVCsJq561ebRqE9kYBJs,1845 -django/template/__pycache__/__init__.cpython-312.pyc,, -django/template/__pycache__/autoreload.cpython-312.pyc,, -django/template/__pycache__/base.cpython-312.pyc,, -django/template/__pycache__/context.cpython-312.pyc,, -django/template/__pycache__/context_processors.cpython-312.pyc,, -django/template/__pycache__/defaultfilters.cpython-312.pyc,, -django/template/__pycache__/defaulttags.cpython-312.pyc,, -django/template/__pycache__/engine.cpython-312.pyc,, -django/template/__pycache__/exceptions.cpython-312.pyc,, -django/template/__pycache__/library.cpython-312.pyc,, -django/template/__pycache__/loader.cpython-312.pyc,, -django/template/__pycache__/loader_tags.cpython-312.pyc,, -django/template/__pycache__/response.cpython-312.pyc,, -django/template/__pycache__/smartif.cpython-312.pyc,, -django/template/__pycache__/utils.cpython-312.pyc,, -django/template/autoreload.py,sha256=eW35nTUXJQsEuK8DFSeoeNQ3_zhOUP5uSPUgbiayPXk,1812 -django/template/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/template/backends/__pycache__/__init__.cpython-312.pyc,, -django/template/backends/__pycache__/base.cpython-312.pyc,, -django/template/backends/__pycache__/django.cpython-312.pyc,, -django/template/backends/__pycache__/dummy.cpython-312.pyc,, -django/template/backends/__pycache__/jinja2.cpython-312.pyc,, -django/template/backends/__pycache__/utils.cpython-312.pyc,, -django/template/backends/base.py,sha256=9jHA5fnVWXoUCQyMnNg7csGhXPEXvoBh4I9tzFw8TX8,2751 -django/template/backends/django.py,sha256=lgz9iF-NQvkbFBf-ByAH4QUklePnSbzYkQ6_X5so9NE,4394 -django/template/backends/dummy.py,sha256=M62stG_knf7AdVp42ZWWddkNv6g6ck_sc1nRR6Sc_xA,1751 -django/template/backends/jinja2.py,sha256=U9WBznoElT-REbITG7DnZgR7SA_Awf1gWS9vc0yrEfs,4036 -django/template/backends/utils.py,sha256=z5X_lxKa9qL4KFDVeai-FmsewU3KLgVHO8y-gHLiVts,424 -django/template/base.py,sha256=3HjabVBW7fA5IhOrqHFZAMvaKHg67Md1e3tzHXI2hRg,40344 -django/template/context.py,sha256=67y6QyhjnwxKx37h4vORKBSNao1tYAf95LhXszZ4O10,9004 -django/template/context_processors.py,sha256=PMIuGUE1iljf5L8oXggIdvvFOhCLJpASdwd39BMdjBE,2480 -django/template/defaultfilters.py,sha256=8HeGIglixCFhuvPCkmfIF6IaztzY7mn3PwXVqDHhRAI,28012 -django/template/defaulttags.py,sha256=tmxH0ATHHg7hzBnvKb8kla0EYpmJf-TuB8_CAeVwjug,48460 -django/template/engine.py,sha256=c4ZINgREkvys2WDKNVkuZqZKG4t1Qu02tUTnLx0WA54,7733 -django/template/exceptions.py,sha256=rqG3_qZq31tUHbmtZD-MIu0StChqwaFejFFpR4u7th4,1342 -django/template/library.py,sha256=BBP9JU72wrRzIHSFHqzSfi3y9A1c70hAMuyS-Fm97B0,13331 -django/template/loader.py,sha256=PVFUUtC5WgiRVVTilhQ6NFZnvjly6sP9s7anFmMoKdo,2054 -django/template/loader_tags.py,sha256=blVie4GNs8kGY_kh-1TLaoilIGGUJ5vc_Spcum0athA,13103 -django/template/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/template/loaders/__pycache__/__init__.cpython-312.pyc,, -django/template/loaders/__pycache__/app_directories.cpython-312.pyc,, -django/template/loaders/__pycache__/base.cpython-312.pyc,, -django/template/loaders/__pycache__/cached.cpython-312.pyc,, -django/template/loaders/__pycache__/filesystem.cpython-312.pyc,, -django/template/loaders/__pycache__/locmem.cpython-312.pyc,, -django/template/loaders/app_directories.py,sha256=sQpVXKYpnKr9Rl1YStNca-bGIQHcOkSnmm1l2qRGFVE,312 -django/template/loaders/base.py,sha256=Y5V4g0ly9GuNe7BQxaJSMENJnvxzXJm7XhSTxzfFM0s,1636 -django/template/loaders/cached.py,sha256=bDwkWYPgbvprU_u9f9w9oNYpSW_j9b7so_mlKzp9-N4,3716 -django/template/loaders/filesystem.py,sha256=f4silD7WWhv3K9QySMgW7dlGGNwwYAcHCMSTFpwiiXY,1506 -django/template/loaders/locmem.py,sha256=t9p0GYF2VHf4XG6Gggp0KBmHkdIuSKuLdiVXMVb2iHs,672 -django/template/response.py,sha256=UAU-aM7mn6cbGOIJuurn4EE5ITdcAqSFgKD5RXFms4w,5584 -django/template/smartif.py,sha256=eTzcnzPBdbkoiP8j9q_sa_47SoLLMqYdLKC3z0TbjpA,6407 -django/template/utils.py,sha256=c9cJRfmBXs-41xa8KkZiLkeqUAbd-8elKc_7WdnI3G0,3626 -django/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/templatetags/__pycache__/__init__.cpython-312.pyc,, -django/templatetags/__pycache__/cache.cpython-312.pyc,, -django/templatetags/__pycache__/i18n.cpython-312.pyc,, -django/templatetags/__pycache__/l10n.cpython-312.pyc,, -django/templatetags/__pycache__/static.cpython-312.pyc,, -django/templatetags/__pycache__/tz.cpython-312.pyc,, -django/templatetags/cache.py,sha256=OpiR0FQBsJC9p73aEcXQQamSySR2hwIx2wEiuD925pg,3545 -django/templatetags/i18n.py,sha256=UrS-aE3XCEK_oX18kmH8gSgA10MGHMeMTLOAESDtufI,19961 -django/templatetags/l10n.py,sha256=F6pnC2_7xNCKfNi0mcfzYQY8pzrQ9enK7_6-ZWzRu3A,1723 -django/templatetags/static.py,sha256=W4Rqt3DN_YtXe6EoqO-GLy7WR7xd7z0JsoX-VT0vvjc,4730 -django/templatetags/tz.py,sha256=sjPsTsOy7ndIirXowxNVno8GSNii0lC0L9u8xQfrZ_U,6095 -django/test/__init__.py,sha256=X12C98lKN5JW1-wms7B6OaMTo-Li90waQpjfJE1V3AE,834 -django/test/__pycache__/__init__.cpython-312.pyc,, -django/test/__pycache__/client.cpython-312.pyc,, -django/test/__pycache__/html.cpython-312.pyc,, -django/test/__pycache__/runner.cpython-312.pyc,, -django/test/__pycache__/selenium.cpython-312.pyc,, -django/test/__pycache__/signals.cpython-312.pyc,, -django/test/__pycache__/testcases.cpython-312.pyc,, -django/test/__pycache__/utils.cpython-312.pyc,, -django/test/client.py,sha256=RLga_T6za-Pz7FIdWr1G7ZWG1y5fD3dovA2FgmJokX4,43171 -django/test/html.py,sha256=L4Af_qk1ukVoXnW9ffkTEg4K-JvdHEZ5mixNRXzSDN8,9209 -django/test/runner.py,sha256=eb3JmDlWU2n6W2-R2UItxxsJj9dVMbGicaFg44pEi3g,41890 -django/test/selenium.py,sha256=0JPzph8lyk1i9taDCgsOvLhkxSh-jR-gvM4pPhdTGzc,5129 -django/test/signals.py,sha256=Iqop0UfLNsQozpEdzydcElVR80-0xbDlRuEQhY9VHTE,8154 -django/test/testcases.py,sha256=sgt5vBWLgcaZigoQTCJTuVz5_FyUTFr-0aVRyhTUqYc,70663 -django/test/utils.py,sha256=Wufm5_PDXggW1YniB8fPpclBePdEoHzEhIDbwfgVwgo,32887 -django/urls/__init__.py,sha256=BHyBIOD3E4_3Ng27SpXnRmqO3IzUqvBLCE4TTfs4wNs,1079 -django/urls/__pycache__/__init__.cpython-312.pyc,, -django/urls/__pycache__/base.cpython-312.pyc,, -django/urls/__pycache__/conf.cpython-312.pyc,, -django/urls/__pycache__/converters.cpython-312.pyc,, -django/urls/__pycache__/exceptions.cpython-312.pyc,, -django/urls/__pycache__/resolvers.cpython-312.pyc,, -django/urls/__pycache__/utils.cpython-312.pyc,, -django/urls/base.py,sha256=MDgpJtKVu7wKbWhzuo9SJUOyvIi3ndef0b_htzawIPU,5691 -django/urls/conf.py,sha256=uP_G78p31DejLa638fnOysaYwxWJETK5FDpJ6T9klj4,3425 -django/urls/converters.py,sha256=fVO-I8vTHL0H25GyElAYQWwSZtPMMNa9mJ1W-ZQrHyg,1216 -django/urls/exceptions.py,sha256=alLNjkORtAxneC00g4qnRpG5wouOHvJvGbymdpKtG_I,115 -django/urls/resolvers.py,sha256=I6D7POYEb9lha4_f-MWbwWgWOcg58fr_Odxo_zwH2Bk,31749 -django/urls/utils.py,sha256=MSSGo9sAlnsDG3fDt2zayhXwYMCL4qtBzVjQv8BwemA,2197 -django/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/utils/__pycache__/__init__.cpython-312.pyc,, -django/utils/__pycache__/_os.cpython-312.pyc,, -django/utils/__pycache__/archive.cpython-312.pyc,, -django/utils/__pycache__/asyncio.cpython-312.pyc,, -django/utils/__pycache__/autoreload.cpython-312.pyc,, -django/utils/__pycache__/baseconv.cpython-312.pyc,, -django/utils/__pycache__/cache.cpython-312.pyc,, -django/utils/__pycache__/connection.cpython-312.pyc,, -django/utils/__pycache__/crypto.cpython-312.pyc,, -django/utils/__pycache__/datastructures.cpython-312.pyc,, -django/utils/__pycache__/dateformat.cpython-312.pyc,, -django/utils/__pycache__/dateparse.cpython-312.pyc,, -django/utils/__pycache__/dates.cpython-312.pyc,, -django/utils/__pycache__/datetime_safe.cpython-312.pyc,, -django/utils/__pycache__/deconstruct.cpython-312.pyc,, -django/utils/__pycache__/decorators.cpython-312.pyc,, -django/utils/__pycache__/deprecation.cpython-312.pyc,, -django/utils/__pycache__/duration.cpython-312.pyc,, -django/utils/__pycache__/encoding.cpython-312.pyc,, -django/utils/__pycache__/feedgenerator.cpython-312.pyc,, -django/utils/__pycache__/formats.cpython-312.pyc,, -django/utils/__pycache__/functional.cpython-312.pyc,, -django/utils/__pycache__/hashable.cpython-312.pyc,, -django/utils/__pycache__/html.cpython-312.pyc,, -django/utils/__pycache__/http.cpython-312.pyc,, -django/utils/__pycache__/inspect.cpython-312.pyc,, -django/utils/__pycache__/ipv6.cpython-312.pyc,, -django/utils/__pycache__/itercompat.cpython-312.pyc,, -django/utils/__pycache__/jslex.cpython-312.pyc,, -django/utils/__pycache__/log.cpython-312.pyc,, -django/utils/__pycache__/lorem_ipsum.cpython-312.pyc,, -django/utils/__pycache__/module_loading.cpython-312.pyc,, -django/utils/__pycache__/numberformat.cpython-312.pyc,, -django/utils/__pycache__/regex_helper.cpython-312.pyc,, -django/utils/__pycache__/safestring.cpython-312.pyc,, -django/utils/__pycache__/termcolors.cpython-312.pyc,, -django/utils/__pycache__/text.cpython-312.pyc,, -django/utils/__pycache__/timesince.cpython-312.pyc,, -django/utils/__pycache__/timezone.cpython-312.pyc,, -django/utils/__pycache__/topological_sort.cpython-312.pyc,, -django/utils/__pycache__/tree.cpython-312.pyc,, -django/utils/__pycache__/version.cpython-312.pyc,, -django/utils/__pycache__/xmlutils.cpython-312.pyc,, -django/utils/_os.py,sha256=-_6vh_w0-c2wMUXveE45hj-QHf2HCq5KuWGUkX4_FvI,2310 -django/utils/archive.py,sha256=JExZfmiqSixQ_ujY7UM6sNShVpO5CsF-0hH2qyt44Eo,8086 -django/utils/asyncio.py,sha256=8vWyxUapJgxJJ9EOnpnhPHJtzfFPuyB4OPXT4YNEGPE,1894 -django/utils/autoreload.py,sha256=2BvHQfyodllw6L_rtjtv7PGGSUQC8qCI4jZ7efHwZr4,24413 -django/utils/baseconv.py,sha256=mnIn3_P2jqb8ytiFOiaCjrTFFujeNFT0EkympSmt7Ck,3268 -django/utils/cache.py,sha256=_KXTuv9dRe5SfPArmu8QIRFCPOm-d7GyB5BMcumbAac,16594 -django/utils/connection.py,sha256=2kqA6M_EObbZg6QKMXhX6p4YXG9RiPTUHwwN3mumhDY,2554 -django/utils/crypto.py,sha256=iF4x5Uad3sSVkfKSK-vzjDGFojrh3E6yoPK02tnjleo,3275 -django/utils/datastructures.py,sha256=ud8qmQXpo1Bfv5G4FX8JRGqPb1gLinJYuWvrA1gdJhE,10286 -django/utils/dateformat.py,sha256=ceHodLgA3LcI2w460p3KwDLiiJxUp52gxoL4KeU6itA,10113 -django/utils/dateparse.py,sha256=2lBci1DO1vWzXh0Wi9yShj6rD9pgh7UPsNgzvwFhyuI,5363 -django/utils/dates.py,sha256=zHUHeOkxuo53rTvHG3dWMLRfVyfaMLBIt5xmA4E_Ids,2179 -django/utils/datetime_safe.py,sha256=n-4BcrkI1hl0-NWVnMuwTOYiPQ_C-0dK2ZzO5_Y3hic,3094 -django/utils/deconstruct.py,sha256=RaeX2YTce1I9XJsQ0_FqYTcudPM5xu_--M1tAZm7LOA,2078 -django/utils/decorators.py,sha256=-4rtqDBAj4na63DrEwUZHaQQoXwe1iFw0aC6RjTLxlM,6940 -django/utils/deprecation.py,sha256=dSYSmhc24pxnlY1wmj5Qd3gIF5NOLD-3SqLkiKemvD4,5229 -django/utils/duration.py,sha256=HK5E36F1GGdPchCqHsmloYhrHX_ByyITvOHyuxtElSE,1230 -django/utils/encoding.py,sha256=ORdzozsRF-ywSdRt8mduVtl7mDTl8Chqx-tbz37pDDs,8847 -django/utils/feedgenerator.py,sha256=ORkZCUa8aazivb_qW8XhtKpRtM36BmMtyK6Eqp_uqqc,15635 -django/utils/formats.py,sha256=ms_dtWNndBjS7uiRNiuwUYerU6pEH0TS8YLSGHy0spw,10529 -django/utils/functional.py,sha256=x0q0YYkKLX3mOKeGM9VVGZF5DClDK5l9ITEgNifPYQ4,15162 -django/utils/hashable.py,sha256=kFbHnVOA4g-rTFI_1oHeNGA0ZEzAlY0vOeGTAeqxz7E,740 -django/utils/html.py,sha256=dMtnW-cPaz-uPSkh2GBGUCWQ076OrQuKr2kOni6_5bk,14213 -django/utils/http.py,sha256=Fdk2-5-BR-KOX-qlLoXL0usOWkd2wZYet7pxb0ykoLg,15368 -django/utils/inspect.py,sha256=lhDEOtmSLEub5Jj__MIgW3AyWOEVkaA6doJKKwBhZ6A,2235 -django/utils/ipv6.py,sha256=laDOQe_r4W-oVKLOgQ4aAJxs37n8P3LkH-eeIchJqh4,1333 -django/utils/itercompat.py,sha256=lacIDjczhxbwG4ON_KfG1H6VNPOGOpbRhnVhbedo2CY,184 -django/utils/jslex.py,sha256=cha8xFT5cQ0OMhKMsdsIq1THDndmKUNYNNieQ8BNa9E,8048 -django/utils/log.py,sha256=qkGXBz4zCVkfOUy-3ciMNOAf53Z94LyAeYxlyD3ykE8,7952 -django/utils/lorem_ipsum.py,sha256=yUtBgKhshftIpPg04pc1IrLpOBydZIf7g0isFCIJZqk,5473 -django/utils/module_loading.py,sha256=-a7qOb5rpp-Lw_51vyIPSdb7R40B16Er1Zc1C_a6ibY,3820 -django/utils/numberformat.py,sha256=4wbtfoxYbiQFfidhjlC37_Y060tSg1eHEFXQYbAn7WY,3792 -django/utils/regex_helper.py,sha256=gv0YfkofciCI4iptv_6GEwyLyVZg1_HFaNRwn3DuH4c,12771 -django/utils/safestring.py,sha256=-dKgvOyuADWC8mo0F5HH-OadkS87xF4OHzdB3_fpLUc,1876 -django/utils/termcolors.py,sha256=vvQbUH7GsFofGRSiKQwx4YvgE4yZMtAGRVz9QPDfisA,7386 -django/utils/text.py,sha256=ww2NyhzxVd_9I6O0_2sl5LTV29ncAD9J4jTu49_IGeo,16415 -django/utils/timesince.py,sha256=j9B_wSnsdS3ZXn9pt9GImOJDpgO61YMr_jtnUpZDx0g,4914 -django/utils/timezone.py,sha256=nlhILTMbMFZyK2iVUHRuyXhthU9tLBBKveeQH0BdPl0,10080 -django/utils/topological_sort.py,sha256=W_xR8enn8cY6W4oM8M2TnoidbbiYZbThfdI6UMI4-gc,1287 -django/utils/translation/__init__.py,sha256=MKFOm2b3sG8xLrR-wQFVt-RqFawI8lm8cDi14jX4OAc,8877 -django/utils/translation/__pycache__/__init__.cpython-312.pyc,, -django/utils/translation/__pycache__/reloader.cpython-312.pyc,, -django/utils/translation/__pycache__/template.cpython-312.pyc,, -django/utils/translation/__pycache__/trans_null.cpython-312.pyc,, -django/utils/translation/__pycache__/trans_real.cpython-312.pyc,, -django/utils/translation/reloader.py,sha256=oVM0xenn3fraUomMEFucvwlbr5UGYUijWnUn6FL55Zc,1114 -django/utils/translation/template.py,sha256=TOfPNT62RnUbUG64a_6d_VQ7tsDC1_F1TCopw_HwlcA,10549 -django/utils/translation/trans_null.py,sha256=niy_g1nztS2bPsINqK7_g0HcpI_w6hL-c8_hqpC7U7s,1287 -django/utils/translation/trans_real.py,sha256=AYamjmxjIyFJRB-LFJPhMTVmXyDfUsoZo9LsFhj8Bik,21758 -django/utils/tree.py,sha256=v8sNUsnsG2Loi9xBIIk0GmV5yN7VWOGTzbmk8BOEs6E,4394 -django/utils/version.py,sha256=M74iPaM0nPG2lboE6ftHS491jsK622bW56LuQY1eigA,3628 -django/utils/xmlutils.py,sha256=LsggeI4vhln3An_YXNBk2cCwKLQgMe-O_3L--j3o3GM,1172 -django/views/__init__.py,sha256=GIq6CKUBCbGpQVyK4xIoaAUDPrmRvbBPSX_KSHk0Bb4,63 -django/views/__pycache__/__init__.cpython-312.pyc,, -django/views/__pycache__/csrf.cpython-312.pyc,, -django/views/__pycache__/debug.cpython-312.pyc,, -django/views/__pycache__/defaults.cpython-312.pyc,, -django/views/__pycache__/i18n.cpython-312.pyc,, -django/views/__pycache__/static.cpython-312.pyc,, -django/views/csrf.py,sha256=8brhoog4O9MiOnXk_v79uiiHENwD0TwTvQzyXexl874,6306 -django/views/debug.py,sha256=FmEGRxl8uw_5xD72BOPwoGlD-0k4rYaAyCwTom1DsUM,24839 -django/views/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -django/views/decorators/__pycache__/__init__.cpython-312.pyc,, -django/views/decorators/__pycache__/cache.cpython-312.pyc,, -django/views/decorators/__pycache__/clickjacking.cpython-312.pyc,, -django/views/decorators/__pycache__/common.cpython-312.pyc,, -django/views/decorators/__pycache__/csrf.cpython-312.pyc,, -django/views/decorators/__pycache__/debug.cpython-312.pyc,, -django/views/decorators/__pycache__/gzip.cpython-312.pyc,, -django/views/decorators/__pycache__/http.cpython-312.pyc,, -django/views/decorators/__pycache__/vary.cpython-312.pyc,, -django/views/decorators/cache.py,sha256=4IK-tLiIdU1iSPPgCdAO-tfh3f55GJQt4fzMUQjbCG8,2340 -django/views/decorators/clickjacking.py,sha256=JH09VXGmZ5PmbL0nL7MTp16hgm6-LSFL62eUAaA_-IQ,1583 -django/views/decorators/common.py,sha256=Cs2wotQzXN0k2lAqiTDbfUnlVV62246jEcd1AKZlFJ8,494 -django/views/decorators/csrf.py,sha256=5mWGpfN5xTxqKJgVYWFh6rKMHH1wyNvjLsfEJGi6zoA,2079 -django/views/decorators/debug.py,sha256=UvaXiiuJJaYdXzK5jsi0i3MTMeN7Mi7eMaHmUFyHj4E,3141 -django/views/decorators/gzip.py,sha256=PtpSGd8BePa1utGqvKMFzpLtZJxpV2_Jej8llw5bCJY,253 -django/views/decorators/http.py,sha256=KfijhsLVYXnAl3yDCaJclihMcX3T4HS58e8gV1Bq8sE,4931 -django/views/decorators/vary.py,sha256=VcBaCDOEjy1CrIy0LnCt2cJdJRnqXgn3B43zmzKuZ80,1089 -django/views/defaults.py,sha256=D5Pqjk0GZKXsRaA1NKouNeMEyWGoD_Tdp47U5LMKfKI,4683 -django/views/generic/__init__.py,sha256=VwQKUbBFJktiq5J2fo3qRNzRc0STfcMRPChlLPYAkkE,886 -django/views/generic/__pycache__/__init__.cpython-312.pyc,, -django/views/generic/__pycache__/base.cpython-312.pyc,, -django/views/generic/__pycache__/dates.cpython-312.pyc,, -django/views/generic/__pycache__/detail.cpython-312.pyc,, -django/views/generic/__pycache__/edit.cpython-312.pyc,, -django/views/generic/__pycache__/list.cpython-312.pyc,, -django/views/generic/base.py,sha256=p5HbLA01-FQSqC3hSGIg7jQk23khBMn9ssg4d9GHui4,9275 -django/views/generic/dates.py,sha256=xwSEF6zsaSl1jUTePs6NPihnOJEWT-j8SST0RG4bco0,26332 -django/views/generic/detail.py,sha256=zrAuhJxrFvNqJLnlvK-NSiRiiONsKKOYFantD7UztwU,6663 -django/views/generic/edit.py,sha256=Gq0E2HTi9KZuIDJHC24tB4VQVRL0qLswqfyA9gRJ210,9747 -django/views/generic/list.py,sha256=KWsT5UOK5jflxn5JFoJCnyJEQXa0fM4talHswzEjzXU,7941 -django/views/i18n.py,sha256=AUaz74b6jHvvCmbmHEvDLbzJMqq3oXXKXEa4qyNvR4w,11454 -django/views/static.py,sha256=U7QLmzVwW3oiY_lrqW_kGcUVB2ZKYq5nq0Ij-K0w8Q8,4318 -django/views/templates/default_urlconf.html,sha256=iUBTjdiqkFOHDt9lG_hGl5YOfMCxoe5TMXINN8cfXaM,11117 -django/views/templates/technical_404.html,sha256=dJEOimEguJg6g4IhdRPG5HmdMy8D30U-lNI8wC8wwQs,2706 -django/views/templates/technical_500.html,sha256=x2Nr8PAHZfb3bVFhOxz3uSoqz_piWBVB_NCbNC87NAs,17662 -django/views/templates/technical_500.txt,sha256=b0ihE_FS7YtfAFOXU_yk0-CTgUmZ4ZkWVfkFHdEQXQI,3712 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/REQUESTED b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/WHEEL b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/WHEEL deleted file mode 100644 index becc9a6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.37.1) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/entry_points.txt b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/entry_points.txt deleted file mode 100644 index 22df67e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/entry_points.txt +++ /dev/null @@ -1,3 +0,0 @@ -[console_scripts] -django-admin = django.core.management:execute_from_command_line - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/top_level.txt b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/top_level.txt deleted file mode 100644 index d3e4ba5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/Django-4.2.11.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -django diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/__init__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/__init__.py deleted file mode 100644 index 153bbdf..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/__init__.py +++ /dev/null @@ -1,168 +0,0 @@ -""" -MySQLdb - A DB API v2.0 compatible interface to MySQL. - -This package is a wrapper around _mysql, which mostly implements the -MySQL C API. - -connect() -- connects to server - -See the C API specification and the MySQL documentation for more info -on other items. - -For information on how MySQLdb handles type conversion, see the -MySQLdb.converters module. -""" - -from .release import version_info -from . import _mysql - -if version_info != _mysql.version_info: - raise ImportError( - f"this is MySQLdb version {version_info}, " - f"but _mysql is version {_mysql.version_info!r}\n" - f"_mysql: {_mysql.__file__!r}" - ) - - -from ._mysql import ( - NotSupportedError, - OperationalError, - get_client_info, - ProgrammingError, - Error, - InterfaceError, - debug, - IntegrityError, - string_literal, - MySQLError, - DataError, - DatabaseError, - InternalError, - Warning, -) -from MySQLdb.constants import FIELD_TYPE -from MySQLdb.times import ( - Date, - Time, - Timestamp, - DateFromTicks, - TimeFromTicks, - TimestampFromTicks, -) - -threadsafety = 1 -apilevel = "2.0" -paramstyle = "format" - - -class DBAPISet(frozenset): - """A special type of set for which A == x is true if A is a - DBAPISet and x is a member of that set.""" - - def __eq__(self, other): - if isinstance(other, DBAPISet): - return not self.difference(other) - return other in self - - -STRING = DBAPISet([FIELD_TYPE.ENUM, FIELD_TYPE.STRING, FIELD_TYPE.VAR_STRING]) -BINARY = DBAPISet( - [ - FIELD_TYPE.BLOB, - FIELD_TYPE.LONG_BLOB, - FIELD_TYPE.MEDIUM_BLOB, - FIELD_TYPE.TINY_BLOB, - ] -) -NUMBER = DBAPISet( - [ - FIELD_TYPE.DECIMAL, - FIELD_TYPE.DOUBLE, - FIELD_TYPE.FLOAT, - FIELD_TYPE.INT24, - FIELD_TYPE.LONG, - FIELD_TYPE.LONGLONG, - FIELD_TYPE.TINY, - FIELD_TYPE.YEAR, - FIELD_TYPE.NEWDECIMAL, - ] -) -DATE = DBAPISet([FIELD_TYPE.DATE]) -TIME = DBAPISet([FIELD_TYPE.TIME]) -TIMESTAMP = DBAPISet([FIELD_TYPE.TIMESTAMP, FIELD_TYPE.DATETIME]) -DATETIME = TIMESTAMP -ROWID = DBAPISet() - - -def test_DBAPISet_set_equality(): - assert STRING == STRING - - -def test_DBAPISet_set_inequality(): - assert STRING != NUMBER - - -def test_DBAPISet_set_equality_membership(): - assert FIELD_TYPE.VAR_STRING == STRING - - -def test_DBAPISet_set_inequality_membership(): - assert FIELD_TYPE.DATE != STRING - - -def Binary(x): - return bytes(x) - - -def Connect(*args, **kwargs): - """Factory function for connections.Connection.""" - from MySQLdb.connections import Connection - - return Connection(*args, **kwargs) - - -connect = Connection = Connect - -__all__ = [ - "BINARY", - "Binary", - "Connect", - "Connection", - "DATE", - "Date", - "Time", - "Timestamp", - "DateFromTicks", - "TimeFromTicks", - "TimestampFromTicks", - "DataError", - "DatabaseError", - "Error", - "FIELD_TYPE", - "IntegrityError", - "InterfaceError", - "InternalError", - "MySQLError", - "NUMBER", - "NotSupportedError", - "DBAPISet", - "OperationalError", - "ProgrammingError", - "ROWID", - "STRING", - "TIME", - "TIMESTAMP", - "Warning", - "apilevel", - "connect", - "connections", - "constants", - "converters", - "cursors", - "debug", - "get_client_info", - "paramstyle", - "string_literal", - "threadsafety", - "version_info", -] diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_exceptions.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_exceptions.py deleted file mode 100644 index a5aca7e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_exceptions.py +++ /dev/null @@ -1,91 +0,0 @@ -"""Exception classes for _mysql and MySQLdb. - -These classes are dictated by the DB API v2.0: - - https://www.python.org/dev/peps/pep-0249/ -""" - - -class MySQLError(Exception): - """Exception related to operation with MySQL.""" - - __module__ = "MySQLdb" - - -class Warning(Warning, MySQLError): - """Exception raised for important warnings like data truncations - while inserting, etc.""" - - __module__ = "MySQLdb" - - -class Error(MySQLError): - """Exception that is the base class of all other error exceptions - (not Warning).""" - - __module__ = "MySQLdb" - - -class InterfaceError(Error): - """Exception raised for errors that are related to the database - interface rather than the database itself.""" - - __module__ = "MySQLdb" - - -class DatabaseError(Error): - """Exception raised for errors that are related to the - database.""" - - __module__ = "MySQLdb" - - -class DataError(DatabaseError): - """Exception raised for errors that are due to problems with the - processed data like division by zero, numeric value out of range, - etc.""" - - __module__ = "MySQLdb" - - -class OperationalError(DatabaseError): - """Exception raised for errors that are related to the database's - operation and not necessarily under the control of the programmer, - e.g. an unexpected disconnect occurs, the data source name is not - found, a transaction could not be processed, a memory allocation - error occurred during processing, etc.""" - - __module__ = "MySQLdb" - - -class IntegrityError(DatabaseError): - """Exception raised when the relational integrity of the database - is affected, e.g. a foreign key check fails, duplicate key, - etc.""" - - __module__ = "MySQLdb" - - -class InternalError(DatabaseError): - """Exception raised when the database encounters an internal - error, e.g. the cursor is not valid anymore, the transaction is - out of sync, etc.""" - - __module__ = "MySQLdb" - - -class ProgrammingError(DatabaseError): - """Exception raised for programming errors, e.g. table not found - or already exists, syntax error in the SQL statement, wrong number - of parameters specified, etc.""" - - __module__ = "MySQLdb" - - -class NotSupportedError(DatabaseError): - """Exception raised in case a method or database API was used - which is not supported by the database, e.g. requesting a - .rollback() on a connection that does not support transaction or - has transactions turned off.""" - - __module__ = "MySQLdb" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_mysql.c b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_mysql.c deleted file mode 100644 index b9ec1c1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_mysql.c +++ /dev/null @@ -1,2936 +0,0 @@ -/* -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. Alternatively, you may use the original license -reproduced below. - -Copyright 1999 by Comstar.net, Inc., Atlanta, GA, US. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Comstar.net, Inc. -or COMSTAR not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior permission. - -COMSTAR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -EVENT SHALL COMSTAR BE LIABLE FOR ANY SPECIAL, INDIRECT OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF -USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -*/ -#include -#include "mysql.h" -#include "mysqld_error.h" - -#if MYSQL_VERSION_ID >= 80000 -// https://github.com/mysql/mysql-server/commit/eb821c023cedc029ca0b06456dfae365106bee84 -// my_bool was typedef of char before MySQL 8.0.0. -#define my_bool bool -#endif - -#if ((MYSQL_VERSION_ID >= 50555 && MYSQL_VERSION_ID <= 50599) || \ -(MYSQL_VERSION_ID >= 50636 && MYSQL_VERSION_ID <= 50699) || \ -(MYSQL_VERSION_ID >= 50711 && MYSQL_VERSION_ID <= 50799) || \ -(MYSQL_VERSION_ID >= 80000)) && \ -!defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID) -#define HAVE_ENUM_MYSQL_OPT_SSL_MODE -#endif - -#define PY_SSIZE_T_CLEAN 1 -#include "Python.h" - -#if PY_MAJOR_VERSION == 2 -#error "Python 2 is not supported" -#endif - -#include "bytesobject.h" -#include "structmember.h" -#include "errmsg.h" - -#define MyAlloc(s,t) (s *) t.tp_alloc(&t,0) -#define MyFree(o) Py_TYPE(o)->tp_free((PyObject*)o) - -static PyObject *_mysql_MySQLError; -static PyObject *_mysql_Warning; -static PyObject *_mysql_Error; -static PyObject *_mysql_DatabaseError; -static PyObject *_mysql_InterfaceError; -static PyObject *_mysql_DataError; -static PyObject *_mysql_OperationalError; -static PyObject *_mysql_IntegrityError; -static PyObject *_mysql_InternalError; -static PyObject *_mysql_ProgrammingError; -static PyObject *_mysql_NotSupportedError; - -typedef struct { - PyObject_HEAD - MYSQL connection; - bool open; - bool reconnect; - PyObject *converter; -} _mysql_ConnectionObject; - -#define check_connection(c) \ - if (!(c->open)) { \ - return _mysql_Exception(c); \ - }; - -#define result_connection(r) ((_mysql_ConnectionObject *)r->conn) -#define check_result_connection(r) check_connection(result_connection(r)) - -extern PyTypeObject _mysql_ConnectionObject_Type; - -typedef struct { - PyObject_HEAD - PyObject *conn; - MYSQL_RES *result; - int nfields; - int use; - char has_next; - PyObject *converter; - const char *encoding; -} _mysql_ResultObject; - -extern PyTypeObject _mysql_ResultObject_Type; - - -PyObject * -_mysql_Exception(_mysql_ConnectionObject *c) -{ - PyObject *t, *e; - int merr; - - if (!(t = PyTuple_New(2))) return NULL; - if (!(c->open)) { - /* GH-270: When connection is closed, accessing the c->connection - * object may cause SEGV. - */ - merr = CR_SERVER_GONE_ERROR; - } - else { - merr = mysql_errno(&(c->connection)); - } - switch (merr) { - case 0: - e = _mysql_InterfaceError; - break; - case CR_COMMANDS_OUT_OF_SYNC: - case ER_DB_CREATE_EXISTS: - case ER_SYNTAX_ERROR: - case ER_PARSE_ERROR: - case ER_NO_SUCH_TABLE: - case ER_WRONG_DB_NAME: - case ER_WRONG_TABLE_NAME: - case ER_FIELD_SPECIFIED_TWICE: - case ER_INVALID_GROUP_FUNC_USE: - case ER_UNSUPPORTED_EXTENSION: - case ER_TABLE_MUST_HAVE_COLUMNS: -#ifdef ER_CANT_DO_THIS_DURING_AN_TRANSACTION - case ER_CANT_DO_THIS_DURING_AN_TRANSACTION: -#endif - e = _mysql_ProgrammingError; - break; -#ifdef WARN_DATA_TRUNCATED - case WARN_DATA_TRUNCATED: -#ifdef WARN_NULL_TO_NOTNULL - case WARN_NULL_TO_NOTNULL: -#endif -#ifdef ER_WARN_DATA_OUT_OF_RANGE - case ER_WARN_DATA_OUT_OF_RANGE: -#endif -#ifdef ER_NO_DEFAULT - case ER_NO_DEFAULT: -#endif -#ifdef ER_PRIMARY_CANT_HAVE_NULL - case ER_PRIMARY_CANT_HAVE_NULL: -#endif -#ifdef ER_DATA_TOO_LONG - case ER_DATA_TOO_LONG: -#endif -#ifdef ER_DATETIME_FUNCTION_OVERFLOW - case ER_DATETIME_FUNCTION_OVERFLOW: -#endif - e = _mysql_DataError; - break; -#endif - case ER_DUP_ENTRY: -#ifdef ER_DUP_UNIQUE - case ER_DUP_UNIQUE: -#endif -#ifdef ER_NO_REFERENCED_ROW - case ER_NO_REFERENCED_ROW: -#endif -#ifdef ER_NO_REFERENCED_ROW_2 - case ER_NO_REFERENCED_ROW_2: -#endif -#ifdef ER_ROW_IS_REFERENCED - case ER_ROW_IS_REFERENCED: -#endif -#ifdef ER_ROW_IS_REFERENCED_2 - case ER_ROW_IS_REFERENCED_2: -#endif -#ifdef ER_CANNOT_ADD_FOREIGN - case ER_CANNOT_ADD_FOREIGN: -#endif -#ifdef ER_NO_DEFAULT_FOR_FIELD - case ER_NO_DEFAULT_FOR_FIELD: -#endif - case ER_BAD_NULL_ERROR: - e = _mysql_IntegrityError; - break; -#ifdef ER_WARNING_NOT_COMPLETE_ROLLBACK - case ER_WARNING_NOT_COMPLETE_ROLLBACK: -#endif -#ifdef ER_NOT_SUPPORTED_YET - case ER_NOT_SUPPORTED_YET: -#endif -#ifdef ER_FEATURE_DISABLED - case ER_FEATURE_DISABLED: -#endif -#ifdef ER_UNKNOWN_STORAGE_ENGINE - case ER_UNKNOWN_STORAGE_ENGINE: -#endif - e = _mysql_NotSupportedError; - break; - default: - if (merr < 1000) - e = _mysql_InternalError; - else - e = _mysql_OperationalError; - break; - } - PyTuple_SET_ITEM(t, 0, PyLong_FromLong((long)merr)); - PyTuple_SET_ITEM(t, 1, PyUnicode_FromString(mysql_error(&(c->connection)))); - PyErr_SetObject(e, t); - Py_DECREF(t); - return NULL; -} - -static const char *utf8 = "utf8"; - -static const char* -_get_encoding(MYSQL *mysql) -{ - MY_CHARSET_INFO cs; - mysql_get_character_set_info(mysql, &cs); - if (strncmp(utf8, cs.csname, 4) == 0) { // utf8, utf8mb3, utf8mb4 - return utf8; - } - else if (strncmp("latin1", cs.csname, 6) == 0) { - return "cp1252"; - } - else if (strncmp("koi8r", cs.csname, 5) == 0) { - return "koi8_r"; - } - else if (strncmp("koi8u", cs.csname, 5) == 0) { - return "koi8_u"; - } - return cs.csname; -} - -static char _mysql_ResultObject__doc__[] = -"result(connection, use=0, converter={}) -- Result set from a query.\n\ -\n\ -Creating instances of this class directly is an excellent way to\n\ -shoot yourself in the foot. If using _mysql.connection directly,\n\ -use connection.store_result() or connection.use_result() instead.\n\ -If using MySQLdb.Connection, this is done by the cursor class.\n\ -Just forget you ever saw this. Forget... FOR-GET..."; - -static int -_mysql_ResultObject_Initialize( - _mysql_ResultObject *self, - PyObject *args, - PyObject *kwargs) -{ - static char *kwlist[] = {"connection", "use", "converter", NULL}; - MYSQL_RES *result; - _mysql_ConnectionObject *conn=NULL; - int use=0; - PyObject *conv=NULL; - int n, i; - MYSQL_FIELD *fields; - - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!|iO", kwlist, - &_mysql_ConnectionObject_Type, &conn, &use, &conv)) - return -1; - - self->conn = (PyObject *) conn; - Py_INCREF(conn); - self->use = use; - Py_BEGIN_ALLOW_THREADS ; - if (use) - result = mysql_use_result(&(conn->connection)); - else - result = mysql_store_result(&(conn->connection)); - self->result = result; - self->has_next = (char)mysql_more_results(&(conn->connection)); - Py_END_ALLOW_THREADS ; - - self->encoding = _get_encoding(&(conn->connection)); - //fprintf(stderr, "encoding=%s\n", self->encoding); - if (!result) { - if (mysql_errno(&(conn->connection))) { - _mysql_Exception(conn); - return -1; - } - self->converter = PyTuple_New(0); - return 0; - } - n = mysql_num_fields(result); - self->nfields = n; - if (!(self->converter = PyTuple_New(n))) { - return -1; - } - fields = mysql_fetch_fields(result); - for (i=0; iconverter, i, fun); - } - - return 0; -} - -static int _mysql_ResultObject_traverse( - _mysql_ResultObject *self, - visitproc visit, - void *arg) -{ - int r; - if (self->converter) { - if (!(r = visit(self->converter, arg))) return r; - } - if (self->conn) - return visit(self->conn, arg); - return 0; -} - -static int _mysql_ResultObject_clear(_mysql_ResultObject *self) -{ - Py_CLEAR(self->converter); - Py_CLEAR(self->conn); - return 0; -} - -enum { - SSLMODE_DISABLED = 1, - SSLMODE_PREFERRED = 2, - SSLMODE_REQUIRED = 3, - SSLMODE_VERIFY_CA = 4, - SSLMODE_VERIFY_IDENTITY = 5 -}; - -static int -_get_ssl_mode_num(const char *ssl_mode) -{ - static const char *ssl_mode_list[] = { - "DISABLED", "PREFERRED", "REQUIRED", "VERIFY_CA", "VERIFY_IDENTITY" }; - unsigned int i; - for (i=0; i < sizeof(ssl_mode_list)/sizeof(ssl_mode_list[0]); i++) { - if (strcmp(ssl_mode, ssl_mode_list[i]) == 0) { - // SSL_MODE one-based - return i + 1; - } - } - return -1; -} - -static int -_mysql_ConnectionObject_Initialize( - _mysql_ConnectionObject *self, - PyObject *args, - PyObject *kwargs) -{ - MYSQL *conn = NULL; - PyObject *conv = NULL; - PyObject *ssl = NULL; - const char *ssl_mode = NULL; - const char *key = NULL, *cert = NULL, *ca = NULL, - *capath = NULL, *cipher = NULL; - PyObject *ssl_keepref[5] = {NULL}; - int n_ssl_keepref = 0; - char *host = NULL, *user = NULL, *passwd = NULL, - *db = NULL, *unix_socket = NULL; - unsigned int port = 0; - unsigned int client_flag = 0; - static char *kwlist[] = { "host", "user", "password", "database", "port", - "unix_socket", "conv", - "connect_timeout", "compress", - "named_pipe", "init_command", - "read_default_file", "read_default_group", - "client_flag", "ssl", "ssl_mode", - "local_infile", - "read_timeout", "write_timeout", "charset", - "auth_plugin", - NULL } ; - int connect_timeout = 0; - int read_timeout = 0; - int write_timeout = 0; - int compress = -1, named_pipe = -1, local_infile = -1; - int ssl_mode_num = SSLMODE_PREFERRED; - char *init_command=NULL, - *read_default_file=NULL, - *read_default_group=NULL, - *charset=NULL, - *auth_plugin=NULL; - - self->converter = NULL; - self->open = false; - self->reconnect = false; - - if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "|ssssisOiiisssiOsiiiss:connect", - kwlist, - &host, &user, &passwd, &db, - &port, &unix_socket, &conv, - &connect_timeout, - &compress, &named_pipe, - &init_command, &read_default_file, - &read_default_group, - &client_flag, &ssl, &ssl_mode, - &local_infile, - &read_timeout, - &write_timeout, - &charset, - &auth_plugin - )) - return -1; - -#define _stringsuck(d,t,s) {t=PyMapping_GetItemString(s,#d);\ - if(t){d=PyUnicode_AsUTF8(t);ssl_keepref[n_ssl_keepref++]=t;}\ - PyErr_Clear();} - - char ssl_mode_set = 0; - if (ssl) { - if (PyMapping_Check(ssl)) { - PyObject *value = NULL; - _stringsuck(ca, value, ssl); - _stringsuck(capath, value, ssl); - _stringsuck(cert, value, ssl); - _stringsuck(key, value, ssl); - _stringsuck(cipher, value, ssl); - } else if (PyObject_IsTrue(ssl)) { - // Support ssl=True from mysqlclient 2.2.4. - // for compatibility with PyMySQL and mysqlclient==2.2.1&libmariadb. - ssl_mode_num = SSLMODE_REQUIRED; - ssl_mode_set = 1; - } else { - ssl_mode_num = SSLMODE_DISABLED; - ssl_mode_set = 1; - } - } - if (ssl_mode) { - if ((ssl_mode_num = _get_ssl_mode_num(ssl_mode)) <= 0) { - PyErr_SetString(_mysql_NotSupportedError, "Unknown ssl_mode specification"); - return -1; - } - ssl_mode_set = 1; - } - - conn = mysql_init(&(self->connection)); - if (!conn) { - PyErr_SetNone(PyExc_MemoryError); - return -1; - } - self->open = true; - - if (connect_timeout) { - unsigned int timeout = connect_timeout; - mysql_options(&(self->connection), MYSQL_OPT_CONNECT_TIMEOUT, - (char *)&timeout); - } - if (read_timeout) { - unsigned int timeout = read_timeout; - mysql_options(&(self->connection), MYSQL_OPT_READ_TIMEOUT, - (char *)&timeout); - } - if (write_timeout) { - unsigned int timeout = write_timeout; - mysql_options(&(self->connection), MYSQL_OPT_WRITE_TIMEOUT, - (char *)&timeout); - } - if (compress != -1) { - mysql_options(&(self->connection), MYSQL_OPT_COMPRESS, 0); - client_flag |= CLIENT_COMPRESS; - } - if (named_pipe != -1) - mysql_options(&(self->connection), MYSQL_OPT_NAMED_PIPE, 0); - if (init_command != NULL) - mysql_options(&(self->connection), MYSQL_INIT_COMMAND, init_command); - if (read_default_file != NULL) - mysql_options(&(self->connection), MYSQL_READ_DEFAULT_FILE, read_default_file); - if (read_default_group != NULL) - mysql_options(&(self->connection), MYSQL_READ_DEFAULT_GROUP, read_default_group); - - if (local_infile != -1) - mysql_options(&(self->connection), MYSQL_OPT_LOCAL_INFILE, (char *) &local_infile); - - if (ssl) { - mysql_options(&(self->connection), MYSQL_OPT_SSL_KEY, key); - mysql_options(&(self->connection), MYSQL_OPT_SSL_CERT, cert); - mysql_options(&(self->connection), MYSQL_OPT_SSL_CA, ca); - mysql_options(&(self->connection), MYSQL_OPT_SSL_CAPATH, capath); - mysql_options(&(self->connection), MYSQL_OPT_SSL_CIPHER, cipher); - } - - if (ssl_mode_set) { -#ifdef HAVE_ENUM_MYSQL_OPT_SSL_MODE - mysql_options(&(self->connection), MYSQL_OPT_SSL_MODE, &ssl_mode_num); -#else - // MariaDB doesn't support MYSQL_OPT_SSL_MODE. - // See https://github.com/PyMySQL/mysqlclient/issues/474 - // TODO: Does MariaDB supports PREFERRED and VERIFY_CA? - // We support only two levels for now. - my_bool enforce_tls = 1; - if (ssl_mode_num >= SSLMODE_REQUIRED) { - mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_ENFORCE, (void *)&enforce_tls); - } - if (ssl_mode_num >= SSLMODE_VERIFY_CA) { - mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (void *)&enforce_tls); - } -#endif - } - - if (charset) { - mysql_options(&(self->connection), MYSQL_SET_CHARSET_NAME, charset); - } - if (auth_plugin) { - mysql_options(&(self->connection), MYSQL_DEFAULT_AUTH, auth_plugin); - } - - Py_BEGIN_ALLOW_THREADS - conn = mysql_real_connect(&(self->connection), host, user, passwd, db, - port, unix_socket, client_flag); - Py_END_ALLOW_THREADS - - if (ssl) { - int i; - for (i=0; iconverter = conv; - - /* - PyType_GenericAlloc() automatically sets up GC allocation and - tracking for GC objects, at least in 2.2.1, so it does not need to - be done here. tp_dealloc still needs to call PyObject_GC_UnTrack(), - however. - */ - return 0; -} - -static char _mysql_connect__doc__[] = -"Returns a MYSQL connection object. Exclusive use of\n\ -keyword parameters strongly recommended. Consult the\n\ -MySQL C API documentation for more details.\n\ -\n\ -host\n\ - string, host to connect\n\ -\n\ -user\n\ - string, user to connect as\n\ -\n\ -password\n\ - string, password to use\n\ -\n\ -database\n\ - string, database to use\n\ -\n\ -port\n\ - integer, TCP/IP port to connect to\n\ -\n\ -unix_socket\n\ - string, location of unix_socket (UNIX-ish only)\n\ -\n\ -conv\n\ - mapping, maps MySQL FIELD_TYPE.* to Python functions which\n\ - convert a string to the appropriate Python type\n\ -\n\ -connect_timeout\n\ - number of seconds to wait before the connection\n\ - attempt fails.\n\ -\n\ -compress\n\ - if set, gzip compression is enabled\n\ -\n\ -named_pipe\n\ - if set, connect to server via named pipe (Windows only)\n\ -\n\ -init_command\n\ - command which is run once the connection is created\n\ -\n\ -read_default_file\n\ - see the MySQL documentation for mysql_options()\n\ -\n\ -read_default_group\n\ - see the MySQL documentation for mysql_options()\n\ -\n\ -client_flag\n\ - client flags from MySQLdb.constants.CLIENT\n\ -\n\ -load_infile\n\ - int, non-zero enables LOAD LOCAL INFILE, zero disables\n\ -\n\ -"; - -static PyObject * -_mysql_connect( - PyObject *self, - PyObject *args, - PyObject *kwargs) -{ - _mysql_ConnectionObject *c=NULL; - - c = MyAlloc(_mysql_ConnectionObject, _mysql_ConnectionObject_Type); - if (c == NULL) return NULL; - if (_mysql_ConnectionObject_Initialize(c, args, kwargs)) { - Py_DECREF(c); - c = NULL; - } - return (PyObject *) c; -} - -static int _mysql_ConnectionObject_traverse( - _mysql_ConnectionObject *self, - visitproc visit, - void *arg) -{ - if (self->converter) - return visit(self->converter, arg); - return 0; -} - -static int _mysql_ConnectionObject_clear( - _mysql_ConnectionObject *self) -{ - Py_XDECREF(self->converter); - self->converter = NULL; - return 0; -} - -static char _mysql_ConnectionObject_close__doc__[] = -"Close the connection. No further activity possible."; - -static PyObject * -_mysql_ConnectionObject_close( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - Py_BEGIN_ALLOW_THREADS - mysql_close(&(self->connection)); - Py_END_ALLOW_THREADS - self->open = false; - _mysql_ConnectionObject_clear(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_affected_rows__doc__ [] = -"Return number of rows affected by the last query.\n\ -Non-standard. Use Cursor.rowcount.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_affected_rows( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - my_ulonglong ret; - check_connection(self); - ret = mysql_affected_rows(&(self->connection)); - if (ret == (my_ulonglong)-1) - return PyLong_FromLong(-1); - return PyLong_FromUnsignedLongLong(ret); -} - -static char _mysql_debug__doc__[] = -"Does a DBUG_PUSH with the given string.\n\ -mysql_debug() uses the Fred Fish debug library.\n\ -To use this function, you must compile the client library to\n\ -support debugging.\n\ -"; -static PyObject * -_mysql_debug( - PyObject *self, - PyObject *args) -{ - char *debug; - if (!PyArg_ParseTuple(args, "s", &debug)) return NULL; - mysql_debug(debug); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_dump_debug_info__doc__[] = -"Instructs the server to write some debug information to the\n\ -log. The connected user must have the process privilege for\n\ -this to work. Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_dump_debug_info( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - int err; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - err = mysql_dump_debug_info(&(self->connection)); - Py_END_ALLOW_THREADS - if (err) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_autocommit__doc__[] = -"Set the autocommit mode. True values enable; False value disable.\n\ -"; -static PyObject * -_mysql_ConnectionObject_autocommit( - _mysql_ConnectionObject *self, - PyObject *args) -{ - int flag, err; - if (!PyArg_ParseTuple(args, "i", &flag)) return NULL; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - err = mysql_autocommit(&(self->connection), flag); - Py_END_ALLOW_THREADS - if (err) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_get_autocommit__doc__[] = -"Get the autocommit mode. True when enable; False when disable.\n"; - -static PyObject * -_mysql_ConnectionObject_get_autocommit( - _mysql_ConnectionObject *self, - PyObject *args) -{ - check_connection(self); - if (self->connection.server_status & SERVER_STATUS_AUTOCOMMIT) { - Py_RETURN_TRUE; - } - Py_RETURN_FALSE; -} - -static char _mysql_ConnectionObject_commit__doc__[] = -"Commits the current transaction\n\ -"; -static PyObject * -_mysql_ConnectionObject_commit( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - int err; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - err = mysql_commit(&(self->connection)); - Py_END_ALLOW_THREADS - if (err) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_rollback__doc__[] = -"Rolls back the current transaction\n\ -"; -static PyObject * -_mysql_ConnectionObject_rollback( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - int err; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - err = mysql_rollback(&(self->connection)); - Py_END_ALLOW_THREADS - if (err) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_next_result__doc__[] = -"If more query results exist, next_result() reads the next query\n\ -results and returns the status back to application.\n\ -\n\ -After calling next_result() the state of the connection is as if\n\ -you had called query() for the next query. This means that you can\n\ -now call store_result(), warning_count(), affected_rows()\n\ -, and so forth. \n\ -\n\ -Returns 0 if there are more results; -1 if there are no more results\n\ -\n\ -Non-standard.\n\ -"; -static PyObject * -_mysql_ConnectionObject_next_result( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - int err; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - err = mysql_next_result(&(self->connection)); - Py_END_ALLOW_THREADS - if (err > 0) return _mysql_Exception(self); - return PyLong_FromLong(err); -} - - -static char _mysql_ConnectionObject_set_server_option__doc__[] = -"set_server_option(option) -- Enables or disables an option\n\ -for the connection.\n\ -\n\ -Non-standard.\n\ -"; -static PyObject * -_mysql_ConnectionObject_set_server_option( - _mysql_ConnectionObject *self, - PyObject *args) -{ - int err, flags=0; - if (!PyArg_ParseTuple(args, "i", &flags)) - return NULL; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - err = mysql_set_server_option(&(self->connection), flags); - Py_END_ALLOW_THREADS - if (err) return _mysql_Exception(self); - return PyLong_FromLong(err); -} - -static char _mysql_ConnectionObject_sqlstate__doc__[] = -"Returns a string containing the SQLSTATE error code\n\ -for the last error. The error code consists of five characters.\n\ -'00000' means \"no error.\" The values are specified by ANSI SQL\n\ -and ODBC. For a list of possible values, see section 23\n\ -Error Handling in MySQL in the MySQL Manual.\n\ -\n\ -Note that not all MySQL errors are yet mapped to SQLSTATE's.\n\ -The value 'HY000' (general error) is used for unmapped errors.\n\ -\n\ -Non-standard.\n\ -"; -static PyObject * -_mysql_ConnectionObject_sqlstate( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyUnicode_FromString(mysql_sqlstate(&(self->connection))); -} - -static char _mysql_ConnectionObject_warning_count__doc__[] = -"Returns the number of warnings generated during execution\n\ -of the previous SQL statement.\n\ -\n\ -Non-standard.\n\ -"; -static PyObject * -_mysql_ConnectionObject_warning_count( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyLong_FromLong(mysql_warning_count(&(self->connection))); -} - -static char _mysql_ConnectionObject_errno__doc__[] = -"Returns the error code for the most recently invoked API function\n\ -that can succeed or fail. A return value of zero means that no error\n\ -occurred.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_errno( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyLong_FromLong((long)mysql_errno(&(self->connection))); -} - -static char _mysql_ConnectionObject_error__doc__[] = -"Returns the error message for the most recently invoked API function\n\ -that can succeed or fail. An empty string ("") is returned if no error\n\ -occurred.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_error( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyUnicode_FromString(mysql_error(&(self->connection))); -} - -static char _mysql_escape_string__doc__[] = -"escape_string(s) -- quote any SQL-interpreted characters in string s.\n\ -\n\ -Use connection.escape_string(s), if you use it at all.\n\ -_mysql.escape_string(s) cannot handle character sets. You are\n\ -probably better off using connection.escape(o) instead, since\n\ -it will escape entire sequences as well as strings."; - -static PyObject * -_mysql_escape_string( - _mysql_ConnectionObject *self, - PyObject *args) -{ - PyObject *str; - char *in, *out; - unsigned long len; - Py_ssize_t size; - if (!PyArg_ParseTuple(args, "s#:escape_string", &in, &size)) return NULL; - str = PyBytes_FromStringAndSize((char *) NULL, size*2+1); - if (!str) return PyErr_NoMemory(); - out = PyBytes_AS_STRING(str); - - if (self && PyModule_Check((PyObject*)self)) - self = NULL; - if (self && self->open) { -#if MYSQL_VERSION_ID >= 50707 && !defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID) - len = mysql_real_escape_string_quote(&(self->connection), out, in, size, '\''); -#else - len = mysql_real_escape_string(&(self->connection), out, in, size); -#endif - } else { - len = mysql_escape_string(out, in, size); - } - if (_PyBytes_Resize(&str, len) < 0) return NULL; - return (str); -} - -static char _mysql_string_literal__doc__[] = -"string_literal(obj) -- converts object obj into a SQL string literal.\n\ -This means, any special SQL characters are escaped, and it is enclosed\n\ -within single quotes. In other words, it performs:\n\ -\n\ -\"'%s'\" % escape_string(str(obj))\n\ -\n\ -Use connection.string_literal(obj), if you use it at all.\n\ -_mysql.string_literal(obj) cannot handle character sets."; - -static PyObject * -_mysql_string_literal( - _mysql_ConnectionObject *self, - PyObject *o) -{ - PyObject *s; // input string or bytes. need to decref. - - if (self && PyModule_Check((PyObject*)self)) - self = NULL; - - if (PyBytes_Check(o)) { - s = o; - Py_INCREF(s); - } - else { - PyObject *t = PyObject_Str(o); - if (!t) return NULL; - - const char *encoding = (self && self->open) ? - _get_encoding(&self->connection) : utf8; - if (encoding == utf8) { - s = t; - } - else { - s = PyUnicode_AsEncodedString(t, encoding, "strict"); - Py_DECREF(t); - if (!s) return NULL; - } - } - - // Prepare input string (in, size) - const char *in; - Py_ssize_t size; - if (PyUnicode_Check(s)) { - in = PyUnicode_AsUTF8AndSize(s, &size); - } else { - assert(PyBytes_Check(s)); - in = PyBytes_AsString(s); - size = PyBytes_GET_SIZE(s); - } - - // Prepare output buffer (str, out) - PyObject *str = PyBytes_FromStringAndSize((char *) NULL, size*2+3); - if (!str) { - Py_DECREF(s); - return PyErr_NoMemory(); - } - char *out = PyBytes_AS_STRING(str); - - // escape - unsigned long len; - if (self && self->open) { -#if MYSQL_VERSION_ID >= 50707 && !defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID) - len = mysql_real_escape_string_quote(&(self->connection), out+1, in, size, '\''); -#else - len = mysql_real_escape_string(&(self->connection), out+1, in, size); -#endif - } else { - len = mysql_escape_string(out+1, in, size); - } - - Py_DECREF(s); - *out = *(out+len+1) = '\''; - if (_PyBytes_Resize(&str, len+2) < 0) { - Py_DECREF(str); - return NULL; - } - return str; -} - -static PyObject * -_escape_item( - PyObject *self, - PyObject *item, - PyObject *d) -{ - PyObject *quoted=NULL, *itemtype, *itemconv; - if (!(itemtype = PyObject_Type(item))) { - return NULL; - } - itemconv = PyObject_GetItem(d, itemtype); - Py_DECREF(itemtype); - if (!itemconv) { - PyErr_Clear(); - return _mysql_string_literal((_mysql_ConnectionObject*)self, item); - } - Py_INCREF(d); - quoted = PyObject_CallFunction(itemconv, "OO", item, d); - Py_DECREF(d); - Py_DECREF(itemconv); - - return quoted; -} - -static char _mysql_escape__doc__[] = -"escape(obj, dict) -- escape any special characters in object obj\n\ -using mapping dict to provide quoting functions for each type.\n\ -Returns a SQL literal string."; -static PyObject * -_mysql_escape( - PyObject *self, - PyObject *args) -{ - PyObject *o=NULL, *d=NULL; - if (!PyArg_ParseTuple(args, "O|O:escape", &o, &d)) - return NULL; - if (d) { - if (!PyMapping_Check(d)) { - PyErr_SetString(PyExc_TypeError, - "argument 2 must be a mapping"); - return NULL; - } - return _escape_item(self, o, d); - } else { - if (!self) { - PyErr_SetString(PyExc_TypeError, - "argument 2 must be a mapping"); - return NULL; - } - return _escape_item(self, o, - ((_mysql_ConnectionObject *) self)->converter); - } -} - -static char _mysql_ResultObject_describe__doc__[] = -"Returns the sequence of 7-tuples required by the DB-API for\n\ -the Cursor.description attribute.\n\ -"; - -static PyObject * -_mysql_ResultObject_describe( - _mysql_ResultObject *self, - PyObject *noargs) -{ - PyObject *d; - MYSQL_FIELD *fields; - unsigned int i, n; - - check_result_connection(self); - - n = mysql_num_fields(self->result); - fields = mysql_fetch_fields(self->result); - if (!(d = PyTuple_New(n))) return NULL; - for (i=0; iencoding == utf8) { - name = PyUnicode_DecodeUTF8(fields[i].name, fields[i].name_length, "replace"); - } else { - name = PyUnicode_Decode(fields[i].name, fields[i].name_length, self->encoding, "replace"); - } - if (name == NULL) { - goto error; - } - - t = Py_BuildValue("(Niiiiii)", - name, - (long) fields[i].type, - (long) fields[i].max_length, - (long) fields[i].length, - (long) fields[i].length, - (long) fields[i].decimals, - (long) !(IS_NOT_NULL(fields[i].flags))); - if (!t) goto error; - PyTuple_SET_ITEM(d, i, t); - } - return d; - error: - Py_XDECREF(d); - return NULL; -} - -static char _mysql_ResultObject_field_flags__doc__[] = -"Returns a tuple of field flags, one for each column in the result.\n\ -" ; - -static PyObject * -_mysql_ResultObject_field_flags( - _mysql_ResultObject *self, - PyObject *noargs) -{ - PyObject *d; - MYSQL_FIELD *fields; - unsigned int i, n; - check_result_connection(self); - n = mysql_num_fields(self->result); - fields = mysql_fetch_fields(self->result); - if (!(d = PyTuple_New(n))) return NULL; - for (i=0; itype) { - case FIELD_TYPE_DECIMAL: - case FIELD_TYPE_NEWDECIMAL: - case FIELD_TYPE_TIMESTAMP: - case FIELD_TYPE_DATETIME: - case FIELD_TYPE_TIME: - case FIELD_TYPE_DATE: - binary = 0; // pass str, because these converters expect it - break; - default: // Default to just passing bytes - binary = 1; - } - return PyObject_CallFunction(converter, - binary ? "y#" : "s#", - rowitem, (Py_ssize_t)length); -} - -static PyObject * -_mysql_row_to_tuple( - _mysql_ResultObject *self, - MYSQL_ROW row, - PyObject *unused) -{ - unsigned int n, i; - unsigned long *length; - PyObject *r, *c; - MYSQL_FIELD *fields; - - n = mysql_num_fields(self->result); - if (!(r = PyTuple_New(n))) return NULL; - length = mysql_fetch_lengths(self->result); - fields = mysql_fetch_fields(self->result); - for (i=0; iconverter, i); - v = _mysql_field_to_python(c, row[i], length[i], &fields[i], self->encoding); - if (!v) goto error; - PyTuple_SET_ITEM(r, i, v); - } - return r; - error: - Py_XDECREF(r); - return NULL; -} - -static PyObject * -_mysql_row_to_dict( - _mysql_ResultObject *self, - MYSQL_ROW row, - PyObject *cache) -{ - unsigned int n, i; - unsigned long *length; - PyObject *r, *c; - MYSQL_FIELD *fields; - - n = mysql_num_fields(self->result); - if (!(r = PyDict_New())) return NULL; - length = mysql_fetch_lengths(self->result); - fields = mysql_fetch_fields(self->result); - for (i=0; iconverter, i); - v = _mysql_field_to_python(c, row[i], length[i], &fields[i], self->encoding); - if (!v) goto error; - - PyObject *pyname = PyUnicode_FromString(fields[i].name); - if (pyname == NULL) { - Py_DECREF(v); - goto error; - } - int err = PyDict_Contains(r, pyname); - if (err < 0) { // error - Py_DECREF(v); - goto error; - } - if (err) { // duplicate - Py_DECREF(pyname); - pyname = PyUnicode_FromFormat("%s.%s", fields[i].table, fields[i].name); - if (pyname == NULL) { - Py_DECREF(v); - goto error; - } - } - - err = PyDict_SetItem(r, pyname, v); - if (cache) { - PyTuple_SET_ITEM(cache, i, pyname); - } else { - Py_DECREF(pyname); - } - Py_DECREF(v); - if (err) { - goto error; - } - } - return r; -error: - Py_DECREF(r); - return NULL; -} - -static PyObject * -_mysql_row_to_dict_old( - _mysql_ResultObject *self, - MYSQL_ROW row, - PyObject *cache) -{ - unsigned int n, i; - unsigned long *length; - PyObject *r, *c; - MYSQL_FIELD *fields; - - n = mysql_num_fields(self->result); - if (!(r = PyDict_New())) return NULL; - length = mysql_fetch_lengths(self->result); - fields = mysql_fetch_fields(self->result); - for (i=0; iconverter, i); - v = _mysql_field_to_python(c, row[i], length[i], &fields[i], self->encoding); - if (!v) { - goto error; - } - - PyObject *pyname; - if (strlen(fields[i].table)) { - pyname = PyUnicode_FromFormat("%s.%s", fields[i].table, fields[i].name); - } else { - pyname = PyUnicode_FromString(fields[i].name); - } - int err = PyDict_SetItem(r, pyname, v); - Py_DECREF(v); - if (cache) { - PyTuple_SET_ITEM(cache, i, pyname); - } else { - Py_DECREF(pyname); - } - if (err) { - goto error; - } - } - return r; - error: - Py_XDECREF(r); - return NULL; -} - -static PyObject * -_mysql_row_to_dict_cached( - _mysql_ResultObject *self, - MYSQL_ROW row, - PyObject *cache) -{ - PyObject *r = PyDict_New(); - if (!r) { - return NULL; - } - - unsigned int n = mysql_num_fields(self->result); - unsigned long *length = mysql_fetch_lengths(self->result); - MYSQL_FIELD *fields = mysql_fetch_fields(self->result); - - for (unsigned int i=0; iconverter, i); - PyObject *v = _mysql_field_to_python(c, row[i], length[i], &fields[i], self->encoding); - if (!v) { - goto error; - } - - PyObject *pyname = PyTuple_GET_ITEM(cache, i); // borrowed - int err = PyDict_SetItem(r, pyname, v); - Py_DECREF(v); - if (err) { - goto error; - } - } - return r; - error: - Py_XDECREF(r); - return NULL; -} - - -typedef PyObject *_convertfunc(_mysql_ResultObject *, MYSQL_ROW, PyObject *); -static _convertfunc * const row_converters[] = { - _mysql_row_to_tuple, - _mysql_row_to_dict, - _mysql_row_to_dict_old -}; - -Py_ssize_t -_mysql__fetch_row( - _mysql_ResultObject *self, - PyObject *r, /* list object */ - Py_ssize_t maxrows, - int how) -{ - _convertfunc *convert_row = row_converters[how]; - - PyObject *cache = NULL; - if (maxrows > 0 && how > 0) { - cache = PyTuple_New(mysql_num_fields(self->result)); - if (!cache) { - return -1; - } - } - - Py_ssize_t i; - for (i = 0; i < maxrows; i++) { - MYSQL_ROW row; - if (!self->use) - row = mysql_fetch_row(self->result); - else { - Py_BEGIN_ALLOW_THREADS - row = mysql_fetch_row(self->result); - Py_END_ALLOW_THREADS - } - if (!row && mysql_errno(&(((_mysql_ConnectionObject *)(self->conn))->connection))) { - _mysql_Exception((_mysql_ConnectionObject *)self->conn); - goto error; - } - if (!row) { - break; - } - PyObject *v = convert_row(self, row, cache); - if (!v) { - goto error; - } - if (cache) { - convert_row = _mysql_row_to_dict_cached; - } - if (PyList_Append(r, v)) { - Py_DECREF(v); - goto error; - } - Py_DECREF(v); - } - Py_XDECREF(cache); - return i; -error: - Py_XDECREF(cache); - return -1; -} - -static char _mysql_ResultObject_fetch_row__doc__[] = -"fetch_row([maxrows, how]) -- Fetches up to maxrows as a tuple.\n\ -The rows are formatted according to how:\n\ -\n\ - 0 -- tuples (default)\n\ - 1 -- dictionaries, key=column or table.column if duplicated\n\ - 2 -- dictionaries, key=table.column\n\ -"; - -static PyObject * -_mysql_ResultObject_fetch_row( - _mysql_ResultObject *self, - PyObject *args, - PyObject *kwargs) -{ - static char *kwlist[] = {"maxrows", "how", NULL }; - int maxrows=1, how=0; - PyObject *r=NULL; - - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist, - &maxrows, &how)) - return NULL; - check_result_connection(self); - if (how >= (int)(sizeof(row_converters) / sizeof(row_converters[0]))) { - PyErr_SetString(PyExc_ValueError, "how out of range"); - return NULL; - } - if (!maxrows) { - if (self->use) { - maxrows = INT_MAX; - } else { - // todo: preallocate. - maxrows = (Py_ssize_t) mysql_num_rows(self->result); - } - } - if (!(r = PyList_New(0))) goto error; - Py_ssize_t rowsadded = _mysql__fetch_row(self, r, maxrows, how); - if (rowsadded == -1) goto error; - - /* DB-API allows return rows as list. - * But we need to return list because Django expecting tuple. - */ - PyObject *t = PyList_AsTuple(r); - Py_DECREF(r); - return t; - error: - Py_XDECREF(r); - return NULL; -} - -static const char _mysql_ResultObject_discard__doc__[] = -"discard() -- Discard remaining rows in the resultset."; - -static PyObject * -_mysql_ResultObject_discard( - _mysql_ResultObject *self, - PyObject *noargs) -{ - check_result_connection(self); - - MYSQL_ROW row; - Py_BEGIN_ALLOW_THREADS - while (NULL != (row = mysql_fetch_row(self->result))) { - // do nothing - } - Py_END_ALLOW_THREADS - _mysql_ConnectionObject *conn = (_mysql_ConnectionObject *)self->conn; - if (mysql_errno(&conn->connection)) { - return _mysql_Exception(conn); - } - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_change_user__doc__[] = -"Changes the user and causes the database specified by db to\n\ -become the default (current) database on the connection\n\ -specified by mysql. In subsequent queries, this database is\n\ -the default for table references that do not include an\n\ -explicit database specifier.\n\ -\n\ -This function was introduced in MySQL Version 3.23.3.\n\ -\n\ -Fails unless the connected user can be authenticated or if he\n\ -doesn't have permission to use the database. In this case the\n\ -user and database are not changed.\n\ -\n\ -The db parameter may be set to None if you don't want to have\n\ -a default database.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_change_user( - _mysql_ConnectionObject *self, - PyObject *args, - PyObject *kwargs) -{ - char *user, *pwd=NULL, *db=NULL; - int r; - static char *kwlist[] = { "user", "passwd", "db", NULL } ; - - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|ss:change_user", - kwlist, &user, &pwd, &db)) - return NULL; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - r = mysql_change_user(&(self->connection), user, pwd, db); - Py_END_ALLOW_THREADS - if (r) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_character_set_name__doc__[] = -"Returns the default character set for the current connection.\n\ -Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_character_set_name( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - const char *s; - check_connection(self); - s = mysql_character_set_name(&(self->connection)); - return PyUnicode_FromString(s); -} - -static char _mysql_ConnectionObject_set_character_set__doc__[] = -"Sets the default character set for the current connection.\n\ -Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_set_character_set( - _mysql_ConnectionObject *self, - PyObject *args) -{ - const char *s; - int err; - if (!PyArg_ParseTuple(args, "s", &s)) return NULL; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - err = mysql_set_character_set(&(self->connection), s); - Py_END_ALLOW_THREADS - if (err) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -#if MYSQL_VERSION_ID >= 50010 -static char _mysql_ConnectionObject_get_character_set_info__doc__[] = -"Returns a dict with information about the current character set:\n\ -\n\ -collation\n\ - collation name\n\ -name\n\ - character set name\n\ -comment\n\ - comment or descriptive name\n\ -dir\n\ - character set directory\n\ -mbminlen\n\ - min. length for multibyte string\n\ -mbmaxlen\n\ - max. length for multibyte string\n\ -\n\ -Not all keys may be present, particularly dir.\n\ -\n\ -Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_get_character_set_info( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - PyObject *result; - MY_CHARSET_INFO cs; - - check_connection(self); - mysql_get_character_set_info(&(self->connection), &cs); - if (!(result = PyDict_New())) return NULL; - if (cs.csname) - PyDict_SetItemString(result, "name", PyUnicode_FromString(cs.csname)); - if (cs.name) - PyDict_SetItemString(result, "collation", PyUnicode_FromString(cs.name)); - if (cs.comment) - PyDict_SetItemString(result, "comment", PyUnicode_FromString(cs.comment)); - if (cs.dir) - PyDict_SetItemString(result, "dir", PyUnicode_FromString(cs.dir)); - PyDict_SetItemString(result, "mbminlen", PyLong_FromLong(cs.mbminlen)); - PyDict_SetItemString(result, "mbmaxlen", PyLong_FromLong(cs.mbmaxlen)); - return result; -} -#endif - -static char _mysql_ConnectionObject_get_native_connection__doc__[] = -"Return the internal MYSQL* wrapped in a PyCapsule object.\n\ -NOTE: this is a private API introduced ONLY for XTA integration,\n\ - don't use it for different use cases.\n\ - This method is supported only for XTA integration and support must\n\ - be asked to LIXA project: http://www.tiian.org/lixa/\n\ - Please DO NOT ask support to PyMySQL/mysqlclient-python project.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_get_native_connection( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - PyObject *result; - check_connection(self); - result = PyCapsule_New(&(self->connection), - "_mysql.connection.native_connection", NULL); - return result; -} - - -static char _mysql_get_client_info__doc__[] = -"get_client_info() -- Returns a string that represents\n\ -the client library version."; -static PyObject * -_mysql_get_client_info( - PyObject *self, - PyObject *noargs) -{ - return PyUnicode_FromString(mysql_get_client_info()); -} - -static char _mysql_ConnectionObject_get_host_info__doc__[] = -"Returns a string that represents the MySQL client library\n\ -version. Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_get_host_info( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyUnicode_FromString(mysql_get_host_info(&(self->connection))); -} - -static char _mysql_ConnectionObject_get_proto_info__doc__[] = -"Returns an unsigned integer representing the protocol version\n\ -used by the current connection. Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_get_proto_info( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyLong_FromLong((long)mysql_get_proto_info(&(self->connection))); -} - -static char _mysql_ConnectionObject_get_server_info__doc__[] = -"Returns a string that represents the server version number.\n\ -Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_get_server_info( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyUnicode_FromString(mysql_get_server_info(&(self->connection))); -} - -static char _mysql_ConnectionObject_info__doc__[] = -"Retrieves a string providing information about the most\n\ -recently executed query. Non-standard. Use messages or\n\ -Cursor.messages.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_info( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - const char *s; - check_connection(self); - s = mysql_info(&(self->connection)); - if (s) return PyUnicode_FromString(s); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_insert_id__doc__[] = -"Returns the ID generated for an AUTO_INCREMENT column by the previous\n\ -query. Use this function after you have performed an INSERT query into a\n\ -table that contains an AUTO_INCREMENT field.\n\ -\n\ -Note that this returns 0 if the previous query does not\n\ -generate an AUTO_INCREMENT value. If you need to save the value for\n\ -later, be sure to call this immediately after the query\n\ -that generates the value.\n\ -\n\ -The ID is updated after INSERT and UPDATE statements that generate\n\ -an AUTO_INCREMENT value or that set a column value to\n\ -LAST_INSERT_ID(expr). See section 6.3.5.2 Miscellaneous Functions\n\ -in the MySQL documentation.\n\ -\n\ -Also note that the value of the SQL LAST_INSERT_ID() function always\n\ -contains the most recently generated AUTO_INCREMENT value, and is not\n\ -reset between queries because the value of that function is maintained\n\ -in the server.\n\ -" ; - -static PyObject * -_mysql_ConnectionObject_insert_id( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - my_ulonglong r; - check_connection(self); - r = mysql_insert_id(&(self->connection)); - return PyLong_FromUnsignedLongLong(r); -} - -static char _mysql_ConnectionObject_kill__doc__[] = -"Asks the server to kill the thread specified by pid.\n\ -Non-standard. Deprecated."; - -static PyObject * -_mysql_ConnectionObject_kill( - _mysql_ConnectionObject *self, - PyObject *args) -{ - unsigned long pid; - int r; - char query[50]; - if (!PyArg_ParseTuple(args, "k:kill", &pid)) return NULL; - check_connection(self); - snprintf(query, 50, "KILL %lu", pid); - Py_BEGIN_ALLOW_THREADS - r = mysql_query(&(self->connection), query); - Py_END_ALLOW_THREADS - if (r) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_field_count__doc__[] = -"Returns the number of columns for the most recent query on the\n\ -connection. Non-standard. Will probably give you bogus results\n\ -on most cursor classes. Use Cursor.rowcount.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_field_count( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyLong_FromLong((long)mysql_field_count(&(self->connection))); -} - -static char _mysql_ConnectionObject_fileno__doc__[] = -"Return file descriptor of the underlying libmysqlclient connection.\n\ -This provides raw access to the underlying network connection.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_fileno( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - return PyLong_FromLong(self->connection.net.fd); -} - -static char _mysql_ResultObject_num_fields__doc__[] = -"Returns the number of fields (column) in the result." ; - -static PyObject * -_mysql_ResultObject_num_fields( - _mysql_ResultObject *self, - PyObject *noargs) -{ - check_result_connection(self); - return PyLong_FromLong((long)mysql_num_fields(self->result)); -} - -static char _mysql_ResultObject_num_rows__doc__[] = -"Returns the number of rows in the result set. Note that if\n\ -use=1, this will not return a valid value until the entire result\n\ -set has been read.\n\ -"; - -static PyObject * -_mysql_ResultObject_num_rows( - _mysql_ResultObject *self, - PyObject *noargs) -{ - check_result_connection(self); - return PyLong_FromUnsignedLongLong(mysql_num_rows(self->result)); -} - -static char _mysql_ConnectionObject_ping__doc__[] = -"Checks whether or not the connection to the server is working.\n\ -\n\ -This function can be used by clients that remain idle for a\n\ -long while, to check whether or not the server has closed the\n\ -connection.\n\ -\n\ -New in 1.2.2: Accepts an optional reconnect parameter. If True,\n\ -then the client will attempt reconnection. Note that this setting\n\ -is persistent. By default, this is on in MySQL<5.0.3, and off\n\ -thereafter.\n\ -MySQL 8.0.33 deprecated the MYSQL_OPT_RECONNECT option so reconnect\n\ -parameter is also deprecated in mysqlclient 2.2.1.\n\ -\n\ -Non-standard. You should assume that ping() performs an\n\ -implicit rollback; use only when starting a new transaction.\n\ -You have been warned.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_ping( - _mysql_ConnectionObject *self, - PyObject *args) -{ - int reconnect = 0; - if (!PyArg_ParseTuple(args, "|p", &reconnect)) return NULL; - check_connection(self); - if (reconnect != (self->reconnect == true)) { - // libmysqlclient show warning to stderr when MYSQL_OPT_RECONNECT is used. - // so we avoid using it as possible for now. - // TODO: Warn when reconnect is true. - // MySQL 8.0.33 show warning to stderr already. - // We will emit Pytohn warning in future. - my_bool recon = (my_bool)reconnect; - mysql_options(&self->connection, MYSQL_OPT_RECONNECT, &recon); - self->reconnect = (bool)reconnect; - } - int r; - Py_BEGIN_ALLOW_THREADS - r = mysql_ping(&(self->connection)); - Py_END_ALLOW_THREADS - if (r) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_query__doc__[] = -"Execute a query. store_result() or use_result() will get the\n\ -result set, if any. Non-standard. Use cursor() to create a cursor,\n\ -then cursor.execute().\n\ -" ; - -static PyObject * -_mysql_ConnectionObject_query( - _mysql_ConnectionObject *self, - PyObject *args) -{ - char *query; - Py_ssize_t len; - int r; - if (!PyArg_ParseTuple(args, "s#:query", &query, &len)) return NULL; - check_connection(self); - - Py_BEGIN_ALLOW_THREADS - r = mysql_real_query(&(self->connection), query, len); - Py_END_ALLOW_THREADS - if (r) return _mysql_Exception(self); - Py_RETURN_NONE; -} - - -static char _mysql_ConnectionObject_send_query__doc__[] = -"Send a query. Same to query() except not wait response.\n\n\ -Use read_query_result() before calling store_result() or use_result()\n"; - -static PyObject * -_mysql_ConnectionObject_send_query( - _mysql_ConnectionObject *self, - PyObject *args) -{ - char *query; - Py_ssize_t len; - int r; - MYSQL *mysql = &(self->connection); - if (!PyArg_ParseTuple(args, "s#:query", &query, &len)) return NULL; - check_connection(self); - - Py_BEGIN_ALLOW_THREADS - r = mysql_send_query(mysql, query, len); - Py_END_ALLOW_THREADS - if (r) return _mysql_Exception(self); - Py_RETURN_NONE; -} - - -static char _mysql_ConnectionObject_read_query_result__doc__[] = -"Read result of query sent by send_query().\n"; - -static PyObject * -_mysql_ConnectionObject_read_query_result( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - int r; - MYSQL *mysql = &(self->connection); - check_connection(self); - - Py_BEGIN_ALLOW_THREADS - r = (int)mysql_read_query_result(mysql); - Py_END_ALLOW_THREADS - if (r) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_select_db__doc__[] = -"Causes the database specified by db to become the default\n\ -(current) database on the connection specified by mysql. In subsequent\n\ -queries, this database is the default for table references that do not\n\ -include an explicit database specifier.\n\ -\n\ -Fails unless the connected user can be authenticated as having\n\ -permission to use the database.\n\ -\n\ -Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_select_db( - _mysql_ConnectionObject *self, - PyObject *args) -{ - char *db; - int r; - if (!PyArg_ParseTuple(args, "s:select_db", &db)) return NULL; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - r = mysql_select_db(&(self->connection), db); - Py_END_ALLOW_THREADS - if (r) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_shutdown__doc__[] = -"Asks the database server to shut down. The connected user must\n\ -have shutdown privileges. Non-standard. Deprecated.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_shutdown( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - int r; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - r = mysql_query(&(self->connection), "SHUTDOWN"); - Py_END_ALLOW_THREADS - if (r) return _mysql_Exception(self); - Py_RETURN_NONE; -} - -static char _mysql_ConnectionObject_stat__doc__[] = -"Returns a character string containing information similar to\n\ -that provided by the mysqladmin status command. This includes\n\ -uptime in seconds and the number of running threads,\n\ -questions, reloads, and open tables. Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_stat( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - const char *s; - check_connection(self); - Py_BEGIN_ALLOW_THREADS - s = mysql_stat(&(self->connection)); - Py_END_ALLOW_THREADS - if (!s) return _mysql_Exception(self); - return PyUnicode_FromString(s); -} - -static char _mysql_ConnectionObject_store_result__doc__[] = -"Returns a result object acquired by mysql_store_result\n\ -(results stored in the client). If no results are available,\n\ -None is returned. Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_store_result( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - PyObject *arglist=NULL, *kwarglist=NULL, *result=NULL; - _mysql_ResultObject *r=NULL; - - check_connection(self); - arglist = Py_BuildValue("(OiO)", self, 0, self->converter); - if (!arglist) goto error; - kwarglist = PyDict_New(); - if (!kwarglist) goto error; - r = MyAlloc(_mysql_ResultObject, _mysql_ResultObject_Type); - if (!r) goto error; - if (_mysql_ResultObject_Initialize(r, arglist, kwarglist)) { - Py_DECREF(r); - goto error; - } - result = (PyObject *) r; - if (!(r->result)) { - Py_DECREF(result); - Py_INCREF(Py_None); - result = Py_None; - } - error: - Py_XDECREF(arglist); - Py_XDECREF(kwarglist); - return result; -} - -static char _mysql_ConnectionObject_thread_id__doc__[] = -"Returns the thread ID of the current connection. This value\n\ -can be used as an argument to kill() to kill the thread.\n\ -\n\ -If the connection is lost and you reconnect with ping(), the\n\ -thread ID will change. This means you should not get the\n\ -thread ID and store it for later. You should get it when you\n\ -need it.\n\ -\n\ -Non-standard."; - -static PyObject * -_mysql_ConnectionObject_thread_id( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - unsigned long pid; - check_connection(self); - pid = mysql_thread_id(&(self->connection)); - return PyLong_FromLong((long)pid); -} - -static char _mysql_ConnectionObject_use_result__doc__[] = -"Returns a result object acquired by mysql_use_result\n\ -(results stored in the server). If no results are available,\n\ -None is returned. Non-standard.\n\ -"; - -static PyObject * -_mysql_ConnectionObject_use_result( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - PyObject *arglist=NULL, *kwarglist=NULL, *result=NULL; - _mysql_ResultObject *r=NULL; - - check_connection(self); - arglist = Py_BuildValue("(OiO)", self, 1, self->converter); - if (!arglist) return NULL; - kwarglist = PyDict_New(); - if (!kwarglist) goto error; - r = MyAlloc(_mysql_ResultObject, _mysql_ResultObject_Type); - if (!r) goto error; - if (_mysql_ResultObject_Initialize(r, arglist, kwarglist)) { - Py_DECREF(r); - goto error; - } - result = (PyObject *) r; - if (!(r->result)) { - Py_DECREF(result); - Py_INCREF(Py_None); - result = Py_None; - } - error: - Py_DECREF(arglist); - Py_XDECREF(kwarglist); - return result; -} - -static const char _mysql_ConnectionObject_discard_result__doc__[] = -"Discard current result set.\n\n" -"This function can be called instead of use_result() or store_result(). Non-standard."; - -static PyObject * -_mysql_ConnectionObject_discard_result( - _mysql_ConnectionObject *self, - PyObject *noargs) -{ - check_connection(self); - MYSQL *conn = &(self->connection); - - Py_BEGIN_ALLOW_THREADS; - - MYSQL_RES *res = mysql_use_result(conn); - if (res == NULL) { - Py_BLOCK_THREADS; - if (mysql_errno(conn) != 0) { - // fprintf(stderr, "mysql_use_result failed: %s\n", mysql_error(conn)); - return _mysql_Exception(self); - } - Py_RETURN_NONE; - } - - MYSQL_ROW row; - while (NULL != (row = mysql_fetch_row(res))) { - // do nothing. - } - mysql_free_result(res); - Py_END_ALLOW_THREADS; - if (mysql_errno(conn)) { - // fprintf(stderr, "mysql_free_result failed: %s\n", mysql_error(conn)); - return _mysql_Exception(self); - } - Py_RETURN_NONE; -} - -static void -_mysql_ConnectionObject_dealloc( - _mysql_ConnectionObject *self) -{ - PyObject_GC_UnTrack(self); - if (self->open) { - mysql_close(&(self->connection)); - self->open = false; - } - Py_CLEAR(self->converter); - MyFree(self); -} - -static PyObject * -_mysql_ConnectionObject_repr( - _mysql_ConnectionObject *self) -{ - char buf[300]; - if (self->open) - snprintf(buf, 300, "<_mysql.connection open to '%.256s' at %p>", - self->connection.host, self); - else - snprintf(buf, 300, "<_mysql.connection closed at %p>", self); - return PyUnicode_FromString(buf); -} - -static char _mysql_ResultObject_data_seek__doc__[] = -"data_seek(n) -- seek to row n of result set"; -static PyObject * -_mysql_ResultObject_data_seek( - _mysql_ResultObject *self, - PyObject *args) -{ - unsigned int row; - if (!PyArg_ParseTuple(args, "i:data_seek", &row)) return NULL; - check_result_connection(self); - mysql_data_seek(self->result, row); - Py_RETURN_NONE; -} - -static void -_mysql_ResultObject_dealloc( - _mysql_ResultObject *self) -{ - PyObject_GC_UnTrack((PyObject *)self); - mysql_free_result(self->result); - _mysql_ResultObject_clear(self); - MyFree(self); -} - -static PyObject * -_mysql_ResultObject_repr( - _mysql_ResultObject *self) -{ - char buf[300]; - snprintf(buf, 300, "<_mysql.result object at %p>", self); - return PyUnicode_FromString(buf); -} - -static PyMethodDef _mysql_ConnectionObject_methods[] = { - { - "affected_rows", - (PyCFunction)_mysql_ConnectionObject_affected_rows, - METH_NOARGS, - _mysql_ConnectionObject_affected_rows__doc__ - }, - { - "autocommit", - (PyCFunction)_mysql_ConnectionObject_autocommit, - METH_VARARGS, - _mysql_ConnectionObject_autocommit__doc__ - }, - { - "get_autocommit", - (PyCFunction)_mysql_ConnectionObject_get_autocommit, - METH_NOARGS, - _mysql_ConnectionObject_get_autocommit__doc__ - }, - { - "commit", - (PyCFunction)_mysql_ConnectionObject_commit, - METH_NOARGS, - _mysql_ConnectionObject_commit__doc__ - }, - { - "rollback", - (PyCFunction)_mysql_ConnectionObject_rollback, - METH_NOARGS, - _mysql_ConnectionObject_rollback__doc__ - }, - { - "next_result", - (PyCFunction)_mysql_ConnectionObject_next_result, - METH_NOARGS, - _mysql_ConnectionObject_next_result__doc__ - }, - { - "set_server_option", - (PyCFunction)_mysql_ConnectionObject_set_server_option, - METH_VARARGS, - _mysql_ConnectionObject_set_server_option__doc__ - }, - { - "sqlstate", - (PyCFunction)_mysql_ConnectionObject_sqlstate, - METH_NOARGS, - _mysql_ConnectionObject_sqlstate__doc__ - }, - { - "warning_count", - (PyCFunction)_mysql_ConnectionObject_warning_count, - METH_NOARGS, - _mysql_ConnectionObject_warning_count__doc__ - }, - { - "change_user", - (PyCFunction)_mysql_ConnectionObject_change_user, - METH_VARARGS | METH_KEYWORDS, - _mysql_ConnectionObject_change_user__doc__ - }, - { - "character_set_name", - (PyCFunction)_mysql_ConnectionObject_character_set_name, - METH_NOARGS, - _mysql_ConnectionObject_character_set_name__doc__ - }, - { - "set_character_set", - (PyCFunction)_mysql_ConnectionObject_set_character_set, - METH_VARARGS, - _mysql_ConnectionObject_set_character_set__doc__ - }, -#if MYSQL_VERSION_ID >= 50010 - { - "get_character_set_info", - (PyCFunction)_mysql_ConnectionObject_get_character_set_info, - METH_NOARGS, - _mysql_ConnectionObject_get_character_set_info__doc__ - }, -#endif - { - "_get_native_connection", - (PyCFunction)_mysql_ConnectionObject_get_native_connection, - METH_NOARGS, - _mysql_ConnectionObject_get_native_connection__doc__ - }, - { - "close", - (PyCFunction)_mysql_ConnectionObject_close, - METH_NOARGS, - _mysql_ConnectionObject_close__doc__ - }, - { - "dump_debug_info", - (PyCFunction)_mysql_ConnectionObject_dump_debug_info, - METH_NOARGS, - _mysql_ConnectionObject_dump_debug_info__doc__ - }, - { - "escape", - (PyCFunction)_mysql_escape, - METH_VARARGS, - _mysql_escape__doc__ - }, - { - "escape_string", - (PyCFunction)_mysql_escape_string, - METH_VARARGS, - _mysql_escape_string__doc__ - }, - { - "error", - (PyCFunction)_mysql_ConnectionObject_error, - METH_NOARGS, - _mysql_ConnectionObject_error__doc__ - }, - { - "errno", - (PyCFunction)_mysql_ConnectionObject_errno, - METH_NOARGS, - _mysql_ConnectionObject_errno__doc__ - }, - { - "field_count", - (PyCFunction)_mysql_ConnectionObject_field_count, - METH_NOARGS, - _mysql_ConnectionObject_field_count__doc__ - }, - { - "fileno", - (PyCFunction)_mysql_ConnectionObject_fileno, - METH_NOARGS, - _mysql_ConnectionObject_fileno__doc__ - }, - { - "get_host_info", - (PyCFunction)_mysql_ConnectionObject_get_host_info, - METH_NOARGS, - _mysql_ConnectionObject_get_host_info__doc__ - }, - { - "get_proto_info", - (PyCFunction)_mysql_ConnectionObject_get_proto_info, - METH_NOARGS, - _mysql_ConnectionObject_get_proto_info__doc__ - }, - { - "get_server_info", - (PyCFunction)_mysql_ConnectionObject_get_server_info, - METH_NOARGS, - _mysql_ConnectionObject_get_server_info__doc__ - }, - { - "info", - (PyCFunction)_mysql_ConnectionObject_info, - METH_NOARGS, - _mysql_ConnectionObject_info__doc__ - }, - { - "insert_id", - (PyCFunction)_mysql_ConnectionObject_insert_id, - METH_NOARGS, - _mysql_ConnectionObject_insert_id__doc__ - }, - { - "kill", - (PyCFunction)_mysql_ConnectionObject_kill, - METH_VARARGS, - _mysql_ConnectionObject_kill__doc__ - }, - { - "ping", - (PyCFunction)_mysql_ConnectionObject_ping, - METH_VARARGS, - _mysql_ConnectionObject_ping__doc__ - }, - { - "query", - (PyCFunction)_mysql_ConnectionObject_query, - METH_VARARGS, - _mysql_ConnectionObject_query__doc__ - }, - { - "send_query", - (PyCFunction)_mysql_ConnectionObject_send_query, - METH_VARARGS, - _mysql_ConnectionObject_send_query__doc__, - }, - { - "read_query_result", - (PyCFunction)_mysql_ConnectionObject_read_query_result, - METH_NOARGS, - _mysql_ConnectionObject_read_query_result__doc__, - }, - { - "select_db", - (PyCFunction)_mysql_ConnectionObject_select_db, - METH_VARARGS, - _mysql_ConnectionObject_select_db__doc__ - }, - { - "shutdown", - (PyCFunction)_mysql_ConnectionObject_shutdown, - METH_NOARGS, - _mysql_ConnectionObject_shutdown__doc__ - }, - { - "stat", - (PyCFunction)_mysql_ConnectionObject_stat, - METH_NOARGS, - _mysql_ConnectionObject_stat__doc__ - }, - { - "store_result", - (PyCFunction)_mysql_ConnectionObject_store_result, - METH_NOARGS, - _mysql_ConnectionObject_store_result__doc__ - }, - { - "string_literal", - (PyCFunction)_mysql_string_literal, - METH_O, - _mysql_string_literal__doc__}, - { - "thread_id", - (PyCFunction)_mysql_ConnectionObject_thread_id, - METH_NOARGS, - _mysql_ConnectionObject_thread_id__doc__ - }, - { - "use_result", - (PyCFunction)_mysql_ConnectionObject_use_result, - METH_NOARGS, - _mysql_ConnectionObject_use_result__doc__ - }, - { - "discard_result", - (PyCFunction)_mysql_ConnectionObject_discard_result, - METH_NOARGS, - _mysql_ConnectionObject_discard_result__doc__ - }, - {NULL, NULL} /* sentinel */ -}; - -static struct PyMemberDef _mysql_ConnectionObject_memberlist[] = { - { - "open", - T_INT, - offsetof(_mysql_ConnectionObject,open), - READONLY, - "True if connection is open" - }, - { - "converter", - T_OBJECT, - offsetof(_mysql_ConnectionObject,converter), - 0, - "Type conversion mapping" - }, - { - "server_capabilities", - T_ULONG, - offsetof(_mysql_ConnectionObject,connection.server_capabilities), - READONLY, - "Capabilities of server; consult MySQLdb.constants.CLIENT" - }, - { - "port", - T_UINT, - offsetof(_mysql_ConnectionObject,connection.port), - READONLY, - "TCP/IP port of the server connection" - }, - { - "client_flag", - T_ULONG, - offsetof(_mysql_ConnectionObject,connection.client_flag), - READONLY, - "Client flags; refer to MySQLdb.constants.CLIENT" - }, - {NULL} /* Sentinel */ -}; - -static PyMethodDef _mysql_ResultObject_methods[] = { - { - "data_seek", - (PyCFunction)_mysql_ResultObject_data_seek, - METH_VARARGS, - _mysql_ResultObject_data_seek__doc__ - }, - { - "describe", - (PyCFunction)_mysql_ResultObject_describe, - METH_NOARGS, - _mysql_ResultObject_describe__doc__ - }, - { - "fetch_row", - (PyCFunction)_mysql_ResultObject_fetch_row, - METH_VARARGS | METH_KEYWORDS, - _mysql_ResultObject_fetch_row__doc__ - }, - { - "discard", - (PyCFunction)_mysql_ResultObject_discard, - METH_NOARGS, - _mysql_ResultObject_discard__doc__ - }, - { - "field_flags", - (PyCFunction)_mysql_ResultObject_field_flags, - METH_NOARGS, - _mysql_ResultObject_field_flags__doc__ - }, - { - "num_fields", - (PyCFunction)_mysql_ResultObject_num_fields, - METH_NOARGS, - _mysql_ResultObject_num_fields__doc__ - }, - { - "num_rows", - (PyCFunction)_mysql_ResultObject_num_rows, - METH_NOARGS, - _mysql_ResultObject_num_rows__doc__ - }, - {NULL, NULL} /* sentinel */ -}; - -static struct PyMemberDef _mysql_ResultObject_memberlist[] = { - { - "converter", - T_OBJECT, - offsetof(_mysql_ResultObject,converter), - READONLY, - "Type conversion mapping" - }, - { - "has_next", - T_BOOL, - offsetof(_mysql_ResultObject, has_next), - READONLY, - "Has next result" - }, - {NULL} /* Sentinel */ -}; - -static PyObject * -_mysql_ConnectionObject_getattro( - _mysql_ConnectionObject *self, - PyObject *name) -{ - const char *cname; - cname = PyUnicode_AsUTF8(name); - if (strcmp(cname, "closed") == 0) - return PyLong_FromLong((long)!(self->open)); - - return PyObject_GenericGetAttr((PyObject *)self, name); -} - -static int -_mysql_ConnectionObject_setattro( - _mysql_ConnectionObject *self, - PyObject *name, - PyObject *v) -{ - if (v == NULL) { - PyErr_SetString(PyExc_AttributeError, - "can't delete connection attributes"); - return -1; - } - return PyObject_GenericSetAttr((PyObject *)self, name, v); -} - -static int -_mysql_ResultObject_setattro( - _mysql_ResultObject *self, - PyObject *name, - PyObject *v) -{ - if (v == NULL) { - PyErr_SetString(PyExc_AttributeError, - "can't delete connection attributes"); - return -1; - } - return PyObject_GenericSetAttr((PyObject *)self, name, v); -} - -PyTypeObject _mysql_ConnectionObject_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "_mysql.connection", /* (char *)tp_name For printing */ - sizeof(_mysql_ConnectionObject), - 0, - (destructor)_mysql_ConnectionObject_dealloc, /* tp_dealloc */ - 0, /*tp_print*/ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /*tp_compare*/ - (reprfunc)_mysql_ConnectionObject_repr, /* tp_repr */ - - /* Method suites for standard classes */ - - 0, /* (PyNumberMethods *) tp_as_number */ - 0, /* (PySequenceMethods *) tp_as_sequence */ - 0, /* (PyMappingMethods *) tp_as_mapping */ - - /* More standard operations (here for binary compatibility) */ - - 0, /* (hashfunc) tp_hash */ - 0, /* (ternaryfunc) tp_call */ - 0, /* (reprfunc) tp_str */ - (getattrofunc)_mysql_ConnectionObject_getattro, /* tp_getattro */ - (setattrofunc)_mysql_ConnectionObject_setattro, /* tp_setattro */ - - /* Functions to access object as input/output buffer */ - 0, /* (PyBufferProcs *) tp_as_buffer */ - - /* (tp_flags) Flags to define presence of optional/expanded features */ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, - _mysql_connect__doc__, /* (char *) tp_doc Documentation string */ - - /* call function for all accessible objects */ - (traverseproc) _mysql_ConnectionObject_traverse, /* tp_traverse */ - - /* delete references to contained objects */ - (inquiry) _mysql_ConnectionObject_clear, /* tp_clear */ - - /* rich comparisons */ - 0, /* (richcmpfunc) tp_richcompare */ - - /* weak reference enabler */ - 0, /* (long) tp_weaklistoffset */ - - /* Iterators */ - 0, /* (getiterfunc) tp_iter */ - 0, /* (iternextfunc) tp_iternext */ - - /* Attribute descriptor and subclassing stuff */ - (struct PyMethodDef *)_mysql_ConnectionObject_methods, /* tp_methods */ - (struct PyMemberDef *)_mysql_ConnectionObject_memberlist, /* tp_members */ - 0, /* (struct getsetlist *) tp_getset; */ - 0, /* (struct _typeobject *) tp_base; */ - 0, /* (PyObject *) tp_dict */ - 0, /* (descrgetfunc) tp_descr_get */ - 0, /* (descrsetfunc) tp_descr_set */ - 0, /* (long) tp_dictoffset */ - (initproc)_mysql_ConnectionObject_Initialize, /* tp_init */ - NULL, /* tp_alloc */ - PyType_GenericNew, /* tp_new */ - NULL, /* tp_free Low-level free-memory routine */ - 0, /* (PyObject *) tp_bases */ - 0, /* (PyObject *) tp_mro method resolution order */ - 0, /* (PyObject *) tp_defined */ -} ; - -PyTypeObject _mysql_ResultObject_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "_mysql.result", - sizeof(_mysql_ResultObject), - 0, - (destructor)_mysql_ResultObject_dealloc, /* tp_dealloc */ - 0, /*tp_print*/ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /*tp_compare*/ - (reprfunc)_mysql_ResultObject_repr, /* tp_repr */ - - /* Method suites for standard classes */ - - 0, /* (PyNumberMethods *) tp_as_number */ - 0, /* (PySequenceMethods *) tp_as_sequence */ - 0, /* (PyMappingMethods *) tp_as_mapping */ - - /* More standard operations (here for binary compatibility) */ - - 0, /* (hashfunc) tp_hash */ - 0, /* (ternaryfunc) tp_call */ - 0, /* (reprfunc) tp_str */ - (getattrofunc)PyObject_GenericGetAttr, /* tp_getattro */ - (setattrofunc)_mysql_ResultObject_setattro, /* tp_setattr */ - - /* Functions to access object as input/output buffer */ - 0, /* (PyBufferProcs *) tp_as_buffer */ - - /* Flags to define presence of optional/expanded features */ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, - - _mysql_ResultObject__doc__, /* (char *) tp_doc Documentation string */ - - /* call function for all accessible objects */ - (traverseproc) _mysql_ResultObject_traverse, /* tp_traverse */ - - /* delete references to contained objects */ - (inquiry) _mysql_ResultObject_clear, /* tp_clear */ - - /* rich comparisons */ - 0, /* (richcmpfunc) tp_richcompare */ - - /* weak reference enabler */ - 0, /* (long) tp_weaklistoffset */ - - /* Iterators */ - 0, /* (getiterfunc) tp_iter */ - 0, /* (iternextfunc) tp_iternext */ - - /* Attribute descriptor and subclassing stuff */ - (struct PyMethodDef *) _mysql_ResultObject_methods, /* tp_methods */ - (struct PyMemberDef *) _mysql_ResultObject_memberlist, /*tp_members */ - 0, /* (struct getsetlist *) tp_getset; */ - 0, /* (struct _typeobject *) tp_base; */ - 0, /* (PyObject *) tp_dict */ - 0, /* (descrgetfunc) tp_descr_get */ - 0, /* (descrsetfunc) tp_descr_set */ - 0, /* (long) tp_dictoffset */ - (initproc)_mysql_ResultObject_Initialize, /* tp_init */ - NULL, /* tp_alloc */ - PyType_GenericNew, /* tp_new */ - NULL, /* tp_free Low-level free-memory routine */ - 0, /* (PyObject *) tp_bases */ - 0, /* (PyObject *) tp_mro method resolution order */ - 0, /* (PyObject *) tp_defined */ -}; - -static PyMethodDef -_mysql_methods[] = { - { - "connect", - (PyCFunction)_mysql_connect, - METH_VARARGS | METH_KEYWORDS, - _mysql_connect__doc__ - }, - { - "debug", - (PyCFunction)_mysql_debug, - METH_VARARGS, - _mysql_debug__doc__ - }, - { - "escape", - (PyCFunction)_mysql_escape, - METH_VARARGS, - _mysql_escape__doc__ - }, - { - "escape_string", - (PyCFunction)_mysql_escape_string, - METH_VARARGS, - _mysql_escape_string__doc__ - }, - { - "string_literal", - (PyCFunction)_mysql_string_literal, - METH_O, - _mysql_string_literal__doc__ - }, - { - "get_client_info", - (PyCFunction)_mysql_get_client_info, - METH_NOARGS, - _mysql_get_client_info__doc__ - }, - {NULL, NULL} /* sentinel */ -}; - -static PyObject * -_mysql_NewException( - PyObject *dict, - PyObject *edict, - char *name) -{ - PyObject *e; - if (!(e = PyDict_GetItemString(edict, name))) - return NULL; - if (PyDict_SetItemString(dict, name, e)) - return NULL; - Py_INCREF(e); - return e; -} - -#define QUOTE(X) _QUOTE(X) -#define _QUOTE(X) #X - -static char _mysql___doc__[] = -"an adaptation of the MySQL C API (mostly)\n\ -\n\ -You probably are better off using MySQLdb instead of using this\n\ -module directly.\n\ -\n\ -In general, renaming goes from mysql_* to _mysql.*. _mysql.connect()\n\ -returns a connection object (MYSQL). Functions which expect MYSQL * as\n\ -an argument are now methods of the connection object. A number of things\n\ -return result objects (MYSQL_RES). Functions which expect MYSQL_RES * as\n\ -an argument are now methods of the result object. Deprecated functions\n\ -(as of 3.23) are NOT implemented.\n\ -"; - -static struct PyModuleDef _mysqlmodule = { - PyModuleDef_HEAD_INIT, - "_mysql", /* name of module */ - _mysql___doc__, /* module documentation, may be NULL */ - -1, /* size of per-interpreter state of the module, - or -1 if the module keeps state in global variables. */ - _mysql_methods -}; - -PyMODINIT_FUNC -PyInit__mysql(void) -{ - PyObject *dict, *module, *emod, *edict; - - if (mysql_library_init(0, NULL, NULL)) { - PyErr_SetString(PyExc_ImportError, "_mysql: mysql_library_init failed"); - return NULL; - } - - if (PyType_Ready(&_mysql_ConnectionObject_Type) < 0) - return NULL; - if (PyType_Ready(&_mysql_ResultObject_Type) < 0) - return NULL; - - module = PyModule_Create(&_mysqlmodule); - if (!module) return module; /* this really should never happen */ - - if (!(dict = PyModule_GetDict(module))) goto error; - if (PyDict_SetItemString(dict, "version_info", - PyRun_String(QUOTE(version_info), Py_eval_input, - dict, dict))) - goto error; - if (PyDict_SetItemString(dict, "__version__", - PyUnicode_FromString(QUOTE(__version__)))) - goto error; - if (PyDict_SetItemString(dict, "connection", - (PyObject *)&_mysql_ConnectionObject_Type)) - goto error; - Py_INCREF(&_mysql_ConnectionObject_Type); - if (PyDict_SetItemString(dict, "result", - (PyObject *)&_mysql_ResultObject_Type)) - goto error; - Py_INCREF(&_mysql_ResultObject_Type); - if (!(emod = PyImport_ImportModule("MySQLdb._exceptions"))) { - PyErr_Print(); - goto error; - } - if (!(edict = PyModule_GetDict(emod))) goto error; - if (!(_mysql_MySQLError = - _mysql_NewException(dict, edict, "MySQLError"))) - goto error; - if (!(_mysql_Warning = - _mysql_NewException(dict, edict, "Warning"))) - goto error; - if (!(_mysql_Error = - _mysql_NewException(dict, edict, "Error"))) - goto error; - if (!(_mysql_InterfaceError = - _mysql_NewException(dict, edict, "InterfaceError"))) - goto error; - if (!(_mysql_DatabaseError = - _mysql_NewException(dict, edict, "DatabaseError"))) - goto error; - if (!(_mysql_DataError = - _mysql_NewException(dict, edict, "DataError"))) - goto error; - if (!(_mysql_OperationalError = - _mysql_NewException(dict, edict, "OperationalError"))) - goto error; - if (!(_mysql_IntegrityError = - _mysql_NewException(dict, edict, "IntegrityError"))) - goto error; - if (!(_mysql_InternalError = - _mysql_NewException(dict, edict, "InternalError"))) - goto error; - if (!(_mysql_ProgrammingError = - _mysql_NewException(dict, edict, "ProgrammingError"))) - goto error; - if (!(_mysql_NotSupportedError = - _mysql_NewException(dict, edict, "NotSupportedError"))) - goto error; - Py_DECREF(emod); - error: - if (PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "_mysql: init failed"); - module = NULL; - } - return module; -} - -/* vim: set ts=4 sts=4 sw=4 expandtab : */ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_mysql.cp312-win_amd64.pyd b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_mysql.cp312-win_amd64.pyd deleted file mode 100644 index 0ec8b83..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/_mysql.cp312-win_amd64.pyd and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/connections.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/connections.py deleted file mode 100644 index c713229..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/connections.py +++ /dev/null @@ -1,343 +0,0 @@ -""" -This module implements connections for MySQLdb. Presently there is -only one class: Connection. Others are unlikely. However, you might -want to make your own subclasses. In most cases, you will probably -override Connection.default_cursor with a non-standard Cursor class. -""" -import re - -from . import cursors, _mysql -from ._exceptions import ( - Warning, - Error, - InterfaceError, - DataError, - DatabaseError, - OperationalError, - IntegrityError, - InternalError, - NotSupportedError, - ProgrammingError, -) - -# Mapping from MySQL charset name to Python codec name -_charset_to_encoding = { - "utf8mb4": "utf8", - "utf8mb3": "utf8", - "latin1": "cp1252", - "koi8r": "koi8_r", - "koi8u": "koi8_u", -} - -re_numeric_part = re.compile(r"^(\d+)") - - -def numeric_part(s): - """Returns the leading numeric part of a string. - - >>> numeric_part("20-alpha") - 20 - >>> numeric_part("foo") - >>> numeric_part("16b") - 16 - """ - - m = re_numeric_part.match(s) - if m: - return int(m.group(1)) - return None - - -class Connection(_mysql.connection): - """MySQL Database Connection Object""" - - default_cursor = cursors.Cursor - - def __init__(self, *args, **kwargs): - """ - Create a connection to the database. It is strongly recommended - that you only use keyword parameters. Consult the MySQL C API - documentation for more information. - - :param str host: host to connect - :param str user: user to connect as - :param str password: password to use - :param str passwd: alias of password (deprecated) - :param str database: database to use - :param str db: alias of database (deprecated) - :param int port: TCP/IP port to connect to - :param str unix_socket: location of unix_socket to use - :param dict conv: conversion dictionary, see MySQLdb.converters - :param int connect_timeout: - number of seconds to wait before the connection attempt fails. - - :param bool compress: if set, compression is enabled - :param str named_pipe: if set, a named pipe is used to connect (Windows only) - :param str init_command: - command which is run once the connection is created - - :param str read_default_file: - file from which default client values are read - - :param str read_default_group: - configuration group to use from the default file - - :param type cursorclass: - class object, used to create cursors (keyword only) - - :param bool use_unicode: - If True, text-like columns are returned as unicode objects - using the connection's character set. Otherwise, text-like - columns are returned as bytes. Unicode objects will always - be encoded to the connection's character set regardless of - this setting. - Default to True. - - :param str charset: - If supplied, the connection character set will be changed - to this character set. - - :param str collation: - If ``charset`` and ``collation`` are both supplied, the - character set and collation for the current connection - will be set. - - If omitted, empty string, or None, the default collation - for the ``charset`` is implied. - - :param str auth_plugin: - If supplied, the connection default authentication plugin will be - changed to this value. Example values: - `mysql_native_password` or `caching_sha2_password` - - :param str sql_mode: - If supplied, the session SQL mode will be changed to this - setting. - For more details and legal values, see the MySQL documentation. - - :param int client_flag: - flags to use or 0 (see MySQL docs or constants/CLIENTS.py) - - :param bool multi_statements: - If True, enable multi statements for clients >= 4.1. - Defaults to True. - - :param str ssl_mode: - specify the security settings for connection to the server; - see the MySQL documentation for more details - (mysql_option(), MYSQL_OPT_SSL_MODE). - Only one of 'DISABLED', 'PREFERRED', 'REQUIRED', - 'VERIFY_CA', 'VERIFY_IDENTITY' can be specified. - - :param dict ssl: - dictionary or mapping contains SSL connection parameters; - see the MySQL documentation for more details - (mysql_ssl_set()). If this is set, and the client does not - support SSL, NotSupportedError will be raised. - Since mysqlclient 2.2.4, ssl=True is alias of ssl_mode=REQUIRED - for better compatibility with PyMySQL and MariaDB. - - :param bool local_infile: - enables LOAD LOCAL INFILE; zero disables - - :param bool autocommit: - If False (default), autocommit is disabled. - If True, autocommit is enabled. - If None, autocommit isn't set and server default is used. - - :param bool binary_prefix: - If set, the '_binary' prefix will be used for raw byte query - arguments (e.g. Binary). This is disabled by default. - - There are a number of undocumented, non-standard methods. See the - documentation for the MySQL C API for some hints on what they do. - """ - from MySQLdb.constants import CLIENT, FIELD_TYPE - from MySQLdb.converters import conversions, _bytes_or_str - - kwargs2 = kwargs.copy() - - if "db" in kwargs2: - kwargs2["database"] = kwargs2.pop("db") - if "passwd" in kwargs2: - kwargs2["password"] = kwargs2.pop("passwd") - - if "conv" in kwargs: - conv = kwargs["conv"] - else: - conv = conversions - - conv2 = {} - for k, v in conv.items(): - if isinstance(k, int) and isinstance(v, list): - conv2[k] = v[:] - else: - conv2[k] = v - kwargs2["conv"] = conv2 - - cursorclass = kwargs2.pop("cursorclass", self.default_cursor) - charset = kwargs2.get("charset", "") - collation = kwargs2.pop("collation", "") - use_unicode = kwargs2.pop("use_unicode", True) - sql_mode = kwargs2.pop("sql_mode", "") - self._binary_prefix = kwargs2.pop("binary_prefix", False) - - client_flag = kwargs.get("client_flag", 0) - client_flag |= CLIENT.MULTI_RESULTS - multi_statements = kwargs2.pop("multi_statements", True) - if multi_statements: - client_flag |= CLIENT.MULTI_STATEMENTS - kwargs2["client_flag"] = client_flag - - # PEP-249 requires autocommit to be initially off - autocommit = kwargs2.pop("autocommit", False) - - super().__init__(*args, **kwargs2) - self.cursorclass = cursorclass - self.encoders = { - k: v - for k, v in conv.items() - if type(k) is not int # noqa: E721 - } - - self._server_version = tuple( - [numeric_part(n) for n in self.get_server_info().split(".")[:2]] - ) - - self.encoding = "ascii" # overridden in set_character_set() - - if not charset: - charset = self.character_set_name() - self.set_character_set(charset, collation) - - if sql_mode: - self.set_sql_mode(sql_mode) - - if use_unicode: - for t in ( - FIELD_TYPE.STRING, - FIELD_TYPE.VAR_STRING, - FIELD_TYPE.VARCHAR, - FIELD_TYPE.TINY_BLOB, - FIELD_TYPE.MEDIUM_BLOB, - FIELD_TYPE.LONG_BLOB, - FIELD_TYPE.BLOB, - ): - self.converter[t] = _bytes_or_str - # Unlike other string/blob types, JSON is always text. - # MySQL may return JSON with charset==binary. - self.converter[FIELD_TYPE.JSON] = str - - self._transactional = self.server_capabilities & CLIENT.TRANSACTIONS - if self._transactional: - if autocommit is not None: - self.autocommit(autocommit) - self.messages = [] - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_value, traceback): - self.close() - - def autocommit(self, on): - on = bool(on) - if self.get_autocommit() != on: - _mysql.connection.autocommit(self, on) - - def cursor(self, cursorclass=None): - """ - Create a cursor on which queries may be performed. The - optional cursorclass parameter is used to create the - Cursor. By default, self.cursorclass=cursors.Cursor is - used. - """ - return (cursorclass or self.cursorclass)(self) - - def query(self, query): - # Since _mysql releases GIL while querying, we need immutable buffer. - if isinstance(query, bytearray): - query = bytes(query) - _mysql.connection.query(self, query) - - def _bytes_literal(self, bs): - assert isinstance(bs, (bytes, bytearray)) - x = self.string_literal(bs) # x is escaped and quoted bytes - if self._binary_prefix: - return b"_binary" + x - return x - - def _tuple_literal(self, t): - return b"(%s)" % (b",".join(map(self.literal, t))) - - def literal(self, o): - """If o is a single object, returns an SQL literal as a string. - If o is a non-string sequence, the items of the sequence are - converted and returned as a sequence. - - Non-standard. For internal use; do not use this in your - applications. - """ - if isinstance(o, str): - s = self.string_literal(o.encode(self.encoding)) - elif isinstance(o, bytearray): - s = self._bytes_literal(o) - elif isinstance(o, bytes): - s = self._bytes_literal(o) - elif isinstance(o, (tuple, list)): - s = self._tuple_literal(o) - else: - s = self.escape(o, self.encoders) - if isinstance(s, str): - s = s.encode(self.encoding) - assert isinstance(s, bytes) - return s - - def begin(self): - """Explicitly begin a connection. - - This method is not used when autocommit=False (default). - """ - self.query(b"BEGIN") - - def set_character_set(self, charset, collation=None): - """Set the connection character set to charset.""" - super().set_character_set(charset) - self.encoding = _charset_to_encoding.get(charset, charset) - if collation: - self.query(f"SET NAMES {charset} COLLATE {collation}") - self.store_result() - - def set_sql_mode(self, sql_mode): - """Set the connection sql_mode. See MySQL documentation for - legal values.""" - if self._server_version < (4, 1): - raise NotSupportedError("server is too old to set sql_mode") - self.query("SET SESSION sql_mode='%s'" % sql_mode) - self.store_result() - - def show_warnings(self): - """Return detailed information about warnings as a - sequence of tuples of (Level, Code, Message). This - is only supported in MySQL-4.1 and up. If your server - is an earlier version, an empty sequence is returned.""" - if self._server_version < (4, 1): - return () - self.query("SHOW WARNINGS") - r = self.store_result() - warnings = r.fetch_row(0) - return warnings - - Warning = Warning - Error = Error - InterfaceError = InterfaceError - DatabaseError = DatabaseError - DataError = DataError - OperationalError = OperationalError - IntegrityError = IntegrityError - InternalError = InternalError - ProgrammingError = ProgrammingError - NotSupportedError = NotSupportedError - - -# vim: colorcolumn=100 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/CLIENT.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/CLIENT.py deleted file mode 100644 index 35f578c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/CLIENT.py +++ /dev/null @@ -1,27 +0,0 @@ -"""MySQL CLIENT constants - -These constants are used when creating the connection. Use bitwise-OR -(|) to combine options together, and pass them as the client_flags -parameter to MySQLdb.Connection. For more information on these flags, -see the MySQL C API documentation for mysql_real_connect(). - -""" - -LONG_PASSWORD = 1 -FOUND_ROWS = 2 -LONG_FLAG = 4 -CONNECT_WITH_DB = 8 -NO_SCHEMA = 16 -COMPRESS = 32 -ODBC = 64 -LOCAL_FILES = 128 -IGNORE_SPACE = 256 -CHANGE_USER = 512 -INTERACTIVE = 1024 -SSL = 2048 -IGNORE_SIGPIPE = 4096 -TRANSACTIONS = 8192 # mysql_com.h was WRONG prior to 3.23.35 -RESERVED = 16384 -SECURE_CONNECTION = 32768 -MULTI_STATEMENTS = 65536 -MULTI_RESULTS = 131072 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/CR.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/CR.py deleted file mode 100644 index 9467ae1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/CR.py +++ /dev/null @@ -1,105 +0,0 @@ -"""MySQL Connection Errors - -Nearly all of these raise OperationalError. COMMANDS_OUT_OF_SYNC -raises ProgrammingError. - -""" - -if __name__ == "__main__": - """ - Usage: python CR.py [/path/to/mysql/errmsg.h ...] >> CR.py - """ - import fileinput - import re - - data = {} - error_last = None - for line in fileinput.input(): - line = re.sub(r"/\*.*?\*/", "", line) - m = re.match(r"^\s*#define\s+CR_([A-Z0-9_]+)\s+(\d+)(\s.*|$)", line) - if m: - name = m.group(1) - value = int(m.group(2)) - if name == "ERROR_LAST": - if error_last is None or error_last < value: - error_last = value - continue - if value not in data: - data[value] = set() - data[value].add(name) - for value, names in sorted(data.items()): - for name in sorted(names): - print(f"{name} = {value}") - if error_last is not None: - print("ERROR_LAST = %s" % error_last) - - -ERROR_FIRST = 2000 -MIN_ERROR = 2000 -UNKNOWN_ERROR = 2000 -SOCKET_CREATE_ERROR = 2001 -CONNECTION_ERROR = 2002 -CONN_HOST_ERROR = 2003 -IPSOCK_ERROR = 2004 -UNKNOWN_HOST = 2005 -SERVER_GONE_ERROR = 2006 -VERSION_ERROR = 2007 -OUT_OF_MEMORY = 2008 -WRONG_HOST_INFO = 2009 -LOCALHOST_CONNECTION = 2010 -TCP_CONNECTION = 2011 -SERVER_HANDSHAKE_ERR = 2012 -SERVER_LOST = 2013 -COMMANDS_OUT_OF_SYNC = 2014 -NAMEDPIPE_CONNECTION = 2015 -NAMEDPIPEWAIT_ERROR = 2016 -NAMEDPIPEOPEN_ERROR = 2017 -NAMEDPIPESETSTATE_ERROR = 2018 -CANT_READ_CHARSET = 2019 -NET_PACKET_TOO_LARGE = 2020 -EMBEDDED_CONNECTION = 2021 -PROBE_SLAVE_STATUS = 2022 -PROBE_SLAVE_HOSTS = 2023 -PROBE_SLAVE_CONNECT = 2024 -PROBE_MASTER_CONNECT = 2025 -SSL_CONNECTION_ERROR = 2026 -MALFORMED_PACKET = 2027 -WRONG_LICENSE = 2028 -NULL_POINTER = 2029 -NO_PREPARE_STMT = 2030 -PARAMS_NOT_BOUND = 2031 -DATA_TRUNCATED = 2032 -NO_PARAMETERS_EXISTS = 2033 -INVALID_PARAMETER_NO = 2034 -INVALID_BUFFER_USE = 2035 -UNSUPPORTED_PARAM_TYPE = 2036 -SHARED_MEMORY_CONNECTION = 2037 -SHARED_MEMORY_CONNECT_REQUEST_ERROR = 2038 -SHARED_MEMORY_CONNECT_ANSWER_ERROR = 2039 -SHARED_MEMORY_CONNECT_FILE_MAP_ERROR = 2040 -SHARED_MEMORY_CONNECT_MAP_ERROR = 2041 -SHARED_MEMORY_FILE_MAP_ERROR = 2042 -SHARED_MEMORY_MAP_ERROR = 2043 -SHARED_MEMORY_EVENT_ERROR = 2044 -SHARED_MEMORY_CONNECT_ABANDONED_ERROR = 2045 -SHARED_MEMORY_CONNECT_SET_ERROR = 2046 -CONN_UNKNOW_PROTOCOL = 2047 -INVALID_CONN_HANDLE = 2048 -UNUSED_1 = 2049 -FETCH_CANCELED = 2050 -NO_DATA = 2051 -NO_STMT_METADATA = 2052 -NO_RESULT_SET = 2053 -NOT_IMPLEMENTED = 2054 -SERVER_LOST_EXTENDED = 2055 -STMT_CLOSED = 2056 -NEW_STMT_METADATA = 2057 -ALREADY_CONNECTED = 2058 -AUTH_PLUGIN_CANNOT_LOAD = 2059 -DUPLICATE_CONNECTION_ATTR = 2060 -AUTH_PLUGIN_ERR = 2061 -INSECURE_API_ERR = 2062 -FILE_NAME_TOO_LONG = 2063 -SSL_FIPS_MODE_ERR = 2064 -MAX_ERROR = 2999 -ERROR_LAST = 2064 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/ER.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/ER.py deleted file mode 100644 index 8c5ece2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/ER.py +++ /dev/null @@ -1,827 +0,0 @@ -"""MySQL ER Constants - -These constants are error codes for the bulk of the error conditions -that may occur. -""" - -if __name__ == "__main__": - """ - Usage: python ER.py [/path/to/mysql/mysqld_error.h ...] >> ER.py - """ - import fileinput - import re - - data = {} - error_last = None - for line in fileinput.input(): - line = re.sub(r"/\*.*?\*/", "", line) - m = re.match(r"^\s*#define\s+((ER|WARN)_[A-Z0-9_]+)\s+(\d+)\s*", line) - if m: - name = m.group(1) - if name.startswith("ER_"): - name = name[3:] - value = int(m.group(3)) - if name == "ERROR_LAST": - if error_last is None or error_last < value: - error_last = value - continue - if value not in data: - data[value] = set() - data[value].add(name) - for value, names in sorted(data.items()): - for name in sorted(names): - print(f"{name} = {value}") - if error_last is not None: - print("ERROR_LAST = %s" % error_last) - - -ERROR_FIRST = 1000 -NO = 1002 -YES = 1003 -CANT_CREATE_FILE = 1004 -CANT_CREATE_TABLE = 1005 -CANT_CREATE_DB = 1006 -DB_CREATE_EXISTS = 1007 -DB_DROP_EXISTS = 1008 -DB_DROP_RMDIR = 1010 -CANT_FIND_SYSTEM_REC = 1012 -CANT_GET_STAT = 1013 -CANT_LOCK = 1015 -CANT_OPEN_FILE = 1016 -FILE_NOT_FOUND = 1017 -CANT_READ_DIR = 1018 -CHECKREAD = 1020 -DUP_KEY = 1022 -ERROR_ON_READ = 1024 -ERROR_ON_RENAME = 1025 -ERROR_ON_WRITE = 1026 -FILE_USED = 1027 -FILSORT_ABORT = 1028 -GET_ERRNO = 1030 -ILLEGAL_HA = 1031 -KEY_NOT_FOUND = 1032 -NOT_FORM_FILE = 1033 -NOT_KEYFILE = 1034 -OLD_KEYFILE = 1035 -OPEN_AS_READONLY = 1036 -OUTOFMEMORY = 1037 -OUT_OF_SORTMEMORY = 1038 -CON_COUNT_ERROR = 1040 -OUT_OF_RESOURCES = 1041 -BAD_HOST_ERROR = 1042 -HANDSHAKE_ERROR = 1043 -DBACCESS_DENIED_ERROR = 1044 -ACCESS_DENIED_ERROR = 1045 -NO_DB_ERROR = 1046 -UNKNOWN_COM_ERROR = 1047 -BAD_NULL_ERROR = 1048 -BAD_DB_ERROR = 1049 -TABLE_EXISTS_ERROR = 1050 -BAD_TABLE_ERROR = 1051 -NON_UNIQ_ERROR = 1052 -SERVER_SHUTDOWN = 1053 -BAD_FIELD_ERROR = 1054 -WRONG_FIELD_WITH_GROUP = 1055 -WRONG_GROUP_FIELD = 1056 -WRONG_SUM_SELECT = 1057 -WRONG_VALUE_COUNT = 1058 -TOO_LONG_IDENT = 1059 -DUP_FIELDNAME = 1060 -DUP_KEYNAME = 1061 -DUP_ENTRY = 1062 -WRONG_FIELD_SPEC = 1063 -PARSE_ERROR = 1064 -EMPTY_QUERY = 1065 -NONUNIQ_TABLE = 1066 -INVALID_DEFAULT = 1067 -MULTIPLE_PRI_KEY = 1068 -TOO_MANY_KEYS = 1069 -TOO_MANY_KEY_PARTS = 1070 -TOO_LONG_KEY = 1071 -KEY_COLUMN_DOES_NOT_EXITS = 1072 -BLOB_USED_AS_KEY = 1073 -TOO_BIG_FIELDLENGTH = 1074 -WRONG_AUTO_KEY = 1075 -READY = 1076 -SHUTDOWN_COMPLETE = 1079 -FORCING_CLOSE = 1080 -IPSOCK_ERROR = 1081 -NO_SUCH_INDEX = 1082 -WRONG_FIELD_TERMINATORS = 1083 -BLOBS_AND_NO_TERMINATED = 1084 -TEXTFILE_NOT_READABLE = 1085 -FILE_EXISTS_ERROR = 1086 -LOAD_INFO = 1087 -ALTER_INFO = 1088 -WRONG_SUB_KEY = 1089 -CANT_REMOVE_ALL_FIELDS = 1090 -CANT_DROP_FIELD_OR_KEY = 1091 -INSERT_INFO = 1092 -UPDATE_TABLE_USED = 1093 -NO_SUCH_THREAD = 1094 -KILL_DENIED_ERROR = 1095 -NO_TABLES_USED = 1096 -TOO_BIG_SET = 1097 -NO_UNIQUE_LOGFILE = 1098 -TABLE_NOT_LOCKED_FOR_WRITE = 1099 -TABLE_NOT_LOCKED = 1100 -BLOB_CANT_HAVE_DEFAULT = 1101 -WRONG_DB_NAME = 1102 -WRONG_TABLE_NAME = 1103 -TOO_BIG_SELECT = 1104 -UNKNOWN_ERROR = 1105 -UNKNOWN_PROCEDURE = 1106 -WRONG_PARAMCOUNT_TO_PROCEDURE = 1107 -WRONG_PARAMETERS_TO_PROCEDURE = 1108 -UNKNOWN_TABLE = 1109 -FIELD_SPECIFIED_TWICE = 1110 -INVALID_GROUP_FUNC_USE = 1111 -UNSUPPORTED_EXTENSION = 1112 -TABLE_MUST_HAVE_COLUMNS = 1113 -RECORD_FILE_FULL = 1114 -UNKNOWN_CHARACTER_SET = 1115 -TOO_MANY_TABLES = 1116 -TOO_MANY_FIELDS = 1117 -TOO_BIG_ROWSIZE = 1118 -STACK_OVERRUN = 1119 -WRONG_OUTER_JOIN_UNUSED = 1120 -NULL_COLUMN_IN_INDEX = 1121 -CANT_FIND_UDF = 1122 -CANT_INITIALIZE_UDF = 1123 -UDF_NO_PATHS = 1124 -UDF_EXISTS = 1125 -CANT_OPEN_LIBRARY = 1126 -CANT_FIND_DL_ENTRY = 1127 -FUNCTION_NOT_DEFINED = 1128 -HOST_IS_BLOCKED = 1129 -HOST_NOT_PRIVILEGED = 1130 -PASSWORD_ANONYMOUS_USER = 1131 -PASSWORD_NOT_ALLOWED = 1132 -PASSWORD_NO_MATCH = 1133 -UPDATE_INFO = 1134 -CANT_CREATE_THREAD = 1135 -WRONG_VALUE_COUNT_ON_ROW = 1136 -CANT_REOPEN_TABLE = 1137 -INVALID_USE_OF_NULL = 1138 -REGEXP_ERROR = 1139 -MIX_OF_GROUP_FUNC_AND_FIELDS = 1140 -NONEXISTING_GRANT = 1141 -TABLEACCESS_DENIED_ERROR = 1142 -COLUMNACCESS_DENIED_ERROR = 1143 -ILLEGAL_GRANT_FOR_TABLE = 1144 -GRANT_WRONG_HOST_OR_USER = 1145 -NO_SUCH_TABLE = 1146 -NONEXISTING_TABLE_GRANT = 1147 -NOT_ALLOWED_COMMAND = 1148 -SYNTAX_ERROR = 1149 -ABORTING_CONNECTION = 1152 -NET_PACKET_TOO_LARGE = 1153 -NET_READ_ERROR_FROM_PIPE = 1154 -NET_FCNTL_ERROR = 1155 -NET_PACKETS_OUT_OF_ORDER = 1156 -NET_UNCOMPRESS_ERROR = 1157 -NET_READ_ERROR = 1158 -NET_READ_INTERRUPTED = 1159 -NET_ERROR_ON_WRITE = 1160 -NET_WRITE_INTERRUPTED = 1161 -TOO_LONG_STRING = 1162 -TABLE_CANT_HANDLE_BLOB = 1163 -TABLE_CANT_HANDLE_AUTO_INCREMENT = 1164 -WRONG_COLUMN_NAME = 1166 -WRONG_KEY_COLUMN = 1167 -WRONG_MRG_TABLE = 1168 -DUP_UNIQUE = 1169 -BLOB_KEY_WITHOUT_LENGTH = 1170 -PRIMARY_CANT_HAVE_NULL = 1171 -TOO_MANY_ROWS = 1172 -REQUIRES_PRIMARY_KEY = 1173 -UPDATE_WITHOUT_KEY_IN_SAFE_MODE = 1175 -KEY_DOES_NOT_EXITS = 1176 -CHECK_NO_SUCH_TABLE = 1177 -CHECK_NOT_IMPLEMENTED = 1178 -CANT_DO_THIS_DURING_AN_TRANSACTION = 1179 -ERROR_DURING_COMMIT = 1180 -ERROR_DURING_ROLLBACK = 1181 -ERROR_DURING_FLUSH_LOGS = 1182 -NEW_ABORTING_CONNECTION = 1184 -MASTER = 1188 -MASTER_NET_READ = 1189 -MASTER_NET_WRITE = 1190 -FT_MATCHING_KEY_NOT_FOUND = 1191 -LOCK_OR_ACTIVE_TRANSACTION = 1192 -UNKNOWN_SYSTEM_VARIABLE = 1193 -CRASHED_ON_USAGE = 1194 -CRASHED_ON_REPAIR = 1195 -WARNING_NOT_COMPLETE_ROLLBACK = 1196 -TRANS_CACHE_FULL = 1197 -SLAVE_NOT_RUNNING = 1199 -BAD_SLAVE = 1200 -MASTER_INFO = 1201 -SLAVE_THREAD = 1202 -TOO_MANY_USER_CONNECTIONS = 1203 -SET_CONSTANTS_ONLY = 1204 -LOCK_WAIT_TIMEOUT = 1205 -LOCK_TABLE_FULL = 1206 -READ_ONLY_TRANSACTION = 1207 -WRONG_ARGUMENTS = 1210 -NO_PERMISSION_TO_CREATE_USER = 1211 -LOCK_DEADLOCK = 1213 -TABLE_CANT_HANDLE_FT = 1214 -CANNOT_ADD_FOREIGN = 1215 -NO_REFERENCED_ROW = 1216 -ROW_IS_REFERENCED = 1217 -CONNECT_TO_MASTER = 1218 -ERROR_WHEN_EXECUTING_COMMAND = 1220 -WRONG_USAGE = 1221 -WRONG_NUMBER_OF_COLUMNS_IN_SELECT = 1222 -CANT_UPDATE_WITH_READLOCK = 1223 -MIXING_NOT_ALLOWED = 1224 -DUP_ARGUMENT = 1225 -USER_LIMIT_REACHED = 1226 -SPECIFIC_ACCESS_DENIED_ERROR = 1227 -LOCAL_VARIABLE = 1228 -GLOBAL_VARIABLE = 1229 -NO_DEFAULT = 1230 -WRONG_VALUE_FOR_VAR = 1231 -WRONG_TYPE_FOR_VAR = 1232 -VAR_CANT_BE_READ = 1233 -CANT_USE_OPTION_HERE = 1234 -NOT_SUPPORTED_YET = 1235 -MASTER_FATAL_ERROR_READING_BINLOG = 1236 -SLAVE_IGNORED_TABLE = 1237 -INCORRECT_GLOBAL_LOCAL_VAR = 1238 -WRONG_FK_DEF = 1239 -KEY_REF_DO_NOT_MATCH_TABLE_REF = 1240 -OPERAND_COLUMNS = 1241 -SUBQUERY_NO_1_ROW = 1242 -UNKNOWN_STMT_HANDLER = 1243 -CORRUPT_HELP_DB = 1244 -AUTO_CONVERT = 1246 -ILLEGAL_REFERENCE = 1247 -DERIVED_MUST_HAVE_ALIAS = 1248 -SELECT_REDUCED = 1249 -TABLENAME_NOT_ALLOWED_HERE = 1250 -NOT_SUPPORTED_AUTH_MODE = 1251 -SPATIAL_CANT_HAVE_NULL = 1252 -COLLATION_CHARSET_MISMATCH = 1253 -TOO_BIG_FOR_UNCOMPRESS = 1256 -ZLIB_Z_MEM_ERROR = 1257 -ZLIB_Z_BUF_ERROR = 1258 -ZLIB_Z_DATA_ERROR = 1259 -CUT_VALUE_GROUP_CONCAT = 1260 -WARN_TOO_FEW_RECORDS = 1261 -WARN_TOO_MANY_RECORDS = 1262 -WARN_NULL_TO_NOTNULL = 1263 -WARN_DATA_OUT_OF_RANGE = 1264 -WARN_DATA_TRUNCATED = 1265 -WARN_USING_OTHER_HANDLER = 1266 -CANT_AGGREGATE_2COLLATIONS = 1267 -REVOKE_GRANTS = 1269 -CANT_AGGREGATE_3COLLATIONS = 1270 -CANT_AGGREGATE_NCOLLATIONS = 1271 -VARIABLE_IS_NOT_STRUCT = 1272 -UNKNOWN_COLLATION = 1273 -SLAVE_IGNORED_SSL_PARAMS = 1274 -SERVER_IS_IN_SECURE_AUTH_MODE = 1275 -WARN_FIELD_RESOLVED = 1276 -BAD_SLAVE_UNTIL_COND = 1277 -MISSING_SKIP_SLAVE = 1278 -UNTIL_COND_IGNORED = 1279 -WRONG_NAME_FOR_INDEX = 1280 -WRONG_NAME_FOR_CATALOG = 1281 -BAD_FT_COLUMN = 1283 -UNKNOWN_KEY_CACHE = 1284 -WARN_HOSTNAME_WONT_WORK = 1285 -UNKNOWN_STORAGE_ENGINE = 1286 -WARN_DEPRECATED_SYNTAX = 1287 -NON_UPDATABLE_TABLE = 1288 -FEATURE_DISABLED = 1289 -OPTION_PREVENTS_STATEMENT = 1290 -DUPLICATED_VALUE_IN_TYPE = 1291 -TRUNCATED_WRONG_VALUE = 1292 -INVALID_ON_UPDATE = 1294 -UNSUPPORTED_PS = 1295 -GET_ERRMSG = 1296 -GET_TEMPORARY_ERRMSG = 1297 -UNKNOWN_TIME_ZONE = 1298 -WARN_INVALID_TIMESTAMP = 1299 -INVALID_CHARACTER_STRING = 1300 -WARN_ALLOWED_PACKET_OVERFLOWED = 1301 -CONFLICTING_DECLARATIONS = 1302 -SP_NO_RECURSIVE_CREATE = 1303 -SP_ALREADY_EXISTS = 1304 -SP_DOES_NOT_EXIST = 1305 -SP_DROP_FAILED = 1306 -SP_STORE_FAILED = 1307 -SP_LILABEL_MISMATCH = 1308 -SP_LABEL_REDEFINE = 1309 -SP_LABEL_MISMATCH = 1310 -SP_UNINIT_VAR = 1311 -SP_BADSELECT = 1312 -SP_BADRETURN = 1313 -SP_BADSTATEMENT = 1314 -UPDATE_LOG_DEPRECATED_IGNORED = 1315 -UPDATE_LOG_DEPRECATED_TRANSLATED = 1316 -QUERY_INTERRUPTED = 1317 -SP_WRONG_NO_OF_ARGS = 1318 -SP_COND_MISMATCH = 1319 -SP_NORETURN = 1320 -SP_NORETURNEND = 1321 -SP_BAD_CURSOR_QUERY = 1322 -SP_BAD_CURSOR_SELECT = 1323 -SP_CURSOR_MISMATCH = 1324 -SP_CURSOR_ALREADY_OPEN = 1325 -SP_CURSOR_NOT_OPEN = 1326 -SP_UNDECLARED_VAR = 1327 -SP_WRONG_NO_OF_FETCH_ARGS = 1328 -SP_FETCH_NO_DATA = 1329 -SP_DUP_PARAM = 1330 -SP_DUP_VAR = 1331 -SP_DUP_COND = 1332 -SP_DUP_CURS = 1333 -SP_CANT_ALTER = 1334 -SP_SUBSELECT_NYI = 1335 -STMT_NOT_ALLOWED_IN_SF_OR_TRG = 1336 -SP_VARCOND_AFTER_CURSHNDLR = 1337 -SP_CURSOR_AFTER_HANDLER = 1338 -SP_CASE_NOT_FOUND = 1339 -FPARSER_TOO_BIG_FILE = 1340 -FPARSER_BAD_HEADER = 1341 -FPARSER_EOF_IN_COMMENT = 1342 -FPARSER_ERROR_IN_PARAMETER = 1343 -FPARSER_EOF_IN_UNKNOWN_PARAMETER = 1344 -VIEW_NO_EXPLAIN = 1345 -WRONG_OBJECT = 1347 -NONUPDATEABLE_COLUMN = 1348 -VIEW_SELECT_CLAUSE = 1350 -VIEW_SELECT_VARIABLE = 1351 -VIEW_SELECT_TMPTABLE = 1352 -VIEW_WRONG_LIST = 1353 -WARN_VIEW_MERGE = 1354 -WARN_VIEW_WITHOUT_KEY = 1355 -VIEW_INVALID = 1356 -SP_NO_DROP_SP = 1357 -TRG_ALREADY_EXISTS = 1359 -TRG_DOES_NOT_EXIST = 1360 -TRG_ON_VIEW_OR_TEMP_TABLE = 1361 -TRG_CANT_CHANGE_ROW = 1362 -TRG_NO_SUCH_ROW_IN_TRG = 1363 -NO_DEFAULT_FOR_FIELD = 1364 -DIVISION_BY_ZERO = 1365 -TRUNCATED_WRONG_VALUE_FOR_FIELD = 1366 -ILLEGAL_VALUE_FOR_TYPE = 1367 -VIEW_NONUPD_CHECK = 1368 -VIEW_CHECK_FAILED = 1369 -PROCACCESS_DENIED_ERROR = 1370 -RELAY_LOG_FAIL = 1371 -UNKNOWN_TARGET_BINLOG = 1373 -IO_ERR_LOG_INDEX_READ = 1374 -BINLOG_PURGE_PROHIBITED = 1375 -FSEEK_FAIL = 1376 -BINLOG_PURGE_FATAL_ERR = 1377 -LOG_IN_USE = 1378 -LOG_PURGE_UNKNOWN_ERR = 1379 -RELAY_LOG_INIT = 1380 -NO_BINARY_LOGGING = 1381 -RESERVED_SYNTAX = 1382 -PS_MANY_PARAM = 1390 -KEY_PART_0 = 1391 -VIEW_CHECKSUM = 1392 -VIEW_MULTIUPDATE = 1393 -VIEW_NO_INSERT_FIELD_LIST = 1394 -VIEW_DELETE_MERGE_VIEW = 1395 -CANNOT_USER = 1396 -XAER_NOTA = 1397 -XAER_INVAL = 1398 -XAER_RMFAIL = 1399 -XAER_OUTSIDE = 1400 -XAER_RMERR = 1401 -XA_RBROLLBACK = 1402 -NONEXISTING_PROC_GRANT = 1403 -PROC_AUTO_GRANT_FAIL = 1404 -PROC_AUTO_REVOKE_FAIL = 1405 -DATA_TOO_LONG = 1406 -SP_BAD_SQLSTATE = 1407 -STARTUP = 1408 -LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR = 1409 -CANT_CREATE_USER_WITH_GRANT = 1410 -WRONG_VALUE_FOR_TYPE = 1411 -TABLE_DEF_CHANGED = 1412 -SP_DUP_HANDLER = 1413 -SP_NOT_VAR_ARG = 1414 -SP_NO_RETSET = 1415 -CANT_CREATE_GEOMETRY_OBJECT = 1416 -BINLOG_UNSAFE_ROUTINE = 1418 -BINLOG_CREATE_ROUTINE_NEED_SUPER = 1419 -STMT_HAS_NO_OPEN_CURSOR = 1421 -COMMIT_NOT_ALLOWED_IN_SF_OR_TRG = 1422 -NO_DEFAULT_FOR_VIEW_FIELD = 1423 -SP_NO_RECURSION = 1424 -TOO_BIG_SCALE = 1425 -TOO_BIG_PRECISION = 1426 -M_BIGGER_THAN_D = 1427 -WRONG_LOCK_OF_SYSTEM_TABLE = 1428 -CONNECT_TO_FOREIGN_DATA_SOURCE = 1429 -QUERY_ON_FOREIGN_DATA_SOURCE = 1430 -FOREIGN_DATA_SOURCE_DOESNT_EXIST = 1431 -FOREIGN_DATA_STRING_INVALID_CANT_CREATE = 1432 -FOREIGN_DATA_STRING_INVALID = 1433 -TRG_IN_WRONG_SCHEMA = 1435 -STACK_OVERRUN_NEED_MORE = 1436 -TOO_LONG_BODY = 1437 -WARN_CANT_DROP_DEFAULT_KEYCACHE = 1438 -TOO_BIG_DISPLAYWIDTH = 1439 -XAER_DUPID = 1440 -DATETIME_FUNCTION_OVERFLOW = 1441 -CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG = 1442 -VIEW_PREVENT_UPDATE = 1443 -PS_NO_RECURSION = 1444 -SP_CANT_SET_AUTOCOMMIT = 1445 -VIEW_FRM_NO_USER = 1447 -VIEW_OTHER_USER = 1448 -NO_SUCH_USER = 1449 -FORBID_SCHEMA_CHANGE = 1450 -ROW_IS_REFERENCED_2 = 1451 -NO_REFERENCED_ROW_2 = 1452 -SP_BAD_VAR_SHADOW = 1453 -TRG_NO_DEFINER = 1454 -OLD_FILE_FORMAT = 1455 -SP_RECURSION_LIMIT = 1456 -SP_WRONG_NAME = 1458 -TABLE_NEEDS_UPGRADE = 1459 -SP_NO_AGGREGATE = 1460 -MAX_PREPARED_STMT_COUNT_REACHED = 1461 -VIEW_RECURSIVE = 1462 -NON_GROUPING_FIELD_USED = 1463 -TABLE_CANT_HANDLE_SPKEYS = 1464 -NO_TRIGGERS_ON_SYSTEM_SCHEMA = 1465 -REMOVED_SPACES = 1466 -AUTOINC_READ_FAILED = 1467 -USERNAME = 1468 -HOSTNAME = 1469 -WRONG_STRING_LENGTH = 1470 -NON_INSERTABLE_TABLE = 1471 -ADMIN_WRONG_MRG_TABLE = 1472 -TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT = 1473 -NAME_BECOMES_EMPTY = 1474 -AMBIGUOUS_FIELD_TERM = 1475 -FOREIGN_SERVER_EXISTS = 1476 -FOREIGN_SERVER_DOESNT_EXIST = 1477 -ILLEGAL_HA_CREATE_OPTION = 1478 -PARTITION_REQUIRES_VALUES_ERROR = 1479 -PARTITION_WRONG_VALUES_ERROR = 1480 -PARTITION_MAXVALUE_ERROR = 1481 -PARTITION_WRONG_NO_PART_ERROR = 1484 -PARTITION_WRONG_NO_SUBPART_ERROR = 1485 -WRONG_EXPR_IN_PARTITION_FUNC_ERROR = 1486 -FIELD_NOT_FOUND_PART_ERROR = 1488 -INCONSISTENT_PARTITION_INFO_ERROR = 1490 -PARTITION_FUNC_NOT_ALLOWED_ERROR = 1491 -PARTITIONS_MUST_BE_DEFINED_ERROR = 1492 -RANGE_NOT_INCREASING_ERROR = 1493 -INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR = 1494 -MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR = 1495 -PARTITION_ENTRY_ERROR = 1496 -MIX_HANDLER_ERROR = 1497 -PARTITION_NOT_DEFINED_ERROR = 1498 -TOO_MANY_PARTITIONS_ERROR = 1499 -SUBPARTITION_ERROR = 1500 -CANT_CREATE_HANDLER_FILE = 1501 -BLOB_FIELD_IN_PART_FUNC_ERROR = 1502 -UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF = 1503 -NO_PARTS_ERROR = 1504 -PARTITION_MGMT_ON_NONPARTITIONED = 1505 -FOREIGN_KEY_ON_PARTITIONED = 1506 -DROP_PARTITION_NON_EXISTENT = 1507 -DROP_LAST_PARTITION = 1508 -COALESCE_ONLY_ON_HASH_PARTITION = 1509 -REORG_HASH_ONLY_ON_SAME_NO = 1510 -REORG_NO_PARAM_ERROR = 1511 -ONLY_ON_RANGE_LIST_PARTITION = 1512 -ADD_PARTITION_SUBPART_ERROR = 1513 -ADD_PARTITION_NO_NEW_PARTITION = 1514 -COALESCE_PARTITION_NO_PARTITION = 1515 -REORG_PARTITION_NOT_EXIST = 1516 -SAME_NAME_PARTITION = 1517 -NO_BINLOG_ERROR = 1518 -CONSECUTIVE_REORG_PARTITIONS = 1519 -REORG_OUTSIDE_RANGE = 1520 -PARTITION_FUNCTION_FAILURE = 1521 -LIMITED_PART_RANGE = 1523 -PLUGIN_IS_NOT_LOADED = 1524 -WRONG_VALUE = 1525 -NO_PARTITION_FOR_GIVEN_VALUE = 1526 -FILEGROUP_OPTION_ONLY_ONCE = 1527 -CREATE_FILEGROUP_FAILED = 1528 -DROP_FILEGROUP_FAILED = 1529 -TABLESPACE_AUTO_EXTEND_ERROR = 1530 -WRONG_SIZE_NUMBER = 1531 -SIZE_OVERFLOW_ERROR = 1532 -ALTER_FILEGROUP_FAILED = 1533 -BINLOG_ROW_LOGGING_FAILED = 1534 -EVENT_ALREADY_EXISTS = 1537 -EVENT_DOES_NOT_EXIST = 1539 -EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG = 1542 -EVENT_ENDS_BEFORE_STARTS = 1543 -EVENT_EXEC_TIME_IN_THE_PAST = 1544 -EVENT_SAME_NAME = 1551 -DROP_INDEX_FK = 1553 -WARN_DEPRECATED_SYNTAX_WITH_VER = 1554 -CANT_LOCK_LOG_TABLE = 1556 -FOREIGN_DUPLICATE_KEY_OLD_UNUSED = 1557 -COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE = 1558 -TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR = 1559 -STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT = 1560 -PARTITION_NO_TEMPORARY = 1562 -PARTITION_CONST_DOMAIN_ERROR = 1563 -PARTITION_FUNCTION_IS_NOT_ALLOWED = 1564 -NULL_IN_VALUES_LESS_THAN = 1566 -WRONG_PARTITION_NAME = 1567 -CANT_CHANGE_TX_CHARACTERISTICS = 1568 -DUP_ENTRY_AUTOINCREMENT_CASE = 1569 -EVENT_SET_VAR_ERROR = 1571 -PARTITION_MERGE_ERROR = 1572 -BASE64_DECODE_ERROR = 1575 -EVENT_RECURSION_FORBIDDEN = 1576 -ONLY_INTEGERS_ALLOWED = 1578 -UNSUPORTED_LOG_ENGINE = 1579 -BAD_LOG_STATEMENT = 1580 -CANT_RENAME_LOG_TABLE = 1581 -WRONG_PARAMCOUNT_TO_NATIVE_FCT = 1582 -WRONG_PARAMETERS_TO_NATIVE_FCT = 1583 -WRONG_PARAMETERS_TO_STORED_FCT = 1584 -NATIVE_FCT_NAME_COLLISION = 1585 -DUP_ENTRY_WITH_KEY_NAME = 1586 -BINLOG_PURGE_EMFILE = 1587 -EVENT_CANNOT_CREATE_IN_THE_PAST = 1588 -EVENT_CANNOT_ALTER_IN_THE_PAST = 1589 -NO_PARTITION_FOR_GIVEN_VALUE_SILENT = 1591 -BINLOG_UNSAFE_STATEMENT = 1592 -BINLOG_FATAL_ERROR = 1593 -BINLOG_LOGGING_IMPOSSIBLE = 1598 -VIEW_NO_CREATION_CTX = 1599 -VIEW_INVALID_CREATION_CTX = 1600 -TRG_CORRUPTED_FILE = 1602 -TRG_NO_CREATION_CTX = 1603 -TRG_INVALID_CREATION_CTX = 1604 -EVENT_INVALID_CREATION_CTX = 1605 -TRG_CANT_OPEN_TABLE = 1606 -NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT = 1609 -SLAVE_CORRUPT_EVENT = 1610 -LOG_PURGE_NO_FILE = 1612 -XA_RBTIMEOUT = 1613 -XA_RBDEADLOCK = 1614 -NEED_REPREPARE = 1615 -WARN_NO_MASTER_INFO = 1617 -WARN_OPTION_IGNORED = 1618 -PLUGIN_DELETE_BUILTIN = 1619 -WARN_PLUGIN_BUSY = 1620 -VARIABLE_IS_READONLY = 1621 -WARN_ENGINE_TRANSACTION_ROLLBACK = 1622 -SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE = 1624 -NDB_REPLICATION_SCHEMA_ERROR = 1625 -CONFLICT_FN_PARSE_ERROR = 1626 -EXCEPTIONS_WRITE_ERROR = 1627 -TOO_LONG_TABLE_COMMENT = 1628 -TOO_LONG_FIELD_COMMENT = 1629 -FUNC_INEXISTENT_NAME_COLLISION = 1630 -DATABASE_NAME = 1631 -TABLE_NAME = 1632 -PARTITION_NAME = 1633 -SUBPARTITION_NAME = 1634 -TEMPORARY_NAME = 1635 -RENAMED_NAME = 1636 -TOO_MANY_CONCURRENT_TRXS = 1637 -WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED = 1638 -DEBUG_SYNC_TIMEOUT = 1639 -DEBUG_SYNC_HIT_LIMIT = 1640 -DUP_SIGNAL_SET = 1641 -SIGNAL_WARN = 1642 -SIGNAL_NOT_FOUND = 1643 -SIGNAL_EXCEPTION = 1644 -RESIGNAL_WITHOUT_ACTIVE_HANDLER = 1645 -SIGNAL_BAD_CONDITION_TYPE = 1646 -WARN_COND_ITEM_TRUNCATED = 1647 -COND_ITEM_TOO_LONG = 1648 -UNKNOWN_LOCALE = 1649 -SLAVE_IGNORE_SERVER_IDS = 1650 -SAME_NAME_PARTITION_FIELD = 1652 -PARTITION_COLUMN_LIST_ERROR = 1653 -WRONG_TYPE_COLUMN_VALUE_ERROR = 1654 -TOO_MANY_PARTITION_FUNC_FIELDS_ERROR = 1655 -MAXVALUE_IN_VALUES_IN = 1656 -TOO_MANY_VALUES_ERROR = 1657 -ROW_SINGLE_PARTITION_FIELD_ERROR = 1658 -FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD = 1659 -PARTITION_FIELDS_TOO_LONG = 1660 -BINLOG_ROW_ENGINE_AND_STMT_ENGINE = 1661 -BINLOG_ROW_MODE_AND_STMT_ENGINE = 1662 -BINLOG_UNSAFE_AND_STMT_ENGINE = 1663 -BINLOG_ROW_INJECTION_AND_STMT_ENGINE = 1664 -BINLOG_STMT_MODE_AND_ROW_ENGINE = 1665 -BINLOG_ROW_INJECTION_AND_STMT_MODE = 1666 -BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE = 1667 -BINLOG_UNSAFE_LIMIT = 1668 -BINLOG_UNSAFE_SYSTEM_TABLE = 1670 -BINLOG_UNSAFE_AUTOINC_COLUMNS = 1671 -BINLOG_UNSAFE_UDF = 1672 -BINLOG_UNSAFE_SYSTEM_VARIABLE = 1673 -BINLOG_UNSAFE_SYSTEM_FUNCTION = 1674 -BINLOG_UNSAFE_NONTRANS_AFTER_TRANS = 1675 -MESSAGE_AND_STATEMENT = 1676 -SLAVE_CANT_CREATE_CONVERSION = 1678 -INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT = 1679 -PATH_LENGTH = 1680 -WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT = 1681 -WRONG_NATIVE_TABLE_STRUCTURE = 1682 -WRONG_PERFSCHEMA_USAGE = 1683 -WARN_I_S_SKIPPED_TABLE = 1684 -INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT = 1685 -STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT = 1686 -SPATIAL_MUST_HAVE_GEOM_COL = 1687 -TOO_LONG_INDEX_COMMENT = 1688 -LOCK_ABORTED = 1689 -DATA_OUT_OF_RANGE = 1690 -WRONG_SPVAR_TYPE_IN_LIMIT = 1691 -BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE = 1692 -BINLOG_UNSAFE_MIXED_STATEMENT = 1693 -INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN = 1694 -STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN = 1695 -FAILED_READ_FROM_PAR_FILE = 1696 -VALUES_IS_NOT_INT_TYPE_ERROR = 1697 -ACCESS_DENIED_NO_PASSWORD_ERROR = 1698 -SET_PASSWORD_AUTH_PLUGIN = 1699 -TRUNCATE_ILLEGAL_FK = 1701 -PLUGIN_IS_PERMANENT = 1702 -SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN = 1703 -SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX = 1704 -STMT_CACHE_FULL = 1705 -MULTI_UPDATE_KEY_CONFLICT = 1706 -TABLE_NEEDS_REBUILD = 1707 -WARN_OPTION_BELOW_LIMIT = 1708 -INDEX_COLUMN_TOO_LONG = 1709 -ERROR_IN_TRIGGER_BODY = 1710 -ERROR_IN_UNKNOWN_TRIGGER_BODY = 1711 -INDEX_CORRUPT = 1712 -UNDO_RECORD_TOO_BIG = 1713 -BINLOG_UNSAFE_INSERT_IGNORE_SELECT = 1714 -BINLOG_UNSAFE_INSERT_SELECT_UPDATE = 1715 -BINLOG_UNSAFE_REPLACE_SELECT = 1716 -BINLOG_UNSAFE_CREATE_IGNORE_SELECT = 1717 -BINLOG_UNSAFE_CREATE_REPLACE_SELECT = 1718 -BINLOG_UNSAFE_UPDATE_IGNORE = 1719 -PLUGIN_NO_UNINSTALL = 1720 -PLUGIN_NO_INSTALL = 1721 -BINLOG_UNSAFE_WRITE_AUTOINC_SELECT = 1722 -BINLOG_UNSAFE_CREATE_SELECT_AUTOINC = 1723 -BINLOG_UNSAFE_INSERT_TWO_KEYS = 1724 -TABLE_IN_FK_CHECK = 1725 -UNSUPPORTED_ENGINE = 1726 -BINLOG_UNSAFE_AUTOINC_NOT_FIRST = 1727 -CANNOT_LOAD_FROM_TABLE_V2 = 1728 -MASTER_DELAY_VALUE_OUT_OF_RANGE = 1729 -ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT = 1730 -PARTITION_EXCHANGE_DIFFERENT_OPTION = 1731 -PARTITION_EXCHANGE_PART_TABLE = 1732 -PARTITION_EXCHANGE_TEMP_TABLE = 1733 -PARTITION_INSTEAD_OF_SUBPARTITION = 1734 -UNKNOWN_PARTITION = 1735 -TABLES_DIFFERENT_METADATA = 1736 -ROW_DOES_NOT_MATCH_PARTITION = 1737 -BINLOG_CACHE_SIZE_GREATER_THAN_MAX = 1738 -WARN_INDEX_NOT_APPLICABLE = 1739 -PARTITION_EXCHANGE_FOREIGN_KEY = 1740 -RPL_INFO_DATA_TOO_LONG = 1742 -BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX = 1745 -CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT = 1746 -PARTITION_CLAUSE_ON_NONPARTITIONED = 1747 -ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET = 1748 -CHANGE_RPL_INFO_REPOSITORY_FAILURE = 1750 -WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE = 1751 -WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE = 1752 -MTS_FEATURE_IS_NOT_SUPPORTED = 1753 -MTS_UPDATED_DBS_GREATER_MAX = 1754 -MTS_CANT_PARALLEL = 1755 -MTS_INCONSISTENT_DATA = 1756 -FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING = 1757 -DA_INVALID_CONDITION_NUMBER = 1758 -INSECURE_PLAIN_TEXT = 1759 -INSECURE_CHANGE_MASTER = 1760 -FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO = 1761 -FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO = 1762 -SQLTHREAD_WITH_SECURE_SLAVE = 1763 -TABLE_HAS_NO_FT = 1764 -VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER = 1765 -VARIABLE_NOT_SETTABLE_IN_TRANSACTION = 1766 -SET_STATEMENT_CANNOT_INVOKE_FUNCTION = 1769 -GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL = 1770 -MALFORMED_GTID_SET_SPECIFICATION = 1772 -MALFORMED_GTID_SET_ENCODING = 1773 -MALFORMED_GTID_SPECIFICATION = 1774 -GNO_EXHAUSTED = 1775 -BAD_SLAVE_AUTO_POSITION = 1776 -AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF = 1777 -CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET = 1778 -GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON = 1779 -CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF = 1781 -CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON = 1782 -CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF = 1783 -GTID_UNSAFE_NON_TRANSACTIONAL_TABLE = 1785 -GTID_UNSAFE_CREATE_SELECT = 1786 -GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION = 1787 -GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME = 1788 -MASTER_HAS_PURGED_REQUIRED_GTIDS = 1789 -CANT_SET_GTID_NEXT_WHEN_OWNING_GTID = 1790 -UNKNOWN_EXPLAIN_FORMAT = 1791 -CANT_EXECUTE_IN_READ_ONLY_TRANSACTION = 1792 -TOO_LONG_TABLE_PARTITION_COMMENT = 1793 -SLAVE_CONFIGURATION = 1794 -INNODB_FT_LIMIT = 1795 -INNODB_NO_FT_TEMP_TABLE = 1796 -INNODB_FT_WRONG_DOCID_COLUMN = 1797 -INNODB_FT_WRONG_DOCID_INDEX = 1798 -INNODB_ONLINE_LOG_TOO_BIG = 1799 -UNKNOWN_ALTER_ALGORITHM = 1800 -UNKNOWN_ALTER_LOCK = 1801 -MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS = 1802 -MTS_RECOVERY_FAILURE = 1803 -MTS_RESET_WORKERS = 1804 -COL_COUNT_DOESNT_MATCH_CORRUPTED_V2 = 1805 -SLAVE_SILENT_RETRY_TRANSACTION = 1806 -DISCARD_FK_CHECKS_RUNNING = 1807 -TABLE_SCHEMA_MISMATCH = 1808 -TABLE_IN_SYSTEM_TABLESPACE = 1809 -IO_READ_ERROR = 1810 -IO_WRITE_ERROR = 1811 -TABLESPACE_MISSING = 1812 -TABLESPACE_EXISTS = 1813 -TABLESPACE_DISCARDED = 1814 -INTERNAL_ERROR = 1815 -INNODB_IMPORT_ERROR = 1816 -INNODB_INDEX_CORRUPT = 1817 -INVALID_YEAR_COLUMN_LENGTH = 1818 -NOT_VALID_PASSWORD = 1819 -MUST_CHANGE_PASSWORD = 1820 -FK_NO_INDEX_CHILD = 1821 -FK_NO_INDEX_PARENT = 1822 -FK_FAIL_ADD_SYSTEM = 1823 -FK_CANNOT_OPEN_PARENT = 1824 -FK_INCORRECT_OPTION = 1825 -FK_DUP_NAME = 1826 -PASSWORD_FORMAT = 1827 -FK_COLUMN_CANNOT_DROP = 1828 -FK_COLUMN_CANNOT_DROP_CHILD = 1829 -FK_COLUMN_NOT_NULL = 1830 -DUP_INDEX = 1831 -FK_COLUMN_CANNOT_CHANGE = 1832 -FK_COLUMN_CANNOT_CHANGE_CHILD = 1833 -MALFORMED_PACKET = 1835 -READ_ONLY_MODE = 1836 -GTID_NEXT_TYPE_UNDEFINED_GTID = 1837 -VARIABLE_NOT_SETTABLE_IN_SP = 1838 -CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY = 1840 -CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY = 1841 -GTID_PURGED_WAS_CHANGED = 1842 -GTID_EXECUTED_WAS_CHANGED = 1843 -BINLOG_STMT_MODE_AND_NO_REPL_TABLES = 1844 -ALTER_OPERATION_NOT_SUPPORTED = 1845 -ALTER_OPERATION_NOT_SUPPORTED_REASON = 1846 -ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY = 1847 -ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION = 1848 -ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME = 1849 -ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE = 1850 -ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK = 1851 -ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK = 1853 -ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC = 1854 -ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS = 1855 -ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS = 1856 -ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS = 1857 -SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE = 1858 -DUP_UNKNOWN_IN_INDEX = 1859 -IDENT_CAUSES_TOO_LONG_PATH = 1860 -ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL = 1861 -MUST_CHANGE_PASSWORD_LOGIN = 1862 -ROW_IN_WRONG_PARTITION = 1863 -MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX = 1864 -BINLOG_LOGICAL_CORRUPTION = 1866 -WARN_PURGE_LOG_IN_USE = 1867 -WARN_PURGE_LOG_IS_ACTIVE = 1868 -AUTO_INCREMENT_CONFLICT = 1869 -WARN_ON_BLOCKHOLE_IN_RBR = 1870 -SLAVE_MI_INIT_REPOSITORY = 1871 -SLAVE_RLI_INIT_REPOSITORY = 1872 -ACCESS_DENIED_CHANGE_USER_ERROR = 1873 -INNODB_READ_ONLY = 1874 -STOP_SLAVE_SQL_THREAD_TIMEOUT = 1875 -STOP_SLAVE_IO_THREAD_TIMEOUT = 1876 -TABLE_CORRUPT = 1877 -TEMP_FILE_WRITE_FAILURE = 1878 -INNODB_FT_AUX_NOT_HEX_ID = 1879 -OLD_TEMPORALS_UPGRADED = 1880 -INNODB_FORCED_RECOVERY = 1881 -AES_INVALID_IV = 1882 -PLUGIN_CANNOT_BE_UNINSTALLED = 1883 -GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_ASSIGNED_GTID = 1884 -SLAVE_HAS_MORE_GTIDS_THAN_MASTER = 1885 -MISSING_KEY = 1886 -ERROR_LAST = 1973 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/FIELD_TYPE.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/FIELD_TYPE.py deleted file mode 100644 index 3c4eca9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/FIELD_TYPE.py +++ /dev/null @@ -1,40 +0,0 @@ -"""MySQL FIELD_TYPE Constants - -These constants represent the various column (field) types that are -supported by MySQL. -""" - -DECIMAL = 0 -TINY = 1 -SHORT = 2 -LONG = 3 -FLOAT = 4 -DOUBLE = 5 -NULL = 6 -TIMESTAMP = 7 -LONGLONG = 8 -INT24 = 9 -DATE = 10 -TIME = 11 -DATETIME = 12 -YEAR = 13 -# NEWDATE = 14 # Internal to MySQL. -VARCHAR = 15 -BIT = 16 -# TIMESTAMP2 = 17 -# DATETIME2 = 18 -# TIME2 = 19 -JSON = 245 -NEWDECIMAL = 246 -ENUM = 247 -SET = 248 -TINY_BLOB = 249 -MEDIUM_BLOB = 250 -LONG_BLOB = 251 -BLOB = 252 -VAR_STRING = 253 -STRING = 254 -GEOMETRY = 255 - -CHAR = TINY -INTERVAL = ENUM diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/FLAG.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/FLAG.py deleted file mode 100644 index 00e6c7c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/FLAG.py +++ /dev/null @@ -1,23 +0,0 @@ -"""MySQL FLAG Constants - -These flags are used along with the FIELD_TYPE to indicate various -properties of columns in a result set. - -""" - -NOT_NULL = 1 -PRI_KEY = 2 -UNIQUE_KEY = 4 -MULTIPLE_KEY = 8 -BLOB = 16 -UNSIGNED = 32 -ZEROFILL = 64 -BINARY = 128 -ENUM = 256 -AUTO_INCREMENT = 512 -TIMESTAMP = 1024 -SET = 2048 -NUM = 32768 -PART_KEY = 16384 -GROUP = 32768 -UNIQUE = 65536 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/__init__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/__init__.py deleted file mode 100644 index 0372265..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/constants/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["CR", "FIELD_TYPE", "CLIENT", "ER", "FLAG"] diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/converters.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/converters.py deleted file mode 100644 index d6fdc01..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/converters.py +++ /dev/null @@ -1,139 +0,0 @@ -"""MySQLdb type conversion module - -This module handles all the type conversions for MySQL. If the default -type conversions aren't what you need, you can make your own. The -dictionary conversions maps some kind of type to a conversion function -which returns the corresponding value: - -Key: FIELD_TYPE.* (from MySQLdb.constants) - -Conversion function: - - Arguments: string - - Returns: Python object - -Key: Python type object (from types) or class - -Conversion function: - - Arguments: Python object of indicated type or class AND - conversion dictionary - - Returns: SQL literal value - - Notes: Most conversion functions can ignore the dictionary, but - it is a required parameter. It is necessary for converting - things like sequences and instances. - -Don't modify conversions if you can avoid it. Instead, make copies -(with the copy() method), modify the copies, and then pass them to -MySQL.connect(). -""" -from decimal import Decimal - -from MySQLdb._mysql import string_literal -from MySQLdb.constants import FIELD_TYPE, FLAG -from MySQLdb.times import ( - Date, - DateTimeType, - DateTime2literal, - DateTimeDeltaType, - DateTimeDelta2literal, - DateTime_or_None, - TimeDelta_or_None, - Date_or_None, -) -from MySQLdb._exceptions import ProgrammingError - -import array - -NoneType = type(None) - -try: - ArrayType = array.ArrayType -except AttributeError: - ArrayType = array.array - - -def Bool2Str(s, d): - return b"1" if s else b"0" - - -def Set2Str(s, d): - # Only support ascii string. Not tested. - return string_literal(",".join(s)) - - -def Thing2Str(s, d): - """Convert something into a string via str().""" - return str(s) - - -def Float2Str(o, d): - s = repr(o) - if s in ("inf", "-inf", "nan"): - raise ProgrammingError("%s can not be used with MySQL" % s) - if "e" not in s: - s += "e0" - return s - - -def None2NULL(o, d): - """Convert None to NULL.""" - return b"NULL" - - -def Thing2Literal(o, d): - """Convert something into a SQL string literal. If using - MySQL-3.23 or newer, string_literal() is a method of the - _mysql.MYSQL object, and this function will be overridden with - that method when the connection is created.""" - return string_literal(o) - - -def Decimal2Literal(o, d): - return format(o, "f") - - -def array2Str(o, d): - return Thing2Literal(o.tostring(), d) - - -# bytes or str regarding to BINARY_FLAG. -_bytes_or_str = ((FLAG.BINARY, bytes), (None, str)) - -conversions = { - int: Thing2Str, - float: Float2Str, - NoneType: None2NULL, - ArrayType: array2Str, - bool: Bool2Str, - Date: Thing2Literal, - DateTimeType: DateTime2literal, - DateTimeDeltaType: DateTimeDelta2literal, - set: Set2Str, - Decimal: Decimal2Literal, - FIELD_TYPE.TINY: int, - FIELD_TYPE.SHORT: int, - FIELD_TYPE.LONG: int, - FIELD_TYPE.FLOAT: float, - FIELD_TYPE.DOUBLE: float, - FIELD_TYPE.DECIMAL: Decimal, - FIELD_TYPE.NEWDECIMAL: Decimal, - FIELD_TYPE.LONGLONG: int, - FIELD_TYPE.INT24: int, - FIELD_TYPE.YEAR: int, - FIELD_TYPE.TIMESTAMP: DateTime_or_None, - FIELD_TYPE.DATETIME: DateTime_or_None, - FIELD_TYPE.TIME: TimeDelta_or_None, - FIELD_TYPE.DATE: Date_or_None, - FIELD_TYPE.TINY_BLOB: bytes, - FIELD_TYPE.MEDIUM_BLOB: bytes, - FIELD_TYPE.LONG_BLOB: bytes, - FIELD_TYPE.BLOB: bytes, - FIELD_TYPE.STRING: bytes, - FIELD_TYPE.VAR_STRING: bytes, - FIELD_TYPE.VARCHAR: bytes, - FIELD_TYPE.JSON: bytes, -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/cursors.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/cursors.py deleted file mode 100644 index 70fbeea..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/cursors.py +++ /dev/null @@ -1,500 +0,0 @@ -"""MySQLdb Cursors - -This module implements Cursors of various types for MySQLdb. By -default, MySQLdb uses the Cursor class. -""" -import re - -from ._exceptions import ProgrammingError - - -#: Regular expression for ``Cursor.executemany```. -#: executemany only supports simple bulk insert. -#: You can use it to load large dataset. -RE_INSERT_VALUES = re.compile( - "".join( - [ - r"\s*((?:INSERT|REPLACE)\b.+\bVALUES?\s*)", - r"(\(\s*(?:%s|%\(.+\)s)\s*(?:,\s*(?:%s|%\(.+\)s)\s*)*\))", - r"(\s*(?:ON DUPLICATE.*)?);?\s*\Z", - ] - ), - re.IGNORECASE | re.DOTALL, -) - - -class BaseCursor: - """A base for Cursor classes. Useful attributes: - - description - A tuple of DB API 7-tuples describing the columns in - the last executed query; see PEP-249 for details. - - description_flags - Tuple of column flags for last query, one entry per column - in the result set. Values correspond to those in - MySQLdb.constants.FLAG. See MySQL documentation (C API) - for more information. Non-standard extension. - - arraysize - default number of rows fetchmany() will fetch - """ - - #: Max statement size which :meth:`executemany` generates. - #: - #: Max size of allowed statement is max_allowed_packet - packet_header_size. - #: Default value of max_allowed_packet is 1048576. - max_stmt_length = 64 * 1024 - - from ._exceptions import ( - MySQLError, - Warning, - Error, - InterfaceError, - DatabaseError, - DataError, - OperationalError, - IntegrityError, - InternalError, - ProgrammingError, - NotSupportedError, - ) - - connection = None - - def __init__(self, connection): - self.connection = connection - self.description = None - self.description_flags = None - self.rowcount = 0 - self.arraysize = 1 - self._executed = None - - self.lastrowid = None - self._result = None - self.rownumber = None - self._rows = None - - def _discard(self): - self.description = None - self.description_flags = None - # Django uses some member after __exit__. - # So we keep rowcount and lastrowid here. They are cleared in Cursor._query(). - # self.rowcount = 0 - # self.lastrowid = None - self._rows = None - self.rownumber = None - - if self._result: - self._result.discard() - self._result = None - - con = self.connection - if con is None: - return - while con.next_result() == 0: # -1 means no more data. - con.discard_result() - - def close(self): - """Close the cursor. No further queries will be possible.""" - try: - if self.connection is None: - return - self._discard() - finally: - self.connection = None - self._result = None - - def __enter__(self): - return self - - def __exit__(self, *exc_info): - del exc_info - self.close() - - def _check_executed(self): - if not self._executed: - raise ProgrammingError("execute() first") - - def nextset(self): - """Advance to the next result set. - - Returns None if there are no more result sets. - """ - if self._executed: - self.fetchall() - - db = self._get_db() - nr = db.next_result() - if nr == -1: - return None - self._do_get_result(db) - self._post_get_result() - return 1 - - def _do_get_result(self, db): - self._result = result = self._get_result() - if result is None: - self.description = self.description_flags = None - else: - self.description = result.describe() - self.description_flags = result.field_flags() - - self.rowcount = db.affected_rows() - self.rownumber = 0 - self.lastrowid = db.insert_id() - - def _post_get_result(self): - pass - - def setinputsizes(self, *args): - """Does nothing, required by DB API.""" - - def setoutputsizes(self, *args): - """Does nothing, required by DB API.""" - - def _get_db(self): - con = self.connection - if con is None: - raise ProgrammingError("cursor closed") - return con - - def execute(self, query, args=None): - """Execute a query. - - query -- string, query to execute on server - args -- optional sequence or mapping, parameters to use with query. - - Note: If args is a sequence, then %s must be used as the - parameter placeholder in the query. If a mapping is used, - %(key)s must be used as the placeholder. - - Returns integer represents rows affected, if any - """ - self._discard() - - mogrified_query = self._mogrify(query, args) - - assert isinstance(mogrified_query, (bytes, bytearray)) - res = self._query(mogrified_query) - return res - - def _mogrify(self, query, args=None): - """Return query after binding args.""" - db = self._get_db() - - if isinstance(query, str): - query = query.encode(db.encoding) - - if args is not None: - if isinstance(args, dict): - nargs = {} - for key, item in args.items(): - if isinstance(key, str): - key = key.encode(db.encoding) - nargs[key] = db.literal(item) - args = nargs - else: - args = tuple(map(db.literal, args)) - try: - query = query % args - except TypeError as m: - raise ProgrammingError(str(m)) - - return query - - def mogrify(self, query, args=None): - """Return query after binding args. - - query -- string, query to mogrify - args -- optional sequence or mapping, parameters to use with query. - - Note: If args is a sequence, then %s must be used as the - parameter placeholder in the query. If a mapping is used, - %(key)s must be used as the placeholder. - - Returns string representing query that would be executed by the server - """ - return self._mogrify(query, args).decode(self._get_db().encoding) - - def executemany(self, query, args): - # type: (str, list) -> int - """Execute a multi-row query. - - :param query: query to execute on server - :param args: Sequence of sequences or mappings. It is used as parameter. - :return: Number of rows affected, if any. - - This method improves performance on multiple-row INSERT and - REPLACE. Otherwise it is equivalent to looping over args with - execute(). - """ - if not args: - return - - m = RE_INSERT_VALUES.match(query) - if m: - q_prefix = m.group(1) % () - q_values = m.group(2).rstrip() - q_postfix = m.group(3) or "" - assert q_values[0] == "(" and q_values[-1] == ")" - return self._do_execute_many( - q_prefix, - q_values, - q_postfix, - args, - self.max_stmt_length, - self._get_db().encoding, - ) - - self.rowcount = sum(self.execute(query, arg) for arg in args) - return self.rowcount - - def _do_execute_many( - self, prefix, values, postfix, args, max_stmt_length, encoding - ): - if isinstance(prefix, str): - prefix = prefix.encode(encoding) - if isinstance(values, str): - values = values.encode(encoding) - if isinstance(postfix, str): - postfix = postfix.encode(encoding) - sql = bytearray(prefix) - args = iter(args) - v = self._mogrify(values, next(args)) - sql += v - rows = 0 - for arg in args: - v = self._mogrify(values, arg) - if len(sql) + len(v) + len(postfix) + 1 > max_stmt_length: - rows += self.execute(sql + postfix) - sql = bytearray(prefix) - else: - sql += b"," - sql += v - rows += self.execute(sql + postfix) - self.rowcount = rows - return rows - - def callproc(self, procname, args=()): - """Execute stored procedure procname with args - - procname -- string, name of procedure to execute on server - - args -- Sequence of parameters to use with procedure - - Returns the original args. - - Compatibility warning: PEP-249 specifies that any modified - parameters must be returned. This is currently impossible - as they are only available by storing them in a server - variable and then retrieved by a query. Since stored - procedures return zero or more result sets, there is no - reliable way to get at OUT or INOUT parameters via callproc. - The server variables are named @_procname_n, where procname - is the parameter above and n is the position of the parameter - (from zero). Once all result sets generated by the procedure - have been fetched, you can issue a SELECT @_procname_0, ... - query using .execute() to get any OUT or INOUT values. - - Compatibility warning: The act of calling a stored procedure - itself creates an empty result set. This appears after any - result sets generated by the procedure. This is non-standard - behavior with respect to the DB-API. Be sure to use nextset() - to advance through all result sets; otherwise you may get - disconnected. - """ - db = self._get_db() - if isinstance(procname, str): - procname = procname.encode(db.encoding) - if args: - fmt = b"@_" + procname + b"_%d=%s" - q = b"SET %s" % b",".join( - fmt % (index, db.literal(arg)) for index, arg in enumerate(args) - ) - self._query(q) - self.nextset() - - q = b"CALL %s(%s)" % ( - procname, - b",".join([b"@_%s_%d" % (procname, i) for i in range(len(args))]), - ) - self._query(q) - return args - - def _query(self, q): - db = self._get_db() - self._result = None - self.rowcount = None - self.lastrowid = None - db.query(q) - self._do_get_result(db) - self._post_get_result() - self._executed = q - return self.rowcount - - def _fetch_row(self, size=1): - if not self._result: - return () - return self._result.fetch_row(size, self._fetch_type) - - def __iter__(self): - return iter(self.fetchone, None) - - Warning = Warning - Error = Error - InterfaceError = InterfaceError - DatabaseError = DatabaseError - DataError = DataError - OperationalError = OperationalError - IntegrityError = IntegrityError - InternalError = InternalError - ProgrammingError = ProgrammingError - NotSupportedError = NotSupportedError - - -class CursorStoreResultMixIn: - """This is a MixIn class which causes the entire result set to be - stored on the client side, i.e. it uses mysql_store_result(). If the - result set can be very large, consider adding a LIMIT clause to your - query, or using CursorUseResultMixIn instead.""" - - def _get_result(self): - return self._get_db().store_result() - - def _post_get_result(self): - self._rows = self._fetch_row(0) - self._result = None - - def fetchone(self): - """Fetches a single row from the cursor. None indicates that - no more rows are available.""" - self._check_executed() - if self.rownumber >= len(self._rows): - return None - result = self._rows[self.rownumber] - self.rownumber = self.rownumber + 1 - return result - - def fetchmany(self, size=None): - """Fetch up to size rows from the cursor. Result set may be smaller - than size. If size is not defined, cursor.arraysize is used.""" - self._check_executed() - end = self.rownumber + (size or self.arraysize) - result = self._rows[self.rownumber : end] - self.rownumber = min(end, len(self._rows)) - return result - - def fetchall(self): - """Fetches all available rows from the cursor.""" - self._check_executed() - if self.rownumber: - result = self._rows[self.rownumber :] - else: - result = self._rows - self.rownumber = len(self._rows) - return result - - def scroll(self, value, mode="relative"): - """Scroll the cursor in the result set to a new position according - to mode. - - If mode is 'relative' (default), value is taken as offset to - the current position in the result set, if set to 'absolute', - value states an absolute target position.""" - self._check_executed() - if mode == "relative": - r = self.rownumber + value - elif mode == "absolute": - r = value - else: - raise ProgrammingError("unknown scroll mode %s" % repr(mode)) - if r < 0 or r >= len(self._rows): - raise IndexError("out of range") - self.rownumber = r - - def __iter__(self): - self._check_executed() - result = self.rownumber and self._rows[self.rownumber :] or self._rows - return iter(result) - - -class CursorUseResultMixIn: - - """This is a MixIn class which causes the result set to be stored - in the server and sent row-by-row to client side, i.e. it uses - mysql_use_result(). You MUST retrieve the entire result set and - close() the cursor before additional queries can be performed on - the connection.""" - - def _get_result(self): - return self._get_db().use_result() - - def fetchone(self): - """Fetches a single row from the cursor.""" - self._check_executed() - r = self._fetch_row(1) - if not r: - return None - self.rownumber = self.rownumber + 1 - return r[0] - - def fetchmany(self, size=None): - """Fetch up to size rows from the cursor. Result set may be smaller - than size. If size is not defined, cursor.arraysize is used.""" - self._check_executed() - r = self._fetch_row(size or self.arraysize) - self.rownumber = self.rownumber + len(r) - return r - - def fetchall(self): - """Fetches all available rows from the cursor.""" - self._check_executed() - r = self._fetch_row(0) - self.rownumber = self.rownumber + len(r) - return r - - def __iter__(self): - return self - - def next(self): - row = self.fetchone() - if row is None: - raise StopIteration - return row - - __next__ = next - - -class CursorTupleRowsMixIn: - """This is a MixIn class that causes all rows to be returned as tuples, - which is the standard form required by DB API.""" - - _fetch_type = 0 - - -class CursorDictRowsMixIn: - """This is a MixIn class that causes all rows to be returned as - dictionaries. This is a non-standard feature.""" - - _fetch_type = 1 - - -class Cursor(CursorStoreResultMixIn, CursorTupleRowsMixIn, BaseCursor): - """This is the standard Cursor class that returns rows as tuples - and stores the result set in the client.""" - - -class DictCursor(CursorStoreResultMixIn, CursorDictRowsMixIn, BaseCursor): - """This is a Cursor class that returns rows as dictionaries and - stores the result set in the client.""" - - -class SSCursor(CursorUseResultMixIn, CursorTupleRowsMixIn, BaseCursor): - """This is a Cursor class that returns rows as tuples and stores - the result set in the server.""" - - -class SSDictCursor(CursorUseResultMixIn, CursorDictRowsMixIn, BaseCursor): - """This is a Cursor class that returns rows as dictionaries and - stores the result set in the server.""" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/release.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/release.py deleted file mode 100644 index 35d53e2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/release.py +++ /dev/null @@ -1,3 +0,0 @@ -__author__ = "Inada Naoki " -__version__ = "2.2.4" -version_info = (2, 2, 4, "final", 0) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/times.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/times.py deleted file mode 100644 index 915d827..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/MySQLdb/times.py +++ /dev/null @@ -1,150 +0,0 @@ -"""times module - -This module provides some Date and Time classes for dealing with MySQL data. - -Use Python datetime module to handle date and time columns. -""" -from time import localtime -from datetime import date, datetime, time, timedelta -from MySQLdb._mysql import string_literal - -Date = date -Time = time -TimeDelta = timedelta -Timestamp = datetime - -DateTimeDeltaType = timedelta -DateTimeType = datetime - - -def DateFromTicks(ticks): - """Convert UNIX ticks into a date instance.""" - return date(*localtime(ticks)[:3]) - - -def TimeFromTicks(ticks): - """Convert UNIX ticks into a time instance.""" - return time(*localtime(ticks)[3:6]) - - -def TimestampFromTicks(ticks): - """Convert UNIX ticks into a datetime instance.""" - return datetime(*localtime(ticks)[:6]) - - -format_TIME = format_DATE = str - - -def format_TIMEDELTA(v): - seconds = int(v.seconds) % 60 - minutes = int(v.seconds // 60) % 60 - hours = int(v.seconds // 3600) % 24 - return "%d %d:%d:%d" % (v.days, hours, minutes, seconds) - - -def format_TIMESTAMP(d): - """ - :type d: datetime.datetime - """ - if d.microsecond: - fmt = " ".join( - [ - "{0.year:04}-{0.month:02}-{0.day:02}", - "{0.hour:02}:{0.minute:02}:{0.second:02}.{0.microsecond:06}", - ] - ) - else: - fmt = " ".join( - [ - "{0.year:04}-{0.month:02}-{0.day:02}", - "{0.hour:02}:{0.minute:02}:{0.second:02}", - ] - ) - return fmt.format(d) - - -def DateTime_or_None(s): - try: - if len(s) < 11: - return Date_or_None(s) - - micros = s[20:] - - if len(micros) == 0: - # 12:00:00 - micros = 0 - elif len(micros) < 7: - # 12:00:00.123456 - micros = int(micros) * 10 ** (6 - len(micros)) - else: - return None - - return datetime( - int(s[:4]), # year - int(s[5:7]), # month - int(s[8:10]), # day - int(s[11:13] or 0), # hour - int(s[14:16] or 0), # minute - int(s[17:19] or 0), # second - micros, # microsecond - ) - except ValueError: - return None - - -def TimeDelta_or_None(s): - try: - h, m, s = s.split(":") - if "." in s: - s, ms = s.split(".") - ms = ms.ljust(6, "0") - else: - ms = 0 - if h[0] == "-": - negative = True - else: - negative = False - h, m, s, ms = abs(int(h)), int(m), int(s), int(ms) - td = timedelta(hours=h, minutes=m, seconds=s, microseconds=ms) - if negative: - return -td - else: - return td - except ValueError: - # unpacking or int/float conversion failed - return None - - -def Time_or_None(s): - try: - h, m, s = s.split(":") - if "." in s: - s, ms = s.split(".") - ms = ms.ljust(6, "0") - else: - ms = 0 - h, m, s, ms = int(h), int(m), int(s), int(ms) - return time(hour=h, minute=m, second=s, microsecond=ms) - except ValueError: - return None - - -def Date_or_None(s): - try: - return date( - int(s[:4]), - int(s[5:7]), - int(s[8:10]), - ) # year # month # day - except ValueError: - return None - - -def DateTime2literal(d, c): - """Format a DateTime object as an ISO timestamp.""" - return string_literal(format_TIMESTAMP(d)) - - -def DateTimeDelta2literal(d, c): - """Format a DateTimeDelta object as a time.""" - return string_literal(format_TIMEDELTA(d)) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BdfFontFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BdfFontFile.py deleted file mode 100644 index e3eda4f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BdfFontFile.py +++ /dev/null @@ -1,133 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# bitmap distribution font (bdf) file parser -# -# history: -# 1996-05-16 fl created (as bdf2pil) -# 1997-08-25 fl converted to FontFile driver -# 2001-05-25 fl removed bogus __init__ call -# 2002-11-20 fl robustification (from Kevin Cazabon, Dmitry Vasiliev) -# 2003-04-22 fl more robustification (from Graham Dumpleton) -# -# Copyright (c) 1997-2003 by Secret Labs AB. -# Copyright (c) 1997-2003 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# - -""" -Parse X Bitmap Distribution Format (BDF) -""" -from __future__ import annotations - -from typing import BinaryIO - -from . import FontFile, Image - -bdf_slant = { - "R": "Roman", - "I": "Italic", - "O": "Oblique", - "RI": "Reverse Italic", - "RO": "Reverse Oblique", - "OT": "Other", -} - -bdf_spacing = {"P": "Proportional", "M": "Monospaced", "C": "Cell"} - - -def bdf_char( - f: BinaryIO, -) -> ( - tuple[ - str, - int, - tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], - Image.Image, - ] - | None -): - # skip to STARTCHAR - while True: - s = f.readline() - if not s: - return None - if s[:9] == b"STARTCHAR": - break - id = s[9:].strip().decode("ascii") - - # load symbol properties - props = {} - while True: - s = f.readline() - if not s or s[:6] == b"BITMAP": - break - i = s.find(b" ") - props[s[:i].decode("ascii")] = s[i + 1 : -1].decode("ascii") - - # load bitmap - bitmap = bytearray() - while True: - s = f.readline() - if not s or s[:7] == b"ENDCHAR": - break - bitmap += s[:-1] - - # The word BBX - # followed by the width in x (BBw), height in y (BBh), - # and x and y displacement (BBxoff0, BByoff0) - # of the lower left corner from the origin of the character. - width, height, x_disp, y_disp = (int(p) for p in props["BBX"].split()) - - # The word DWIDTH - # followed by the width in x and y of the character in device pixels. - dwx, dwy = (int(p) for p in props["DWIDTH"].split()) - - bbox = ( - (dwx, dwy), - (x_disp, -y_disp - height, width + x_disp, -y_disp), - (0, 0, width, height), - ) - - try: - im = Image.frombytes("1", (width, height), bitmap, "hex", "1") - except ValueError: - # deal with zero-width characters - im = Image.new("1", (width, height)) - - return id, int(props["ENCODING"]), bbox, im - - -class BdfFontFile(FontFile.FontFile): - """Font file plugin for the X11 BDF format.""" - - def __init__(self, fp: BinaryIO): - super().__init__() - - s = fp.readline() - if s[:13] != b"STARTFONT 2.1": - msg = "not a valid BDF file" - raise SyntaxError(msg) - - props = {} - comments = [] - - while True: - s = fp.readline() - if not s or s[:13] == b"ENDPROPERTIES": - break - i = s.find(b" ") - props[s[:i].decode("ascii")] = s[i + 1 : -1].decode("ascii") - if s[:i] in [b"COMMENT", b"COPYRIGHT"]: - if s.find(b"LogicalFontDescription") < 0: - comments.append(s[i + 1 : -1].decode("ascii")) - - while True: - c = bdf_char(fp) - if not c: - break - id, ch, (xy, dst, src), im = c - if 0 <= ch < len(self.glyph): - self.glyph[ch] = xy, dst, src, im diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BlpImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BlpImagePlugin.py deleted file mode 100644 index b8f38b7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BlpImagePlugin.py +++ /dev/null @@ -1,475 +0,0 @@ -""" -Blizzard Mipmap Format (.blp) -Jerome Leclanche - -The contents of this file are hereby released in the public domain (CC0) -Full text of the CC0 license: - https://creativecommons.org/publicdomain/zero/1.0/ - -BLP1 files, used mostly in Warcraft III, are not fully supported. -All types of BLP2 files used in World of Warcraft are supported. - -The BLP file structure consists of a header, up to 16 mipmaps of the -texture - -Texture sizes must be powers of two, though the two dimensions do -not have to be equal; 512x256 is valid, but 512x200 is not. -The first mipmap (mipmap #0) is the full size image; each subsequent -mipmap halves both dimensions. The final mipmap should be 1x1. - -BLP files come in many different flavours: -* JPEG-compressed (type == 0) - only supported for BLP1. -* RAW images (type == 1, encoding == 1). Each mipmap is stored as an - array of 8-bit values, one per pixel, left to right, top to bottom. - Each value is an index to the palette. -* DXT-compressed (type == 1, encoding == 2): -- DXT1 compression is used if alpha_encoding == 0. - - An additional alpha bit is used if alpha_depth == 1. - - DXT3 compression is used if alpha_encoding == 1. - - DXT5 compression is used if alpha_encoding == 7. -""" -from __future__ import annotations - -import os -import struct -from enum import IntEnum -from io import BytesIO - -from . import Image, ImageFile - - -class Format(IntEnum): - JPEG = 0 - - -class Encoding(IntEnum): - UNCOMPRESSED = 1 - DXT = 2 - UNCOMPRESSED_RAW_BGRA = 3 - - -class AlphaEncoding(IntEnum): - DXT1 = 0 - DXT3 = 1 - DXT5 = 7 - - -def unpack_565(i): - return ((i >> 11) & 0x1F) << 3, ((i >> 5) & 0x3F) << 2, (i & 0x1F) << 3 - - -def decode_dxt1(data, alpha=False): - """ - input: one "row" of data (i.e. will produce 4*width pixels) - """ - - blocks = len(data) // 8 # number of blocks in row - ret = (bytearray(), bytearray(), bytearray(), bytearray()) - - for block in range(blocks): - # Decode next 8-byte block. - idx = block * 8 - color0, color1, bits = struct.unpack_from("> 2 - - a = 0xFF - if control == 0: - r, g, b = r0, g0, b0 - elif control == 1: - r, g, b = r1, g1, b1 - elif control == 2: - if color0 > color1: - r = (2 * r0 + r1) // 3 - g = (2 * g0 + g1) // 3 - b = (2 * b0 + b1) // 3 - else: - r = (r0 + r1) // 2 - g = (g0 + g1) // 2 - b = (b0 + b1) // 2 - elif control == 3: - if color0 > color1: - r = (2 * r1 + r0) // 3 - g = (2 * g1 + g0) // 3 - b = (2 * b1 + b0) // 3 - else: - r, g, b, a = 0, 0, 0, 0 - - if alpha: - ret[j].extend([r, g, b, a]) - else: - ret[j].extend([r, g, b]) - - return ret - - -def decode_dxt3(data): - """ - input: one "row" of data (i.e. will produce 4*width pixels) - """ - - blocks = len(data) // 16 # number of blocks in row - ret = (bytearray(), bytearray(), bytearray(), bytearray()) - - for block in range(blocks): - idx = block * 16 - block = data[idx : idx + 16] - # Decode next 16-byte block. - bits = struct.unpack_from("<8B", block) - color0, color1 = struct.unpack_from(">= 4 - else: - high = True - a &= 0xF - a *= 17 # We get a value between 0 and 15 - - color_code = (code >> 2 * (4 * j + i)) & 0x03 - - if color_code == 0: - r, g, b = r0, g0, b0 - elif color_code == 1: - r, g, b = r1, g1, b1 - elif color_code == 2: - r = (2 * r0 + r1) // 3 - g = (2 * g0 + g1) // 3 - b = (2 * b0 + b1) // 3 - elif color_code == 3: - r = (2 * r1 + r0) // 3 - g = (2 * g1 + g0) // 3 - b = (2 * b1 + b0) // 3 - - ret[j].extend([r, g, b, a]) - - return ret - - -def decode_dxt5(data): - """ - input: one "row" of data (i.e. will produce 4 * width pixels) - """ - - blocks = len(data) // 16 # number of blocks in row - ret = (bytearray(), bytearray(), bytearray(), bytearray()) - - for block in range(blocks): - idx = block * 16 - block = data[idx : idx + 16] - # Decode next 16-byte block. - a0, a1 = struct.unpack_from("> alphacode_index) & 0x07 - elif alphacode_index == 15: - alphacode = (alphacode2 >> 15) | ((alphacode1 << 1) & 0x06) - else: # alphacode_index >= 18 and alphacode_index <= 45 - alphacode = (alphacode1 >> (alphacode_index - 16)) & 0x07 - - if alphacode == 0: - a = a0 - elif alphacode == 1: - a = a1 - elif a0 > a1: - a = ((8 - alphacode) * a0 + (alphacode - 1) * a1) // 7 - elif alphacode == 6: - a = 0 - elif alphacode == 7: - a = 255 - else: - a = ((6 - alphacode) * a0 + (alphacode - 1) * a1) // 5 - - color_code = (code >> 2 * (4 * j + i)) & 0x03 - - if color_code == 0: - r, g, b = r0, g0, b0 - elif color_code == 1: - r, g, b = r1, g1, b1 - elif color_code == 2: - r = (2 * r0 + r1) // 3 - g = (2 * g0 + g1) // 3 - b = (2 * b0 + b1) // 3 - elif color_code == 3: - r = (2 * r1 + r0) // 3 - g = (2 * g1 + g0) // 3 - b = (2 * b1 + b0) // 3 - - ret[j].extend([r, g, b, a]) - - return ret - - -class BLPFormatError(NotImplementedError): - pass - - -def _accept(prefix): - return prefix[:4] in (b"BLP1", b"BLP2") - - -class BlpImageFile(ImageFile.ImageFile): - """ - Blizzard Mipmap Format - """ - - format = "BLP" - format_description = "Blizzard Mipmap Format" - - def _open(self): - self.magic = self.fp.read(4) - - self.fp.seek(5, os.SEEK_CUR) - (self._blp_alpha_depth,) = struct.unpack(" mode, rawmode - 1: ("P", "P;1"), - 4: ("P", "P;4"), - 8: ("P", "P"), - 16: ("RGB", "BGR;15"), - 24: ("RGB", "BGR"), - 32: ("RGB", "BGRX"), -} - - -def _accept(prefix): - return prefix[:2] == b"BM" - - -def _dib_accept(prefix): - return i32(prefix) in [12, 40, 64, 108, 124] - - -# ============================================================================= -# Image plugin for the Windows BMP format. -# ============================================================================= -class BmpImageFile(ImageFile.ImageFile): - """Image plugin for the Windows Bitmap format (BMP)""" - - # ------------------------------------------------------------- Description - format_description = "Windows Bitmap" - format = "BMP" - - # -------------------------------------------------- BMP Compression values - COMPRESSIONS = {"RAW": 0, "RLE8": 1, "RLE4": 2, "BITFIELDS": 3, "JPEG": 4, "PNG": 5} - for k, v in COMPRESSIONS.items(): - vars()[k] = v - - def _bitmap(self, header=0, offset=0): - """Read relevant info about the BMP""" - read, seek = self.fp.read, self.fp.seek - if header: - seek(header) - # read bmp header size @offset 14 (this is part of the header size) - file_info = {"header_size": i32(read(4)), "direction": -1} - - # -------------------- If requested, read header at a specific position - # read the rest of the bmp header, without its size - header_data = ImageFile._safe_read(self.fp, file_info["header_size"] - 4) - - # -------------------------------------------------- IBM OS/2 Bitmap v1 - # ----- This format has different offsets because of width/height types - if file_info["header_size"] == 12: - file_info["width"] = i16(header_data, 0) - file_info["height"] = i16(header_data, 2) - file_info["planes"] = i16(header_data, 4) - file_info["bits"] = i16(header_data, 6) - file_info["compression"] = self.RAW - file_info["palette_padding"] = 3 - - # --------------------------------------------- Windows Bitmap v2 to v5 - # v3, OS/2 v2, v4, v5 - elif file_info["header_size"] in (40, 64, 108, 124): - file_info["y_flip"] = header_data[7] == 0xFF - file_info["direction"] = 1 if file_info["y_flip"] else -1 - file_info["width"] = i32(header_data, 0) - file_info["height"] = ( - i32(header_data, 4) - if not file_info["y_flip"] - else 2**32 - i32(header_data, 4) - ) - file_info["planes"] = i16(header_data, 8) - file_info["bits"] = i16(header_data, 10) - file_info["compression"] = i32(header_data, 12) - # byte size of pixel data - file_info["data_size"] = i32(header_data, 16) - file_info["pixels_per_meter"] = ( - i32(header_data, 20), - i32(header_data, 24), - ) - file_info["colors"] = i32(header_data, 28) - file_info["palette_padding"] = 4 - self.info["dpi"] = tuple(x / 39.3701 for x in file_info["pixels_per_meter"]) - if file_info["compression"] == self.BITFIELDS: - if len(header_data) >= 52: - for idx, mask in enumerate( - ["r_mask", "g_mask", "b_mask", "a_mask"] - ): - file_info[mask] = i32(header_data, 36 + idx * 4) - else: - # 40 byte headers only have the three components in the - # bitfields masks, ref: - # https://msdn.microsoft.com/en-us/library/windows/desktop/dd183376(v=vs.85).aspx - # See also - # https://github.com/python-pillow/Pillow/issues/1293 - # There is a 4th component in the RGBQuad, in the alpha - # location, but it is listed as a reserved component, - # and it is not generally an alpha channel - file_info["a_mask"] = 0x0 - for mask in ["r_mask", "g_mask", "b_mask"]: - file_info[mask] = i32(read(4)) - file_info["rgb_mask"] = ( - file_info["r_mask"], - file_info["g_mask"], - file_info["b_mask"], - ) - file_info["rgba_mask"] = ( - file_info["r_mask"], - file_info["g_mask"], - file_info["b_mask"], - file_info["a_mask"], - ) - else: - msg = f"Unsupported BMP header type ({file_info['header_size']})" - raise OSError(msg) - - # ------------------ Special case : header is reported 40, which - # ---------------------- is shorter than real size for bpp >= 16 - self._size = file_info["width"], file_info["height"] - - # ------- If color count was not found in the header, compute from bits - file_info["colors"] = ( - file_info["colors"] - if file_info.get("colors", 0) - else (1 << file_info["bits"]) - ) - if offset == 14 + file_info["header_size"] and file_info["bits"] <= 8: - offset += 4 * file_info["colors"] - - # ---------------------- Check bit depth for unusual unsupported values - self._mode, raw_mode = BIT2MODE.get(file_info["bits"], (None, None)) - if self.mode is None: - msg = f"Unsupported BMP pixel depth ({file_info['bits']})" - raise OSError(msg) - - # ---------------- Process BMP with Bitfields compression (not palette) - decoder_name = "raw" - if file_info["compression"] == self.BITFIELDS: - SUPPORTED = { - 32: [ - (0xFF0000, 0xFF00, 0xFF, 0x0), - (0xFF000000, 0xFF0000, 0xFF00, 0x0), - (0xFF000000, 0xFF0000, 0xFF00, 0xFF), - (0xFF, 0xFF00, 0xFF0000, 0xFF000000), - (0xFF0000, 0xFF00, 0xFF, 0xFF000000), - (0x0, 0x0, 0x0, 0x0), - ], - 24: [(0xFF0000, 0xFF00, 0xFF)], - 16: [(0xF800, 0x7E0, 0x1F), (0x7C00, 0x3E0, 0x1F)], - } - MASK_MODES = { - (32, (0xFF0000, 0xFF00, 0xFF, 0x0)): "BGRX", - (32, (0xFF000000, 0xFF0000, 0xFF00, 0x0)): "XBGR", - (32, (0xFF000000, 0xFF0000, 0xFF00, 0xFF)): "ABGR", - (32, (0xFF, 0xFF00, 0xFF0000, 0xFF000000)): "RGBA", - (32, (0xFF0000, 0xFF00, 0xFF, 0xFF000000)): "BGRA", - (32, (0x0, 0x0, 0x0, 0x0)): "BGRA", - (24, (0xFF0000, 0xFF00, 0xFF)): "BGR", - (16, (0xF800, 0x7E0, 0x1F)): "BGR;16", - (16, (0x7C00, 0x3E0, 0x1F)): "BGR;15", - } - if file_info["bits"] in SUPPORTED: - if ( - file_info["bits"] == 32 - and file_info["rgba_mask"] in SUPPORTED[file_info["bits"]] - ): - raw_mode = MASK_MODES[(file_info["bits"], file_info["rgba_mask"])] - self._mode = "RGBA" if "A" in raw_mode else self.mode - elif ( - file_info["bits"] in (24, 16) - and file_info["rgb_mask"] in SUPPORTED[file_info["bits"]] - ): - raw_mode = MASK_MODES[(file_info["bits"], file_info["rgb_mask"])] - else: - msg = "Unsupported BMP bitfields layout" - raise OSError(msg) - else: - msg = "Unsupported BMP bitfields layout" - raise OSError(msg) - elif file_info["compression"] == self.RAW: - if file_info["bits"] == 32 and header == 22: # 32-bit .cur offset - raw_mode, self._mode = "BGRA", "RGBA" - elif file_info["compression"] in (self.RLE8, self.RLE4): - decoder_name = "bmp_rle" - else: - msg = f"Unsupported BMP compression ({file_info['compression']})" - raise OSError(msg) - - # --------------- Once the header is processed, process the palette/LUT - if self.mode == "P": # Paletted for 1, 4 and 8 bit images - # ---------------------------------------------------- 1-bit images - if not (0 < file_info["colors"] <= 65536): - msg = f"Unsupported BMP Palette size ({file_info['colors']})" - raise OSError(msg) - else: - padding = file_info["palette_padding"] - palette = read(padding * file_info["colors"]) - grayscale = True - indices = ( - (0, 255) - if file_info["colors"] == 2 - else list(range(file_info["colors"])) - ) - - # ----------------- Check if grayscale and ignore palette if so - for ind, val in enumerate(indices): - rgb = palette[ind * padding : ind * padding + 3] - if rgb != o8(val) * 3: - grayscale = False - - # ------- If all colors are gray, white or black, ditch palette - if grayscale: - self._mode = "1" if file_info["colors"] == 2 else "L" - raw_mode = self.mode - else: - self._mode = "P" - self.palette = ImagePalette.raw( - "BGRX" if padding == 4 else "BGR", palette - ) - - # ---------------------------- Finally set the tile data for the plugin - self.info["compression"] = file_info["compression"] - args = [raw_mode] - if decoder_name == "bmp_rle": - args.append(file_info["compression"] == self.RLE4) - else: - args.append(((file_info["width"] * file_info["bits"] + 31) >> 3) & (~3)) - args.append(file_info["direction"]) - self.tile = [ - ( - decoder_name, - (0, 0, file_info["width"], file_info["height"]), - offset or self.fp.tell(), - tuple(args), - ) - ] - - def _open(self): - """Open file, check magic number and read header""" - # read 14 bytes: magic number, filesize, reserved, header final offset - head_data = self.fp.read(14) - # choke if the file does not have the required magic bytes - if not _accept(head_data): - msg = "Not a BMP file" - raise SyntaxError(msg) - # read the start position of the BMP image data (u32) - offset = i32(head_data, 10) - # load bitmap information (offset=raster info) - self._bitmap(offset=offset) - - -class BmpRleDecoder(ImageFile.PyDecoder): - _pulls_fd = True - - def decode(self, buffer): - rle4 = self.args[1] - data = bytearray() - x = 0 - while len(data) < self.state.xsize * self.state.ysize: - pixels = self.fd.read(1) - byte = self.fd.read(1) - if not pixels or not byte: - break - num_pixels = pixels[0] - if num_pixels: - # encoded mode - if x + num_pixels > self.state.xsize: - # Too much data for row - num_pixels = max(0, self.state.xsize - x) - if rle4: - first_pixel = o8(byte[0] >> 4) - second_pixel = o8(byte[0] & 0x0F) - for index in range(num_pixels): - if index % 2 == 0: - data += first_pixel - else: - data += second_pixel - else: - data += byte * num_pixels - x += num_pixels - else: - if byte[0] == 0: - # end of line - while len(data) % self.state.xsize != 0: - data += b"\x00" - x = 0 - elif byte[0] == 1: - # end of bitmap - break - elif byte[0] == 2: - # delta - bytes_read = self.fd.read(2) - if len(bytes_read) < 2: - break - right, up = self.fd.read(2) - data += b"\x00" * (right + up * self.state.xsize) - x = len(data) % self.state.xsize - else: - # absolute mode - if rle4: - # 2 pixels per byte - byte_count = byte[0] // 2 - bytes_read = self.fd.read(byte_count) - for byte_read in bytes_read: - data += o8(byte_read >> 4) - data += o8(byte_read & 0x0F) - else: - byte_count = byte[0] - bytes_read = self.fd.read(byte_count) - data += bytes_read - if len(bytes_read) < byte_count: - break - x += byte[0] - - # align to 16-bit word boundary - if self.fd.tell() % 2 != 0: - self.fd.seek(1, os.SEEK_CUR) - rawmode = "L" if self.mode == "L" else "P" - self.set_as_raw(bytes(data), (rawmode, 0, self.args[-1])) - return -1, 0 - - -# ============================================================================= -# Image plugin for the DIB format (BMP alias) -# ============================================================================= -class DibImageFile(BmpImageFile): - format = "DIB" - format_description = "Windows Bitmap" - - def _open(self): - self._bitmap() - - -# -# -------------------------------------------------------------------- -# Write BMP file - - -SAVE = { - "1": ("1", 1, 2), - "L": ("L", 8, 256), - "P": ("P", 8, 256), - "RGB": ("BGR", 24, 0), - "RGBA": ("BGRA", 32, 0), -} - - -def _dib_save(im, fp, filename): - _save(im, fp, filename, False) - - -def _save(im, fp, filename, bitmap_header=True): - try: - rawmode, bits, colors = SAVE[im.mode] - except KeyError as e: - msg = f"cannot write mode {im.mode} as BMP" - raise OSError(msg) from e - - info = im.encoderinfo - - dpi = info.get("dpi", (96, 96)) - - # 1 meter == 39.3701 inches - ppm = tuple(int(x * 39.3701 + 0.5) for x in dpi) - - stride = ((im.size[0] * bits + 7) // 8 + 3) & (~3) - header = 40 # or 64 for OS/2 version 2 - image = stride * im.size[1] - - if im.mode == "1": - palette = b"".join(o8(i) * 4 for i in (0, 255)) - elif im.mode == "L": - palette = b"".join(o8(i) * 4 for i in range(256)) - elif im.mode == "P": - palette = im.im.getpalette("RGB", "BGRX") - colors = len(palette) // 4 - else: - palette = None - - # bitmap header - if bitmap_header: - offset = 14 + header + colors * 4 - file_size = offset + image - if file_size > 2**32 - 1: - msg = "File size is too large for the BMP format" - raise ValueError(msg) - fp.write( - b"BM" # file type (magic) - + o32(file_size) # file size - + o32(0) # reserved - + o32(offset) # image data offset - ) - - # bitmap info header - fp.write( - o32(header) # info header size - + o32(im.size[0]) # width - + o32(im.size[1]) # height - + o16(1) # planes - + o16(bits) # depth - + o32(0) # compression (0=uncompressed) - + o32(image) # size of bitmap - + o32(ppm[0]) # resolution - + o32(ppm[1]) # resolution - + o32(colors) # colors used - + o32(colors) # colors important - ) - - fp.write(b"\0" * (header - 40)) # padding (for OS/2 format) - - if palette: - fp.write(palette) - - ImageFile._save(im, fp, [("raw", (0, 0) + im.size, 0, (rawmode, stride, -1))]) - - -# -# -------------------------------------------------------------------- -# Registry - - -Image.register_open(BmpImageFile.format, BmpImageFile, _accept) -Image.register_save(BmpImageFile.format, _save) - -Image.register_extension(BmpImageFile.format, ".bmp") - -Image.register_mime(BmpImageFile.format, "image/bmp") - -Image.register_decoder("bmp_rle", BmpRleDecoder) - -Image.register_open(DibImageFile.format, DibImageFile, _dib_accept) -Image.register_save(DibImageFile.format, _dib_save) - -Image.register_extension(DibImageFile.format, ".dib") - -Image.register_mime(DibImageFile.format, "image/bmp") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BufrStubImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BufrStubImagePlugin.py deleted file mode 100644 index 60f3ec2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/BufrStubImagePlugin.py +++ /dev/null @@ -1,74 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# BUFR stub adapter -# -# Copyright (c) 1996-2003 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFile - -_handler = None - - -def register_handler(handler): - """ - Install application-specific BUFR image handler. - - :param handler: Handler object. - """ - global _handler - _handler = handler - - -# -------------------------------------------------------------------- -# Image adapter - - -def _accept(prefix): - return prefix[:4] == b"BUFR" or prefix[:4] == b"ZCZC" - - -class BufrStubImageFile(ImageFile.StubImageFile): - format = "BUFR" - format_description = "BUFR" - - def _open(self): - offset = self.fp.tell() - - if not _accept(self.fp.read(4)): - msg = "Not a BUFR file" - raise SyntaxError(msg) - - self.fp.seek(offset) - - # make something up - self._mode = "F" - self._size = 1, 1 - - loader = self._load() - if loader: - loader.open(self) - - def _load(self): - return _handler - - -def _save(im, fp, filename): - if _handler is None or not hasattr(_handler, "save"): - msg = "BUFR save handler not installed" - raise OSError(msg) - _handler.save(im, fp, filename) - - -# -------------------------------------------------------------------- -# Registry - -Image.register_open(BufrStubImageFile.format, BufrStubImageFile, _accept) -Image.register_save(BufrStubImageFile.format, _save) - -Image.register_extension(BufrStubImageFile.format, ".bufr") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ContainerIO.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ContainerIO.py deleted file mode 100644 index 0035296..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ContainerIO.py +++ /dev/null @@ -1,121 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# a class to read from a container file -# -# History: -# 1995-06-18 fl Created -# 1995-09-07 fl Added readline(), readlines() -# -# Copyright (c) 1997-2001 by Secret Labs AB -# Copyright (c) 1995 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -from typing import IO, AnyStr, Generic, Literal - - -class ContainerIO(Generic[AnyStr]): - """ - A file object that provides read access to a part of an existing - file (for example a TAR file). - """ - - def __init__(self, file: IO[AnyStr], offset: int, length: int) -> None: - """ - Create file object. - - :param file: Existing file. - :param offset: Start of region, in bytes. - :param length: Size of region, in bytes. - """ - self.fh: IO[AnyStr] = file - self.pos = 0 - self.offset = offset - self.length = length - self.fh.seek(offset) - - ## - # Always false. - - def isatty(self) -> bool: - return False - - def seek(self, offset: int, mode: Literal[0, 1, 2] = io.SEEK_SET) -> None: - """ - Move file pointer. - - :param offset: Offset in bytes. - :param mode: Starting position. Use 0 for beginning of region, 1 - for current offset, and 2 for end of region. You cannot move - the pointer outside the defined region. - """ - if mode == 1: - self.pos = self.pos + offset - elif mode == 2: - self.pos = self.length + offset - else: - self.pos = offset - # clamp - self.pos = max(0, min(self.pos, self.length)) - self.fh.seek(self.offset + self.pos) - - def tell(self) -> int: - """ - Get current file pointer. - - :returns: Offset from start of region, in bytes. - """ - return self.pos - - def read(self, n: int = 0) -> AnyStr: - """ - Read data. - - :param n: Number of bytes to read. If omitted or zero, - read until end of region. - :returns: An 8-bit string. - """ - if n: - n = min(n, self.length - self.pos) - else: - n = self.length - self.pos - if not n: # EOF - return b"" if "b" in self.fh.mode else "" # type: ignore[return-value] - self.pos = self.pos + n - return self.fh.read(n) - - def readline(self) -> AnyStr: - """ - Read a line of text. - - :returns: An 8-bit string. - """ - s: AnyStr = b"" if "b" in self.fh.mode else "" # type: ignore[assignment] - newline_character = b"\n" if "b" in self.fh.mode else "\n" - while True: - c = self.read(1) - if not c: - break - s = s + c - if c == newline_character: - break - return s - - def readlines(self) -> list[AnyStr]: - """ - Read multiple lines of text. - - :returns: A list of 8-bit strings. - """ - lines = [] - while True: - s = self.readline() - if not s: - break - lines.append(s) - return lines diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/CurImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/CurImagePlugin.py deleted file mode 100644 index 5fb2b01..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/CurImagePlugin.py +++ /dev/null @@ -1,75 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# Windows Cursor support for PIL -# -# notes: -# uses BmpImagePlugin.py to read the bitmap data. -# -# history: -# 96-05-27 fl Created -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1996. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import BmpImagePlugin, Image -from ._binary import i16le as i16 -from ._binary import i32le as i32 - -# -# -------------------------------------------------------------------- - - -def _accept(prefix): - return prefix[:4] == b"\0\0\2\0" - - -## -# Image plugin for Windows Cursor files. - - -class CurImageFile(BmpImagePlugin.BmpImageFile): - format = "CUR" - format_description = "Windows Cursor" - - def _open(self): - offset = self.fp.tell() - - # check magic - s = self.fp.read(6) - if not _accept(s): - msg = "not a CUR file" - raise SyntaxError(msg) - - # pick the largest cursor in the file - m = b"" - for i in range(i16(s, 4)): - s = self.fp.read(16) - if not m: - m = s - elif s[0] > m[0] and s[1] > m[1]: - m = s - if not m: - msg = "No cursors were found" - raise TypeError(msg) - - # load as bitmap - self._bitmap(i32(m, 12) + offset) - - # patch up the bitmap height - self._size = self.size[0], self.size[1] // 2 - d, e, o, a = self.tile[0] - self.tile[0] = d, (0, 0) + self.size, o, a - - -# -# -------------------------------------------------------------------- - -Image.register_open(CurImageFile.format, CurImageFile, _accept) - -Image.register_extension(CurImageFile.format, ".cur") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/DcxImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/DcxImagePlugin.py deleted file mode 100644 index f7344df..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/DcxImagePlugin.py +++ /dev/null @@ -1,80 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# DCX file handling -# -# DCX is a container file format defined by Intel, commonly used -# for fax applications. Each DCX file consists of a directory -# (a list of file offsets) followed by a set of (usually 1-bit) -# PCX files. -# -# History: -# 1995-09-09 fl Created -# 1996-03-20 fl Properly derived from PcxImageFile. -# 1998-07-15 fl Renamed offset attribute to avoid name clash -# 2002-07-30 fl Fixed file handling -# -# Copyright (c) 1997-98 by Secret Labs AB. -# Copyright (c) 1995-96 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image -from ._binary import i32le as i32 -from .PcxImagePlugin import PcxImageFile - -MAGIC = 0x3ADE68B1 # QUIZ: what's this value, then? - - -def _accept(prefix): - return len(prefix) >= 4 and i32(prefix) == MAGIC - - -## -# Image plugin for the Intel DCX format. - - -class DcxImageFile(PcxImageFile): - format = "DCX" - format_description = "Intel DCX" - _close_exclusive_fp_after_loading = False - - def _open(self): - # Header - s = self.fp.read(4) - if not _accept(s): - msg = "not a DCX file" - raise SyntaxError(msg) - - # Component directory - self._offset = [] - for i in range(1024): - offset = i32(self.fp.read(4)) - if not offset: - break - self._offset.append(offset) - - self._fp = self.fp - self.frame = None - self.n_frames = len(self._offset) - self.is_animated = self.n_frames > 1 - self.seek(0) - - def seek(self, frame): - if not self._seek_check(frame): - return - self.frame = frame - self.fp = self._fp - self.fp.seek(self._offset[frame]) - PcxImageFile._open(self) - - def tell(self): - return self.frame - - -Image.register_open(DcxImageFile.format, DcxImageFile, _accept) - -Image.register_extension(DcxImageFile.format, ".dcx") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/DdsImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/DdsImagePlugin.py deleted file mode 100644 index eb4c8f5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/DdsImagePlugin.py +++ /dev/null @@ -1,566 +0,0 @@ -""" -A Pillow loader for .dds files (S3TC-compressed aka DXTC) -Jerome Leclanche - -Documentation: -https://web.archive.org/web/20170802060935/http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt - -The contents of this file are hereby released in the public domain (CC0) -Full text of the CC0 license: -https://creativecommons.org/publicdomain/zero/1.0/ -""" -from __future__ import annotations - -import io -import struct -import sys -from enum import IntEnum, IntFlag - -from . import Image, ImageFile, ImagePalette -from ._binary import i32le as i32 -from ._binary import o8 -from ._binary import o32le as o32 - -# Magic ("DDS ") -DDS_MAGIC = 0x20534444 - - -# DDS flags -class DDSD(IntFlag): - CAPS = 0x1 - HEIGHT = 0x2 - WIDTH = 0x4 - PITCH = 0x8 - PIXELFORMAT = 0x1000 - MIPMAPCOUNT = 0x20000 - LINEARSIZE = 0x80000 - DEPTH = 0x800000 - - -# DDS caps -class DDSCAPS(IntFlag): - COMPLEX = 0x8 - TEXTURE = 0x1000 - MIPMAP = 0x400000 - - -class DDSCAPS2(IntFlag): - CUBEMAP = 0x200 - CUBEMAP_POSITIVEX = 0x400 - CUBEMAP_NEGATIVEX = 0x800 - CUBEMAP_POSITIVEY = 0x1000 - CUBEMAP_NEGATIVEY = 0x2000 - CUBEMAP_POSITIVEZ = 0x4000 - CUBEMAP_NEGATIVEZ = 0x8000 - VOLUME = 0x200000 - - -# Pixel Format -class DDPF(IntFlag): - ALPHAPIXELS = 0x1 - ALPHA = 0x2 - FOURCC = 0x4 - PALETTEINDEXED8 = 0x20 - RGB = 0x40 - LUMINANCE = 0x20000 - - -# dxgiformat.h -class DXGI_FORMAT(IntEnum): - UNKNOWN = 0 - R32G32B32A32_TYPELESS = 1 - R32G32B32A32_FLOAT = 2 - R32G32B32A32_UINT = 3 - R32G32B32A32_SINT = 4 - R32G32B32_TYPELESS = 5 - R32G32B32_FLOAT = 6 - R32G32B32_UINT = 7 - R32G32B32_SINT = 8 - R16G16B16A16_TYPELESS = 9 - R16G16B16A16_FLOAT = 10 - R16G16B16A16_UNORM = 11 - R16G16B16A16_UINT = 12 - R16G16B16A16_SNORM = 13 - R16G16B16A16_SINT = 14 - R32G32_TYPELESS = 15 - R32G32_FLOAT = 16 - R32G32_UINT = 17 - R32G32_SINT = 18 - R32G8X24_TYPELESS = 19 - D32_FLOAT_S8X24_UINT = 20 - R32_FLOAT_X8X24_TYPELESS = 21 - X32_TYPELESS_G8X24_UINT = 22 - R10G10B10A2_TYPELESS = 23 - R10G10B10A2_UNORM = 24 - R10G10B10A2_UINT = 25 - R11G11B10_FLOAT = 26 - R8G8B8A8_TYPELESS = 27 - R8G8B8A8_UNORM = 28 - R8G8B8A8_UNORM_SRGB = 29 - R8G8B8A8_UINT = 30 - R8G8B8A8_SNORM = 31 - R8G8B8A8_SINT = 32 - R16G16_TYPELESS = 33 - R16G16_FLOAT = 34 - R16G16_UNORM = 35 - R16G16_UINT = 36 - R16G16_SNORM = 37 - R16G16_SINT = 38 - R32_TYPELESS = 39 - D32_FLOAT = 40 - R32_FLOAT = 41 - R32_UINT = 42 - R32_SINT = 43 - R24G8_TYPELESS = 44 - D24_UNORM_S8_UINT = 45 - R24_UNORM_X8_TYPELESS = 46 - X24_TYPELESS_G8_UINT = 47 - R8G8_TYPELESS = 48 - R8G8_UNORM = 49 - R8G8_UINT = 50 - R8G8_SNORM = 51 - R8G8_SINT = 52 - R16_TYPELESS = 53 - R16_FLOAT = 54 - D16_UNORM = 55 - R16_UNORM = 56 - R16_UINT = 57 - R16_SNORM = 58 - R16_SINT = 59 - R8_TYPELESS = 60 - R8_UNORM = 61 - R8_UINT = 62 - R8_SNORM = 63 - R8_SINT = 64 - A8_UNORM = 65 - R1_UNORM = 66 - R9G9B9E5_SHAREDEXP = 67 - R8G8_B8G8_UNORM = 68 - G8R8_G8B8_UNORM = 69 - BC1_TYPELESS = 70 - BC1_UNORM = 71 - BC1_UNORM_SRGB = 72 - BC2_TYPELESS = 73 - BC2_UNORM = 74 - BC2_UNORM_SRGB = 75 - BC3_TYPELESS = 76 - BC3_UNORM = 77 - BC3_UNORM_SRGB = 78 - BC4_TYPELESS = 79 - BC4_UNORM = 80 - BC4_SNORM = 81 - BC5_TYPELESS = 82 - BC5_UNORM = 83 - BC5_SNORM = 84 - B5G6R5_UNORM = 85 - B5G5R5A1_UNORM = 86 - B8G8R8A8_UNORM = 87 - B8G8R8X8_UNORM = 88 - R10G10B10_XR_BIAS_A2_UNORM = 89 - B8G8R8A8_TYPELESS = 90 - B8G8R8A8_UNORM_SRGB = 91 - B8G8R8X8_TYPELESS = 92 - B8G8R8X8_UNORM_SRGB = 93 - BC6H_TYPELESS = 94 - BC6H_UF16 = 95 - BC6H_SF16 = 96 - BC7_TYPELESS = 97 - BC7_UNORM = 98 - BC7_UNORM_SRGB = 99 - AYUV = 100 - Y410 = 101 - Y416 = 102 - NV12 = 103 - P010 = 104 - P016 = 105 - OPAQUE_420 = 106 - YUY2 = 107 - Y210 = 108 - Y216 = 109 - NV11 = 110 - AI44 = 111 - IA44 = 112 - P8 = 113 - A8P8 = 114 - B4G4R4A4_UNORM = 115 - P208 = 130 - V208 = 131 - V408 = 132 - SAMPLER_FEEDBACK_MIN_MIP_OPAQUE = 189 - SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE = 190 - - -class D3DFMT(IntEnum): - UNKNOWN = 0 - R8G8B8 = 20 - A8R8G8B8 = 21 - X8R8G8B8 = 22 - R5G6B5 = 23 - X1R5G5B5 = 24 - A1R5G5B5 = 25 - A4R4G4B4 = 26 - R3G3B2 = 27 - A8 = 28 - A8R3G3B2 = 29 - X4R4G4B4 = 30 - A2B10G10R10 = 31 - A8B8G8R8 = 32 - X8B8G8R8 = 33 - G16R16 = 34 - A2R10G10B10 = 35 - A16B16G16R16 = 36 - A8P8 = 40 - P8 = 41 - L8 = 50 - A8L8 = 51 - A4L4 = 52 - V8U8 = 60 - L6V5U5 = 61 - X8L8V8U8 = 62 - Q8W8V8U8 = 63 - V16U16 = 64 - A2W10V10U10 = 67 - D16_LOCKABLE = 70 - D32 = 71 - D15S1 = 73 - D24S8 = 75 - D24X8 = 77 - D24X4S4 = 79 - D16 = 80 - D32F_LOCKABLE = 82 - D24FS8 = 83 - D32_LOCKABLE = 84 - S8_LOCKABLE = 85 - L16 = 81 - VERTEXDATA = 100 - INDEX16 = 101 - INDEX32 = 102 - Q16W16V16U16 = 110 - R16F = 111 - G16R16F = 112 - A16B16G16R16F = 113 - R32F = 114 - G32R32F = 115 - A32B32G32R32F = 116 - CxV8U8 = 117 - A1 = 118 - A2B10G10R10_XR_BIAS = 119 - BINARYBUFFER = 199 - - UYVY = i32(b"UYVY") - R8G8_B8G8 = i32(b"RGBG") - YUY2 = i32(b"YUY2") - G8R8_G8B8 = i32(b"GRGB") - DXT1 = i32(b"DXT1") - DXT2 = i32(b"DXT2") - DXT3 = i32(b"DXT3") - DXT4 = i32(b"DXT4") - DXT5 = i32(b"DXT5") - DX10 = i32(b"DX10") - BC4S = i32(b"BC4S") - BC4U = i32(b"BC4U") - BC5S = i32(b"BC5S") - BC5U = i32(b"BC5U") - ATI1 = i32(b"ATI1") - ATI2 = i32(b"ATI2") - MULTI2_ARGB8 = i32(b"MET1") - - -# Backward compatibility layer -module = sys.modules[__name__] -for item in DDSD: - setattr(module, "DDSD_" + item.name, item.value) -for item in DDSCAPS: - setattr(module, "DDSCAPS_" + item.name, item.value) -for item in DDSCAPS2: - setattr(module, "DDSCAPS2_" + item.name, item.value) -for item in DDPF: - setattr(module, "DDPF_" + item.name, item.value) - -DDS_FOURCC = DDPF.FOURCC -DDS_RGB = DDPF.RGB -DDS_RGBA = DDPF.RGB | DDPF.ALPHAPIXELS -DDS_LUMINANCE = DDPF.LUMINANCE -DDS_LUMINANCEA = DDPF.LUMINANCE | DDPF.ALPHAPIXELS -DDS_ALPHA = DDPF.ALPHA -DDS_PAL8 = DDPF.PALETTEINDEXED8 - -DDS_HEADER_FLAGS_TEXTURE = DDSD.CAPS | DDSD.HEIGHT | DDSD.WIDTH | DDSD.PIXELFORMAT -DDS_HEADER_FLAGS_MIPMAP = DDSD.MIPMAPCOUNT -DDS_HEADER_FLAGS_VOLUME = DDSD.DEPTH -DDS_HEADER_FLAGS_PITCH = DDSD.PITCH -DDS_HEADER_FLAGS_LINEARSIZE = DDSD.LINEARSIZE - -DDS_HEIGHT = DDSD.HEIGHT -DDS_WIDTH = DDSD.WIDTH - -DDS_SURFACE_FLAGS_TEXTURE = DDSCAPS.TEXTURE -DDS_SURFACE_FLAGS_MIPMAP = DDSCAPS.COMPLEX | DDSCAPS.MIPMAP -DDS_SURFACE_FLAGS_CUBEMAP = DDSCAPS.COMPLEX - -DDS_CUBEMAP_POSITIVEX = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_POSITIVEX -DDS_CUBEMAP_NEGATIVEX = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_NEGATIVEX -DDS_CUBEMAP_POSITIVEY = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_POSITIVEY -DDS_CUBEMAP_NEGATIVEY = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_NEGATIVEY -DDS_CUBEMAP_POSITIVEZ = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_POSITIVEZ -DDS_CUBEMAP_NEGATIVEZ = DDSCAPS2.CUBEMAP | DDSCAPS2.CUBEMAP_NEGATIVEZ - -DXT1_FOURCC = D3DFMT.DXT1 -DXT3_FOURCC = D3DFMT.DXT3 -DXT5_FOURCC = D3DFMT.DXT5 - -DXGI_FORMAT_R8G8B8A8_TYPELESS = DXGI_FORMAT.R8G8B8A8_TYPELESS -DXGI_FORMAT_R8G8B8A8_UNORM = DXGI_FORMAT.R8G8B8A8_UNORM -DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = DXGI_FORMAT.R8G8B8A8_UNORM_SRGB -DXGI_FORMAT_BC5_TYPELESS = DXGI_FORMAT.BC5_TYPELESS -DXGI_FORMAT_BC5_UNORM = DXGI_FORMAT.BC5_UNORM -DXGI_FORMAT_BC5_SNORM = DXGI_FORMAT.BC5_SNORM -DXGI_FORMAT_BC6H_UF16 = DXGI_FORMAT.BC6H_UF16 -DXGI_FORMAT_BC6H_SF16 = DXGI_FORMAT.BC6H_SF16 -DXGI_FORMAT_BC7_TYPELESS = DXGI_FORMAT.BC7_TYPELESS -DXGI_FORMAT_BC7_UNORM = DXGI_FORMAT.BC7_UNORM -DXGI_FORMAT_BC7_UNORM_SRGB = DXGI_FORMAT.BC7_UNORM_SRGB - - -class DdsImageFile(ImageFile.ImageFile): - format = "DDS" - format_description = "DirectDraw Surface" - - def _open(self): - if not _accept(self.fp.read(4)): - msg = "not a DDS file" - raise SyntaxError(msg) - (header_size,) = struct.unpack("> (offset + 1) << (offset + 1) == mask: - offset += 1 - mask_offsets.append(offset) - mask_totals.append(mask >> offset) - - data = bytearray() - bytecount = bitcount // 8 - while len(data) < self.state.xsize * self.state.ysize * len(masks): - value = int.from_bytes(self.fd.read(bytecount), "little") - for i, mask in enumerate(masks): - masked_value = value & mask - # Remove the zero padding, and scale it to 8 bits - data += o8( - int(((masked_value >> mask_offsets[i]) / mask_totals[i]) * 255) - ) - self.set_as_raw(bytes(data)) - return -1, 0 - - -def _save(im, fp, filename): - if im.mode not in ("RGB", "RGBA", "L", "LA"): - msg = f"cannot write mode {im.mode} as DDS" - raise OSError(msg) - - alpha = im.mode[-1] == "A" - if im.mode[0] == "L": - pixel_flags = DDPF.LUMINANCE - rawmode = im.mode - if alpha: - rgba_mask = [0x000000FF, 0x000000FF, 0x000000FF] - else: - rgba_mask = [0xFF000000, 0xFF000000, 0xFF000000] - else: - pixel_flags = DDPF.RGB - rawmode = im.mode[::-1] - rgba_mask = [0x00FF0000, 0x0000FF00, 0x000000FF] - - if alpha: - r, g, b, a = im.split() - im = Image.merge("RGBA", (a, r, g, b)) - if alpha: - pixel_flags |= DDPF.ALPHAPIXELS - rgba_mask.append(0xFF000000 if alpha else 0) - - flags = DDSD.CAPS | DDSD.HEIGHT | DDSD.WIDTH | DDSD.PITCH | DDSD.PIXELFORMAT - bitcount = len(im.getbands()) * 8 - pitch = (im.width * bitcount + 7) // 8 - - fp.write( - o32(DDS_MAGIC) - + struct.pack( - "<7I", - 124, # header size - flags, # flags - im.height, - im.width, - pitch, - 0, # depth - 0, # mipmaps - ) - + struct.pack("11I", *((0,) * 11)) # reserved - # pfsize, pfflags, fourcc, bitcount - + struct.pack("<4I", 32, pixel_flags, 0, bitcount) - + struct.pack("<4I", *rgba_mask) # dwRGBABitMask - + struct.pack("<5I", DDSCAPS.TEXTURE, 0, 0, 0, 0) - ) - ImageFile._save( - im, fp, [ImageFile._Tile("raw", (0, 0) + im.size, 0, (rawmode, 0, 1))] - ) - - -def _accept(prefix): - return prefix[:4] == b"DDS " - - -Image.register_open(DdsImageFile.format, DdsImageFile, _accept) -Image.register_decoder("dds_rgb", DdsRgbDecoder) -Image.register_save(DdsImageFile.format, _save) -Image.register_extension(DdsImageFile.format, ".dds") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/EpsImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/EpsImagePlugin.py deleted file mode 100644 index d2e60aa..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/EpsImagePlugin.py +++ /dev/null @@ -1,478 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# EPS file handling -# -# History: -# 1995-09-01 fl Created (0.1) -# 1996-05-18 fl Don't choke on "atend" fields, Ghostscript interface (0.2) -# 1996-08-22 fl Don't choke on floating point BoundingBox values -# 1996-08-23 fl Handle files from Macintosh (0.3) -# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.4) -# 2003-09-07 fl Check gs.close status (from Federico Di Gregorio) (0.5) -# 2014-05-07 e Handling of EPS with binary preview and fixed resolution -# resizing -# -# Copyright (c) 1997-2003 by Secret Labs AB. -# Copyright (c) 1995-2003 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -import os -import re -import subprocess -import sys -import tempfile - -from . import Image, ImageFile -from ._binary import i32le as i32 -from ._deprecate import deprecate - -# -------------------------------------------------------------------- - - -split = re.compile(r"^%%([^:]*):[ \t]*(.*)[ \t]*$") -field = re.compile(r"^%[%!\w]([^:]*)[ \t]*$") - -gs_binary = None -gs_windows_binary = None - - -def has_ghostscript(): - global gs_binary, gs_windows_binary - if gs_binary is None: - if sys.platform.startswith("win"): - if gs_windows_binary is None: - import shutil - - for binary in ("gswin32c", "gswin64c", "gs"): - if shutil.which(binary) is not None: - gs_windows_binary = binary - break - else: - gs_windows_binary = False - gs_binary = gs_windows_binary - else: - try: - subprocess.check_call(["gs", "--version"], stdout=subprocess.DEVNULL) - gs_binary = "gs" - except OSError: - gs_binary = False - return gs_binary is not False - - -def Ghostscript(tile, size, fp, scale=1, transparency=False): - """Render an image using Ghostscript""" - global gs_binary - if not has_ghostscript(): - msg = "Unable to locate Ghostscript on paths" - raise OSError(msg) - - # Unpack decoder tile - decoder, tile, offset, data = tile[0] - length, bbox = data - - # Hack to support hi-res rendering - scale = int(scale) or 1 - width = size[0] * scale - height = size[1] * scale - # resolution is dependent on bbox and size - res_x = 72.0 * width / (bbox[2] - bbox[0]) - res_y = 72.0 * height / (bbox[3] - bbox[1]) - - out_fd, outfile = tempfile.mkstemp() - os.close(out_fd) - - infile_temp = None - if hasattr(fp, "name") and os.path.exists(fp.name): - infile = fp.name - else: - in_fd, infile_temp = tempfile.mkstemp() - os.close(in_fd) - infile = infile_temp - - # Ignore length and offset! - # Ghostscript can read it - # Copy whole file to read in Ghostscript - with open(infile_temp, "wb") as f: - # fetch length of fp - fp.seek(0, io.SEEK_END) - fsize = fp.tell() - # ensure start position - # go back - fp.seek(0) - lengthfile = fsize - while lengthfile > 0: - s = fp.read(min(lengthfile, 100 * 1024)) - if not s: - break - lengthfile -= len(s) - f.write(s) - - device = "pngalpha" if transparency else "ppmraw" - - # Build Ghostscript command - command = [ - gs_binary, - "-q", # quiet mode - f"-g{width:d}x{height:d}", # set output geometry (pixels) - f"-r{res_x:f}x{res_y:f}", # set input DPI (dots per inch) - "-dBATCH", # exit after processing - "-dNOPAUSE", # don't pause between pages - "-dSAFER", # safe mode - f"-sDEVICE={device}", - f"-sOutputFile={outfile}", # output file - # adjust for image origin - "-c", - f"{-bbox[0]} {-bbox[1]} translate", - "-f", - infile, # input file - # showpage (see https://bugs.ghostscript.com/show_bug.cgi?id=698272) - "-c", - "showpage", - ] - - # push data through Ghostscript - try: - startupinfo = None - if sys.platform.startswith("win"): - startupinfo = subprocess.STARTUPINFO() - startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW - subprocess.check_call(command, startupinfo=startupinfo) - out_im = Image.open(outfile) - out_im.load() - finally: - try: - os.unlink(outfile) - if infile_temp: - os.unlink(infile_temp) - except OSError: - pass - - im = out_im.im.copy() - out_im.close() - return im - - -class PSFile: - """ - Wrapper for bytesio object that treats either CR or LF as end of line. - This class is no longer used internally, but kept for backwards compatibility. - """ - - def __init__(self, fp): - deprecate( - "PSFile", - 11, - action="If you need the functionality of this class " - "you will need to implement it yourself.", - ) - self.fp = fp - self.char = None - - def seek(self, offset, whence=io.SEEK_SET): - self.char = None - self.fp.seek(offset, whence) - - def readline(self): - s = [self.char or b""] - self.char = None - - c = self.fp.read(1) - while (c not in b"\r\n") and len(c): - s.append(c) - c = self.fp.read(1) - - self.char = self.fp.read(1) - # line endings can be 1 or 2 of \r \n, in either order - if self.char in b"\r\n": - self.char = None - - return b"".join(s).decode("latin-1") - - -def _accept(prefix): - return prefix[:4] == b"%!PS" or (len(prefix) >= 4 and i32(prefix) == 0xC6D3D0C5) - - -## -# Image plugin for Encapsulated PostScript. This plugin supports only -# a few variants of this format. - - -class EpsImageFile(ImageFile.ImageFile): - """EPS File Parser for the Python Imaging Library""" - - format = "EPS" - format_description = "Encapsulated Postscript" - - mode_map = {1: "L", 2: "LAB", 3: "RGB", 4: "CMYK"} - - def _open(self): - (length, offset) = self._find_offset(self.fp) - - # go to offset - start of "%!PS" - self.fp.seek(offset) - - self._mode = "RGB" - self._size = None - - byte_arr = bytearray(255) - bytes_mv = memoryview(byte_arr) - bytes_read = 0 - reading_header_comments = True - reading_trailer_comments = False - trailer_reached = False - - def check_required_header_comments(): - if "PS-Adobe" not in self.info: - msg = 'EPS header missing "%!PS-Adobe" comment' - raise SyntaxError(msg) - if "BoundingBox" not in self.info: - msg = 'EPS header missing "%%BoundingBox" comment' - raise SyntaxError(msg) - - def _read_comment(s): - nonlocal reading_trailer_comments - try: - m = split.match(s) - except re.error as e: - msg = "not an EPS file" - raise SyntaxError(msg) from e - - if m: - k, v = m.group(1, 2) - self.info[k] = v - if k == "BoundingBox": - if v == "(atend)": - reading_trailer_comments = True - elif not self._size or ( - trailer_reached and reading_trailer_comments - ): - try: - # Note: The DSC spec says that BoundingBox - # fields should be integers, but some drivers - # put floating point values there anyway. - box = [int(float(i)) for i in v.split()] - self._size = box[2] - box[0], box[3] - box[1] - self.tile = [ - ("eps", (0, 0) + self.size, offset, (length, box)) - ] - except Exception: - pass - return True - - while True: - byte = self.fp.read(1) - if byte == b"": - # if we didn't read a byte we must be at the end of the file - if bytes_read == 0: - break - elif byte in b"\r\n": - # if we read a line ending character, ignore it and parse what - # we have already read. if we haven't read any other characters, - # continue reading - if bytes_read == 0: - continue - else: - # ASCII/hexadecimal lines in an EPS file must not exceed - # 255 characters, not including line ending characters - if bytes_read >= 255: - # only enforce this for lines starting with a "%", - # otherwise assume it's binary data - if byte_arr[0] == ord("%"): - msg = "not an EPS file" - raise SyntaxError(msg) - else: - if reading_header_comments: - check_required_header_comments() - reading_header_comments = False - # reset bytes_read so we can keep reading - # data until the end of the line - bytes_read = 0 - byte_arr[bytes_read] = byte[0] - bytes_read += 1 - continue - - if reading_header_comments: - # Load EPS header - - # if this line doesn't start with a "%", - # or does start with "%%EndComments", - # then we've reached the end of the header/comments - if byte_arr[0] != ord("%") or bytes_mv[:13] == b"%%EndComments": - check_required_header_comments() - reading_header_comments = False - continue - - s = str(bytes_mv[:bytes_read], "latin-1") - if not _read_comment(s): - m = field.match(s) - if m: - k = m.group(1) - if k[:8] == "PS-Adobe": - self.info["PS-Adobe"] = k[9:] - else: - self.info[k] = "" - elif s[0] == "%": - # handle non-DSC PostScript comments that some - # tools mistakenly put in the Comments section - pass - else: - msg = "bad EPS header" - raise OSError(msg) - elif bytes_mv[:11] == b"%ImageData:": - # Check for an "ImageData" descriptor - # https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577413_pgfId-1035096 - - # Values: - # columns - # rows - # bit depth (1 or 8) - # mode (1: L, 2: LAB, 3: RGB, 4: CMYK) - # number of padding channels - # block size (number of bytes per row per channel) - # binary/ascii (1: binary, 2: ascii) - # data start identifier (the image data follows after a single line - # consisting only of this quoted value) - image_data_values = byte_arr[11:bytes_read].split(None, 7) - columns, rows, bit_depth, mode_id = ( - int(value) for value in image_data_values[:4] - ) - - if bit_depth == 1: - self._mode = "1" - elif bit_depth == 8: - try: - self._mode = self.mode_map[mode_id] - except ValueError: - break - else: - break - - self._size = columns, rows - return - elif trailer_reached and reading_trailer_comments: - # Load EPS trailer - - # if this line starts with "%%EOF", - # then we've reached the end of the file - if bytes_mv[:5] == b"%%EOF": - break - - s = str(bytes_mv[:bytes_read], "latin-1") - _read_comment(s) - elif bytes_mv[:9] == b"%%Trailer": - trailer_reached = True - bytes_read = 0 - - check_required_header_comments() - - if not self._size: - msg = "cannot determine EPS bounding box" - raise OSError(msg) - - def _find_offset(self, fp): - s = fp.read(4) - - if s == b"%!PS": - # for HEAD without binary preview - fp.seek(0, io.SEEK_END) - length = fp.tell() - offset = 0 - elif i32(s) == 0xC6D3D0C5: - # FIX for: Some EPS file not handled correctly / issue #302 - # EPS can contain binary data - # or start directly with latin coding - # more info see: - # https://web.archive.org/web/20160528181353/http://partners.adobe.com/public/developer/en/ps/5002.EPSF_Spec.pdf - s = fp.read(8) - offset = i32(s) - length = i32(s, 4) - else: - msg = "not an EPS file" - raise SyntaxError(msg) - - return length, offset - - def load(self, scale=1, transparency=False): - # Load EPS via Ghostscript - if self.tile: - self.im = Ghostscript(self.tile, self.size, self.fp, scale, transparency) - self._mode = self.im.mode - self._size = self.im.size - self.tile = [] - return Image.Image.load(self) - - def load_seek(self, *args, **kwargs): - # we can't incrementally load, so force ImageFile.parser to - # use our custom load method by defining this method. - pass - - -# -------------------------------------------------------------------- - - -def _save(im, fp, filename, eps=1): - """EPS Writer for the Python Imaging Library.""" - - # make sure image data is available - im.load() - - # determine PostScript image mode - if im.mode == "L": - operator = (8, 1, b"image") - elif im.mode == "RGB": - operator = (8, 3, b"false 3 colorimage") - elif im.mode == "CMYK": - operator = (8, 4, b"false 4 colorimage") - else: - msg = "image mode is not supported" - raise ValueError(msg) - - if eps: - # write EPS header - fp.write(b"%!PS-Adobe-3.0 EPSF-3.0\n") - fp.write(b"%%Creator: PIL 0.1 EpsEncode\n") - # fp.write("%%CreationDate: %s"...) - fp.write(b"%%%%BoundingBox: 0 0 %d %d\n" % im.size) - fp.write(b"%%Pages: 1\n") - fp.write(b"%%EndComments\n") - fp.write(b"%%Page: 1 1\n") - fp.write(b"%%ImageData: %d %d " % im.size) - fp.write(b'%d %d 0 1 1 "%s"\n' % operator) - - # image header - fp.write(b"gsave\n") - fp.write(b"10 dict begin\n") - fp.write(b"/buf %d string def\n" % (im.size[0] * operator[1])) - fp.write(b"%d %d scale\n" % im.size) - fp.write(b"%d %d 8\n" % im.size) # <= bits - fp.write(b"[%d 0 0 -%d 0 %d]\n" % (im.size[0], im.size[1], im.size[1])) - fp.write(b"{ currentfile buf readhexstring pop } bind\n") - fp.write(operator[2] + b"\n") - if hasattr(fp, "flush"): - fp.flush() - - ImageFile._save(im, fp, [("eps", (0, 0) + im.size, 0, None)]) - - fp.write(b"\n%%%%EndBinary\n") - fp.write(b"grestore end\n") - if hasattr(fp, "flush"): - fp.flush() - - -# -------------------------------------------------------------------- - - -Image.register_open(EpsImageFile.format, EpsImageFile, _accept) - -Image.register_save(EpsImageFile.format, _save) - -Image.register_extensions(EpsImageFile.format, [".ps", ".eps"]) - -Image.register_mime(EpsImageFile.format, "application/postscript") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ExifTags.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ExifTags.py deleted file mode 100644 index 60a4d97..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ExifTags.py +++ /dev/null @@ -1,381 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# EXIF tags -# -# Copyright (c) 2003 by Secret Labs AB -# -# See the README file for information on usage and redistribution. -# - -""" -This module provides constants and clear-text names for various -well-known EXIF tags. -""" -from __future__ import annotations - -from enum import IntEnum - - -class Base(IntEnum): - # possibly incomplete - InteropIndex = 0x0001 - ProcessingSoftware = 0x000B - NewSubfileType = 0x00FE - SubfileType = 0x00FF - ImageWidth = 0x0100 - ImageLength = 0x0101 - BitsPerSample = 0x0102 - Compression = 0x0103 - PhotometricInterpretation = 0x0106 - Thresholding = 0x0107 - CellWidth = 0x0108 - CellLength = 0x0109 - FillOrder = 0x010A - DocumentName = 0x010D - ImageDescription = 0x010E - Make = 0x010F - Model = 0x0110 - StripOffsets = 0x0111 - Orientation = 0x0112 - SamplesPerPixel = 0x0115 - RowsPerStrip = 0x0116 - StripByteCounts = 0x0117 - MinSampleValue = 0x0118 - MaxSampleValue = 0x0119 - XResolution = 0x011A - YResolution = 0x011B - PlanarConfiguration = 0x011C - PageName = 0x011D - FreeOffsets = 0x0120 - FreeByteCounts = 0x0121 - GrayResponseUnit = 0x0122 - GrayResponseCurve = 0x0123 - T4Options = 0x0124 - T6Options = 0x0125 - ResolutionUnit = 0x0128 - PageNumber = 0x0129 - TransferFunction = 0x012D - Software = 0x0131 - DateTime = 0x0132 - Artist = 0x013B - HostComputer = 0x013C - Predictor = 0x013D - WhitePoint = 0x013E - PrimaryChromaticities = 0x013F - ColorMap = 0x0140 - HalftoneHints = 0x0141 - TileWidth = 0x0142 - TileLength = 0x0143 - TileOffsets = 0x0144 - TileByteCounts = 0x0145 - SubIFDs = 0x014A - InkSet = 0x014C - InkNames = 0x014D - NumberOfInks = 0x014E - DotRange = 0x0150 - TargetPrinter = 0x0151 - ExtraSamples = 0x0152 - SampleFormat = 0x0153 - SMinSampleValue = 0x0154 - SMaxSampleValue = 0x0155 - TransferRange = 0x0156 - ClipPath = 0x0157 - XClipPathUnits = 0x0158 - YClipPathUnits = 0x0159 - Indexed = 0x015A - JPEGTables = 0x015B - OPIProxy = 0x015F - JPEGProc = 0x0200 - JpegIFOffset = 0x0201 - JpegIFByteCount = 0x0202 - JpegRestartInterval = 0x0203 - JpegLosslessPredictors = 0x0205 - JpegPointTransforms = 0x0206 - JpegQTables = 0x0207 - JpegDCTables = 0x0208 - JpegACTables = 0x0209 - YCbCrCoefficients = 0x0211 - YCbCrSubSampling = 0x0212 - YCbCrPositioning = 0x0213 - ReferenceBlackWhite = 0x0214 - XMLPacket = 0x02BC - RelatedImageFileFormat = 0x1000 - RelatedImageWidth = 0x1001 - RelatedImageLength = 0x1002 - Rating = 0x4746 - RatingPercent = 0x4749 - ImageID = 0x800D - CFARepeatPatternDim = 0x828D - BatteryLevel = 0x828F - Copyright = 0x8298 - ExposureTime = 0x829A - FNumber = 0x829D - IPTCNAA = 0x83BB - ImageResources = 0x8649 - ExifOffset = 0x8769 - InterColorProfile = 0x8773 - ExposureProgram = 0x8822 - SpectralSensitivity = 0x8824 - GPSInfo = 0x8825 - ISOSpeedRatings = 0x8827 - OECF = 0x8828 - Interlace = 0x8829 - TimeZoneOffset = 0x882A - SelfTimerMode = 0x882B - SensitivityType = 0x8830 - StandardOutputSensitivity = 0x8831 - RecommendedExposureIndex = 0x8832 - ISOSpeed = 0x8833 - ISOSpeedLatitudeyyy = 0x8834 - ISOSpeedLatitudezzz = 0x8835 - ExifVersion = 0x9000 - DateTimeOriginal = 0x9003 - DateTimeDigitized = 0x9004 - OffsetTime = 0x9010 - OffsetTimeOriginal = 0x9011 - OffsetTimeDigitized = 0x9012 - ComponentsConfiguration = 0x9101 - CompressedBitsPerPixel = 0x9102 - ShutterSpeedValue = 0x9201 - ApertureValue = 0x9202 - BrightnessValue = 0x9203 - ExposureBiasValue = 0x9204 - MaxApertureValue = 0x9205 - SubjectDistance = 0x9206 - MeteringMode = 0x9207 - LightSource = 0x9208 - Flash = 0x9209 - FocalLength = 0x920A - Noise = 0x920D - ImageNumber = 0x9211 - SecurityClassification = 0x9212 - ImageHistory = 0x9213 - TIFFEPStandardID = 0x9216 - MakerNote = 0x927C - UserComment = 0x9286 - SubsecTime = 0x9290 - SubsecTimeOriginal = 0x9291 - SubsecTimeDigitized = 0x9292 - AmbientTemperature = 0x9400 - Humidity = 0x9401 - Pressure = 0x9402 - WaterDepth = 0x9403 - Acceleration = 0x9404 - CameraElevationAngle = 0x9405 - XPTitle = 0x9C9B - XPComment = 0x9C9C - XPAuthor = 0x9C9D - XPKeywords = 0x9C9E - XPSubject = 0x9C9F - FlashPixVersion = 0xA000 - ColorSpace = 0xA001 - ExifImageWidth = 0xA002 - ExifImageHeight = 0xA003 - RelatedSoundFile = 0xA004 - ExifInteroperabilityOffset = 0xA005 - FlashEnergy = 0xA20B - SpatialFrequencyResponse = 0xA20C - FocalPlaneXResolution = 0xA20E - FocalPlaneYResolution = 0xA20F - FocalPlaneResolutionUnit = 0xA210 - SubjectLocation = 0xA214 - ExposureIndex = 0xA215 - SensingMethod = 0xA217 - FileSource = 0xA300 - SceneType = 0xA301 - CFAPattern = 0xA302 - CustomRendered = 0xA401 - ExposureMode = 0xA402 - WhiteBalance = 0xA403 - DigitalZoomRatio = 0xA404 - FocalLengthIn35mmFilm = 0xA405 - SceneCaptureType = 0xA406 - GainControl = 0xA407 - Contrast = 0xA408 - Saturation = 0xA409 - Sharpness = 0xA40A - DeviceSettingDescription = 0xA40B - SubjectDistanceRange = 0xA40C - ImageUniqueID = 0xA420 - CameraOwnerName = 0xA430 - BodySerialNumber = 0xA431 - LensSpecification = 0xA432 - LensMake = 0xA433 - LensModel = 0xA434 - LensSerialNumber = 0xA435 - CompositeImage = 0xA460 - CompositeImageCount = 0xA461 - CompositeImageExposureTimes = 0xA462 - Gamma = 0xA500 - PrintImageMatching = 0xC4A5 - DNGVersion = 0xC612 - DNGBackwardVersion = 0xC613 - UniqueCameraModel = 0xC614 - LocalizedCameraModel = 0xC615 - CFAPlaneColor = 0xC616 - CFALayout = 0xC617 - LinearizationTable = 0xC618 - BlackLevelRepeatDim = 0xC619 - BlackLevel = 0xC61A - BlackLevelDeltaH = 0xC61B - BlackLevelDeltaV = 0xC61C - WhiteLevel = 0xC61D - DefaultScale = 0xC61E - DefaultCropOrigin = 0xC61F - DefaultCropSize = 0xC620 - ColorMatrix1 = 0xC621 - ColorMatrix2 = 0xC622 - CameraCalibration1 = 0xC623 - CameraCalibration2 = 0xC624 - ReductionMatrix1 = 0xC625 - ReductionMatrix2 = 0xC626 - AnalogBalance = 0xC627 - AsShotNeutral = 0xC628 - AsShotWhiteXY = 0xC629 - BaselineExposure = 0xC62A - BaselineNoise = 0xC62B - BaselineSharpness = 0xC62C - BayerGreenSplit = 0xC62D - LinearResponseLimit = 0xC62E - CameraSerialNumber = 0xC62F - LensInfo = 0xC630 - ChromaBlurRadius = 0xC631 - AntiAliasStrength = 0xC632 - ShadowScale = 0xC633 - DNGPrivateData = 0xC634 - MakerNoteSafety = 0xC635 - CalibrationIlluminant1 = 0xC65A - CalibrationIlluminant2 = 0xC65B - BestQualityScale = 0xC65C - RawDataUniqueID = 0xC65D - OriginalRawFileName = 0xC68B - OriginalRawFileData = 0xC68C - ActiveArea = 0xC68D - MaskedAreas = 0xC68E - AsShotICCProfile = 0xC68F - AsShotPreProfileMatrix = 0xC690 - CurrentICCProfile = 0xC691 - CurrentPreProfileMatrix = 0xC692 - ColorimetricReference = 0xC6BF - CameraCalibrationSignature = 0xC6F3 - ProfileCalibrationSignature = 0xC6F4 - AsShotProfileName = 0xC6F6 - NoiseReductionApplied = 0xC6F7 - ProfileName = 0xC6F8 - ProfileHueSatMapDims = 0xC6F9 - ProfileHueSatMapData1 = 0xC6FA - ProfileHueSatMapData2 = 0xC6FB - ProfileToneCurve = 0xC6FC - ProfileEmbedPolicy = 0xC6FD - ProfileCopyright = 0xC6FE - ForwardMatrix1 = 0xC714 - ForwardMatrix2 = 0xC715 - PreviewApplicationName = 0xC716 - PreviewApplicationVersion = 0xC717 - PreviewSettingsName = 0xC718 - PreviewSettingsDigest = 0xC719 - PreviewColorSpace = 0xC71A - PreviewDateTime = 0xC71B - RawImageDigest = 0xC71C - OriginalRawFileDigest = 0xC71D - SubTileBlockSize = 0xC71E - RowInterleaveFactor = 0xC71F - ProfileLookTableDims = 0xC725 - ProfileLookTableData = 0xC726 - OpcodeList1 = 0xC740 - OpcodeList2 = 0xC741 - OpcodeList3 = 0xC74E - NoiseProfile = 0xC761 - - -"""Maps EXIF tags to tag names.""" -TAGS = { - **{i.value: i.name for i in Base}, - 0x920C: "SpatialFrequencyResponse", - 0x9214: "SubjectLocation", - 0x9215: "ExposureIndex", - 0x828E: "CFAPattern", - 0x920B: "FlashEnergy", - 0x9216: "TIFF/EPStandardID", -} - - -class GPS(IntEnum): - GPSVersionID = 0 - GPSLatitudeRef = 1 - GPSLatitude = 2 - GPSLongitudeRef = 3 - GPSLongitude = 4 - GPSAltitudeRef = 5 - GPSAltitude = 6 - GPSTimeStamp = 7 - GPSSatellites = 8 - GPSStatus = 9 - GPSMeasureMode = 10 - GPSDOP = 11 - GPSSpeedRef = 12 - GPSSpeed = 13 - GPSTrackRef = 14 - GPSTrack = 15 - GPSImgDirectionRef = 16 - GPSImgDirection = 17 - GPSMapDatum = 18 - GPSDestLatitudeRef = 19 - GPSDestLatitude = 20 - GPSDestLongitudeRef = 21 - GPSDestLongitude = 22 - GPSDestBearingRef = 23 - GPSDestBearing = 24 - GPSDestDistanceRef = 25 - GPSDestDistance = 26 - GPSProcessingMethod = 27 - GPSAreaInformation = 28 - GPSDateStamp = 29 - GPSDifferential = 30 - GPSHPositioningError = 31 - - -"""Maps EXIF GPS tags to tag names.""" -GPSTAGS = {i.value: i.name for i in GPS} - - -class Interop(IntEnum): - InteropIndex = 1 - InteropVersion = 2 - RelatedImageFileFormat = 4096 - RelatedImageWidth = 4097 - RleatedImageHeight = 4098 - - -class IFD(IntEnum): - Exif = 34665 - GPSInfo = 34853 - Makernote = 37500 - Interop = 40965 - IFD1 = -1 - - -class LightSource(IntEnum): - Unknown = 0 - Daylight = 1 - Fluorescent = 2 - Tungsten = 3 - Flash = 4 - Fine = 9 - Cloudy = 10 - Shade = 11 - DaylightFluorescent = 12 - DayWhiteFluorescent = 13 - CoolWhiteFluorescent = 14 - WhiteFluorescent = 15 - StandardLightA = 17 - StandardLightB = 18 - StandardLightC = 19 - D55 = 20 - D65 = 21 - D75 = 22 - D50 = 23 - ISO = 24 - Other = 255 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FitsImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FitsImagePlugin.py deleted file mode 100644 index 7dce2d6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FitsImagePlugin.py +++ /dev/null @@ -1,72 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# FITS file handling -# -# Copyright (c) 1998-2003 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import math - -from . import Image, ImageFile - - -def _accept(prefix): - return prefix[:6] == b"SIMPLE" - - -class FitsImageFile(ImageFile.ImageFile): - format = "FITS" - format_description = "FITS" - - def _open(self): - headers = {} - while True: - header = self.fp.read(80) - if not header: - msg = "Truncated FITS file" - raise OSError(msg) - keyword = header[:8].strip() - if keyword == b"END": - break - value = header[8:].split(b"/")[0].strip() - if value.startswith(b"="): - value = value[1:].strip() - if not headers and (not _accept(keyword) or value != b"T"): - msg = "Not a FITS file" - raise SyntaxError(msg) - headers[keyword] = value - - naxis = int(headers[b"NAXIS"]) - if naxis == 0: - msg = "No image data" - raise ValueError(msg) - elif naxis == 1: - self._size = 1, int(headers[b"NAXIS1"]) - else: - self._size = int(headers[b"NAXIS1"]), int(headers[b"NAXIS2"]) - - number_of_bits = int(headers[b"BITPIX"]) - if number_of_bits == 8: - self._mode = "L" - elif number_of_bits == 16: - self._mode = "I" - elif number_of_bits == 32: - self._mode = "I" - elif number_of_bits in (-32, -64): - self._mode = "F" - - offset = math.ceil(self.fp.tell() / 2880) * 2880 - self.tile = [("raw", (0, 0) + self.size, offset, (self.mode, 0, -1))] - - -# -------------------------------------------------------------------- -# Registry - -Image.register_open(FitsImageFile.format, FitsImageFile, _accept) - -Image.register_extensions(FitsImageFile.format, [".fit", ".fits"]) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FliImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FliImagePlugin.py deleted file mode 100644 index 9769761..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FliImagePlugin.py +++ /dev/null @@ -1,173 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# FLI/FLC file handling. -# -# History: -# 95-09-01 fl Created -# 97-01-03 fl Fixed parser, setup decoder tile -# 98-07-15 fl Renamed offset attribute to avoid name clash -# -# Copyright (c) Secret Labs AB 1997-98. -# Copyright (c) Fredrik Lundh 1995-97. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import os - -from . import Image, ImageFile, ImagePalette -from ._binary import i16le as i16 -from ._binary import i32le as i32 -from ._binary import o8 - -# -# decoder - - -def _accept(prefix): - return ( - len(prefix) >= 6 - and i16(prefix, 4) in [0xAF11, 0xAF12] - and i16(prefix, 14) in [0, 3] # flags - ) - - -## -# Image plugin for the FLI/FLC animation format. Use the seek -# method to load individual frames. - - -class FliImageFile(ImageFile.ImageFile): - format = "FLI" - format_description = "Autodesk FLI/FLC Animation" - _close_exclusive_fp_after_loading = False - - def _open(self): - # HEAD - s = self.fp.read(128) - if not (_accept(s) and s[20:22] == b"\x00\x00"): - msg = "not an FLI/FLC file" - raise SyntaxError(msg) - - # frames - self.n_frames = i16(s, 6) - self.is_animated = self.n_frames > 1 - - # image characteristics - self._mode = "P" - self._size = i16(s, 8), i16(s, 10) - - # animation speed - duration = i32(s, 16) - magic = i16(s, 4) - if magic == 0xAF11: - duration = (duration * 1000) // 70 - self.info["duration"] = duration - - # look for palette - palette = [(a, a, a) for a in range(256)] - - s = self.fp.read(16) - - self.__offset = 128 - - if i16(s, 4) == 0xF100: - # prefix chunk; ignore it - self.__offset = self.__offset + i32(s) - s = self.fp.read(16) - - if i16(s, 4) == 0xF1FA: - # look for palette chunk - number_of_subchunks = i16(s, 6) - chunk_size = None - for _ in range(number_of_subchunks): - if chunk_size is not None: - self.fp.seek(chunk_size - 6, os.SEEK_CUR) - s = self.fp.read(6) - chunk_type = i16(s, 4) - if chunk_type in (4, 11): - self._palette(palette, 2 if chunk_type == 11 else 0) - break - chunk_size = i32(s) - if not chunk_size: - break - - palette = [o8(r) + o8(g) + o8(b) for (r, g, b) in palette] - self.palette = ImagePalette.raw("RGB", b"".join(palette)) - - # set things up to decode first frame - self.__frame = -1 - self._fp = self.fp - self.__rewind = self.fp.tell() - self.seek(0) - - def _palette(self, palette, shift): - # load palette - - i = 0 - for e in range(i16(self.fp.read(2))): - s = self.fp.read(2) - i = i + s[0] - n = s[1] - if n == 0: - n = 256 - s = self.fp.read(n * 3) - for n in range(0, len(s), 3): - r = s[n] << shift - g = s[n + 1] << shift - b = s[n + 2] << shift - palette[i] = (r, g, b) - i += 1 - - def seek(self, frame): - if not self._seek_check(frame): - return - if frame < self.__frame: - self._seek(0) - - for f in range(self.__frame + 1, frame + 1): - self._seek(f) - - def _seek(self, frame): - if frame == 0: - self.__frame = -1 - self._fp.seek(self.__rewind) - self.__offset = 128 - else: - # ensure that the previous frame was loaded - self.load() - - if frame != self.__frame + 1: - msg = f"cannot seek to frame {frame}" - raise ValueError(msg) - self.__frame = frame - - # move to next frame - self.fp = self._fp - self.fp.seek(self.__offset) - - s = self.fp.read(4) - if not s: - msg = "missing frame size" - raise EOFError(msg) - - framesize = i32(s) - - self.decodermaxblock = framesize - self.tile = [("fli", (0, 0) + self.size, self.__offset, None)] - - self.__offset += framesize - - def tell(self): - return self.__frame - - -# -# registry - -Image.register_open(FliImageFile.format, FliImageFile, _accept) - -Image.register_extensions(FliImageFile.format, [".fli", ".flc"]) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FontFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FontFile.py deleted file mode 100644 index 3ec1ae8..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FontFile.py +++ /dev/null @@ -1,136 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# base class for raster font file parsers -# -# history: -# 1997-06-05 fl created -# 1997-08-19 fl restrict image width -# -# Copyright (c) 1997-1998 by Secret Labs AB -# Copyright (c) 1997-1998 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import os -from typing import BinaryIO - -from . import Image, _binary - -WIDTH = 800 - - -def puti16( - fp: BinaryIO, values: tuple[int, int, int, int, int, int, int, int, int, int] -) -> None: - """Write network order (big-endian) 16-bit sequence""" - for v in values: - if v < 0: - v += 65536 - fp.write(_binary.o16be(v)) - - -class FontFile: - """Base class for raster font file handlers.""" - - bitmap: Image.Image | None = None - - def __init__(self) -> None: - self.info: dict[bytes, bytes | int] = {} - self.glyph: list[ - tuple[ - tuple[int, int], - tuple[int, int, int, int], - tuple[int, int, int, int], - Image.Image, - ] - | None - ] = [None] * 256 - - def __getitem__( - self, ix: int - ) -> ( - tuple[ - tuple[int, int], - tuple[int, int, int, int], - tuple[int, int, int, int], - Image.Image, - ] - | None - ): - return self.glyph[ix] - - def compile(self) -> None: - """Create metrics and bitmap""" - - if self.bitmap: - return - - # create bitmap large enough to hold all data - h = w = maxwidth = 0 - lines = 1 - for glyph in self.glyph: - if glyph: - d, dst, src, im = glyph - h = max(h, src[3] - src[1]) - w = w + (src[2] - src[0]) - if w > WIDTH: - lines += 1 - w = src[2] - src[0] - maxwidth = max(maxwidth, w) - - xsize = maxwidth - ysize = lines * h - - if xsize == 0 and ysize == 0: - return - - self.ysize = h - - # paste glyphs into bitmap - self.bitmap = Image.new("1", (xsize, ysize)) - self.metrics: list[ - tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]] - | None - ] = [None] * 256 - x = y = 0 - for i in range(256): - glyph = self[i] - if glyph: - d, dst, src, im = glyph - xx = src[2] - src[0] - x0, y0 = x, y - x = x + xx - if x > WIDTH: - x, y = 0, y + h - x0, y0 = x, y - x = xx - s = src[0] + x0, src[1] + y0, src[2] + x0, src[3] + y0 - self.bitmap.paste(im.crop(src), s) - self.metrics[i] = d, dst, s - - def save(self, filename: str) -> None: - """Save font""" - - self.compile() - - # font data - if not self.bitmap: - msg = "No bitmap created" - raise ValueError(msg) - self.bitmap.save(os.path.splitext(filename)[0] + ".pbm", "PNG") - - # font metrics - with open(os.path.splitext(filename)[0] + ".pil", "wb") as fp: - fp.write(b"PILfont\n") - fp.write(f";;;;;;{self.ysize};\n".encode("ascii")) # HACK!!! - fp.write(b"DATA\n") - for id in range(256): - m = self.metrics[id] - if not m: - puti16(fp, (0,) * 10) - else: - puti16(fp, m[0] + m[1] + m[2]) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FpxImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FpxImagePlugin.py deleted file mode 100644 index 75680a9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FpxImagePlugin.py +++ /dev/null @@ -1,255 +0,0 @@ -# -# THIS IS WORK IN PROGRESS -# -# The Python Imaging Library. -# $Id$ -# -# FlashPix support for PIL -# -# History: -# 97-01-25 fl Created (reads uncompressed RGB images only) -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1997. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import olefile - -from . import Image, ImageFile -from ._binary import i32le as i32 - -# we map from colour field tuples to (mode, rawmode) descriptors -MODES = { - # opacity - (0x00007FFE,): ("A", "L"), - # monochrome - (0x00010000,): ("L", "L"), - (0x00018000, 0x00017FFE): ("RGBA", "LA"), - # photo YCC - (0x00020000, 0x00020001, 0x00020002): ("RGB", "YCC;P"), - (0x00028000, 0x00028001, 0x00028002, 0x00027FFE): ("RGBA", "YCCA;P"), - # standard RGB (NIFRGB) - (0x00030000, 0x00030001, 0x00030002): ("RGB", "RGB"), - (0x00038000, 0x00038001, 0x00038002, 0x00037FFE): ("RGBA", "RGBA"), -} - - -# -# -------------------------------------------------------------------- - - -def _accept(prefix): - return prefix[:8] == olefile.MAGIC - - -## -# Image plugin for the FlashPix images. - - -class FpxImageFile(ImageFile.ImageFile): - format = "FPX" - format_description = "FlashPix" - - def _open(self): - # - # read the OLE directory and see if this is a likely - # to be a FlashPix file - - try: - self.ole = olefile.OleFileIO(self.fp) - except OSError as e: - msg = "not an FPX file; invalid OLE file" - raise SyntaxError(msg) from e - - if self.ole.root.clsid != "56616700-C154-11CE-8553-00AA00A1F95B": - msg = "not an FPX file; bad root CLSID" - raise SyntaxError(msg) - - self._open_index(1) - - def _open_index(self, index=1): - # - # get the Image Contents Property Set - - prop = self.ole.getproperties( - [f"Data Object Store {index:06d}", "\005Image Contents"] - ) - - # size (highest resolution) - - self._size = prop[0x1000002], prop[0x1000003] - - size = max(self.size) - i = 1 - while size > 64: - size = size / 2 - i += 1 - self.maxid = i - 1 - - # mode. instead of using a single field for this, flashpix - # requires you to specify the mode for each channel in each - # resolution subimage, and leaves it to the decoder to make - # sure that they all match. for now, we'll cheat and assume - # that this is always the case. - - id = self.maxid << 16 - - s = prop[0x2000002 | id] - - bands = i32(s, 4) - if bands > 4: - msg = "Invalid number of bands" - raise OSError(msg) - - # note: for now, we ignore the "uncalibrated" flag - colors = tuple(i32(s, 8 + i * 4) & 0x7FFFFFFF for i in range(bands)) - - self._mode, self.rawmode = MODES[colors] - - # load JPEG tables, if any - self.jpeg = {} - for i in range(256): - id = 0x3000001 | (i << 16) - if id in prop: - self.jpeg[i] = prop[id] - - self._open_subimage(1, self.maxid) - - def _open_subimage(self, index=1, subimage=0): - # - # setup tile descriptors for a given subimage - - stream = [ - f"Data Object Store {index:06d}", - f"Resolution {subimage:04d}", - "Subimage 0000 Header", - ] - - fp = self.ole.openstream(stream) - - # skip prefix - fp.read(28) - - # header stream - s = fp.read(36) - - size = i32(s, 4), i32(s, 8) - # tilecount = i32(s, 12) - tilesize = i32(s, 16), i32(s, 20) - # channels = i32(s, 24) - offset = i32(s, 28) - length = i32(s, 32) - - if size != self.size: - msg = "subimage mismatch" - raise OSError(msg) - - # get tile descriptors - fp.seek(28 + offset) - s = fp.read(i32(s, 12) * length) - - x = y = 0 - xsize, ysize = size - xtile, ytile = tilesize - self.tile = [] - - for i in range(0, len(s), length): - x1 = min(xsize, x + xtile) - y1 = min(ysize, y + ytile) - - compression = i32(s, i + 8) - - if compression == 0: - self.tile.append( - ( - "raw", - (x, y, x1, y1), - i32(s, i) + 28, - (self.rawmode,), - ) - ) - - elif compression == 1: - # FIXME: the fill decoder is not implemented - self.tile.append( - ( - "fill", - (x, y, x1, y1), - i32(s, i) + 28, - (self.rawmode, s[12:16]), - ) - ) - - elif compression == 2: - internal_color_conversion = s[14] - jpeg_tables = s[15] - rawmode = self.rawmode - - if internal_color_conversion: - # The image is stored as usual (usually YCbCr). - if rawmode == "RGBA": - # For "RGBA", data is stored as YCbCrA based on - # negative RGB. The following trick works around - # this problem : - jpegmode, rawmode = "YCbCrK", "CMYK" - else: - jpegmode = None # let the decoder decide - - else: - # The image is stored as defined by rawmode - jpegmode = rawmode - - self.tile.append( - ( - "jpeg", - (x, y, x1, y1), - i32(s, i) + 28, - (rawmode, jpegmode), - ) - ) - - # FIXME: jpeg tables are tile dependent; the prefix - # data must be placed in the tile descriptor itself! - - if jpeg_tables: - self.tile_prefix = self.jpeg[jpeg_tables] - - else: - msg = "unknown/invalid compression" - raise OSError(msg) - - x = x + xtile - if x >= xsize: - x, y = 0, y + ytile - if y >= ysize: - break # isn't really required - - self.stream = stream - self._fp = self.fp - self.fp = None - - def load(self): - if not self.fp: - self.fp = self.ole.openstream(self.stream[:2] + ["Subimage 0000 Data"]) - - return ImageFile.ImageFile.load(self) - - def close(self): - self.ole.close() - super().close() - - def __exit__(self, *args): - self.ole.close() - super().__exit__() - - -# -# -------------------------------------------------------------------- - - -Image.register_open(FpxImageFile.format, FpxImageFile, _accept) - -Image.register_extension(FpxImageFile.format, ".fpx") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FtexImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FtexImagePlugin.py deleted file mode 100644 index d5513a5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/FtexImagePlugin.py +++ /dev/null @@ -1,114 +0,0 @@ -""" -A Pillow loader for .ftc and .ftu files (FTEX) -Jerome Leclanche - -The contents of this file are hereby released in the public domain (CC0) -Full text of the CC0 license: - https://creativecommons.org/publicdomain/zero/1.0/ - -Independence War 2: Edge Of Chaos - Texture File Format - 16 October 2001 - -The textures used for 3D objects in Independence War 2: Edge Of Chaos are in a -packed custom format called FTEX. This file format uses file extensions FTC -and FTU. -* FTC files are compressed textures (using standard texture compression). -* FTU files are not compressed. -Texture File Format -The FTC and FTU texture files both use the same format. This -has the following structure: -{header} -{format_directory} -{data} -Where: -{header} = { - u32:magic, - u32:version, - u32:width, - u32:height, - u32:mipmap_count, - u32:format_count -} - -* The "magic" number is "FTEX". -* "width" and "height" are the dimensions of the texture. -* "mipmap_count" is the number of mipmaps in the texture. -* "format_count" is the number of texture formats (different versions of the -same texture) in this file. - -{format_directory} = format_count * { u32:format, u32:where } - -The format value is 0 for DXT1 compressed textures and 1 for 24-bit RGB -uncompressed textures. -The texture data for a format starts at the position "where" in the file. - -Each set of texture data in the file has the following structure: -{data} = format_count * { u32:mipmap_size, mipmap_size * { u8 } } -* "mipmap_size" is the number of bytes in that mip level. For compressed -textures this is the size of the texture data compressed with DXT1. For 24 bit -uncompressed textures, this is 3 * width * height. Following this are the image -bytes for that mipmap level. - -Note: All data is stored in little-Endian (Intel) byte order. -""" -from __future__ import annotations - -import struct -from enum import IntEnum -from io import BytesIO - -from . import Image, ImageFile - -MAGIC = b"FTEX" - - -class Format(IntEnum): - DXT1 = 0 - UNCOMPRESSED = 1 - - -class FtexImageFile(ImageFile.ImageFile): - format = "FTEX" - format_description = "Texture File Format (IW2:EOC)" - - def _open(self): - if not _accept(self.fp.read(4)): - msg = "not an FTEX file" - raise SyntaxError(msg) - struct.unpack("= 8 and i32(prefix, 0) >= 20 and i32(prefix, 4) in (1, 2) - - -## -# Image plugin for the GIMP brush format. - - -class GbrImageFile(ImageFile.ImageFile): - format = "GBR" - format_description = "GIMP brush file" - - def _open(self): - header_size = i32(self.fp.read(4)) - if header_size < 20: - msg = "not a GIMP brush" - raise SyntaxError(msg) - version = i32(self.fp.read(4)) - if version not in (1, 2): - msg = f"Unsupported GIMP brush version: {version}" - raise SyntaxError(msg) - - width = i32(self.fp.read(4)) - height = i32(self.fp.read(4)) - color_depth = i32(self.fp.read(4)) - if width <= 0 or height <= 0: - msg = "not a GIMP brush" - raise SyntaxError(msg) - if color_depth not in (1, 4): - msg = f"Unsupported GIMP brush color depth: {color_depth}" - raise SyntaxError(msg) - - if version == 1: - comment_length = header_size - 20 - else: - comment_length = header_size - 28 - magic_number = self.fp.read(4) - if magic_number != b"GIMP": - msg = "not a GIMP brush, bad magic number" - raise SyntaxError(msg) - self.info["spacing"] = i32(self.fp.read(4)) - - comment = self.fp.read(comment_length)[:-1] - - if color_depth == 1: - self._mode = "L" - else: - self._mode = "RGBA" - - self._size = width, height - - self.info["comment"] = comment - - # Image might not be small - Image._decompression_bomb_check(self.size) - - # Data is an uncompressed block of w * h * bytes/pixel - self._data_size = width * height * color_depth - - def load(self): - if not self.im: - self.im = Image.core.new(self.mode, self.size) - self.frombytes(self.fp.read(self._data_size)) - return Image.Image.load(self) - - -# -# registry - - -Image.register_open(GbrImageFile.format, GbrImageFile, _accept) -Image.register_extension(GbrImageFile.format, ".gbr") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GdImageFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GdImageFile.py deleted file mode 100644 index d84876e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GdImageFile.py +++ /dev/null @@ -1,97 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# GD file handling -# -# History: -# 1996-04-12 fl Created -# -# Copyright (c) 1997 by Secret Labs AB. -# Copyright (c) 1996 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# - - -""" -.. note:: - This format cannot be automatically recognized, so the - class is not registered for use with :py:func:`PIL.Image.open()`. To open a - gd file, use the :py:func:`PIL.GdImageFile.open()` function instead. - -.. warning:: - THE GD FORMAT IS NOT DESIGNED FOR DATA INTERCHANGE. This - implementation is provided for convenience and demonstrational - purposes only. -""" -from __future__ import annotations - -from . import ImageFile, ImagePalette, UnidentifiedImageError -from ._binary import i16be as i16 -from ._binary import i32be as i32 - - -class GdImageFile(ImageFile.ImageFile): - """ - Image plugin for the GD uncompressed format. Note that this format - is not supported by the standard :py:func:`PIL.Image.open()` function. To use - this plugin, you have to import the :py:mod:`PIL.GdImageFile` module and - use the :py:func:`PIL.GdImageFile.open()` function. - """ - - format = "GD" - format_description = "GD uncompressed images" - - def _open(self): - # Header - s = self.fp.read(1037) - - if i16(s) not in [65534, 65535]: - msg = "Not a valid GD 2.x .gd file" - raise SyntaxError(msg) - - self._mode = "L" # FIXME: "P" - self._size = i16(s, 2), i16(s, 4) - - true_color = s[6] - true_color_offset = 2 if true_color else 0 - - # transparency index - tindex = i32(s, 7 + true_color_offset) - if tindex < 256: - self.info["transparency"] = tindex - - self.palette = ImagePalette.raw( - "XBGR", s[7 + true_color_offset + 4 : 7 + true_color_offset + 4 + 256 * 4] - ) - - self.tile = [ - ( - "raw", - (0, 0) + self.size, - 7 + true_color_offset + 4 + 256 * 4, - ("L", 0, 1), - ) - ] - - -def open(fp, mode="r"): - """ - Load texture from a GD image file. - - :param fp: GD file name, or an opened file handle. - :param mode: Optional mode. In this version, if the mode argument - is given, it must be "r". - :returns: An image instance. - :raises OSError: If the image could not be read. - """ - if mode != "r": - msg = "bad mode" - raise ValueError(msg) - - try: - return GdImageFile(fp) - except SyntaxError as e: - msg = "cannot identify this image file" - raise UnidentifiedImageError(msg) from e diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GifImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GifImagePlugin.py deleted file mode 100644 index 57d8707..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GifImagePlugin.py +++ /dev/null @@ -1,1097 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# GIF file handling -# -# History: -# 1995-09-01 fl Created -# 1996-12-14 fl Added interlace support -# 1996-12-30 fl Added animation support -# 1997-01-05 fl Added write support, fixed local colour map bug -# 1997-02-23 fl Make sure to load raster data in getdata() -# 1997-07-05 fl Support external decoder (0.4) -# 1998-07-09 fl Handle all modes when saving (0.5) -# 1998-07-15 fl Renamed offset attribute to avoid name clash -# 2001-04-16 fl Added rewind support (seek to frame 0) (0.6) -# 2001-04-17 fl Added palette optimization (0.7) -# 2002-06-06 fl Added transparency support for save (0.8) -# 2004-02-24 fl Disable interlacing for small images -# -# Copyright (c) 1997-2004 by Secret Labs AB -# Copyright (c) 1995-2004 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import itertools -import math -import os -import subprocess -from enum import IntEnum - -from . import ( - Image, - ImageChops, - ImageFile, - ImageMath, - ImageOps, - ImagePalette, - ImageSequence, -) -from ._binary import i16le as i16 -from ._binary import o8 -from ._binary import o16le as o16 - - -class LoadingStrategy(IntEnum): - """.. versionadded:: 9.1.0""" - - RGB_AFTER_FIRST = 0 - RGB_AFTER_DIFFERENT_PALETTE_ONLY = 1 - RGB_ALWAYS = 2 - - -#: .. versionadded:: 9.1.0 -LOADING_STRATEGY = LoadingStrategy.RGB_AFTER_FIRST - -# -------------------------------------------------------------------- -# Identify/read GIF files - - -def _accept(prefix): - return prefix[:6] in [b"GIF87a", b"GIF89a"] - - -## -# Image plugin for GIF images. This plugin supports both GIF87 and -# GIF89 images. - - -class GifImageFile(ImageFile.ImageFile): - format = "GIF" - format_description = "Compuserve GIF" - _close_exclusive_fp_after_loading = False - - global_palette = None - - def data(self): - s = self.fp.read(1) - if s and s[0]: - return self.fp.read(s[0]) - return None - - def _is_palette_needed(self, p): - for i in range(0, len(p), 3): - if not (i // 3 == p[i] == p[i + 1] == p[i + 2]): - return True - return False - - def _open(self): - # Screen - s = self.fp.read(13) - if not _accept(s): - msg = "not a GIF file" - raise SyntaxError(msg) - - self.info["version"] = s[:6] - self._size = i16(s, 6), i16(s, 8) - self.tile = [] - flags = s[10] - bits = (flags & 7) + 1 - - if flags & 128: - # get global palette - self.info["background"] = s[11] - # check if palette contains colour indices - p = self.fp.read(3 << bits) - if self._is_palette_needed(p): - p = ImagePalette.raw("RGB", p) - self.global_palette = self.palette = p - - self._fp = self.fp # FIXME: hack - self.__rewind = self.fp.tell() - self._n_frames = None - self._is_animated = None - self._seek(0) # get ready to read first frame - - @property - def n_frames(self): - if self._n_frames is None: - current = self.tell() - try: - while True: - self._seek(self.tell() + 1, False) - except EOFError: - self._n_frames = self.tell() + 1 - self.seek(current) - return self._n_frames - - @property - def is_animated(self): - if self._is_animated is None: - if self._n_frames is not None: - self._is_animated = self._n_frames != 1 - else: - current = self.tell() - if current: - self._is_animated = True - else: - try: - self._seek(1, False) - self._is_animated = True - except EOFError: - self._is_animated = False - - self.seek(current) - return self._is_animated - - def seek(self, frame): - if not self._seek_check(frame): - return - if frame < self.__frame: - self.im = None - self._seek(0) - - last_frame = self.__frame - for f in range(self.__frame + 1, frame + 1): - try: - self._seek(f) - except EOFError as e: - self.seek(last_frame) - msg = "no more images in GIF file" - raise EOFError(msg) from e - - def _seek(self, frame, update_image=True): - if frame == 0: - # rewind - self.__offset = 0 - self.dispose = None - self.__frame = -1 - self._fp.seek(self.__rewind) - self.disposal_method = 0 - if "comment" in self.info: - del self.info["comment"] - else: - # ensure that the previous frame was loaded - if self.tile and update_image: - self.load() - - if frame != self.__frame + 1: - msg = f"cannot seek to frame {frame}" - raise ValueError(msg) - - self.fp = self._fp - if self.__offset: - # backup to last frame - self.fp.seek(self.__offset) - while self.data(): - pass - self.__offset = 0 - - s = self.fp.read(1) - if not s or s == b";": - msg = "no more images in GIF file" - raise EOFError(msg) - - palette = None - - info = {} - frame_transparency = None - interlace = None - frame_dispose_extent = None - while True: - if not s: - s = self.fp.read(1) - if not s or s == b";": - break - - elif s == b"!": - # - # extensions - # - s = self.fp.read(1) - block = self.data() - if s[0] == 249: - # - # graphic control extension - # - flags = block[0] - if flags & 1: - frame_transparency = block[3] - info["duration"] = i16(block, 1) * 10 - - # disposal method - find the value of bits 4 - 6 - dispose_bits = 0b00011100 & flags - dispose_bits = dispose_bits >> 2 - if dispose_bits: - # only set the dispose if it is not - # unspecified. I'm not sure if this is - # correct, but it seems to prevent the last - # frame from looking odd for some animations - self.disposal_method = dispose_bits - elif s[0] == 254: - # - # comment extension - # - comment = b"" - - # Read this comment block - while block: - comment += block - block = self.data() - - if "comment" in info: - # If multiple comment blocks in frame, separate with \n - info["comment"] += b"\n" + comment - else: - info["comment"] = comment - s = None - continue - elif s[0] == 255 and frame == 0: - # - # application extension - # - info["extension"] = block, self.fp.tell() - if block[:11] == b"NETSCAPE2.0": - block = self.data() - if len(block) >= 3 and block[0] == 1: - self.info["loop"] = i16(block, 1) - while self.data(): - pass - - elif s == b",": - # - # local image - # - s = self.fp.read(9) - - # extent - x0, y0 = i16(s, 0), i16(s, 2) - x1, y1 = x0 + i16(s, 4), y0 + i16(s, 6) - if (x1 > self.size[0] or y1 > self.size[1]) and update_image: - self._size = max(x1, self.size[0]), max(y1, self.size[1]) - Image._decompression_bomb_check(self._size) - frame_dispose_extent = x0, y0, x1, y1 - flags = s[8] - - interlace = (flags & 64) != 0 - - if flags & 128: - bits = (flags & 7) + 1 - p = self.fp.read(3 << bits) - if self._is_palette_needed(p): - palette = ImagePalette.raw("RGB", p) - else: - palette = False - - # image data - bits = self.fp.read(1)[0] - self.__offset = self.fp.tell() - break - s = None - - if interlace is None: - msg = "image not found in GIF frame" - raise EOFError(msg) - - self.__frame = frame - if not update_image: - return - - self.tile = [] - - if self.dispose: - self.im.paste(self.dispose, self.dispose_extent) - - self._frame_palette = palette if palette is not None else self.global_palette - self._frame_transparency = frame_transparency - if frame == 0: - if self._frame_palette: - if LOADING_STRATEGY == LoadingStrategy.RGB_ALWAYS: - self._mode = "RGBA" if frame_transparency is not None else "RGB" - else: - self._mode = "P" - else: - self._mode = "L" - - if not palette and self.global_palette: - from copy import copy - - palette = copy(self.global_palette) - self.palette = palette - else: - if self.mode == "P": - if ( - LOADING_STRATEGY != LoadingStrategy.RGB_AFTER_DIFFERENT_PALETTE_ONLY - or palette - ): - self.pyaccess = None - if "transparency" in self.info: - self.im.putpalettealpha(self.info["transparency"], 0) - self.im = self.im.convert("RGBA", Image.Dither.FLOYDSTEINBERG) - self._mode = "RGBA" - del self.info["transparency"] - else: - self._mode = "RGB" - self.im = self.im.convert("RGB", Image.Dither.FLOYDSTEINBERG) - - def _rgb(color): - if self._frame_palette: - if color * 3 + 3 > len(self._frame_palette.palette): - color = 0 - color = tuple(self._frame_palette.palette[color * 3 : color * 3 + 3]) - else: - color = (color, color, color) - return color - - self.dispose_extent = frame_dispose_extent - try: - if self.disposal_method < 2: - # do not dispose or none specified - self.dispose = None - elif self.disposal_method == 2: - # replace with background colour - - # only dispose the extent in this frame - x0, y0, x1, y1 = self.dispose_extent - dispose_size = (x1 - x0, y1 - y0) - - Image._decompression_bomb_check(dispose_size) - - # by convention, attempt to use transparency first - dispose_mode = "P" - color = self.info.get("transparency", frame_transparency) - if color is not None: - if self.mode in ("RGB", "RGBA"): - dispose_mode = "RGBA" - color = _rgb(color) + (0,) - else: - color = self.info.get("background", 0) - if self.mode in ("RGB", "RGBA"): - dispose_mode = "RGB" - color = _rgb(color) - self.dispose = Image.core.fill(dispose_mode, dispose_size, color) - else: - # replace with previous contents - if self.im is not None: - # only dispose the extent in this frame - self.dispose = self._crop(self.im, self.dispose_extent) - elif frame_transparency is not None: - x0, y0, x1, y1 = self.dispose_extent - dispose_size = (x1 - x0, y1 - y0) - - Image._decompression_bomb_check(dispose_size) - dispose_mode = "P" - color = frame_transparency - if self.mode in ("RGB", "RGBA"): - dispose_mode = "RGBA" - color = _rgb(frame_transparency) + (0,) - self.dispose = Image.core.fill(dispose_mode, dispose_size, color) - except AttributeError: - pass - - if interlace is not None: - transparency = -1 - if frame_transparency is not None: - if frame == 0: - if LOADING_STRATEGY != LoadingStrategy.RGB_ALWAYS: - self.info["transparency"] = frame_transparency - elif self.mode not in ("RGB", "RGBA"): - transparency = frame_transparency - self.tile = [ - ( - "gif", - (x0, y0, x1, y1), - self.__offset, - (bits, interlace, transparency), - ) - ] - - if info.get("comment"): - self.info["comment"] = info["comment"] - for k in ["duration", "extension"]: - if k in info: - self.info[k] = info[k] - elif k in self.info: - del self.info[k] - - def load_prepare(self): - temp_mode = "P" if self._frame_palette else "L" - self._prev_im = None - if self.__frame == 0: - if self._frame_transparency is not None: - self.im = Image.core.fill( - temp_mode, self.size, self._frame_transparency - ) - elif self.mode in ("RGB", "RGBA"): - self._prev_im = self.im - if self._frame_palette: - self.im = Image.core.fill("P", self.size, self._frame_transparency or 0) - self.im.putpalette(*self._frame_palette.getdata()) - else: - self.im = None - self._mode = temp_mode - self._frame_palette = None - - super().load_prepare() - - def load_end(self): - if self.__frame == 0: - if self.mode == "P" and LOADING_STRATEGY == LoadingStrategy.RGB_ALWAYS: - if self._frame_transparency is not None: - self.im.putpalettealpha(self._frame_transparency, 0) - self._mode = "RGBA" - else: - self._mode = "RGB" - self.im = self.im.convert(self.mode, Image.Dither.FLOYDSTEINBERG) - return - if not self._prev_im: - return - if self._frame_transparency is not None: - self.im.putpalettealpha(self._frame_transparency, 0) - frame_im = self.im.convert("RGBA") - else: - frame_im = self.im.convert("RGB") - frame_im = self._crop(frame_im, self.dispose_extent) - - self.im = self._prev_im - self._mode = self.im.mode - if frame_im.mode == "RGBA": - self.im.paste(frame_im, self.dispose_extent, frame_im) - else: - self.im.paste(frame_im, self.dispose_extent) - - def tell(self): - return self.__frame - - -# -------------------------------------------------------------------- -# Write GIF files - - -RAWMODE = {"1": "L", "L": "L", "P": "P"} - - -def _normalize_mode(im): - """ - Takes an image (or frame), returns an image in a mode that is appropriate - for saving in a Gif. - - It may return the original image, or it may return an image converted to - palette or 'L' mode. - - :param im: Image object - :returns: Image object - """ - if im.mode in RAWMODE: - im.load() - return im - if Image.getmodebase(im.mode) == "RGB": - im = im.convert("P", palette=Image.Palette.ADAPTIVE) - if im.palette.mode == "RGBA": - for rgba in im.palette.colors: - if rgba[3] == 0: - im.info["transparency"] = im.palette.colors[rgba] - break - return im - return im.convert("L") - - -def _normalize_palette(im, palette, info): - """ - Normalizes the palette for image. - - Sets the palette to the incoming palette, if provided. - - Ensures that there's a palette for L mode images - - Optimizes the palette if necessary/desired. - - :param im: Image object - :param palette: bytes object containing the source palette, or .... - :param info: encoderinfo - :returns: Image object - """ - source_palette = None - if palette: - # a bytes palette - if isinstance(palette, (bytes, bytearray, list)): - source_palette = bytearray(palette[:768]) - if isinstance(palette, ImagePalette.ImagePalette): - source_palette = bytearray(palette.palette) - - if im.mode == "P": - if not source_palette: - source_palette = im.im.getpalette("RGB")[:768] - else: # L-mode - if not source_palette: - source_palette = bytearray(i // 3 for i in range(768)) - im.palette = ImagePalette.ImagePalette("RGB", palette=source_palette) - - if palette: - used_palette_colors = [] - for i in range(0, len(source_palette), 3): - source_color = tuple(source_palette[i : i + 3]) - index = im.palette.colors.get(source_color) - if index in used_palette_colors: - index = None - used_palette_colors.append(index) - for i, index in enumerate(used_palette_colors): - if index is None: - for j in range(len(used_palette_colors)): - if j not in used_palette_colors: - used_palette_colors[i] = j - break - im = im.remap_palette(used_palette_colors) - else: - used_palette_colors = _get_optimize(im, info) - if used_palette_colors is not None: - im = im.remap_palette(used_palette_colors, source_palette) - if "transparency" in info: - try: - info["transparency"] = used_palette_colors.index( - info["transparency"] - ) - except ValueError: - del info["transparency"] - return im - - im.palette.palette = source_palette - return im - - -def _write_single_frame(im, fp, palette): - im_out = _normalize_mode(im) - for k, v in im_out.info.items(): - im.encoderinfo.setdefault(k, v) - im_out = _normalize_palette(im_out, palette, im.encoderinfo) - - for s in _get_global_header(im_out, im.encoderinfo): - fp.write(s) - - # local image header - flags = 0 - if get_interlace(im): - flags = flags | 64 - _write_local_header(fp, im, (0, 0), flags) - - im_out.encoderconfig = (8, get_interlace(im)) - ImageFile._save(im_out, fp, [("gif", (0, 0) + im.size, 0, RAWMODE[im_out.mode])]) - - fp.write(b"\0") # end of image data - - -def _getbbox(base_im, im_frame): - if _get_palette_bytes(im_frame) != _get_palette_bytes(base_im): - im_frame = im_frame.convert("RGBA") - base_im = base_im.convert("RGBA") - delta = ImageChops.subtract_modulo(im_frame, base_im) - return delta, delta.getbbox(alpha_only=False) - - -def _write_multiple_frames(im, fp, palette): - duration = im.encoderinfo.get("duration") - disposal = im.encoderinfo.get("disposal", im.info.get("disposal")) - - im_frames = [] - previous_im = None - frame_count = 0 - background_im = None - for imSequence in itertools.chain([im], im.encoderinfo.get("append_images", [])): - for im_frame in ImageSequence.Iterator(imSequence): - # a copy is required here since seek can still mutate the image - im_frame = _normalize_mode(im_frame.copy()) - if frame_count == 0: - for k, v in im_frame.info.items(): - if k == "transparency": - continue - im.encoderinfo.setdefault(k, v) - - encoderinfo = im.encoderinfo.copy() - if "transparency" in im_frame.info: - encoderinfo.setdefault("transparency", im_frame.info["transparency"]) - im_frame = _normalize_palette(im_frame, palette, encoderinfo) - if isinstance(duration, (list, tuple)): - encoderinfo["duration"] = duration[frame_count] - elif duration is None and "duration" in im_frame.info: - encoderinfo["duration"] = im_frame.info["duration"] - if isinstance(disposal, (list, tuple)): - encoderinfo["disposal"] = disposal[frame_count] - frame_count += 1 - - diff_frame = None - if im_frames: - # delta frame - delta, bbox = _getbbox(previous_im, im_frame) - if not bbox: - # This frame is identical to the previous frame - if encoderinfo.get("duration"): - im_frames[-1]["encoderinfo"]["duration"] += encoderinfo[ - "duration" - ] - continue - if encoderinfo.get("disposal") == 2: - if background_im is None: - color = im.encoderinfo.get( - "transparency", im.info.get("transparency", (0, 0, 0)) - ) - background = _get_background(im_frame, color) - background_im = Image.new("P", im_frame.size, background) - background_im.putpalette(im_frames[0]["im"].palette) - delta, bbox = _getbbox(background_im, im_frame) - if encoderinfo.get("optimize") and im_frame.mode != "1": - if "transparency" not in encoderinfo: - try: - encoderinfo[ - "transparency" - ] = im_frame.palette._new_color_index(im_frame) - except ValueError: - pass - if "transparency" in encoderinfo: - # When the delta is zero, fill the image with transparency - diff_frame = im_frame.copy() - fill = Image.new( - "P", diff_frame.size, encoderinfo["transparency"] - ) - if delta.mode == "RGBA": - r, g, b, a = delta.split() - mask = ImageMath.eval( - "convert(max(max(max(r, g), b), a) * 255, '1')", - r=r, - g=g, - b=b, - a=a, - ) - else: - if delta.mode == "P": - # Convert to L without considering palette - delta_l = Image.new("L", delta.size) - delta_l.putdata(delta.getdata()) - delta = delta_l - mask = ImageMath.eval("convert(im * 255, '1')", im=delta) - diff_frame.paste(fill, mask=ImageOps.invert(mask)) - else: - bbox = None - previous_im = im_frame - im_frames.append( - {"im": diff_frame or im_frame, "bbox": bbox, "encoderinfo": encoderinfo} - ) - - if len(im_frames) == 1: - if "duration" in im.encoderinfo: - # Since multiple frames will not be written, use the combined duration - im.encoderinfo["duration"] = im_frames[0]["encoderinfo"]["duration"] - return - - for frame_data in im_frames: - im_frame = frame_data["im"] - if not frame_data["bbox"]: - # global header - for s in _get_global_header(im_frame, frame_data["encoderinfo"]): - fp.write(s) - offset = (0, 0) - else: - # compress difference - if not palette: - frame_data["encoderinfo"]["include_color_table"] = True - - im_frame = im_frame.crop(frame_data["bbox"]) - offset = frame_data["bbox"][:2] - _write_frame_data(fp, im_frame, offset, frame_data["encoderinfo"]) - return True - - -def _save_all(im, fp, filename): - _save(im, fp, filename, save_all=True) - - -def _save(im, fp, filename, save_all=False): - # header - if "palette" in im.encoderinfo or "palette" in im.info: - palette = im.encoderinfo.get("palette", im.info.get("palette")) - else: - palette = None - im.encoderinfo.setdefault("optimize", True) - - if not save_all or not _write_multiple_frames(im, fp, palette): - _write_single_frame(im, fp, palette) - - fp.write(b";") # end of file - - if hasattr(fp, "flush"): - fp.flush() - - -def get_interlace(im): - interlace = im.encoderinfo.get("interlace", 1) - - # workaround for @PIL153 - if min(im.size) < 16: - interlace = 0 - - return interlace - - -def _write_local_header(fp, im, offset, flags): - try: - transparency = im.encoderinfo["transparency"] - except KeyError: - transparency = None - - if "duration" in im.encoderinfo: - duration = int(im.encoderinfo["duration"] / 10) - else: - duration = 0 - - disposal = int(im.encoderinfo.get("disposal", 0)) - - if transparency is not None or duration != 0 or disposal: - packed_flag = 1 if transparency is not None else 0 - packed_flag |= disposal << 2 - - fp.write( - b"!" - + o8(249) # extension intro - + o8(4) # length - + o8(packed_flag) # packed fields - + o16(duration) # duration - + o8(transparency or 0) # transparency index - + o8(0) - ) - - include_color_table = im.encoderinfo.get("include_color_table") - if include_color_table: - palette_bytes = _get_palette_bytes(im) - color_table_size = _get_color_table_size(palette_bytes) - if color_table_size: - flags = flags | 128 # local color table flag - flags = flags | color_table_size - - fp.write( - b"," - + o16(offset[0]) # offset - + o16(offset[1]) - + o16(im.size[0]) # size - + o16(im.size[1]) - + o8(flags) # flags - ) - if include_color_table and color_table_size: - fp.write(_get_header_palette(palette_bytes)) - fp.write(o8(8)) # bits - - -def _save_netpbm(im, fp, filename): - # Unused by default. - # To use, uncomment the register_save call at the end of the file. - # - # If you need real GIF compression and/or RGB quantization, you - # can use the external NETPBM/PBMPLUS utilities. See comments - # below for information on how to enable this. - tempfile = im._dump() - - try: - with open(filename, "wb") as f: - if im.mode != "RGB": - subprocess.check_call( - ["ppmtogif", tempfile], stdout=f, stderr=subprocess.DEVNULL - ) - else: - # Pipe ppmquant output into ppmtogif - # "ppmquant 256 %s | ppmtogif > %s" % (tempfile, filename) - quant_cmd = ["ppmquant", "256", tempfile] - togif_cmd = ["ppmtogif"] - quant_proc = subprocess.Popen( - quant_cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL - ) - togif_proc = subprocess.Popen( - togif_cmd, - stdin=quant_proc.stdout, - stdout=f, - stderr=subprocess.DEVNULL, - ) - - # Allow ppmquant to receive SIGPIPE if ppmtogif exits - quant_proc.stdout.close() - - retcode = quant_proc.wait() - if retcode: - raise subprocess.CalledProcessError(retcode, quant_cmd) - - retcode = togif_proc.wait() - if retcode: - raise subprocess.CalledProcessError(retcode, togif_cmd) - finally: - try: - os.unlink(tempfile) - except OSError: - pass - - -# Force optimization so that we can test performance against -# cases where it took lots of memory and time previously. -_FORCE_OPTIMIZE = False - - -def _get_optimize(im, info): - """ - Palette optimization is a potentially expensive operation. - - This function determines if the palette should be optimized using - some heuristics, then returns the list of palette entries in use. - - :param im: Image object - :param info: encoderinfo - :returns: list of indexes of palette entries in use, or None - """ - if im.mode in ("P", "L") and info and info.get("optimize"): - # Potentially expensive operation. - - # The palette saves 3 bytes per color not used, but palette - # lengths are restricted to 3*(2**N) bytes. Max saving would - # be 768 -> 6 bytes if we went all the way down to 2 colors. - # * If we're over 128 colors, we can't save any space. - # * If there aren't any holes, it's not worth collapsing. - # * If we have a 'large' image, the palette is in the noise. - - # create the new palette if not every color is used - optimise = _FORCE_OPTIMIZE or im.mode == "L" - if optimise or im.width * im.height < 512 * 512: - # check which colors are used - used_palette_colors = [] - for i, count in enumerate(im.histogram()): - if count: - used_palette_colors.append(i) - - if optimise or max(used_palette_colors) >= len(used_palette_colors): - return used_palette_colors - - num_palette_colors = len(im.palette.palette) // Image.getmodebands( - im.palette.mode - ) - current_palette_size = 1 << (num_palette_colors - 1).bit_length() - if ( - # check that the palette would become smaller when saved - len(used_palette_colors) <= current_palette_size // 2 - # check that the palette is not already the smallest possible size - and current_palette_size > 2 - ): - return used_palette_colors - - -def _get_color_table_size(palette_bytes): - # calculate the palette size for the header - if not palette_bytes: - return 0 - elif len(palette_bytes) < 9: - return 1 - else: - return math.ceil(math.log(len(palette_bytes) // 3, 2)) - 1 - - -def _get_header_palette(palette_bytes): - """ - Returns the palette, null padded to the next power of 2 (*3) bytes - suitable for direct inclusion in the GIF header - - :param palette_bytes: Unpadded palette bytes, in RGBRGB form - :returns: Null padded palette - """ - color_table_size = _get_color_table_size(palette_bytes) - - # add the missing amount of bytes - # the palette has to be 2< 0: - palette_bytes += o8(0) * 3 * actual_target_size_diff - return palette_bytes - - -def _get_palette_bytes(im): - """ - Gets the palette for inclusion in the gif header - - :param im: Image object - :returns: Bytes, len<=768 suitable for inclusion in gif header - """ - return im.palette.palette if im.palette else b"" - - -def _get_background(im, info_background): - background = 0 - if info_background: - if isinstance(info_background, tuple): - # WebPImagePlugin stores an RGBA value in info["background"] - # So it must be converted to the same format as GifImagePlugin's - # info["background"] - a global color table index - try: - background = im.palette.getcolor(info_background, im) - except ValueError as e: - if str(e) not in ( - # If all 256 colors are in use, - # then there is no need for the background color - "cannot allocate more than 256 colors", - # Ignore non-opaque WebP background - "cannot add non-opaque RGBA color to RGB palette", - ): - raise - else: - background = info_background - return background - - -def _get_global_header(im, info): - """Return a list of strings representing a GIF header""" - - # Header Block - # https://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp - - version = b"87a" - if im.info.get("version") == b"89a" or ( - info - and ( - "transparency" in info - or info.get("loop") is not None - or info.get("duration") - or info.get("comment") - ) - ): - version = b"89a" - - background = _get_background(im, info.get("background")) - - palette_bytes = _get_palette_bytes(im) - color_table_size = _get_color_table_size(palette_bytes) - - header = [ - b"GIF" # signature - + version # version - + o16(im.size[0]) # canvas width - + o16(im.size[1]), # canvas height - # Logical Screen Descriptor - # size of global color table + global color table flag - o8(color_table_size + 128), # packed fields - # background + reserved/aspect - o8(background) + o8(0), - # Global Color Table - _get_header_palette(palette_bytes), - ] - if info.get("loop") is not None: - header.append( - b"!" - + o8(255) # extension intro - + o8(11) - + b"NETSCAPE2.0" - + o8(3) - + o8(1) - + o16(info["loop"]) # number of loops - + o8(0) - ) - if info.get("comment"): - comment_block = b"!" + o8(254) # extension intro - - comment = info["comment"] - if isinstance(comment, str): - comment = comment.encode() - for i in range(0, len(comment), 255): - subblock = comment[i : i + 255] - comment_block += o8(len(subblock)) + subblock - - comment_block += o8(0) - header.append(comment_block) - return header - - -def _write_frame_data(fp, im_frame, offset, params): - try: - im_frame.encoderinfo = params - - # local image header - _write_local_header(fp, im_frame, offset, 0) - - ImageFile._save( - im_frame, fp, [("gif", (0, 0) + im_frame.size, 0, RAWMODE[im_frame.mode])] - ) - - fp.write(b"\0") # end of image data - finally: - del im_frame.encoderinfo - - -# -------------------------------------------------------------------- -# Legacy GIF utilities - - -def getheader(im, palette=None, info=None): - """ - Legacy Method to get Gif data from image. - - Warning:: May modify image data. - - :param im: Image object - :param palette: bytes object containing the source palette, or .... - :param info: encoderinfo - :returns: tuple of(list of header items, optimized palette) - - """ - used_palette_colors = _get_optimize(im, info) - - if info is None: - info = {} - - if "background" not in info and "background" in im.info: - info["background"] = im.info["background"] - - im_mod = _normalize_palette(im, palette, info) - im.palette = im_mod.palette - im.im = im_mod.im - header = _get_global_header(im, info) - - return header, used_palette_colors - - -def getdata(im, offset=(0, 0), **params): - """ - Legacy Method - - Return a list of strings representing this image. - The first string is a local image header, the rest contains - encoded image data. - - To specify duration, add the time in milliseconds, - e.g. ``getdata(im_frame, duration=1000)`` - - :param im: Image object - :param offset: Tuple of (x, y) pixels. Defaults to (0, 0) - :param \\**params: e.g. duration or other encoder info parameters - :returns: List of bytes containing GIF encoded frame data - - """ - - class Collector: - data = [] - - def write(self, data): - self.data.append(data) - - im.load() # make sure raster data is available - - fp = Collector() - - _write_frame_data(fp, im, offset, params) - - return fp.data - - -# -------------------------------------------------------------------- -# Registry - -Image.register_open(GifImageFile.format, GifImageFile, _accept) -Image.register_save(GifImageFile.format, _save) -Image.register_save_all(GifImageFile.format, _save_all) -Image.register_extension(GifImageFile.format, ".gif") -Image.register_mime(GifImageFile.format, "image/gif") - -# -# Uncomment the following line if you wish to use NETPBM/PBMPLUS -# instead of the built-in "uncompressed" GIF encoder - -# Image.register_save(GifImageFile.format, _save_netpbm) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GimpGradientFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GimpGradientFile.py deleted file mode 100644 index 2d8c78e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GimpGradientFile.py +++ /dev/null @@ -1,137 +0,0 @@ -# -# Python Imaging Library -# $Id$ -# -# stuff to read (and render) GIMP gradient files -# -# History: -# 97-08-23 fl Created -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1997. -# -# See the README file for information on usage and redistribution. -# - -""" -Stuff to translate curve segments to palette values (derived from -the corresponding code in GIMP, written by Federico Mena Quintero. -See the GIMP distribution for more information.) -""" -from __future__ import annotations - -from math import log, pi, sin, sqrt - -from ._binary import o8 - -EPSILON = 1e-10 -"""""" # Enable auto-doc for data member - - -def linear(middle, pos): - if pos <= middle: - if middle < EPSILON: - return 0.0 - else: - return 0.5 * pos / middle - else: - pos = pos - middle - middle = 1.0 - middle - if middle < EPSILON: - return 1.0 - else: - return 0.5 + 0.5 * pos / middle - - -def curved(middle, pos): - return pos ** (log(0.5) / log(max(middle, EPSILON))) - - -def sine(middle, pos): - return (sin((-pi / 2.0) + pi * linear(middle, pos)) + 1.0) / 2.0 - - -def sphere_increasing(middle, pos): - return sqrt(1.0 - (linear(middle, pos) - 1.0) ** 2) - - -def sphere_decreasing(middle, pos): - return 1.0 - sqrt(1.0 - linear(middle, pos) ** 2) - - -SEGMENTS = [linear, curved, sine, sphere_increasing, sphere_decreasing] -"""""" # Enable auto-doc for data member - - -class GradientFile: - gradient = None - - def getpalette(self, entries=256): - palette = [] - - ix = 0 - x0, x1, xm, rgb0, rgb1, segment = self.gradient[ix] - - for i in range(entries): - x = i / (entries - 1) - - while x1 < x: - ix += 1 - x0, x1, xm, rgb0, rgb1, segment = self.gradient[ix] - - w = x1 - x0 - - if w < EPSILON: - scale = segment(0.5, 0.5) - else: - scale = segment((xm - x0) / w, (x - x0) / w) - - # expand to RGBA - r = o8(int(255 * ((rgb1[0] - rgb0[0]) * scale + rgb0[0]) + 0.5)) - g = o8(int(255 * ((rgb1[1] - rgb0[1]) * scale + rgb0[1]) + 0.5)) - b = o8(int(255 * ((rgb1[2] - rgb0[2]) * scale + rgb0[2]) + 0.5)) - a = o8(int(255 * ((rgb1[3] - rgb0[3]) * scale + rgb0[3]) + 0.5)) - - # add to palette - palette.append(r + g + b + a) - - return b"".join(palette), "RGBA" - - -class GimpGradientFile(GradientFile): - """File handler for GIMP's gradient format.""" - - def __init__(self, fp): - if fp.readline()[:13] != b"GIMP Gradient": - msg = "not a GIMP gradient file" - raise SyntaxError(msg) - - line = fp.readline() - - # GIMP 1.2 gradient files don't contain a name, but GIMP 1.3 files do - if line.startswith(b"Name: "): - line = fp.readline().strip() - - count = int(line) - - gradient = [] - - for i in range(count): - s = fp.readline().split() - w = [float(x) for x in s[:11]] - - x0, x1 = w[0], w[2] - xm = w[1] - rgb0 = w[3:7] - rgb1 = w[7:11] - - segment = SEGMENTS[int(s[11])] - cspace = int(s[12]) - - if cspace != 0: - msg = "cannot handle HSV colour space" - raise OSError(msg) - - gradient.append((x0, x1, xm, rgb0, rgb1, segment)) - - self.gradient = gradient diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GimpPaletteFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GimpPaletteFile.py deleted file mode 100644 index a3109eb..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GimpPaletteFile.py +++ /dev/null @@ -1,57 +0,0 @@ -# -# Python Imaging Library -# $Id$ -# -# stuff to read GIMP palette files -# -# History: -# 1997-08-23 fl Created -# 2004-09-07 fl Support GIMP 2.0 palette files. -# -# Copyright (c) Secret Labs AB 1997-2004. All rights reserved. -# Copyright (c) Fredrik Lundh 1997-2004. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import re - -from ._binary import o8 - - -class GimpPaletteFile: - """File handler for GIMP's palette format.""" - - rawmode = "RGB" - - def __init__(self, fp): - self.palette = [o8(i) * 3 for i in range(256)] - - if fp.readline()[:12] != b"GIMP Palette": - msg = "not a GIMP palette file" - raise SyntaxError(msg) - - for i in range(256): - s = fp.readline() - if not s: - break - - # skip fields and comment lines - if re.match(rb"\w+:|#", s): - continue - if len(s) > 100: - msg = "bad palette file" - raise SyntaxError(msg) - - v = tuple(map(int, s.split()[:3])) - if len(v) != 3: - msg = "bad palette entry" - raise ValueError(msg) - - self.palette[i] = o8(v[0]) + o8(v[1]) + o8(v[2]) - - self.palette = b"".join(self.palette) - - def getpalette(self): - return self.palette, self.rawmode diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GribStubImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GribStubImagePlugin.py deleted file mode 100644 index f810680..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/GribStubImagePlugin.py +++ /dev/null @@ -1,74 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# GRIB stub adapter -# -# Copyright (c) 1996-2003 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFile - -_handler = None - - -def register_handler(handler): - """ - Install application-specific GRIB image handler. - - :param handler: Handler object. - """ - global _handler - _handler = handler - - -# -------------------------------------------------------------------- -# Image adapter - - -def _accept(prefix): - return prefix[:4] == b"GRIB" and prefix[7] == 1 - - -class GribStubImageFile(ImageFile.StubImageFile): - format = "GRIB" - format_description = "GRIB" - - def _open(self): - offset = self.fp.tell() - - if not _accept(self.fp.read(8)): - msg = "Not a GRIB file" - raise SyntaxError(msg) - - self.fp.seek(offset) - - # make something up - self._mode = "F" - self._size = 1, 1 - - loader = self._load() - if loader: - loader.open(self) - - def _load(self): - return _handler - - -def _save(im, fp, filename): - if _handler is None or not hasattr(_handler, "save"): - msg = "GRIB save handler not installed" - raise OSError(msg) - _handler.save(im, fp, filename) - - -# -------------------------------------------------------------------- -# Registry - -Image.register_open(GribStubImageFile.format, GribStubImageFile, _accept) -Image.register_save(GribStubImageFile.format, _save) - -Image.register_extension(GribStubImageFile.format, ".grib") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Hdf5StubImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Hdf5StubImagePlugin.py deleted file mode 100644 index 65409e2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Hdf5StubImagePlugin.py +++ /dev/null @@ -1,74 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# HDF5 stub adapter -# -# Copyright (c) 2000-2003 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFile - -_handler = None - - -def register_handler(handler): - """ - Install application-specific HDF5 image handler. - - :param handler: Handler object. - """ - global _handler - _handler = handler - - -# -------------------------------------------------------------------- -# Image adapter - - -def _accept(prefix): - return prefix[:8] == b"\x89HDF\r\n\x1a\n" - - -class HDF5StubImageFile(ImageFile.StubImageFile): - format = "HDF5" - format_description = "HDF5" - - def _open(self): - offset = self.fp.tell() - - if not _accept(self.fp.read(8)): - msg = "Not an HDF file" - raise SyntaxError(msg) - - self.fp.seek(offset) - - # make something up - self._mode = "F" - self._size = 1, 1 - - loader = self._load() - if loader: - loader.open(self) - - def _load(self): - return _handler - - -def _save(im, fp, filename): - if _handler is None or not hasattr(_handler, "save"): - msg = "HDF5 save handler not installed" - raise OSError(msg) - _handler.save(im, fp, filename) - - -# -------------------------------------------------------------------- -# Registry - -Image.register_open(HDF5StubImageFile.format, HDF5StubImageFile, _accept) -Image.register_save(HDF5StubImageFile.format, _save) - -Image.register_extensions(HDF5StubImageFile.format, [".h5", ".hdf"]) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IcnsImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IcnsImagePlugin.py deleted file mode 100644 index d877b4e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IcnsImagePlugin.py +++ /dev/null @@ -1,400 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# macOS icns file decoder, based on icns.py by Bob Ippolito. -# -# history: -# 2004-10-09 fl Turned into a PIL plugin; removed 2.3 dependencies. -# 2020-04-04 Allow saving on all operating systems. -# -# Copyright (c) 2004 by Bob Ippolito. -# Copyright (c) 2004 by Secret Labs. -# Copyright (c) 2004 by Fredrik Lundh. -# Copyright (c) 2014 by Alastair Houghton. -# Copyright (c) 2020 by Pan Jing. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -import os -import struct -import sys - -from . import Image, ImageFile, PngImagePlugin, features - -enable_jpeg2k = features.check_codec("jpg_2000") -if enable_jpeg2k: - from . import Jpeg2KImagePlugin - -MAGIC = b"icns" -HEADERSIZE = 8 - - -def nextheader(fobj): - return struct.unpack(">4sI", fobj.read(HEADERSIZE)) - - -def read_32t(fobj, start_length, size): - # The 128x128 icon seems to have an extra header for some reason. - (start, length) = start_length - fobj.seek(start) - sig = fobj.read(4) - if sig != b"\x00\x00\x00\x00": - msg = "Unknown signature, expecting 0x00000000" - raise SyntaxError(msg) - return read_32(fobj, (start + 4, length - 4), size) - - -def read_32(fobj, start_length, size): - """ - Read a 32bit RGB icon resource. Seems to be either uncompressed or - an RLE packbits-like scheme. - """ - (start, length) = start_length - fobj.seek(start) - pixel_size = (size[0] * size[2], size[1] * size[2]) - sizesq = pixel_size[0] * pixel_size[1] - if length == sizesq * 3: - # uncompressed ("RGBRGBGB") - indata = fobj.read(length) - im = Image.frombuffer("RGB", pixel_size, indata, "raw", "RGB", 0, 1) - else: - # decode image - im = Image.new("RGB", pixel_size, None) - for band_ix in range(3): - data = [] - bytesleft = sizesq - while bytesleft > 0: - byte = fobj.read(1) - if not byte: - break - byte = byte[0] - if byte & 0x80: - blocksize = byte - 125 - byte = fobj.read(1) - for i in range(blocksize): - data.append(byte) - else: - blocksize = byte + 1 - data.append(fobj.read(blocksize)) - bytesleft -= blocksize - if bytesleft <= 0: - break - if bytesleft != 0: - msg = f"Error reading channel [{repr(bytesleft)} left]" - raise SyntaxError(msg) - band = Image.frombuffer("L", pixel_size, b"".join(data), "raw", "L", 0, 1) - im.im.putband(band.im, band_ix) - return {"RGB": im} - - -def read_mk(fobj, start_length, size): - # Alpha masks seem to be uncompressed - start = start_length[0] - fobj.seek(start) - pixel_size = (size[0] * size[2], size[1] * size[2]) - sizesq = pixel_size[0] * pixel_size[1] - band = Image.frombuffer("L", pixel_size, fobj.read(sizesq), "raw", "L", 0, 1) - return {"A": band} - - -def read_png_or_jpeg2000(fobj, start_length, size): - (start, length) = start_length - fobj.seek(start) - sig = fobj.read(12) - if sig[:8] == b"\x89PNG\x0d\x0a\x1a\x0a": - fobj.seek(start) - im = PngImagePlugin.PngImageFile(fobj) - Image._decompression_bomb_check(im.size) - return {"RGBA": im} - elif ( - sig[:4] == b"\xff\x4f\xff\x51" - or sig[:4] == b"\x0d\x0a\x87\x0a" - or sig == b"\x00\x00\x00\x0cjP \x0d\x0a\x87\x0a" - ): - if not enable_jpeg2k: - msg = ( - "Unsupported icon subimage format (rebuild PIL " - "with JPEG 2000 support to fix this)" - ) - raise ValueError(msg) - # j2k, jpc or j2c - fobj.seek(start) - jp2kstream = fobj.read(length) - f = io.BytesIO(jp2kstream) - im = Jpeg2KImagePlugin.Jpeg2KImageFile(f) - Image._decompression_bomb_check(im.size) - if im.mode != "RGBA": - im = im.convert("RGBA") - return {"RGBA": im} - else: - msg = "Unsupported icon subimage format" - raise ValueError(msg) - - -class IcnsFile: - SIZES = { - (512, 512, 2): [(b"ic10", read_png_or_jpeg2000)], - (512, 512, 1): [(b"ic09", read_png_or_jpeg2000)], - (256, 256, 2): [(b"ic14", read_png_or_jpeg2000)], - (256, 256, 1): [(b"ic08", read_png_or_jpeg2000)], - (128, 128, 2): [(b"ic13", read_png_or_jpeg2000)], - (128, 128, 1): [ - (b"ic07", read_png_or_jpeg2000), - (b"it32", read_32t), - (b"t8mk", read_mk), - ], - (64, 64, 1): [(b"icp6", read_png_or_jpeg2000)], - (32, 32, 2): [(b"ic12", read_png_or_jpeg2000)], - (48, 48, 1): [(b"ih32", read_32), (b"h8mk", read_mk)], - (32, 32, 1): [ - (b"icp5", read_png_or_jpeg2000), - (b"il32", read_32), - (b"l8mk", read_mk), - ], - (16, 16, 2): [(b"ic11", read_png_or_jpeg2000)], - (16, 16, 1): [ - (b"icp4", read_png_or_jpeg2000), - (b"is32", read_32), - (b"s8mk", read_mk), - ], - } - - def __init__(self, fobj): - """ - fobj is a file-like object as an icns resource - """ - # signature : (start, length) - self.dct = dct = {} - self.fobj = fobj - sig, filesize = nextheader(fobj) - if not _accept(sig): - msg = "not an icns file" - raise SyntaxError(msg) - i = HEADERSIZE - while i < filesize: - sig, blocksize = nextheader(fobj) - if blocksize <= 0: - msg = "invalid block header" - raise SyntaxError(msg) - i += HEADERSIZE - blocksize -= HEADERSIZE - dct[sig] = (i, blocksize) - fobj.seek(blocksize, io.SEEK_CUR) - i += blocksize - - def itersizes(self): - sizes = [] - for size, fmts in self.SIZES.items(): - for fmt, reader in fmts: - if fmt in self.dct: - sizes.append(size) - break - return sizes - - def bestsize(self): - sizes = self.itersizes() - if not sizes: - msg = "No 32bit icon resources found" - raise SyntaxError(msg) - return max(sizes) - - def dataforsize(self, size): - """ - Get an icon resource as {channel: array}. Note that - the arrays are bottom-up like windows bitmaps and will likely - need to be flipped or transposed in some way. - """ - dct = {} - for code, reader in self.SIZES[size]: - desc = self.dct.get(code) - if desc is not None: - dct.update(reader(self.fobj, desc, size)) - return dct - - def getimage(self, size=None): - if size is None: - size = self.bestsize() - if len(size) == 2: - size = (size[0], size[1], 1) - channels = self.dataforsize(size) - - im = channels.get("RGBA", None) - if im: - return im - - im = channels.get("RGB").copy() - try: - im.putalpha(channels["A"]) - except KeyError: - pass - return im - - -## -# Image plugin for Mac OS icons. - - -class IcnsImageFile(ImageFile.ImageFile): - """ - PIL image support for Mac OS .icns files. - Chooses the best resolution, but will possibly load - a different size image if you mutate the size attribute - before calling 'load'. - - The info dictionary has a key 'sizes' that is a list - of sizes that the icns file has. - """ - - format = "ICNS" - format_description = "Mac OS icns resource" - - def _open(self): - self.icns = IcnsFile(self.fp) - self._mode = "RGBA" - self.info["sizes"] = self.icns.itersizes() - self.best_size = self.icns.bestsize() - self.size = ( - self.best_size[0] * self.best_size[2], - self.best_size[1] * self.best_size[2], - ) - - @property - def size(self): - return self._size - - @size.setter - def size(self, value): - info_size = value - if info_size not in self.info["sizes"] and len(info_size) == 2: - info_size = (info_size[0], info_size[1], 1) - if ( - info_size not in self.info["sizes"] - and len(info_size) == 3 - and info_size[2] == 1 - ): - simple_sizes = [ - (size[0] * size[2], size[1] * size[2]) for size in self.info["sizes"] - ] - if value in simple_sizes: - info_size = self.info["sizes"][simple_sizes.index(value)] - if info_size not in self.info["sizes"]: - msg = "This is not one of the allowed sizes of this image" - raise ValueError(msg) - self._size = value - - def load(self): - if len(self.size) == 3: - self.best_size = self.size - self.size = ( - self.best_size[0] * self.best_size[2], - self.best_size[1] * self.best_size[2], - ) - - px = Image.Image.load(self) - if self.im is not None and self.im.size == self.size: - # Already loaded - return px - self.load_prepare() - # This is likely NOT the best way to do it, but whatever. - im = self.icns.getimage(self.best_size) - - # If this is a PNG or JPEG 2000, it won't be loaded yet - px = im.load() - - self.im = im.im - self._mode = im.mode - self.size = im.size - - return px - - -def _save(im, fp, filename): - """ - Saves the image as a series of PNG files, - that are then combined into a .icns file. - """ - if hasattr(fp, "flush"): - fp.flush() - - sizes = { - b"ic07": 128, - b"ic08": 256, - b"ic09": 512, - b"ic10": 1024, - b"ic11": 32, - b"ic12": 64, - b"ic13": 256, - b"ic14": 512, - } - provided_images = {im.width: im for im in im.encoderinfo.get("append_images", [])} - size_streams = {} - for size in set(sizes.values()): - image = ( - provided_images[size] - if size in provided_images - else im.resize((size, size)) - ) - - temp = io.BytesIO() - image.save(temp, "png") - size_streams[size] = temp.getvalue() - - entries = [] - for type, size in sizes.items(): - stream = size_streams[size] - entries.append( - {"type": type, "size": HEADERSIZE + len(stream), "stream": stream} - ) - - # Header - fp.write(MAGIC) - file_length = HEADERSIZE # Header - file_length += HEADERSIZE + 8 * len(entries) # TOC - file_length += sum(entry["size"] for entry in entries) - fp.write(struct.pack(">i", file_length)) - - # TOC - fp.write(b"TOC ") - fp.write(struct.pack(">i", HEADERSIZE + len(entries) * HEADERSIZE)) - for entry in entries: - fp.write(entry["type"]) - fp.write(struct.pack(">i", entry["size"])) - - # Data - for entry in entries: - fp.write(entry["type"]) - fp.write(struct.pack(">i", entry["size"])) - fp.write(entry["stream"]) - - if hasattr(fp, "flush"): - fp.flush() - - -def _accept(prefix): - return prefix[:4] == MAGIC - - -Image.register_open(IcnsImageFile.format, IcnsImageFile, _accept) -Image.register_extension(IcnsImageFile.format, ".icns") - -Image.register_save(IcnsImageFile.format, _save) -Image.register_mime(IcnsImageFile.format, "image/icns") - -if __name__ == "__main__": - if len(sys.argv) < 2: - print("Syntax: python3 IcnsImagePlugin.py [file]") - sys.exit() - - with open(sys.argv[1], "rb") as fp: - imf = IcnsImageFile(fp) - for size in imf.info["sizes"]: - width, height, scale = imf.size = size - imf.save(f"out-{width}-{height}-{scale}.png") - with Image.open(sys.argv[1]) as im: - im.save("out.png") - if sys.platform == "windows": - os.startfile("out.png") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IcoImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IcoImagePlugin.py deleted file mode 100644 index 1b22f86..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IcoImagePlugin.py +++ /dev/null @@ -1,356 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# Windows Icon support for PIL -# -# History: -# 96-05-27 fl Created -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1996. -# -# See the README file for information on usage and redistribution. -# - -# This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis -# . -# https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki -# -# Icon format references: -# * https://en.wikipedia.org/wiki/ICO_(file_format) -# * https://msdn.microsoft.com/en-us/library/ms997538.aspx -from __future__ import annotations - -import warnings -from io import BytesIO -from math import ceil, log - -from . import BmpImagePlugin, Image, ImageFile, PngImagePlugin -from ._binary import i16le as i16 -from ._binary import i32le as i32 -from ._binary import o8 -from ._binary import o16le as o16 -from ._binary import o32le as o32 - -# -# -------------------------------------------------------------------- - -_MAGIC = b"\0\0\1\0" - - -def _save(im, fp, filename): - fp.write(_MAGIC) # (2+2) - bmp = im.encoderinfo.get("bitmap_format") == "bmp" - sizes = im.encoderinfo.get( - "sizes", - [(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)], - ) - frames = [] - provided_ims = [im] + im.encoderinfo.get("append_images", []) - width, height = im.size - for size in sorted(set(sizes)): - if size[0] > width or size[1] > height or size[0] > 256 or size[1] > 256: - continue - - for provided_im in provided_ims: - if provided_im.size != size: - continue - frames.append(provided_im) - if bmp: - bits = BmpImagePlugin.SAVE[provided_im.mode][1] - bits_used = [bits] - for other_im in provided_ims: - if other_im.size != size: - continue - bits = BmpImagePlugin.SAVE[other_im.mode][1] - if bits not in bits_used: - # Another image has been supplied for this size - # with a different bit depth - frames.append(other_im) - bits_used.append(bits) - break - else: - # TODO: invent a more convenient method for proportional scalings - frame = provided_im.copy() - frame.thumbnail(size, Image.Resampling.LANCZOS, reducing_gap=None) - frames.append(frame) - fp.write(o16(len(frames))) # idCount(2) - offset = fp.tell() + len(frames) * 16 - for frame in frames: - width, height = frame.size - # 0 means 256 - fp.write(o8(width if width < 256 else 0)) # bWidth(1) - fp.write(o8(height if height < 256 else 0)) # bHeight(1) - - bits, colors = BmpImagePlugin.SAVE[frame.mode][1:] if bmp else (32, 0) - fp.write(o8(colors)) # bColorCount(1) - fp.write(b"\0") # bReserved(1) - fp.write(b"\0\0") # wPlanes(2) - fp.write(o16(bits)) # wBitCount(2) - - image_io = BytesIO() - if bmp: - frame.save(image_io, "dib") - - if bits != 32: - and_mask = Image.new("1", size) - ImageFile._save( - and_mask, image_io, [("raw", (0, 0) + size, 0, ("1", 0, -1))] - ) - else: - frame.save(image_io, "png") - image_io.seek(0) - image_bytes = image_io.read() - if bmp: - image_bytes = image_bytes[:8] + o32(height * 2) + image_bytes[12:] - bytes_len = len(image_bytes) - fp.write(o32(bytes_len)) # dwBytesInRes(4) - fp.write(o32(offset)) # dwImageOffset(4) - current = fp.tell() - fp.seek(offset) - fp.write(image_bytes) - offset = offset + bytes_len - fp.seek(current) - - -def _accept(prefix): - return prefix[:4] == _MAGIC - - -class IcoFile: - def __init__(self, buf): - """ - Parse image from file-like object containing ico file data - """ - - # check magic - s = buf.read(6) - if not _accept(s): - msg = "not an ICO file" - raise SyntaxError(msg) - - self.buf = buf - self.entry = [] - - # Number of items in file - self.nb_items = i16(s, 4) - - # Get headers for each item - for i in range(self.nb_items): - s = buf.read(16) - - icon_header = { - "width": s[0], - "height": s[1], - "nb_color": s[2], # No. of colors in image (0 if >=8bpp) - "reserved": s[3], - "planes": i16(s, 4), - "bpp": i16(s, 6), - "size": i32(s, 8), - "offset": i32(s, 12), - } - - # See Wikipedia - for j in ("width", "height"): - if not icon_header[j]: - icon_header[j] = 256 - - # See Wikipedia notes about color depth. - # We need this just to differ images with equal sizes - icon_header["color_depth"] = ( - icon_header["bpp"] - or ( - icon_header["nb_color"] != 0 - and ceil(log(icon_header["nb_color"], 2)) - ) - or 256 - ) - - icon_header["dim"] = (icon_header["width"], icon_header["height"]) - icon_header["square"] = icon_header["width"] * icon_header["height"] - - self.entry.append(icon_header) - - self.entry = sorted(self.entry, key=lambda x: x["color_depth"]) - # ICO images are usually squares - self.entry = sorted(self.entry, key=lambda x: x["square"], reverse=True) - - def sizes(self): - """ - Get a list of all available icon sizes and color depths. - """ - return {(h["width"], h["height"]) for h in self.entry} - - def getentryindex(self, size, bpp=False): - for i, h in enumerate(self.entry): - if size == h["dim"] and (bpp is False or bpp == h["color_depth"]): - return i - return 0 - - def getimage(self, size, bpp=False): - """ - Get an image from the icon - """ - return self.frame(self.getentryindex(size, bpp)) - - def frame(self, idx): - """ - Get an image from frame idx - """ - - header = self.entry[idx] - - self.buf.seek(header["offset"]) - data = self.buf.read(8) - self.buf.seek(header["offset"]) - - if data[:8] == PngImagePlugin._MAGIC: - # png frame - im = PngImagePlugin.PngImageFile(self.buf) - Image._decompression_bomb_check(im.size) - else: - # XOR + AND mask bmp frame - im = BmpImagePlugin.DibImageFile(self.buf) - Image._decompression_bomb_check(im.size) - - # change tile dimension to only encompass XOR image - im._size = (im.size[0], int(im.size[1] / 2)) - d, e, o, a = im.tile[0] - im.tile[0] = d, (0, 0) + im.size, o, a - - # figure out where AND mask image starts - bpp = header["bpp"] - if 32 == bpp: - # 32-bit color depth icon image allows semitransparent areas - # PIL's DIB format ignores transparency bits, recover them. - # The DIB is packed in BGRX byte order where X is the alpha - # channel. - - # Back up to start of bmp data - self.buf.seek(o) - # extract every 4th byte (eg. 3,7,11,15,...) - alpha_bytes = self.buf.read(im.size[0] * im.size[1] * 4)[3::4] - - # convert to an 8bpp grayscale image - mask = Image.frombuffer( - "L", # 8bpp - im.size, # (w, h) - alpha_bytes, # source chars - "raw", # raw decoder - ("L", 0, -1), # 8bpp inverted, unpadded, reversed - ) - else: - # get AND image from end of bitmap - w = im.size[0] - if (w % 32) > 0: - # bitmap row data is aligned to word boundaries - w += 32 - (im.size[0] % 32) - - # the total mask data is - # padded row size * height / bits per char - - total_bytes = int((w * im.size[1]) / 8) - and_mask_offset = header["offset"] + header["size"] - total_bytes - - self.buf.seek(and_mask_offset) - mask_data = self.buf.read(total_bytes) - - # convert raw data to image - mask = Image.frombuffer( - "1", # 1 bpp - im.size, # (w, h) - mask_data, # source chars - "raw", # raw decoder - ("1;I", int(w / 8), -1), # 1bpp inverted, padded, reversed - ) - - # now we have two images, im is XOR image and mask is AND image - - # apply mask image as alpha channel - im = im.convert("RGBA") - im.putalpha(mask) - - return im - - -## -# Image plugin for Windows Icon files. - - -class IcoImageFile(ImageFile.ImageFile): - """ - PIL read-only image support for Microsoft Windows .ico files. - - By default the largest resolution image in the file will be loaded. This - can be changed by altering the 'size' attribute before calling 'load'. - - The info dictionary has a key 'sizes' that is a list of the sizes available - in the icon file. - - Handles classic, XP and Vista icon formats. - - When saving, PNG compression is used. Support for this was only added in - Windows Vista. If you are unable to view the icon in Windows, convert the - image to "RGBA" mode before saving. - - This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis - . - https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki - """ - - format = "ICO" - format_description = "Windows Icon" - - def _open(self): - self.ico = IcoFile(self.fp) - self.info["sizes"] = self.ico.sizes() - self.size = self.ico.entry[0]["dim"] - self.load() - - @property - def size(self): - return self._size - - @size.setter - def size(self, value): - if value not in self.info["sizes"]: - msg = "This is not one of the allowed sizes of this image" - raise ValueError(msg) - self._size = value - - def load(self): - if self.im is not None and self.im.size == self.size: - # Already loaded - return Image.Image.load(self) - im = self.ico.getimage(self.size) - # if tile is PNG, it won't really be loaded yet - im.load() - self.im = im.im - self.pyaccess = None - self._mode = im.mode - if im.size != self.size: - warnings.warn("Image was not the expected size") - - index = self.ico.getentryindex(self.size) - sizes = list(self.info["sizes"]) - sizes[index] = im.size - self.info["sizes"] = set(sizes) - - self.size = im.size - - def load_seek(self): - # Flag the ImageFile.Parser so that it - # just does all the decode at the end. - pass - - -# -# -------------------------------------------------------------------- - - -Image.register_open(IcoImageFile.format, IcoImageFile, _accept) -Image.register_save(IcoImageFile.format, _save) -Image.register_extension(IcoImageFile.format, ".ico") - -Image.register_mime(IcoImageFile.format, "image/x-icon") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImImagePlugin.py deleted file mode 100644 index 97d726a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImImagePlugin.py +++ /dev/null @@ -1,371 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# IFUNC IM file handling for PIL -# -# history: -# 1995-09-01 fl Created. -# 1997-01-03 fl Save palette images -# 1997-01-08 fl Added sequence support -# 1997-01-23 fl Added P and RGB save support -# 1997-05-31 fl Read floating point images -# 1997-06-22 fl Save floating point images -# 1997-08-27 fl Read and save 1-bit images -# 1998-06-25 fl Added support for RGB+LUT images -# 1998-07-02 fl Added support for YCC images -# 1998-07-15 fl Renamed offset attribute to avoid name clash -# 1998-12-29 fl Added I;16 support -# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.7) -# 2003-09-26 fl Added LA/PA support -# -# Copyright (c) 1997-2003 by Secret Labs AB. -# Copyright (c) 1995-2001 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import os -import re - -from . import Image, ImageFile, ImagePalette - -# -------------------------------------------------------------------- -# Standard tags - -COMMENT = "Comment" -DATE = "Date" -EQUIPMENT = "Digitalization equipment" -FRAMES = "File size (no of images)" -LUT = "Lut" -NAME = "Name" -SCALE = "Scale (x,y)" -SIZE = "Image size (x*y)" -MODE = "Image type" - -TAGS = { - COMMENT: 0, - DATE: 0, - EQUIPMENT: 0, - FRAMES: 0, - LUT: 0, - NAME: 0, - SCALE: 0, - SIZE: 0, - MODE: 0, -} - -OPEN = { - # ifunc93/p3cfunc formats - "0 1 image": ("1", "1"), - "L 1 image": ("1", "1"), - "Greyscale image": ("L", "L"), - "Grayscale image": ("L", "L"), - "RGB image": ("RGB", "RGB;L"), - "RLB image": ("RGB", "RLB"), - "RYB image": ("RGB", "RLB"), - "B1 image": ("1", "1"), - "B2 image": ("P", "P;2"), - "B4 image": ("P", "P;4"), - "X 24 image": ("RGB", "RGB"), - "L 32 S image": ("I", "I;32"), - "L 32 F image": ("F", "F;32"), - # old p3cfunc formats - "RGB3 image": ("RGB", "RGB;T"), - "RYB3 image": ("RGB", "RYB;T"), - # extensions - "LA image": ("LA", "LA;L"), - "PA image": ("LA", "PA;L"), - "RGBA image": ("RGBA", "RGBA;L"), - "RGBX image": ("RGBX", "RGBX;L"), - "CMYK image": ("CMYK", "CMYK;L"), - "YCC image": ("YCbCr", "YCbCr;L"), -} - -# ifunc95 extensions -for i in ["8", "8S", "16", "16S", "32", "32F"]: - OPEN[f"L {i} image"] = ("F", f"F;{i}") - OPEN[f"L*{i} image"] = ("F", f"F;{i}") -for i in ["16", "16L", "16B"]: - OPEN[f"L {i} image"] = (f"I;{i}", f"I;{i}") - OPEN[f"L*{i} image"] = (f"I;{i}", f"I;{i}") -for i in ["32S"]: - OPEN[f"L {i} image"] = ("I", f"I;{i}") - OPEN[f"L*{i} image"] = ("I", f"I;{i}") -for i in range(2, 33): - OPEN[f"L*{i} image"] = ("F", f"F;{i}") - - -# -------------------------------------------------------------------- -# Read IM directory - -split = re.compile(rb"^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$") - - -def number(s): - try: - return int(s) - except ValueError: - return float(s) - - -## -# Image plugin for the IFUNC IM file format. - - -class ImImageFile(ImageFile.ImageFile): - format = "IM" - format_description = "IFUNC Image Memory" - _close_exclusive_fp_after_loading = False - - def _open(self): - # Quick rejection: if there's not an LF among the first - # 100 bytes, this is (probably) not a text header. - - if b"\n" not in self.fp.read(100): - msg = "not an IM file" - raise SyntaxError(msg) - self.fp.seek(0) - - n = 0 - - # Default values - self.info[MODE] = "L" - self.info[SIZE] = (512, 512) - self.info[FRAMES] = 1 - - self.rawmode = "L" - - while True: - s = self.fp.read(1) - - # Some versions of IFUNC uses \n\r instead of \r\n... - if s == b"\r": - continue - - if not s or s == b"\0" or s == b"\x1A": - break - - # FIXME: this may read whole file if not a text file - s = s + self.fp.readline() - - if len(s) > 100: - msg = "not an IM file" - raise SyntaxError(msg) - - if s[-2:] == b"\r\n": - s = s[:-2] - elif s[-1:] == b"\n": - s = s[:-1] - - try: - m = split.match(s) - except re.error as e: - msg = "not an IM file" - raise SyntaxError(msg) from e - - if m: - k, v = m.group(1, 2) - - # Don't know if this is the correct encoding, - # but a decent guess (I guess) - k = k.decode("latin-1", "replace") - v = v.decode("latin-1", "replace") - - # Convert value as appropriate - if k in [FRAMES, SCALE, SIZE]: - v = v.replace("*", ",") - v = tuple(map(number, v.split(","))) - if len(v) == 1: - v = v[0] - elif k == MODE and v in OPEN: - v, self.rawmode = OPEN[v] - - # Add to dictionary. Note that COMMENT tags are - # combined into a list of strings. - if k == COMMENT: - if k in self.info: - self.info[k].append(v) - else: - self.info[k] = [v] - else: - self.info[k] = v - - if k in TAGS: - n += 1 - - else: - msg = "Syntax error in IM header: " + s.decode("ascii", "replace") - raise SyntaxError(msg) - - if not n: - msg = "Not an IM file" - raise SyntaxError(msg) - - # Basic attributes - self._size = self.info[SIZE] - self._mode = self.info[MODE] - - # Skip forward to start of image data - while s and s[:1] != b"\x1A": - s = self.fp.read(1) - if not s: - msg = "File truncated" - raise SyntaxError(msg) - - if LUT in self.info: - # convert lookup table to palette or lut attribute - palette = self.fp.read(768) - greyscale = 1 # greyscale palette - linear = 1 # linear greyscale palette - for i in range(256): - if palette[i] == palette[i + 256] == palette[i + 512]: - if palette[i] != i: - linear = 0 - else: - greyscale = 0 - if self.mode in ["L", "LA", "P", "PA"]: - if greyscale: - if not linear: - self.lut = list(palette[:256]) - else: - if self.mode in ["L", "P"]: - self._mode = self.rawmode = "P" - elif self.mode in ["LA", "PA"]: - self._mode = "PA" - self.rawmode = "PA;L" - self.palette = ImagePalette.raw("RGB;L", palette) - elif self.mode == "RGB": - if not greyscale or not linear: - self.lut = list(palette) - - self.frame = 0 - - self.__offset = offs = self.fp.tell() - - self._fp = self.fp # FIXME: hack - - if self.rawmode[:2] == "F;": - # ifunc95 formats - try: - # use bit decoder (if necessary) - bits = int(self.rawmode[2:]) - if bits not in [8, 16, 32]: - self.tile = [("bit", (0, 0) + self.size, offs, (bits, 8, 3, 0, -1))] - return - except ValueError: - pass - - if self.rawmode in ["RGB;T", "RYB;T"]: - # Old LabEye/3PC files. Would be very surprised if anyone - # ever stumbled upon such a file ;-) - size = self.size[0] * self.size[1] - self.tile = [ - ("raw", (0, 0) + self.size, offs, ("G", 0, -1)), - ("raw", (0, 0) + self.size, offs + size, ("R", 0, -1)), - ("raw", (0, 0) + self.size, offs + 2 * size, ("B", 0, -1)), - ] - else: - # LabEye/IFUNC files - self.tile = [("raw", (0, 0) + self.size, offs, (self.rawmode, 0, -1))] - - @property - def n_frames(self): - return self.info[FRAMES] - - @property - def is_animated(self): - return self.info[FRAMES] > 1 - - def seek(self, frame): - if not self._seek_check(frame): - return - - self.frame = frame - - if self.mode == "1": - bits = 1 - else: - bits = 8 * len(self.mode) - - size = ((self.size[0] * bits + 7) // 8) * self.size[1] - offs = self.__offset + frame * size - - self.fp = self._fp - - self.tile = [("raw", (0, 0) + self.size, offs, (self.rawmode, 0, -1))] - - def tell(self): - return self.frame - - -# -# -------------------------------------------------------------------- -# Save IM files - - -SAVE = { - # mode: (im type, raw mode) - "1": ("0 1", "1"), - "L": ("Greyscale", "L"), - "LA": ("LA", "LA;L"), - "P": ("Greyscale", "P"), - "PA": ("LA", "PA;L"), - "I": ("L 32S", "I;32S"), - "I;16": ("L 16", "I;16"), - "I;16L": ("L 16L", "I;16L"), - "I;16B": ("L 16B", "I;16B"), - "F": ("L 32F", "F;32F"), - "RGB": ("RGB", "RGB;L"), - "RGBA": ("RGBA", "RGBA;L"), - "RGBX": ("RGBX", "RGBX;L"), - "CMYK": ("CMYK", "CMYK;L"), - "YCbCr": ("YCC", "YCbCr;L"), -} - - -def _save(im, fp, filename): - try: - image_type, rawmode = SAVE[im.mode] - except KeyError as e: - msg = f"Cannot save {im.mode} images as IM" - raise ValueError(msg) from e - - frames = im.encoderinfo.get("frames", 1) - - fp.write(f"Image type: {image_type} image\r\n".encode("ascii")) - if filename: - # Each line must be 100 characters or less, - # or: SyntaxError("not an IM file") - # 8 characters are used for "Name: " and "\r\n" - # Keep just the filename, ditch the potentially overlong path - name, ext = os.path.splitext(os.path.basename(filename)) - name = "".join([name[: 92 - len(ext)], ext]) - - fp.write(f"Name: {name}\r\n".encode("ascii")) - fp.write(("Image size (x*y): %d*%d\r\n" % im.size).encode("ascii")) - fp.write(f"File size (no of images): {frames}\r\n".encode("ascii")) - if im.mode in ["P", "PA"]: - fp.write(b"Lut: 1\r\n") - fp.write(b"\000" * (511 - fp.tell()) + b"\032") - if im.mode in ["P", "PA"]: - im_palette = im.im.getpalette("RGB", "RGB;L") - colors = len(im_palette) // 3 - palette = b"" - for i in range(3): - palette += im_palette[colors * i : colors * (i + 1)] - palette += b"\x00" * (256 - colors) - fp.write(palette) # 768 bytes - ImageFile._save(im, fp, [("raw", (0, 0) + im.size, 0, (rawmode, 0, -1))]) - - -# -# -------------------------------------------------------------------- -# Registry - - -Image.register_open(ImImageFile.format, ImImageFile) -Image.register_save(ImImageFile.format, _save) - -Image.register_extension(ImImageFile.format, ".im") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Image.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Image.py deleted file mode 100644 index 1bba9aa..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Image.py +++ /dev/null @@ -1,3944 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# the Image class wrapper -# -# partial release history: -# 1995-09-09 fl Created -# 1996-03-11 fl PIL release 0.0 (proof of concept) -# 1996-04-30 fl PIL release 0.1b1 -# 1999-07-28 fl PIL release 1.0 final -# 2000-06-07 fl PIL release 1.1 -# 2000-10-20 fl PIL release 1.1.1 -# 2001-05-07 fl PIL release 1.1.2 -# 2002-03-15 fl PIL release 1.1.3 -# 2003-05-10 fl PIL release 1.1.4 -# 2005-03-28 fl PIL release 1.1.5 -# 2006-12-02 fl PIL release 1.1.6 -# 2009-11-15 fl PIL release 1.1.7 -# -# Copyright (c) 1997-2009 by Secret Labs AB. All rights reserved. -# Copyright (c) 1995-2009 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# - -from __future__ import annotations - -import atexit -import builtins -import io -import logging -import math -import os -import re -import struct -import sys -import tempfile -import warnings -from collections.abc import Callable, MutableMapping -from enum import IntEnum -from pathlib import Path - -try: - from defusedxml import ElementTree -except ImportError: - ElementTree = None - -# VERSION was removed in Pillow 6.0.0. -# PILLOW_VERSION was removed in Pillow 9.0.0. -# Use __version__ instead. -from . import ( - ExifTags, - ImageMode, - TiffTags, - UnidentifiedImageError, - __version__, - _plugins, -) -from ._binary import i32le, o32be, o32le -from ._util import DeferredError, is_path - -logger = logging.getLogger(__name__) - - -class DecompressionBombWarning(RuntimeWarning): - pass - - -class DecompressionBombError(Exception): - pass - - -# Limit to around a quarter gigabyte for a 24-bit (3 bpp) image -MAX_IMAGE_PIXELS = int(1024 * 1024 * 1024 // 4 // 3) - - -try: - # If the _imaging C module is not present, Pillow will not load. - # Note that other modules should not refer to _imaging directly; - # import Image and use the Image.core variable instead. - # Also note that Image.core is not a publicly documented interface, - # and should be considered private and subject to change. - from . import _imaging as core - - if __version__ != getattr(core, "PILLOW_VERSION", None): - msg = ( - "The _imaging extension was built for another version of Pillow or PIL:\n" - f"Core version: {getattr(core, 'PILLOW_VERSION', None)}\n" - f"Pillow version: {__version__}" - ) - raise ImportError(msg) - -except ImportError as v: - core = DeferredError.new(ImportError("The _imaging C module is not installed.")) - # Explanations for ways that we know we might have an import error - if str(v).startswith("Module use of python"): - # The _imaging C module is present, but not compiled for - # the right version (windows only). Print a warning, if - # possible. - warnings.warn( - "The _imaging extension was built for another version of Python.", - RuntimeWarning, - ) - elif str(v).startswith("The _imaging extension"): - warnings.warn(str(v), RuntimeWarning) - # Fail here anyway. Don't let people run with a mostly broken Pillow. - # see docs/porting.rst - raise - - -USE_CFFI_ACCESS = False -try: - import cffi -except ImportError: - cffi = None - - -def isImageType(t): - """ - Checks if an object is an image object. - - .. warning:: - - This function is for internal use only. - - :param t: object to check if it's an image - :returns: True if the object is an image - """ - return hasattr(t, "im") - - -# -# Constants - - -# transpose -class Transpose(IntEnum): - FLIP_LEFT_RIGHT = 0 - FLIP_TOP_BOTTOM = 1 - ROTATE_90 = 2 - ROTATE_180 = 3 - ROTATE_270 = 4 - TRANSPOSE = 5 - TRANSVERSE = 6 - - -# transforms (also defined in Imaging.h) -class Transform(IntEnum): - AFFINE = 0 - EXTENT = 1 - PERSPECTIVE = 2 - QUAD = 3 - MESH = 4 - - -# resampling filters (also defined in Imaging.h) -class Resampling(IntEnum): - NEAREST = 0 - BOX = 4 - BILINEAR = 2 - HAMMING = 5 - BICUBIC = 3 - LANCZOS = 1 - - -_filters_support = { - Resampling.BOX: 0.5, - Resampling.BILINEAR: 1.0, - Resampling.HAMMING: 1.0, - Resampling.BICUBIC: 2.0, - Resampling.LANCZOS: 3.0, -} - - -# dithers -class Dither(IntEnum): - NONE = 0 - ORDERED = 1 # Not yet implemented - RASTERIZE = 2 # Not yet implemented - FLOYDSTEINBERG = 3 # default - - -# palettes/quantizers -class Palette(IntEnum): - WEB = 0 - ADAPTIVE = 1 - - -class Quantize(IntEnum): - MEDIANCUT = 0 - MAXCOVERAGE = 1 - FASTOCTREE = 2 - LIBIMAGEQUANT = 3 - - -module = sys.modules[__name__] -for enum in (Transpose, Transform, Resampling, Dither, Palette, Quantize): - for item in enum: - setattr(module, item.name, item.value) - - -if hasattr(core, "DEFAULT_STRATEGY"): - DEFAULT_STRATEGY = core.DEFAULT_STRATEGY - FILTERED = core.FILTERED - HUFFMAN_ONLY = core.HUFFMAN_ONLY - RLE = core.RLE - FIXED = core.FIXED - - -# -------------------------------------------------------------------- -# Registries - -ID = [] -OPEN = {} -MIME = {} -SAVE = {} -SAVE_ALL = {} -EXTENSION = {} -DECODERS = {} -ENCODERS = {} - -# -------------------------------------------------------------------- -# Modes - -_ENDIAN = "<" if sys.byteorder == "little" else ">" - - -def _conv_type_shape(im): - m = ImageMode.getmode(im.mode) - shape = (im.height, im.width) - extra = len(m.bands) - if extra != 1: - shape += (extra,) - return shape, m.typestr - - -MODES = ["1", "CMYK", "F", "HSV", "I", "L", "LAB", "P", "RGB", "RGBA", "RGBX", "YCbCr"] - -# raw modes that may be memory mapped. NOTE: if you change this, you -# may have to modify the stride calculation in map.c too! -_MAPMODES = ("L", "P", "RGBX", "RGBA", "CMYK", "I;16", "I;16L", "I;16B") - - -def getmodebase(mode): - """ - Gets the "base" mode for given mode. This function returns "L" for - images that contain grayscale data, and "RGB" for images that - contain color data. - - :param mode: Input mode. - :returns: "L" or "RGB". - :exception KeyError: If the input mode was not a standard mode. - """ - return ImageMode.getmode(mode).basemode - - -def getmodetype(mode): - """ - Gets the storage type mode. Given a mode, this function returns a - single-layer mode suitable for storing individual bands. - - :param mode: Input mode. - :returns: "L", "I", or "F". - :exception KeyError: If the input mode was not a standard mode. - """ - return ImageMode.getmode(mode).basetype - - -def getmodebandnames(mode): - """ - Gets a list of individual band names. Given a mode, this function returns - a tuple containing the names of individual bands (use - :py:method:`~PIL.Image.getmodetype` to get the mode used to store each - individual band. - - :param mode: Input mode. - :returns: A tuple containing band names. The length of the tuple - gives the number of bands in an image of the given mode. - :exception KeyError: If the input mode was not a standard mode. - """ - return ImageMode.getmode(mode).bands - - -def getmodebands(mode): - """ - Gets the number of individual bands for this mode. - - :param mode: Input mode. - :returns: The number of bands in this mode. - :exception KeyError: If the input mode was not a standard mode. - """ - return len(ImageMode.getmode(mode).bands) - - -# -------------------------------------------------------------------- -# Helpers - -_initialized = 0 - - -def preinit(): - """ - Explicitly loads BMP, GIF, JPEG, PPM and PPM file format drivers. - - It is called when opening or saving images. - """ - - global _initialized - if _initialized >= 1: - return - - try: - from . import BmpImagePlugin - - assert BmpImagePlugin - except ImportError: - pass - try: - from . import GifImagePlugin - - assert GifImagePlugin - except ImportError: - pass - try: - from . import JpegImagePlugin - - assert JpegImagePlugin - except ImportError: - pass - try: - from . import PpmImagePlugin - - assert PpmImagePlugin - except ImportError: - pass - try: - from . import PngImagePlugin - - assert PngImagePlugin - except ImportError: - pass - - _initialized = 1 - - -def init(): - """ - Explicitly initializes the Python Imaging Library. This function - loads all available file format drivers. - - It is called when opening or saving images if :py:meth:`~preinit()` is - insufficient, and by :py:meth:`~PIL.features.pilinfo`. - """ - - global _initialized - if _initialized >= 2: - return 0 - - parent_name = __name__.rpartition(".")[0] - for plugin in _plugins: - try: - logger.debug("Importing %s", plugin) - __import__(f"{parent_name}.{plugin}", globals(), locals(), []) - except ImportError as e: - logger.debug("Image: failed to import %s: %s", plugin, e) - - if OPEN or SAVE: - _initialized = 2 - return 1 - - -# -------------------------------------------------------------------- -# Codec factories (used by tobytes/frombytes and ImageFile.load) - - -def _getdecoder(mode, decoder_name, args, extra=()): - # tweak arguments - if args is None: - args = () - elif not isinstance(args, tuple): - args = (args,) - - try: - decoder = DECODERS[decoder_name] - except KeyError: - pass - else: - return decoder(mode, *args + extra) - - try: - # get decoder - decoder = getattr(core, decoder_name + "_decoder") - except AttributeError as e: - msg = f"decoder {decoder_name} not available" - raise OSError(msg) from e - return decoder(mode, *args + extra) - - -def _getencoder(mode, encoder_name, args, extra=()): - # tweak arguments - if args is None: - args = () - elif not isinstance(args, tuple): - args = (args,) - - try: - encoder = ENCODERS[encoder_name] - except KeyError: - pass - else: - return encoder(mode, *args + extra) - - try: - # get encoder - encoder = getattr(core, encoder_name + "_encoder") - except AttributeError as e: - msg = f"encoder {encoder_name} not available" - raise OSError(msg) from e - return encoder(mode, *args + extra) - - -# -------------------------------------------------------------------- -# Simple expression analyzer - - -class _E: - def __init__(self, scale, offset): - self.scale = scale - self.offset = offset - - def __neg__(self): - return _E(-self.scale, -self.offset) - - def __add__(self, other): - if isinstance(other, _E): - return _E(self.scale + other.scale, self.offset + other.offset) - return _E(self.scale, self.offset + other) - - __radd__ = __add__ - - def __sub__(self, other): - return self + -other - - def __rsub__(self, other): - return other + -self - - def __mul__(self, other): - if isinstance(other, _E): - return NotImplemented - return _E(self.scale * other, self.offset * other) - - __rmul__ = __mul__ - - def __truediv__(self, other): - if isinstance(other, _E): - return NotImplemented - return _E(self.scale / other, self.offset / other) - - -def _getscaleoffset(expr): - a = expr(_E(1, 0)) - return (a.scale, a.offset) if isinstance(a, _E) else (0, a) - - -# -------------------------------------------------------------------- -# Implementation wrapper - - -class Image: - """ - This class represents an image object. To create - :py:class:`~PIL.Image.Image` objects, use the appropriate factory - functions. There's hardly ever any reason to call the Image constructor - directly. - - * :py:func:`~PIL.Image.open` - * :py:func:`~PIL.Image.new` - * :py:func:`~PIL.Image.frombytes` - """ - - format: str | None = None - format_description: str | None = None - _close_exclusive_fp_after_loading = True - - def __init__(self): - # FIXME: take "new" parameters / other image? - # FIXME: turn mode and size into delegating properties? - self.im = None - self._mode = "" - self._size = (0, 0) - self.palette = None - self.info = {} - self.readonly = 0 - self.pyaccess = None - self._exif = None - - @property - def width(self): - return self.size[0] - - @property - def height(self): - return self.size[1] - - @property - def size(self): - return self._size - - @property - def mode(self): - return self._mode - - def _new(self, im): - new = Image() - new.im = im - new._mode = im.mode - new._size = im.size - if im.mode in ("P", "PA"): - if self.palette: - new.palette = self.palette.copy() - else: - from . import ImagePalette - - new.palette = ImagePalette.ImagePalette() - new.info = self.info.copy() - return new - - # Context manager support - def __enter__(self): - return self - - def _close_fp(self): - if getattr(self, "_fp", False): - if self._fp != self.fp: - self._fp.close() - self._fp = DeferredError(ValueError("Operation on closed image")) - if self.fp: - self.fp.close() - - def __exit__(self, *args): - if hasattr(self, "fp"): - if getattr(self, "_exclusive_fp", False): - self._close_fp() - self.fp = None - - def close(self): - """ - Closes the file pointer, if possible. - - This operation will destroy the image core and release its memory. - The image data will be unusable afterward. - - This function is required to close images that have multiple frames or - have not had their file read and closed by the - :py:meth:`~PIL.Image.Image.load` method. See :ref:`file-handling` for - more information. - """ - if hasattr(self, "fp"): - try: - self._close_fp() - self.fp = None - except Exception as msg: - logger.debug("Error closing: %s", msg) - - if getattr(self, "map", None): - self.map = None - - # Instead of simply setting to None, we're setting up a - # deferred error that will better explain that the core image - # object is gone. - self.im = DeferredError(ValueError("Operation on closed image")) - - def _copy(self): - self.load() - self.im = self.im.copy() - self.pyaccess = None - self.readonly = 0 - - def _ensure_mutable(self): - if self.readonly: - self._copy() - else: - self.load() - - def _dump(self, file=None, format=None, **options): - suffix = "" - if format: - suffix = "." + format - - if not file: - f, filename = tempfile.mkstemp(suffix) - os.close(f) - else: - filename = file - if not filename.endswith(suffix): - filename = filename + suffix - - self.load() - - if not format or format == "PPM": - self.im.save_ppm(filename) - else: - self.save(filename, format, **options) - - return filename - - def __eq__(self, other): - return ( - self.__class__ is other.__class__ - and self.mode == other.mode - and self.size == other.size - and self.info == other.info - and self.getpalette() == other.getpalette() - and self.tobytes() == other.tobytes() - ) - - def __repr__(self): - return "<%s.%s image mode=%s size=%dx%d at 0x%X>" % ( - self.__class__.__module__, - self.__class__.__name__, - self.mode, - self.size[0], - self.size[1], - id(self), - ) - - def _repr_pretty_(self, p, cycle): - """IPython plain text display support""" - - # Same as __repr__ but without unpredictable id(self), - # to keep Jupyter notebook `text/plain` output stable. - p.text( - "<%s.%s image mode=%s size=%dx%d>" - % ( - self.__class__.__module__, - self.__class__.__name__, - self.mode, - self.size[0], - self.size[1], - ) - ) - - def _repr_image(self, image_format, **kwargs): - """Helper function for iPython display hook. - - :param image_format: Image format. - :returns: image as bytes, saved into the given format. - """ - b = io.BytesIO() - try: - self.save(b, image_format, **kwargs) - except Exception: - return None - return b.getvalue() - - def _repr_png_(self): - """iPython display hook support for PNG format. - - :returns: PNG version of the image as bytes - """ - return self._repr_image("PNG", compress_level=1) - - def _repr_jpeg_(self): - """iPython display hook support for JPEG format. - - :returns: JPEG version of the image as bytes - """ - return self._repr_image("JPEG") - - @property - def __array_interface__(self): - # numpy array interface support - new = {"version": 3} - try: - if self.mode == "1": - # Binary images need to be extended from bits to bytes - # See: https://github.com/python-pillow/Pillow/issues/350 - new["data"] = self.tobytes("raw", "L") - else: - new["data"] = self.tobytes() - except Exception as e: - if not isinstance(e, (MemoryError, RecursionError)): - try: - import numpy - from packaging.version import parse as parse_version - except ImportError: - pass - else: - if parse_version(numpy.__version__) < parse_version("1.23"): - warnings.warn(e) - raise - new["shape"], new["typestr"] = _conv_type_shape(self) - return new - - def __getstate__(self): - im_data = self.tobytes() # load image first - return [self.info, self.mode, self.size, self.getpalette(), im_data] - - def __setstate__(self, state): - Image.__init__(self) - info, mode, size, palette, data = state - self.info = info - self._mode = mode - self._size = size - self.im = core.new(mode, size) - if mode in ("L", "LA", "P", "PA") and palette: - self.putpalette(palette) - self.frombytes(data) - - def tobytes(self, encoder_name="raw", *args): - """ - Return image as a bytes object. - - .. warning:: - - This method returns the raw image data from the internal - storage. For compressed image data (e.g. PNG, JPEG) use - :meth:`~.save`, with a BytesIO parameter for in-memory - data. - - :param encoder_name: What encoder to use. The default is to - use the standard "raw" encoder. - - A list of C encoders can be seen under - codecs section of the function array in - :file:`_imaging.c`. Python encoders are - registered within the relevant plugins. - :param args: Extra arguments to the encoder. - :returns: A :py:class:`bytes` object. - """ - - # may pass tuple instead of argument list - if len(args) == 1 and isinstance(args[0], tuple): - args = args[0] - - if encoder_name == "raw" and args == (): - args = self.mode - - self.load() - - if self.width == 0 or self.height == 0: - return b"" - - # unpack data - e = _getencoder(self.mode, encoder_name, args) - e.setimage(self.im) - - bufsize = max(65536, self.size[0] * 4) # see RawEncode.c - - output = [] - while True: - bytes_consumed, errcode, data = e.encode(bufsize) - output.append(data) - if errcode: - break - if errcode < 0: - msg = f"encoder error {errcode} in tobytes" - raise RuntimeError(msg) - - return b"".join(output) - - def tobitmap(self, name="image"): - """ - Returns the image converted to an X11 bitmap. - - .. note:: This method only works for mode "1" images. - - :param name: The name prefix to use for the bitmap variables. - :returns: A string containing an X11 bitmap. - :raises ValueError: If the mode is not "1" - """ - - self.load() - if self.mode != "1": - msg = "not a bitmap" - raise ValueError(msg) - data = self.tobytes("xbm") - return b"".join( - [ - f"#define {name}_width {self.size[0]}\n".encode("ascii"), - f"#define {name}_height {self.size[1]}\n".encode("ascii"), - f"static char {name}_bits[] = {{\n".encode("ascii"), - data, - b"};", - ] - ) - - def frombytes(self, data, decoder_name="raw", *args): - """ - Loads this image with pixel data from a bytes object. - - This method is similar to the :py:func:`~PIL.Image.frombytes` function, - but loads data into this image instead of creating a new image object. - """ - - if self.width == 0 or self.height == 0: - return - - # may pass tuple instead of argument list - if len(args) == 1 and isinstance(args[0], tuple): - args = args[0] - - # default format - if decoder_name == "raw" and args == (): - args = self.mode - - # unpack data - d = _getdecoder(self.mode, decoder_name, args) - d.setimage(self.im) - s = d.decode(data) - - if s[0] >= 0: - msg = "not enough image data" - raise ValueError(msg) - if s[1] != 0: - msg = "cannot decode image data" - raise ValueError(msg) - - def load(self): - """ - Allocates storage for the image and loads the pixel data. In - normal cases, you don't need to call this method, since the - Image class automatically loads an opened image when it is - accessed for the first time. - - If the file associated with the image was opened by Pillow, then this - method will close it. The exception to this is if the image has - multiple frames, in which case the file will be left open for seek - operations. See :ref:`file-handling` for more information. - - :returns: An image access object. - :rtype: :ref:`PixelAccess` or :py:class:`PIL.PyAccess` - """ - if self.im is not None and self.palette and self.palette.dirty: - # realize palette - mode, arr = self.palette.getdata() - self.im.putpalette(mode, arr) - self.palette.dirty = 0 - self.palette.rawmode = None - if "transparency" in self.info and mode in ("LA", "PA"): - if isinstance(self.info["transparency"], int): - self.im.putpalettealpha(self.info["transparency"], 0) - else: - self.im.putpalettealphas(self.info["transparency"]) - self.palette.mode = "RGBA" - else: - palette_mode = "RGBA" if mode.startswith("RGBA") else "RGB" - self.palette.mode = palette_mode - self.palette.palette = self.im.getpalette(palette_mode, palette_mode) - - if self.im is not None: - if cffi and USE_CFFI_ACCESS: - if self.pyaccess: - return self.pyaccess - from . import PyAccess - - self.pyaccess = PyAccess.new(self, self.readonly) - if self.pyaccess: - return self.pyaccess - return self.im.pixel_access(self.readonly) - - def verify(self): - """ - Verifies the contents of a file. For data read from a file, this - method attempts to determine if the file is broken, without - actually decoding the image data. If this method finds any - problems, it raises suitable exceptions. If you need to load - the image after using this method, you must reopen the image - file. - """ - pass - - def convert( - self, mode=None, matrix=None, dither=None, palette=Palette.WEB, colors=256 - ): - """ - Returns a converted copy of this image. For the "P" mode, this - method translates pixels through the palette. If mode is - omitted, a mode is chosen so that all information in the image - and the palette can be represented without a palette. - - The current version supports all possible conversions between - "L", "RGB" and "CMYK". The ``matrix`` argument only supports "L" - and "RGB". - - When translating a color image to grayscale (mode "L"), - the library uses the ITU-R 601-2 luma transform:: - - L = R * 299/1000 + G * 587/1000 + B * 114/1000 - - The default method of converting a grayscale ("L") or "RGB" - image into a bilevel (mode "1") image uses Floyd-Steinberg - dither to approximate the original image luminosity levels. If - dither is ``None``, all values larger than 127 are set to 255 (white), - all other values to 0 (black). To use other thresholds, use the - :py:meth:`~PIL.Image.Image.point` method. - - When converting from "RGBA" to "P" without a ``matrix`` argument, - this passes the operation to :py:meth:`~PIL.Image.Image.quantize`, - and ``dither`` and ``palette`` are ignored. - - When converting from "PA", if an "RGBA" palette is present, the alpha - channel from the image will be used instead of the values from the palette. - - :param mode: The requested mode. See: :ref:`concept-modes`. - :param matrix: An optional conversion matrix. If given, this - should be 4- or 12-tuple containing floating point values. - :param dither: Dithering method, used when converting from - mode "RGB" to "P" or from "RGB" or "L" to "1". - Available methods are :data:`Dither.NONE` or :data:`Dither.FLOYDSTEINBERG` - (default). Note that this is not used when ``matrix`` is supplied. - :param palette: Palette to use when converting from mode "RGB" - to "P". Available palettes are :data:`Palette.WEB` or - :data:`Palette.ADAPTIVE`. - :param colors: Number of colors to use for the :data:`Palette.ADAPTIVE` - palette. Defaults to 256. - :rtype: :py:class:`~PIL.Image.Image` - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - self.load() - - has_transparency = "transparency" in self.info - if not mode and self.mode == "P": - # determine default mode - if self.palette: - mode = self.palette.mode - else: - mode = "RGB" - if mode == "RGB" and has_transparency: - mode = "RGBA" - if not mode or (mode == self.mode and not matrix): - return self.copy() - - if matrix: - # matrix conversion - if mode not in ("L", "RGB"): - msg = "illegal conversion" - raise ValueError(msg) - im = self.im.convert_matrix(mode, matrix) - new_im = self._new(im) - if has_transparency and self.im.bands == 3: - transparency = new_im.info["transparency"] - - def convert_transparency(m, v): - v = m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3] * 0.5 - return max(0, min(255, int(v))) - - if mode == "L": - transparency = convert_transparency(matrix, transparency) - elif len(mode) == 3: - transparency = tuple( - convert_transparency(matrix[i * 4 : i * 4 + 4], transparency) - for i in range(0, len(transparency)) - ) - new_im.info["transparency"] = transparency - return new_im - - if mode == "P" and self.mode == "RGBA": - return self.quantize(colors) - - trns = None - delete_trns = False - # transparency handling - if has_transparency: - if (self.mode in ("1", "L", "I") and mode in ("LA", "RGBA")) or ( - self.mode == "RGB" and mode == "RGBA" - ): - # Use transparent conversion to promote from transparent - # color to an alpha channel. - new_im = self._new( - self.im.convert_transparent(mode, self.info["transparency"]) - ) - del new_im.info["transparency"] - return new_im - elif self.mode in ("L", "RGB", "P") and mode in ("L", "RGB", "P"): - t = self.info["transparency"] - if isinstance(t, bytes): - # Dragons. This can't be represented by a single color - warnings.warn( - "Palette images with Transparency expressed in bytes should be " - "converted to RGBA images" - ) - delete_trns = True - else: - # get the new transparency color. - # use existing conversions - trns_im = new(self.mode, (1, 1)) - if self.mode == "P": - trns_im.putpalette(self.palette) - if isinstance(t, tuple): - err = "Couldn't allocate a palette color for transparency" - try: - t = trns_im.palette.getcolor(t, self) - except ValueError as e: - if str(e) == "cannot allocate more than 256 colors": - # If all 256 colors are in use, - # then there is no need for transparency - t = None - else: - raise ValueError(err) from e - if t is None: - trns = None - else: - trns_im.putpixel((0, 0), t) - - if mode in ("L", "RGB"): - trns_im = trns_im.convert(mode) - else: - # can't just retrieve the palette number, got to do it - # after quantization. - trns_im = trns_im.convert("RGB") - trns = trns_im.getpixel((0, 0)) - - elif self.mode == "P" and mode in ("LA", "PA", "RGBA"): - t = self.info["transparency"] - delete_trns = True - - if isinstance(t, bytes): - self.im.putpalettealphas(t) - elif isinstance(t, int): - self.im.putpalettealpha(t, 0) - else: - msg = "Transparency for P mode should be bytes or int" - raise ValueError(msg) - - if mode == "P" and palette == Palette.ADAPTIVE: - im = self.im.quantize(colors) - new_im = self._new(im) - from . import ImagePalette - - new_im.palette = ImagePalette.ImagePalette( - "RGB", new_im.im.getpalette("RGB") - ) - if delete_trns: - # This could possibly happen if we requantize to fewer colors. - # The transparency would be totally off in that case. - del new_im.info["transparency"] - if trns is not None: - try: - new_im.info["transparency"] = new_im.palette.getcolor(trns, new_im) - except Exception: - # if we can't make a transparent color, don't leave the old - # transparency hanging around to mess us up. - del new_im.info["transparency"] - warnings.warn("Couldn't allocate palette entry for transparency") - return new_im - - if "LAB" in (self.mode, mode): - other_mode = mode if self.mode == "LAB" else self.mode - if other_mode in ("RGB", "RGBA", "RGBX"): - from . import ImageCms - - srgb = ImageCms.createProfile("sRGB") - lab = ImageCms.createProfile("LAB") - profiles = [lab, srgb] if self.mode == "LAB" else [srgb, lab] - transform = ImageCms.buildTransform( - profiles[0], profiles[1], self.mode, mode - ) - return transform.apply(self) - - # colorspace conversion - if dither is None: - dither = Dither.FLOYDSTEINBERG - - try: - im = self.im.convert(mode, dither) - except ValueError: - try: - # normalize source image and try again - modebase = getmodebase(self.mode) - if modebase == self.mode: - raise - im = self.im.convert(modebase) - im = im.convert(mode, dither) - except KeyError as e: - msg = "illegal conversion" - raise ValueError(msg) from e - - new_im = self._new(im) - if mode == "P" and palette != Palette.ADAPTIVE: - from . import ImagePalette - - new_im.palette = ImagePalette.ImagePalette("RGB", im.getpalette("RGB")) - if delete_trns: - # crash fail if we leave a bytes transparency in an rgb/l mode. - del new_im.info["transparency"] - if trns is not None: - if new_im.mode == "P": - try: - new_im.info["transparency"] = new_im.palette.getcolor(trns, new_im) - except ValueError as e: - del new_im.info["transparency"] - if str(e) != "cannot allocate more than 256 colors": - # If all 256 colors are in use, - # then there is no need for transparency - warnings.warn( - "Couldn't allocate palette entry for transparency" - ) - else: - new_im.info["transparency"] = trns - return new_im - - def quantize( - self, - colors=256, - method=None, - kmeans=0, - palette=None, - dither=Dither.FLOYDSTEINBERG, - ): - """ - Convert the image to 'P' mode with the specified number - of colors. - - :param colors: The desired number of colors, <= 256 - :param method: :data:`Quantize.MEDIANCUT` (median cut), - :data:`Quantize.MAXCOVERAGE` (maximum coverage), - :data:`Quantize.FASTOCTREE` (fast octree), - :data:`Quantize.LIBIMAGEQUANT` (libimagequant; check support - using :py:func:`PIL.features.check_feature` with - ``feature="libimagequant"``). - - By default, :data:`Quantize.MEDIANCUT` will be used. - - The exception to this is RGBA images. :data:`Quantize.MEDIANCUT` - and :data:`Quantize.MAXCOVERAGE` do not support RGBA images, so - :data:`Quantize.FASTOCTREE` is used by default instead. - :param kmeans: Integer - :param palette: Quantize to the palette of given - :py:class:`PIL.Image.Image`. - :param dither: Dithering method, used when converting from - mode "RGB" to "P" or from "RGB" or "L" to "1". - Available methods are :data:`Dither.NONE` or :data:`Dither.FLOYDSTEINBERG` - (default). - :returns: A new image - """ - - self.load() - - if method is None: - # defaults: - method = Quantize.MEDIANCUT - if self.mode == "RGBA": - method = Quantize.FASTOCTREE - - if self.mode == "RGBA" and method not in ( - Quantize.FASTOCTREE, - Quantize.LIBIMAGEQUANT, - ): - # Caller specified an invalid mode. - msg = ( - "Fast Octree (method == 2) and libimagequant (method == 3) " - "are the only valid methods for quantizing RGBA images" - ) - raise ValueError(msg) - - if palette: - # use palette from reference image - palette.load() - if palette.mode != "P": - msg = "bad mode for palette image" - raise ValueError(msg) - if self.mode not in {"RGB", "L"}: - msg = "only RGB or L mode images can be quantized to a palette" - raise ValueError(msg) - im = self.im.convert("P", dither, palette.im) - new_im = self._new(im) - new_im.palette = palette.palette.copy() - return new_im - - im = self._new(self.im.quantize(colors, method, kmeans)) - - from . import ImagePalette - - mode = im.im.getpalettemode() - palette = im.im.getpalette(mode, mode)[: colors * len(mode)] - im.palette = ImagePalette.ImagePalette(mode, palette) - - return im - - def copy(self) -> Image: - """ - Copies this image. Use this method if you wish to paste things - into an image, but still retain the original. - - :rtype: :py:class:`~PIL.Image.Image` - :returns: An :py:class:`~PIL.Image.Image` object. - """ - self.load() - return self._new(self.im.copy()) - - __copy__ = copy - - def crop(self, box=None) -> Image: - """ - Returns a rectangular region from this image. The box is a - 4-tuple defining the left, upper, right, and lower pixel - coordinate. See :ref:`coordinate-system`. - - Note: Prior to Pillow 3.4.0, this was a lazy operation. - - :param box: The crop rectangle, as a (left, upper, right, lower)-tuple. - :rtype: :py:class:`~PIL.Image.Image` - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - if box is None: - return self.copy() - - if box[2] < box[0]: - msg = "Coordinate 'right' is less than 'left'" - raise ValueError(msg) - elif box[3] < box[1]: - msg = "Coordinate 'lower' is less than 'upper'" - raise ValueError(msg) - - self.load() - return self._new(self._crop(self.im, box)) - - def _crop(self, im, box): - """ - Returns a rectangular region from the core image object im. - - This is equivalent to calling im.crop((x0, y0, x1, y1)), but - includes additional sanity checks. - - :param im: a core image object - :param box: The crop rectangle, as a (left, upper, right, lower)-tuple. - :returns: A core image object. - """ - - x0, y0, x1, y1 = map(int, map(round, box)) - - absolute_values = (abs(x1 - x0), abs(y1 - y0)) - - _decompression_bomb_check(absolute_values) - - return im.crop((x0, y0, x1, y1)) - - def draft(self, mode, size): - """ - Configures the image file loader so it returns a version of the - image that as closely as possible matches the given mode and - size. For example, you can use this method to convert a color - JPEG to grayscale while loading it. - - If any changes are made, returns a tuple with the chosen ``mode`` and - ``box`` with coordinates of the original image within the altered one. - - Note that this method modifies the :py:class:`~PIL.Image.Image` object - in place. If the image has already been loaded, this method has no - effect. - - Note: This method is not implemented for most images. It is - currently implemented only for JPEG and MPO images. - - :param mode: The requested mode. - :param size: The requested size in pixels, as a 2-tuple: - (width, height). - """ - pass - - def _expand(self, xmargin, ymargin=None): - if ymargin is None: - ymargin = xmargin - self.load() - return self._new(self.im.expand(xmargin, ymargin)) - - def filter(self, filter): - """ - Filters this image using the given filter. For a list of - available filters, see the :py:mod:`~PIL.ImageFilter` module. - - :param filter: Filter kernel. - :returns: An :py:class:`~PIL.Image.Image` object.""" - - from . import ImageFilter - - self.load() - - if isinstance(filter, Callable): - filter = filter() - if not hasattr(filter, "filter"): - msg = "filter argument should be ImageFilter.Filter instance or class" - raise TypeError(msg) - - multiband = isinstance(filter, ImageFilter.MultibandFilter) - if self.im.bands == 1 or multiband: - return self._new(filter.filter(self.im)) - - ims = [ - self._new(filter.filter(self.im.getband(c))) for c in range(self.im.bands) - ] - return merge(self.mode, ims) - - def getbands(self): - """ - Returns a tuple containing the name of each band in this image. - For example, ``getbands`` on an RGB image returns ("R", "G", "B"). - - :returns: A tuple containing band names. - :rtype: tuple - """ - return ImageMode.getmode(self.mode).bands - - def getbbox(self, *, alpha_only=True): - """ - Calculates the bounding box of the non-zero regions in the - image. - - :param alpha_only: Optional flag, defaulting to ``True``. - If ``True`` and the image has an alpha channel, trim transparent pixels. - Otherwise, trim pixels when all channels are zero. - Keyword-only argument. - :returns: The bounding box is returned as a 4-tuple defining the - left, upper, right, and lower pixel coordinate. See - :ref:`coordinate-system`. If the image is completely empty, this - method returns None. - - """ - - self.load() - return self.im.getbbox(alpha_only) - - def getcolors(self, maxcolors=256): - """ - Returns a list of colors used in this image. - - The colors will be in the image's mode. For example, an RGB image will - return a tuple of (red, green, blue) color values, and a P image will - return the index of the color in the palette. - - :param maxcolors: Maximum number of colors. If this number is - exceeded, this method returns None. The default limit is - 256 colors. - :returns: An unsorted list of (count, pixel) values. - """ - - self.load() - if self.mode in ("1", "L", "P"): - h = self.im.histogram() - out = [(h[i], i) for i in range(256) if h[i]] - if len(out) > maxcolors: - return None - return out - return self.im.getcolors(maxcolors) - - def getdata(self, band=None): - """ - Returns the contents of this image as a sequence object - containing pixel values. The sequence object is flattened, so - that values for line one follow directly after the values of - line zero, and so on. - - Note that the sequence object returned by this method is an - internal PIL data type, which only supports certain sequence - operations. To convert it to an ordinary sequence (e.g. for - printing), use ``list(im.getdata())``. - - :param band: What band to return. The default is to return - all bands. To return a single band, pass in the index - value (e.g. 0 to get the "R" band from an "RGB" image). - :returns: A sequence-like object. - """ - - self.load() - if band is not None: - return self.im.getband(band) - return self.im # could be abused - - def getextrema(self): - """ - Gets the minimum and maximum pixel values for each band in - the image. - - :returns: For a single-band image, a 2-tuple containing the - minimum and maximum pixel value. For a multi-band image, - a tuple containing one 2-tuple for each band. - """ - - self.load() - if self.im.bands > 1: - return tuple(self.im.getband(i).getextrema() for i in range(self.im.bands)) - return self.im.getextrema() - - def _getxmp(self, xmp_tags): - def get_name(tag): - return re.sub("^{[^}]+}", "", tag) - - def get_value(element): - value = {get_name(k): v for k, v in element.attrib.items()} - children = list(element) - if children: - for child in children: - name = get_name(child.tag) - child_value = get_value(child) - if name in value: - if not isinstance(value[name], list): - value[name] = [value[name]] - value[name].append(child_value) - else: - value[name] = child_value - elif value: - if element.text: - value["text"] = element.text - else: - return element.text - return value - - if ElementTree is None: - warnings.warn("XMP data cannot be read without defusedxml dependency") - return {} - else: - root = ElementTree.fromstring(xmp_tags) - return {get_name(root.tag): get_value(root)} - - def getexif(self): - """ - Gets EXIF data from the image. - - :returns: an :py:class:`~PIL.Image.Exif` object. - """ - if self._exif is None: - self._exif = Exif() - self._exif._loaded = False - elif self._exif._loaded: - return self._exif - self._exif._loaded = True - - exif_info = self.info.get("exif") - if exif_info is None: - if "Raw profile type exif" in self.info: - exif_info = bytes.fromhex( - "".join(self.info["Raw profile type exif"].split("\n")[3:]) - ) - elif hasattr(self, "tag_v2"): - self._exif.bigtiff = self.tag_v2._bigtiff - self._exif.endian = self.tag_v2._endian - self._exif.load_from_fp(self.fp, self.tag_v2._offset) - if exif_info is not None: - self._exif.load(exif_info) - - # XMP tags - if ExifTags.Base.Orientation not in self._exif: - xmp_tags = self.info.get("XML:com.adobe.xmp") - if xmp_tags: - match = re.search(r'tiff:Orientation(="|>)([0-9])', xmp_tags) - if match: - self._exif[ExifTags.Base.Orientation] = int(match[2]) - - return self._exif - - def _reload_exif(self): - if self._exif is None or not self._exif._loaded: - return - self._exif._loaded = False - self.getexif() - - def get_child_images(self): - child_images = [] - exif = self.getexif() - ifds = [] - if ExifTags.Base.SubIFDs in exif: - subifd_offsets = exif[ExifTags.Base.SubIFDs] - if subifd_offsets: - if not isinstance(subifd_offsets, tuple): - subifd_offsets = (subifd_offsets,) - for subifd_offset in subifd_offsets: - ifds.append((exif._get_ifd_dict(subifd_offset), subifd_offset)) - ifd1 = exif.get_ifd(ExifTags.IFD.IFD1) - if ifd1 and ifd1.get(513): - ifds.append((ifd1, exif._info.next)) - - offset = None - for ifd, ifd_offset in ifds: - current_offset = self.fp.tell() - if offset is None: - offset = current_offset - - fp = self.fp - thumbnail_offset = ifd.get(513) - if thumbnail_offset is not None: - try: - thumbnail_offset += self._exif_offset - except AttributeError: - pass - self.fp.seek(thumbnail_offset) - data = self.fp.read(ifd.get(514)) - fp = io.BytesIO(data) - - with open(fp) as im: - if thumbnail_offset is None: - im._frame_pos = [ifd_offset] - im._seek(0) - im.load() - child_images.append(im) - - if offset is not None: - self.fp.seek(offset) - return child_images - - def getim(self): - """ - Returns a capsule that points to the internal image memory. - - :returns: A capsule object. - """ - - self.load() - return self.im.ptr - - def getpalette(self, rawmode="RGB"): - """ - Returns the image palette as a list. - - :param rawmode: The mode in which to return the palette. ``None`` will - return the palette in its current mode. - - .. versionadded:: 9.1.0 - - :returns: A list of color values [r, g, b, ...], or None if the - image has no palette. - """ - - self.load() - try: - mode = self.im.getpalettemode() - except ValueError: - return None # no palette - if rawmode is None: - rawmode = mode - return list(self.im.getpalette(mode, rawmode)) - - @property - def has_transparency_data(self) -> bool: - """ - Determine if an image has transparency data, whether in the form of an - alpha channel, a palette with an alpha channel, or a "transparency" key - in the info dictionary. - - Note the image might still appear solid, if all of the values shown - within are opaque. - - :returns: A boolean. - """ - return ( - self.mode in ("LA", "La", "PA", "RGBA", "RGBa") - or (self.mode == "P" and self.palette.mode.endswith("A")) - or "transparency" in self.info - ) - - def apply_transparency(self): - """ - If a P mode image has a "transparency" key in the info dictionary, - remove the key and instead apply the transparency to the palette. - Otherwise, the image is unchanged. - """ - if self.mode != "P" or "transparency" not in self.info: - return - - from . import ImagePalette - - palette = self.getpalette("RGBA") - transparency = self.info["transparency"] - if isinstance(transparency, bytes): - for i, alpha in enumerate(transparency): - palette[i * 4 + 3] = alpha - else: - palette[transparency * 4 + 3] = 0 - self.palette = ImagePalette.ImagePalette("RGBA", bytes(palette)) - self.palette.dirty = 1 - - del self.info["transparency"] - - def getpixel(self, xy): - """ - Returns the pixel value at a given position. - - :param xy: The coordinate, given as (x, y). See - :ref:`coordinate-system`. - :returns: The pixel value. If the image is a multi-layer image, - this method returns a tuple. - """ - - self.load() - if self.pyaccess: - return self.pyaccess.getpixel(xy) - return self.im.getpixel(tuple(xy)) - - def getprojection(self): - """ - Get projection to x and y axes - - :returns: Two sequences, indicating where there are non-zero - pixels along the X-axis and the Y-axis, respectively. - """ - - self.load() - x, y = self.im.getprojection() - return list(x), list(y) - - def histogram(self, mask=None, extrema=None): - """ - Returns a histogram for the image. The histogram is returned as a - list of pixel counts, one for each pixel value in the source - image. Counts are grouped into 256 bins for each band, even if - the image has more than 8 bits per band. If the image has more - than one band, the histograms for all bands are concatenated (for - example, the histogram for an "RGB" image contains 768 values). - - A bilevel image (mode "1") is treated as a grayscale ("L") image - by this method. - - If a mask is provided, the method returns a histogram for those - parts of the image where the mask image is non-zero. The mask - image must have the same size as the image, and be either a - bi-level image (mode "1") or a grayscale image ("L"). - - :param mask: An optional mask. - :param extrema: An optional tuple of manually-specified extrema. - :returns: A list containing pixel counts. - """ - self.load() - if mask: - mask.load() - return self.im.histogram((0, 0), mask.im) - if self.mode in ("I", "F"): - if extrema is None: - extrema = self.getextrema() - return self.im.histogram(extrema) - return self.im.histogram() - - def entropy(self, mask=None, extrema=None): - """ - Calculates and returns the entropy for the image. - - A bilevel image (mode "1") is treated as a grayscale ("L") - image by this method. - - If a mask is provided, the method employs the histogram for - those parts of the image where the mask image is non-zero. - The mask image must have the same size as the image, and be - either a bi-level image (mode "1") or a grayscale image ("L"). - - :param mask: An optional mask. - :param extrema: An optional tuple of manually-specified extrema. - :returns: A float value representing the image entropy - """ - self.load() - if mask: - mask.load() - return self.im.entropy((0, 0), mask.im) - if self.mode in ("I", "F"): - if extrema is None: - extrema = self.getextrema() - return self.im.entropy(extrema) - return self.im.entropy() - - def paste(self, im, box=None, mask=None) -> None: - """ - Pastes another image into this image. The box argument is either - a 2-tuple giving the upper left corner, a 4-tuple defining the - left, upper, right, and lower pixel coordinate, or None (same as - (0, 0)). See :ref:`coordinate-system`. If a 4-tuple is given, the size - of the pasted image must match the size of the region. - - If the modes don't match, the pasted image is converted to the mode of - this image (see the :py:meth:`~PIL.Image.Image.convert` method for - details). - - Instead of an image, the source can be a integer or tuple - containing pixel values. The method then fills the region - with the given color. When creating RGB images, you can - also use color strings as supported by the ImageColor module. - - If a mask is given, this method updates only the regions - indicated by the mask. You can use either "1", "L", "LA", "RGBA" - or "RGBa" images (if present, the alpha band is used as mask). - Where the mask is 255, the given image is copied as is. Where - the mask is 0, the current value is preserved. Intermediate - values will mix the two images together, including their alpha - channels if they have them. - - See :py:meth:`~PIL.Image.Image.alpha_composite` if you want to - combine images with respect to their alpha channels. - - :param im: Source image or pixel value (integer or tuple). - :param box: An optional 4-tuple giving the region to paste into. - If a 2-tuple is used instead, it's treated as the upper left - corner. If omitted or None, the source is pasted into the - upper left corner. - - If an image is given as the second argument and there is no - third, the box defaults to (0, 0), and the second argument - is interpreted as a mask image. - :param mask: An optional mask image. - """ - - if isImageType(box) and mask is None: - # abbreviated paste(im, mask) syntax - mask = box - box = None - - if box is None: - box = (0, 0) - - if len(box) == 2: - # upper left corner given; get size from image or mask - if isImageType(im): - size = im.size - elif isImageType(mask): - size = mask.size - else: - # FIXME: use self.size here? - msg = "cannot determine region size; use 4-item box" - raise ValueError(msg) - box += (box[0] + size[0], box[1] + size[1]) - - if isinstance(im, str): - from . import ImageColor - - im = ImageColor.getcolor(im, self.mode) - - elif isImageType(im): - im.load() - if self.mode != im.mode: - if self.mode != "RGB" or im.mode not in ("LA", "RGBA", "RGBa"): - # should use an adapter for this! - im = im.convert(self.mode) - im = im.im - - self._ensure_mutable() - - if mask: - mask.load() - self.im.paste(im, box, mask.im) - else: - self.im.paste(im, box) - - def alpha_composite(self, im, dest=(0, 0), source=(0, 0)): - """'In-place' analog of Image.alpha_composite. Composites an image - onto this image. - - :param im: image to composite over this one - :param dest: Optional 2 tuple (left, top) specifying the upper - left corner in this (destination) image. - :param source: Optional 2 (left, top) tuple for the upper left - corner in the overlay source image, or 4 tuple (left, top, right, - bottom) for the bounds of the source rectangle - - Performance Note: Not currently implemented in-place in the core layer. - """ - - if not isinstance(source, (list, tuple)): - msg = "Source must be a tuple" - raise ValueError(msg) - if not isinstance(dest, (list, tuple)): - msg = "Destination must be a tuple" - raise ValueError(msg) - if len(source) not in (2, 4): - msg = "Source must be a 2 or 4-tuple" - raise ValueError(msg) - if not len(dest) == 2: - msg = "Destination must be a 2-tuple" - raise ValueError(msg) - if min(source) < 0: - msg = "Source must be non-negative" - raise ValueError(msg) - - if len(source) == 2: - source = source + im.size - - # over image, crop if it's not the whole thing. - if source == (0, 0) + im.size: - overlay = im - else: - overlay = im.crop(source) - - # target for the paste - box = dest + (dest[0] + overlay.width, dest[1] + overlay.height) - - # destination image. don't copy if we're using the whole image. - if box == (0, 0) + self.size: - background = self - else: - background = self.crop(box) - - result = alpha_composite(background, overlay) - self.paste(result, box) - - def point(self, lut, mode=None): - """ - Maps this image through a lookup table or function. - - :param lut: A lookup table, containing 256 (or 65536 if - self.mode=="I" and mode == "L") values per band in the - image. A function can be used instead, it should take a - single argument. The function is called once for each - possible pixel value, and the resulting table is applied to - all bands of the image. - - It may also be an :py:class:`~PIL.Image.ImagePointHandler` - object:: - - class Example(Image.ImagePointHandler): - def point(self, data): - # Return result - :param mode: Output mode (default is same as input). In the - current version, this can only be used if the source image - has mode "L" or "P", and the output has mode "1" or the - source image mode is "I" and the output mode is "L". - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - self.load() - - if isinstance(lut, ImagePointHandler): - return lut.point(self) - - if callable(lut): - # if it isn't a list, it should be a function - if self.mode in ("I", "I;16", "F"): - # check if the function can be used with point_transform - # UNDONE wiredfool -- I think this prevents us from ever doing - # a gamma function point transform on > 8bit images. - scale, offset = _getscaleoffset(lut) - return self._new(self.im.point_transform(scale, offset)) - # for other modes, convert the function to a table - lut = [lut(i) for i in range(256)] * self.im.bands - - if self.mode == "F": - # FIXME: _imaging returns a confusing error message for this case - msg = "point operation not supported for this mode" - raise ValueError(msg) - - if mode != "F": - lut = [round(i) for i in lut] - return self._new(self.im.point(lut, mode)) - - def putalpha(self, alpha): - """ - Adds or replaces the alpha layer in this image. If the image - does not have an alpha layer, it's converted to "LA" or "RGBA". - The new layer must be either "L" or "1". - - :param alpha: The new alpha layer. This can either be an "L" or "1" - image having the same size as this image, or an integer or - other color value. - """ - - self._ensure_mutable() - - if self.mode not in ("LA", "PA", "RGBA"): - # attempt to promote self to a matching alpha mode - try: - mode = getmodebase(self.mode) + "A" - try: - self.im.setmode(mode) - except (AttributeError, ValueError) as e: - # do things the hard way - im = self.im.convert(mode) - if im.mode not in ("LA", "PA", "RGBA"): - msg = "alpha channel could not be added" - raise ValueError(msg) from e # sanity check - self.im = im - self.pyaccess = None - self._mode = self.im.mode - except KeyError as e: - msg = "illegal image mode" - raise ValueError(msg) from e - - if self.mode in ("LA", "PA"): - band = 1 - else: - band = 3 - - if isImageType(alpha): - # alpha layer - if alpha.mode not in ("1", "L"): - msg = "illegal image mode" - raise ValueError(msg) - alpha.load() - if alpha.mode == "1": - alpha = alpha.convert("L") - else: - # constant alpha - try: - self.im.fillband(band, alpha) - except (AttributeError, ValueError): - # do things the hard way - alpha = new("L", self.size, alpha) - else: - return - - self.im.putband(alpha.im, band) - - def putdata(self, data, scale=1.0, offset=0.0): - """ - Copies pixel data from a flattened sequence object into the image. The - values should start at the upper left corner (0, 0), continue to the - end of the line, followed directly by the first value of the second - line, and so on. Data will be read until either the image or the - sequence ends. The scale and offset values are used to adjust the - sequence values: **pixel = value*scale + offset**. - - :param data: A flattened sequence object. - :param scale: An optional scale value. The default is 1.0. - :param offset: An optional offset value. The default is 0.0. - """ - - self._ensure_mutable() - - self.im.putdata(data, scale, offset) - - def putpalette(self, data, rawmode="RGB"): - """ - Attaches a palette to this image. The image must be a "P", "PA", "L" - or "LA" image. - - The palette sequence must contain at most 256 colors, made up of one - integer value for each channel in the raw mode. - For example, if the raw mode is "RGB", then it can contain at most 768 - values, made up of red, green and blue values for the corresponding pixel - index in the 256 colors. - If the raw mode is "RGBA", then it can contain at most 1024 values, - containing red, green, blue and alpha values. - - Alternatively, an 8-bit string may be used instead of an integer sequence. - - :param data: A palette sequence (either a list or a string). - :param rawmode: The raw mode of the palette. Either "RGB", "RGBA", or a mode - that can be transformed to "RGB" or "RGBA" (e.g. "R", "BGR;15", "RGBA;L"). - """ - from . import ImagePalette - - if self.mode not in ("L", "LA", "P", "PA"): - msg = "illegal image mode" - raise ValueError(msg) - if isinstance(data, ImagePalette.ImagePalette): - palette = ImagePalette.raw(data.rawmode, data.palette) - else: - if not isinstance(data, bytes): - data = bytes(data) - palette = ImagePalette.raw(rawmode, data) - self._mode = "PA" if "A" in self.mode else "P" - self.palette = palette - self.palette.mode = "RGB" - self.load() # install new palette - - def putpixel(self, xy, value): - """ - Modifies the pixel at the given position. The color is given as - a single numerical value for single-band images, and a tuple for - multi-band images. In addition to this, RGB and RGBA tuples are - accepted for P and PA images. - - Note that this method is relatively slow. For more extensive changes, - use :py:meth:`~PIL.Image.Image.paste` or the :py:mod:`~PIL.ImageDraw` - module instead. - - See: - - * :py:meth:`~PIL.Image.Image.paste` - * :py:meth:`~PIL.Image.Image.putdata` - * :py:mod:`~PIL.ImageDraw` - - :param xy: The pixel coordinate, given as (x, y). See - :ref:`coordinate-system`. - :param value: The pixel value. - """ - - if self.readonly: - self._copy() - self.load() - - if self.pyaccess: - return self.pyaccess.putpixel(xy, value) - - if ( - self.mode in ("P", "PA") - and isinstance(value, (list, tuple)) - and len(value) in [3, 4] - ): - # RGB or RGBA value for a P or PA image - if self.mode == "PA": - alpha = value[3] if len(value) == 4 else 255 - value = value[:3] - value = self.palette.getcolor(value, self) - if self.mode == "PA": - value = (value, alpha) - return self.im.putpixel(xy, value) - - def remap_palette(self, dest_map, source_palette=None): - """ - Rewrites the image to reorder the palette. - - :param dest_map: A list of indexes into the original palette. - e.g. ``[1,0]`` would swap a two item palette, and ``list(range(256))`` - is the identity transform. - :param source_palette: Bytes or None. - :returns: An :py:class:`~PIL.Image.Image` object. - - """ - from . import ImagePalette - - if self.mode not in ("L", "P"): - msg = "illegal image mode" - raise ValueError(msg) - - bands = 3 - palette_mode = "RGB" - if source_palette is None: - if self.mode == "P": - self.load() - palette_mode = self.im.getpalettemode() - if palette_mode == "RGBA": - bands = 4 - source_palette = self.im.getpalette(palette_mode, palette_mode) - else: # L-mode - source_palette = bytearray(i // 3 for i in range(768)) - - palette_bytes = b"" - new_positions = [0] * 256 - - # pick only the used colors from the palette - for i, oldPosition in enumerate(dest_map): - palette_bytes += source_palette[ - oldPosition * bands : oldPosition * bands + bands - ] - new_positions[oldPosition] = i - - # replace the palette color id of all pixel with the new id - - # Palette images are [0..255], mapped through a 1 or 3 - # byte/color map. We need to remap the whole image - # from palette 1 to palette 2. New_positions is - # an array of indexes into palette 1. Palette 2 is - # palette 1 with any holes removed. - - # We're going to leverage the convert mechanism to use the - # C code to remap the image from palette 1 to palette 2, - # by forcing the source image into 'L' mode and adding a - # mapping 'L' mode palette, then converting back to 'L' - # sans palette thus converting the image bytes, then - # assigning the optimized RGB palette. - - # perf reference, 9500x4000 gif, w/~135 colors - # 14 sec prepatch, 1 sec postpatch with optimization forced. - - mapping_palette = bytearray(new_positions) - - m_im = self.copy() - m_im._mode = "P" - - m_im.palette = ImagePalette.ImagePalette( - palette_mode, palette=mapping_palette * bands - ) - # possibly set palette dirty, then - # m_im.putpalette(mapping_palette, 'L') # converts to 'P' - # or just force it. - # UNDONE -- this is part of the general issue with palettes - m_im.im.putpalette(palette_mode + ";L", m_im.palette.tobytes()) - - m_im = m_im.convert("L") - - m_im.putpalette(palette_bytes, palette_mode) - m_im.palette = ImagePalette.ImagePalette(palette_mode, palette=palette_bytes) - - if "transparency" in self.info: - try: - m_im.info["transparency"] = dest_map.index(self.info["transparency"]) - except ValueError: - if "transparency" in m_im.info: - del m_im.info["transparency"] - - return m_im - - def _get_safe_box(self, size, resample, box): - """Expands the box so it includes adjacent pixels - that may be used by resampling with the given resampling filter. - """ - filter_support = _filters_support[resample] - 0.5 - scale_x = (box[2] - box[0]) / size[0] - scale_y = (box[3] - box[1]) / size[1] - support_x = filter_support * scale_x - support_y = filter_support * scale_y - - return ( - max(0, int(box[0] - support_x)), - max(0, int(box[1] - support_y)), - min(self.size[0], math.ceil(box[2] + support_x)), - min(self.size[1], math.ceil(box[3] + support_y)), - ) - - def resize(self, size, resample=None, box=None, reducing_gap=None): - """ - Returns a resized copy of this image. - - :param size: The requested size in pixels, as a 2-tuple: - (width, height). - :param resample: An optional resampling filter. This can be - one of :py:data:`Resampling.NEAREST`, :py:data:`Resampling.BOX`, - :py:data:`Resampling.BILINEAR`, :py:data:`Resampling.HAMMING`, - :py:data:`Resampling.BICUBIC` or :py:data:`Resampling.LANCZOS`. - If the image has mode "1" or "P", it is always set to - :py:data:`Resampling.NEAREST`. If the image mode specifies a number - of bits, such as "I;16", then the default filter is - :py:data:`Resampling.NEAREST`. Otherwise, the default filter is - :py:data:`Resampling.BICUBIC`. See: :ref:`concept-filters`. - :param box: An optional 4-tuple of floats providing - the source image region to be scaled. - The values must be within (0, 0, width, height) rectangle. - If omitted or None, the entire source is used. - :param reducing_gap: Apply optimization by resizing the image - in two steps. First, reducing the image by integer times - using :py:meth:`~PIL.Image.Image.reduce`. - Second, resizing using regular resampling. The last step - changes size no less than by ``reducing_gap`` times. - ``reducing_gap`` may be None (no first step is performed) - or should be greater than 1.0. The bigger ``reducing_gap``, - the closer the result to the fair resampling. - The smaller ``reducing_gap``, the faster resizing. - With ``reducing_gap`` greater or equal to 3.0, the result is - indistinguishable from fair resampling in most cases. - The default value is None (no optimization). - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - if resample is None: - type_special = ";" in self.mode - resample = Resampling.NEAREST if type_special else Resampling.BICUBIC - elif resample not in ( - Resampling.NEAREST, - Resampling.BILINEAR, - Resampling.BICUBIC, - Resampling.LANCZOS, - Resampling.BOX, - Resampling.HAMMING, - ): - msg = f"Unknown resampling filter ({resample})." - - filters = [ - f"{filter[1]} ({filter[0]})" - for filter in ( - (Resampling.NEAREST, "Image.Resampling.NEAREST"), - (Resampling.LANCZOS, "Image.Resampling.LANCZOS"), - (Resampling.BILINEAR, "Image.Resampling.BILINEAR"), - (Resampling.BICUBIC, "Image.Resampling.BICUBIC"), - (Resampling.BOX, "Image.Resampling.BOX"), - (Resampling.HAMMING, "Image.Resampling.HAMMING"), - ) - ] - msg += " Use " + ", ".join(filters[:-1]) + " or " + filters[-1] - raise ValueError(msg) - - if reducing_gap is not None and reducing_gap < 1.0: - msg = "reducing_gap must be 1.0 or greater" - raise ValueError(msg) - - size = tuple(size) - - self.load() - if box is None: - box = (0, 0) + self.size - else: - box = tuple(box) - - if self.size == size and box == (0, 0) + self.size: - return self.copy() - - if self.mode in ("1", "P"): - resample = Resampling.NEAREST - - if self.mode in ["LA", "RGBA"] and resample != Resampling.NEAREST: - im = self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) - im = im.resize(size, resample, box) - return im.convert(self.mode) - - self.load() - - if reducing_gap is not None and resample != Resampling.NEAREST: - factor_x = int((box[2] - box[0]) / size[0] / reducing_gap) or 1 - factor_y = int((box[3] - box[1]) / size[1] / reducing_gap) or 1 - if factor_x > 1 or factor_y > 1: - reduce_box = self._get_safe_box(size, resample, box) - factor = (factor_x, factor_y) - if callable(self.reduce): - self = self.reduce(factor, box=reduce_box) - else: - self = Image.reduce(self, factor, box=reduce_box) - box = ( - (box[0] - reduce_box[0]) / factor_x, - (box[1] - reduce_box[1]) / factor_y, - (box[2] - reduce_box[0]) / factor_x, - (box[3] - reduce_box[1]) / factor_y, - ) - - return self._new(self.im.resize(size, resample, box)) - - def reduce(self, factor, box=None): - """ - Returns a copy of the image reduced ``factor`` times. - If the size of the image is not dividable by ``factor``, - the resulting size will be rounded up. - - :param factor: A greater than 0 integer or tuple of two integers - for width and height separately. - :param box: An optional 4-tuple of ints providing - the source image region to be reduced. - The values must be within ``(0, 0, width, height)`` rectangle. - If omitted or ``None``, the entire source is used. - """ - if not isinstance(factor, (list, tuple)): - factor = (factor, factor) - - if box is None: - box = (0, 0) + self.size - else: - box = tuple(box) - - if factor == (1, 1) and box == (0, 0) + self.size: - return self.copy() - - if self.mode in ["LA", "RGBA"]: - im = self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) - im = im.reduce(factor, box) - return im.convert(self.mode) - - self.load() - - return self._new(self.im.reduce(factor, box)) - - def rotate( - self, - angle, - resample=Resampling.NEAREST, - expand=0, - center=None, - translate=None, - fillcolor=None, - ): - """ - Returns a rotated copy of this image. This method returns a - copy of this image, rotated the given number of degrees counter - clockwise around its centre. - - :param angle: In degrees counter clockwise. - :param resample: An optional resampling filter. This can be - one of :py:data:`Resampling.NEAREST` (use nearest neighbour), - :py:data:`Resampling.BILINEAR` (linear interpolation in a 2x2 - environment), or :py:data:`Resampling.BICUBIC` (cubic spline - interpolation in a 4x4 environment). If omitted, or if the image has - mode "1" or "P", it is set to :py:data:`Resampling.NEAREST`. - See :ref:`concept-filters`. - :param expand: Optional expansion flag. If true, expands the output - image to make it large enough to hold the entire rotated image. - If false or omitted, make the output image the same size as the - input image. Note that the expand flag assumes rotation around - the center and no translation. - :param center: Optional center of rotation (a 2-tuple). Origin is - the upper left corner. Default is the center of the image. - :param translate: An optional post-rotate translation (a 2-tuple). - :param fillcolor: An optional color for area outside the rotated image. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - angle = angle % 360.0 - - # Fast paths regardless of filter, as long as we're not - # translating or changing the center. - if not (center or translate): - if angle == 0: - return self.copy() - if angle == 180: - return self.transpose(Transpose.ROTATE_180) - if angle in (90, 270) and (expand or self.width == self.height): - return self.transpose( - Transpose.ROTATE_90 if angle == 90 else Transpose.ROTATE_270 - ) - - # Calculate the affine matrix. Note that this is the reverse - # transformation (from destination image to source) because we - # want to interpolate the (discrete) destination pixel from - # the local area around the (floating) source pixel. - - # The matrix we actually want (note that it operates from the right): - # (1, 0, tx) (1, 0, cx) ( cos a, sin a, 0) (1, 0, -cx) - # (0, 1, ty) * (0, 1, cy) * (-sin a, cos a, 0) * (0, 1, -cy) - # (0, 0, 1) (0, 0, 1) ( 0, 0, 1) (0, 0, 1) - - # The reverse matrix is thus: - # (1, 0, cx) ( cos -a, sin -a, 0) (1, 0, -cx) (1, 0, -tx) - # (0, 1, cy) * (-sin -a, cos -a, 0) * (0, 1, -cy) * (0, 1, -ty) - # (0, 0, 1) ( 0, 0, 1) (0, 0, 1) (0, 0, 1) - - # In any case, the final translation may be updated at the end to - # compensate for the expand flag. - - w, h = self.size - - if translate is None: - post_trans = (0, 0) - else: - post_trans = translate - if center is None: - # FIXME These should be rounded to ints? - rotn_center = (w / 2.0, h / 2.0) - else: - rotn_center = center - - angle = -math.radians(angle) - matrix = [ - round(math.cos(angle), 15), - round(math.sin(angle), 15), - 0.0, - round(-math.sin(angle), 15), - round(math.cos(angle), 15), - 0.0, - ] - - def transform(x, y, matrix): - (a, b, c, d, e, f) = matrix - return a * x + b * y + c, d * x + e * y + f - - matrix[2], matrix[5] = transform( - -rotn_center[0] - post_trans[0], -rotn_center[1] - post_trans[1], matrix - ) - matrix[2] += rotn_center[0] - matrix[5] += rotn_center[1] - - if expand: - # calculate output size - xx = [] - yy = [] - for x, y in ((0, 0), (w, 0), (w, h), (0, h)): - x, y = transform(x, y, matrix) - xx.append(x) - yy.append(y) - nw = math.ceil(max(xx)) - math.floor(min(xx)) - nh = math.ceil(max(yy)) - math.floor(min(yy)) - - # We multiply a translation matrix from the right. Because of its - # special form, this is the same as taking the image of the - # translation vector as new translation vector. - matrix[2], matrix[5] = transform(-(nw - w) / 2.0, -(nh - h) / 2.0, matrix) - w, h = nw, nh - - return self.transform( - (w, h), Transform.AFFINE, matrix, resample, fillcolor=fillcolor - ) - - def save(self, fp, format=None, **params) -> None: - """ - Saves this image under the given filename. If no format is - specified, the format to use is determined from the filename - extension, if possible. - - Keyword options can be used to provide additional instructions - to the writer. If a writer doesn't recognise an option, it is - silently ignored. The available options are described in the - :doc:`image format documentation - <../handbook/image-file-formats>` for each writer. - - You can use a file object instead of a filename. In this case, - you must always specify the format. The file object must - implement the ``seek``, ``tell``, and ``write`` - methods, and be opened in binary mode. - - :param fp: A filename (string), pathlib.Path object or file object. - :param format: Optional format override. If omitted, the - format to use is determined from the filename extension. - If a file object was used instead of a filename, this - parameter should always be used. - :param params: Extra parameters to the image writer. - :returns: None - :exception ValueError: If the output format could not be determined - from the file name. Use the format option to solve this. - :exception OSError: If the file could not be written. The file - may have been created, and may contain partial data. - """ - - filename = "" - open_fp = False - if isinstance(fp, Path): - filename = str(fp) - open_fp = True - elif is_path(fp): - filename = fp - open_fp = True - elif fp == sys.stdout: - try: - fp = sys.stdout.buffer - except AttributeError: - pass - if not filename and hasattr(fp, "name") and is_path(fp.name): - # only set the name for metadata purposes - filename = fp.name - - # may mutate self! - self._ensure_mutable() - - save_all = params.pop("save_all", False) - self.encoderinfo = params - self.encoderconfig = () - - preinit() - - ext = os.path.splitext(filename)[1].lower() - - if not format: - if ext not in EXTENSION: - init() - try: - format = EXTENSION[ext] - except KeyError as e: - msg = f"unknown file extension: {ext}" - raise ValueError(msg) from e - - if format.upper() not in SAVE: - init() - if save_all: - save_handler = SAVE_ALL[format.upper()] - else: - save_handler = SAVE[format.upper()] - - created = False - if open_fp: - created = not os.path.exists(filename) - if params.get("append", False): - # Open also for reading ("+"), because TIFF save_all - # writer needs to go back and edit the written data. - fp = builtins.open(filename, "r+b") - else: - fp = builtins.open(filename, "w+b") - - try: - save_handler(self, fp, filename) - except Exception: - if open_fp: - fp.close() - if created: - try: - os.remove(filename) - except PermissionError: - pass - raise - if open_fp: - fp.close() - - def seek(self, frame) -> Image: - """ - Seeks to the given frame in this sequence file. If you seek - beyond the end of the sequence, the method raises an - ``EOFError`` exception. When a sequence file is opened, the - library automatically seeks to frame 0. - - See :py:meth:`~PIL.Image.Image.tell`. - - If defined, :attr:`~PIL.Image.Image.n_frames` refers to the - number of available frames. - - :param frame: Frame number, starting at 0. - :exception EOFError: If the call attempts to seek beyond the end - of the sequence. - """ - - # overridden by file handlers - if frame != 0: - msg = "no more images in file" - raise EOFError(msg) - - def show(self, title=None): - """ - Displays this image. This method is mainly intended for debugging purposes. - - This method calls :py:func:`PIL.ImageShow.show` internally. You can use - :py:func:`PIL.ImageShow.register` to override its default behaviour. - - The image is first saved to a temporary file. By default, it will be in - PNG format. - - On Unix, the image is then opened using the **xdg-open**, **display**, - **gm**, **eog** or **xv** utility, depending on which one can be found. - - On macOS, the image is opened with the native Preview application. - - On Windows, the image is opened with the standard PNG display utility. - - :param title: Optional title to use for the image window, where possible. - """ - - _show(self, title=title) - - def split(self): - """ - Split this image into individual bands. This method returns a - tuple of individual image bands from an image. For example, - splitting an "RGB" image creates three new images each - containing a copy of one of the original bands (red, green, - blue). - - If you need only one band, :py:meth:`~PIL.Image.Image.getchannel` - method can be more convenient and faster. - - :returns: A tuple containing bands. - """ - - self.load() - if self.im.bands == 1: - ims = [self.copy()] - else: - ims = map(self._new, self.im.split()) - return tuple(ims) - - def getchannel(self, channel): - """ - Returns an image containing a single channel of the source image. - - :param channel: What channel to return. Could be index - (0 for "R" channel of "RGB") or channel name - ("A" for alpha channel of "RGBA"). - :returns: An image in "L" mode. - - .. versionadded:: 4.3.0 - """ - self.load() - - if isinstance(channel, str): - try: - channel = self.getbands().index(channel) - except ValueError as e: - msg = f'The image has no channel "{channel}"' - raise ValueError(msg) from e - - return self._new(self.im.getband(channel)) - - def tell(self) -> int: - """ - Returns the current frame number. See :py:meth:`~PIL.Image.Image.seek`. - - If defined, :attr:`~PIL.Image.Image.n_frames` refers to the - number of available frames. - - :returns: Frame number, starting with 0. - """ - return 0 - - def thumbnail(self, size, resample=Resampling.BICUBIC, reducing_gap=2.0): - """ - Make this image into a thumbnail. This method modifies the - image to contain a thumbnail version of itself, no larger than - the given size. This method calculates an appropriate thumbnail - size to preserve the aspect of the image, calls the - :py:meth:`~PIL.Image.Image.draft` method to configure the file reader - (where applicable), and finally resizes the image. - - Note that this function modifies the :py:class:`~PIL.Image.Image` - object in place. If you need to use the full resolution image as well, - apply this method to a :py:meth:`~PIL.Image.Image.copy` of the original - image. - - :param size: The requested size in pixels, as a 2-tuple: - (width, height). - :param resample: Optional resampling filter. This can be one - of :py:data:`Resampling.NEAREST`, :py:data:`Resampling.BOX`, - :py:data:`Resampling.BILINEAR`, :py:data:`Resampling.HAMMING`, - :py:data:`Resampling.BICUBIC` or :py:data:`Resampling.LANCZOS`. - If omitted, it defaults to :py:data:`Resampling.BICUBIC`. - (was :py:data:`Resampling.NEAREST` prior to version 2.5.0). - See: :ref:`concept-filters`. - :param reducing_gap: Apply optimization by resizing the image - in two steps. First, reducing the image by integer times - using :py:meth:`~PIL.Image.Image.reduce` or - :py:meth:`~PIL.Image.Image.draft` for JPEG images. - Second, resizing using regular resampling. The last step - changes size no less than by ``reducing_gap`` times. - ``reducing_gap`` may be None (no first step is performed) - or should be greater than 1.0. The bigger ``reducing_gap``, - the closer the result to the fair resampling. - The smaller ``reducing_gap``, the faster resizing. - With ``reducing_gap`` greater or equal to 3.0, the result is - indistinguishable from fair resampling in most cases. - The default value is 2.0 (very close to fair resampling - while still being faster in many cases). - :returns: None - """ - - provided_size = tuple(map(math.floor, size)) - - def preserve_aspect_ratio(): - def round_aspect(number, key): - return max(min(math.floor(number), math.ceil(number), key=key), 1) - - x, y = provided_size - if x >= self.width and y >= self.height: - return - - aspect = self.width / self.height - if x / y >= aspect: - x = round_aspect(y * aspect, key=lambda n: abs(aspect - n / y)) - else: - y = round_aspect( - x / aspect, key=lambda n: 0 if n == 0 else abs(aspect - x / n) - ) - return x, y - - box = None - if reducing_gap is not None: - size = preserve_aspect_ratio() - if size is None: - return - - res = self.draft(None, (size[0] * reducing_gap, size[1] * reducing_gap)) - if res is not None: - box = res[1] - if box is None: - self.load() - - # load() may have changed the size of the image - size = preserve_aspect_ratio() - if size is None: - return - - if self.size != size: - im = self.resize(size, resample, box=box, reducing_gap=reducing_gap) - - self.im = im.im - self._size = size - self._mode = self.im.mode - - self.readonly = 0 - self.pyaccess = None - - # FIXME: the different transform methods need further explanation - # instead of bloating the method docs, add a separate chapter. - def transform( - self, - size, - method, - data=None, - resample=Resampling.NEAREST, - fill=1, - fillcolor=None, - ) -> Image: - """ - Transforms this image. This method creates a new image with the - given size, and the same mode as the original, and copies data - to the new image using the given transform. - - :param size: The output size in pixels, as a 2-tuple: - (width, height). - :param method: The transformation method. This is one of - :py:data:`Transform.EXTENT` (cut out a rectangular subregion), - :py:data:`Transform.AFFINE` (affine transform), - :py:data:`Transform.PERSPECTIVE` (perspective transform), - :py:data:`Transform.QUAD` (map a quadrilateral to a rectangle), or - :py:data:`Transform.MESH` (map a number of source quadrilaterals - in one operation). - - It may also be an :py:class:`~PIL.Image.ImageTransformHandler` - object:: - - class Example(Image.ImageTransformHandler): - def transform(self, size, data, resample, fill=1): - # Return result - - It may also be an object with a ``method.getdata`` method - that returns a tuple supplying new ``method`` and ``data`` values:: - - class Example: - def getdata(self): - method = Image.Transform.EXTENT - data = (0, 0, 100, 100) - return method, data - :param data: Extra data to the transformation method. - :param resample: Optional resampling filter. It can be one of - :py:data:`Resampling.NEAREST` (use nearest neighbour), - :py:data:`Resampling.BILINEAR` (linear interpolation in a 2x2 - environment), or :py:data:`Resampling.BICUBIC` (cubic spline - interpolation in a 4x4 environment). If omitted, or if the image - has mode "1" or "P", it is set to :py:data:`Resampling.NEAREST`. - See: :ref:`concept-filters`. - :param fill: If ``method`` is an - :py:class:`~PIL.Image.ImageTransformHandler` object, this is one of - the arguments passed to it. Otherwise, it is unused. - :param fillcolor: Optional fill color for the area outside the - transform in the output image. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - if self.mode in ("LA", "RGBA") and resample != Resampling.NEAREST: - return ( - self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) - .transform(size, method, data, resample, fill, fillcolor) - .convert(self.mode) - ) - - if isinstance(method, ImageTransformHandler): - return method.transform(size, self, resample=resample, fill=fill) - - if hasattr(method, "getdata"): - # compatibility w. old-style transform objects - method, data = method.getdata() - - if data is None: - msg = "missing method data" - raise ValueError(msg) - - im = new(self.mode, size, fillcolor) - if self.mode == "P" and self.palette: - im.palette = self.palette.copy() - im.info = self.info.copy() - if method == Transform.MESH: - # list of quads - for box, quad in data: - im.__transformer( - box, self, Transform.QUAD, quad, resample, fillcolor is None - ) - else: - im.__transformer( - (0, 0) + size, self, method, data, resample, fillcolor is None - ) - - return im - - def __transformer( - self, box, image, method, data, resample=Resampling.NEAREST, fill=1 - ): - w = box[2] - box[0] - h = box[3] - box[1] - - if method == Transform.AFFINE: - data = data[:6] - - elif method == Transform.EXTENT: - # convert extent to an affine transform - x0, y0, x1, y1 = data - xs = (x1 - x0) / w - ys = (y1 - y0) / h - method = Transform.AFFINE - data = (xs, 0, x0, 0, ys, y0) - - elif method == Transform.PERSPECTIVE: - data = data[:8] - - elif method == Transform.QUAD: - # quadrilateral warp. data specifies the four corners - # given as NW, SW, SE, and NE. - nw = data[:2] - sw = data[2:4] - se = data[4:6] - ne = data[6:8] - x0, y0 = nw - As = 1.0 / w - At = 1.0 / h - data = ( - x0, - (ne[0] - x0) * As, - (sw[0] - x0) * At, - (se[0] - sw[0] - ne[0] + x0) * As * At, - y0, - (ne[1] - y0) * As, - (sw[1] - y0) * At, - (se[1] - sw[1] - ne[1] + y0) * As * At, - ) - - else: - msg = "unknown transformation method" - raise ValueError(msg) - - if resample not in ( - Resampling.NEAREST, - Resampling.BILINEAR, - Resampling.BICUBIC, - ): - if resample in (Resampling.BOX, Resampling.HAMMING, Resampling.LANCZOS): - msg = { - Resampling.BOX: "Image.Resampling.BOX", - Resampling.HAMMING: "Image.Resampling.HAMMING", - Resampling.LANCZOS: "Image.Resampling.LANCZOS", - }[resample] + f" ({resample}) cannot be used." - else: - msg = f"Unknown resampling filter ({resample})." - - filters = [ - f"{filter[1]} ({filter[0]})" - for filter in ( - (Resampling.NEAREST, "Image.Resampling.NEAREST"), - (Resampling.BILINEAR, "Image.Resampling.BILINEAR"), - (Resampling.BICUBIC, "Image.Resampling.BICUBIC"), - ) - ] - msg += " Use " + ", ".join(filters[:-1]) + " or " + filters[-1] - raise ValueError(msg) - - image.load() - - self.load() - - if image.mode in ("1", "P"): - resample = Resampling.NEAREST - - self.im.transform2(box, image.im, method, data, resample, fill) - - def transpose(self, method): - """ - Transpose image (flip or rotate in 90 degree steps) - - :param method: One of :py:data:`Transpose.FLIP_LEFT_RIGHT`, - :py:data:`Transpose.FLIP_TOP_BOTTOM`, :py:data:`Transpose.ROTATE_90`, - :py:data:`Transpose.ROTATE_180`, :py:data:`Transpose.ROTATE_270`, - :py:data:`Transpose.TRANSPOSE` or :py:data:`Transpose.TRANSVERSE`. - :returns: Returns a flipped or rotated copy of this image. - """ - - self.load() - return self._new(self.im.transpose(method)) - - def effect_spread(self, distance): - """ - Randomly spread pixels in an image. - - :param distance: Distance to spread pixels. - """ - self.load() - return self._new(self.im.effect_spread(distance)) - - def toqimage(self): - """Returns a QImage copy of this image""" - from . import ImageQt - - if not ImageQt.qt_is_installed: - msg = "Qt bindings are not installed" - raise ImportError(msg) - return ImageQt.toqimage(self) - - def toqpixmap(self): - """Returns a QPixmap copy of this image""" - from . import ImageQt - - if not ImageQt.qt_is_installed: - msg = "Qt bindings are not installed" - raise ImportError(msg) - return ImageQt.toqpixmap(self) - - -# -------------------------------------------------------------------- -# Abstract handlers. - - -class ImagePointHandler: - """ - Used as a mixin by point transforms - (for use with :py:meth:`~PIL.Image.Image.point`) - """ - - pass - - -class ImageTransformHandler: - """ - Used as a mixin by geometry transforms - (for use with :py:meth:`~PIL.Image.Image.transform`) - """ - - pass - - -# -------------------------------------------------------------------- -# Factories - -# -# Debugging - - -def _wedge(): - """Create grayscale wedge (for debugging only)""" - - return Image()._new(core.wedge("L")) - - -def _check_size(size): - """ - Common check to enforce type and sanity check on size tuples - - :param size: Should be a 2 tuple of (width, height) - :returns: True, or raises a ValueError - """ - - if not isinstance(size, (list, tuple)): - msg = "Size must be a tuple" - raise ValueError(msg) - if len(size) != 2: - msg = "Size must be a tuple of length 2" - raise ValueError(msg) - if size[0] < 0 or size[1] < 0: - msg = "Width and height must be >= 0" - raise ValueError(msg) - - return True - - -def new(mode, size, color=0) -> Image: - """ - Creates a new image with the given mode and size. - - :param mode: The mode to use for the new image. See: - :ref:`concept-modes`. - :param size: A 2-tuple, containing (width, height) in pixels. - :param color: What color to use for the image. Default is black. - If given, this should be a single integer or floating point value - for single-band modes, and a tuple for multi-band modes (one value - per band). When creating RGB or HSV images, you can also use color - strings as supported by the ImageColor module. If the color is - None, the image is not initialised. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - _check_size(size) - - if color is None: - # don't initialize - return Image()._new(core.new(mode, size)) - - if isinstance(color, str): - # css3-style specifier - - from . import ImageColor - - color = ImageColor.getcolor(color, mode) - - im = Image() - if mode == "P" and isinstance(color, (list, tuple)) and len(color) in [3, 4]: - # RGB or RGBA value for a P image - from . import ImagePalette - - im.palette = ImagePalette.ImagePalette() - color = im.palette.getcolor(color) - return im._new(core.fill(mode, size, color)) - - -def frombytes(mode, size, data, decoder_name="raw", *args) -> Image: - """ - Creates a copy of an image memory from pixel data in a buffer. - - In its simplest form, this function takes three arguments - (mode, size, and unpacked pixel data). - - You can also use any pixel decoder supported by PIL. For more - information on available decoders, see the section - :ref:`Writing Your Own File Codec `. - - Note that this function decodes pixel data only, not entire images. - If you have an entire image in a string, wrap it in a - :py:class:`~io.BytesIO` object, and use :py:func:`~PIL.Image.open` to load - it. - - :param mode: The image mode. See: :ref:`concept-modes`. - :param size: The image size. - :param data: A byte buffer containing raw data for the given mode. - :param decoder_name: What decoder to use. - :param args: Additional parameters for the given decoder. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - _check_size(size) - - im = new(mode, size) - if im.width != 0 and im.height != 0: - # may pass tuple instead of argument list - if len(args) == 1 and isinstance(args[0], tuple): - args = args[0] - - if decoder_name == "raw" and args == (): - args = mode - - im.frombytes(data, decoder_name, args) - return im - - -def frombuffer(mode, size, data, decoder_name="raw", *args): - """ - Creates an image memory referencing pixel data in a byte buffer. - - This function is similar to :py:func:`~PIL.Image.frombytes`, but uses data - in the byte buffer, where possible. This means that changes to the - original buffer object are reflected in this image). Not all modes can - share memory; supported modes include "L", "RGBX", "RGBA", and "CMYK". - - Note that this function decodes pixel data only, not entire images. - If you have an entire image file in a string, wrap it in a - :py:class:`~io.BytesIO` object, and use :py:func:`~PIL.Image.open` to load it. - - In the current version, the default parameters used for the "raw" decoder - differs from that used for :py:func:`~PIL.Image.frombytes`. This is a - bug, and will probably be fixed in a future release. The current release - issues a warning if you do this; to disable the warning, you should provide - the full set of parameters. See below for details. - - :param mode: The image mode. See: :ref:`concept-modes`. - :param size: The image size. - :param data: A bytes or other buffer object containing raw - data for the given mode. - :param decoder_name: What decoder to use. - :param args: Additional parameters for the given decoder. For the - default encoder ("raw"), it's recommended that you provide the - full set of parameters:: - - frombuffer(mode, size, data, "raw", mode, 0, 1) - - :returns: An :py:class:`~PIL.Image.Image` object. - - .. versionadded:: 1.1.4 - """ - - _check_size(size) - - # may pass tuple instead of argument list - if len(args) == 1 and isinstance(args[0], tuple): - args = args[0] - - if decoder_name == "raw": - if args == (): - args = mode, 0, 1 - if args[0] in _MAPMODES: - im = new(mode, (0, 0)) - im = im._new(core.map_buffer(data, size, decoder_name, 0, args)) - if mode == "P": - from . import ImagePalette - - im.palette = ImagePalette.ImagePalette("RGB", im.im.getpalette("RGB")) - im.readonly = 1 - return im - - return frombytes(mode, size, data, decoder_name, args) - - -def fromarray(obj, mode=None): - """ - Creates an image memory from an object exporting the array interface - (using the buffer protocol):: - - from PIL import Image - import numpy as np - a = np.zeros((5, 5)) - im = Image.fromarray(a) - - If ``obj`` is not contiguous, then the ``tobytes`` method is called - and :py:func:`~PIL.Image.frombuffer` is used. - - In the case of NumPy, be aware that Pillow modes do not always correspond - to NumPy dtypes. Pillow modes only offer 1-bit pixels, 8-bit pixels, - 32-bit signed integer pixels, and 32-bit floating point pixels. - - Pillow images can also be converted to arrays:: - - from PIL import Image - import numpy as np - im = Image.open("hopper.jpg") - a = np.asarray(im) - - When converting Pillow images to arrays however, only pixel values are - transferred. This means that P and PA mode images will lose their palette. - - :param obj: Object with array interface - :param mode: Optional mode to use when reading ``obj``. Will be determined from - type if ``None``. - - This will not be used to convert the data after reading, but will be used to - change how the data is read:: - - from PIL import Image - import numpy as np - a = np.full((1, 1), 300) - im = Image.fromarray(a, mode="L") - im.getpixel((0, 0)) # 44 - im = Image.fromarray(a, mode="RGB") - im.getpixel((0, 0)) # (44, 1, 0) - - See: :ref:`concept-modes` for general information about modes. - :returns: An image object. - - .. versionadded:: 1.1.6 - """ - arr = obj.__array_interface__ - shape = arr["shape"] - ndim = len(shape) - strides = arr.get("strides", None) - if mode is None: - try: - typekey = (1, 1) + shape[2:], arr["typestr"] - except KeyError as e: - msg = "Cannot handle this data type" - raise TypeError(msg) from e - try: - mode, rawmode = _fromarray_typemap[typekey] - except KeyError as e: - typekey_shape, typestr = typekey - msg = f"Cannot handle this data type: {typekey_shape}, {typestr}" - raise TypeError(msg) from e - else: - rawmode = mode - if mode in ["1", "L", "I", "P", "F"]: - ndmax = 2 - elif mode == "RGB": - ndmax = 3 - else: - ndmax = 4 - if ndim > ndmax: - msg = f"Too many dimensions: {ndim} > {ndmax}." - raise ValueError(msg) - - size = 1 if ndim == 1 else shape[1], shape[0] - if strides is not None: - if hasattr(obj, "tobytes"): - obj = obj.tobytes() - else: - obj = obj.tostring() - - return frombuffer(mode, size, obj, "raw", rawmode, 0, 1) - - -def fromqimage(im): - """Creates an image instance from a QImage image""" - from . import ImageQt - - if not ImageQt.qt_is_installed: - msg = "Qt bindings are not installed" - raise ImportError(msg) - return ImageQt.fromqimage(im) - - -def fromqpixmap(im): - """Creates an image instance from a QPixmap image""" - from . import ImageQt - - if not ImageQt.qt_is_installed: - msg = "Qt bindings are not installed" - raise ImportError(msg) - return ImageQt.fromqpixmap(im) - - -_fromarray_typemap = { - # (shape, typestr) => mode, rawmode - # first two members of shape are set to one - ((1, 1), "|b1"): ("1", "1;8"), - ((1, 1), "|u1"): ("L", "L"), - ((1, 1), "|i1"): ("I", "I;8"), - ((1, 1), "u2"): ("I", "I;16B"), - ((1, 1), "i2"): ("I", "I;16BS"), - ((1, 1), "u4"): ("I", "I;32B"), - ((1, 1), "i4"): ("I", "I;32BS"), - ((1, 1), "f4"): ("F", "F;32BF"), - ((1, 1), "f8"): ("F", "F;64BF"), - ((1, 1, 2), "|u1"): ("LA", "LA"), - ((1, 1, 3), "|u1"): ("RGB", "RGB"), - ((1, 1, 4), "|u1"): ("RGBA", "RGBA"), - # shortcuts: - ((1, 1), _ENDIAN + "i4"): ("I", "I"), - ((1, 1), _ENDIAN + "f4"): ("F", "F"), -} - - -def _decompression_bomb_check(size): - if MAX_IMAGE_PIXELS is None: - return - - pixels = max(1, size[0]) * max(1, size[1]) - - if pixels > 2 * MAX_IMAGE_PIXELS: - msg = ( - f"Image size ({pixels} pixels) exceeds limit of {2 * MAX_IMAGE_PIXELS} " - "pixels, could be decompression bomb DOS attack." - ) - raise DecompressionBombError(msg) - - if pixels > MAX_IMAGE_PIXELS: - warnings.warn( - f"Image size ({pixels} pixels) exceeds limit of {MAX_IMAGE_PIXELS} pixels, " - "could be decompression bomb DOS attack.", - DecompressionBombWarning, - ) - - -def open(fp, mode="r", formats=None) -> Image: - """ - Opens and identifies the given image file. - - This is a lazy operation; this function identifies the file, but - the file remains open and the actual image data is not read from - the file until you try to process the data (or call the - :py:meth:`~PIL.Image.Image.load` method). See - :py:func:`~PIL.Image.new`. See :ref:`file-handling`. - - :param fp: A filename (string), pathlib.Path object or a file object. - The file object must implement ``file.read``, - ``file.seek``, and ``file.tell`` methods, - and be opened in binary mode. The file object will also seek to zero - before reading. - :param mode: The mode. If given, this argument must be "r". - :param formats: A list or tuple of formats to attempt to load the file in. - This can be used to restrict the set of formats checked. - Pass ``None`` to try all supported formats. You can print the set of - available formats by running ``python3 -m PIL`` or using - the :py:func:`PIL.features.pilinfo` function. - :returns: An :py:class:`~PIL.Image.Image` object. - :exception FileNotFoundError: If the file cannot be found. - :exception PIL.UnidentifiedImageError: If the image cannot be opened and - identified. - :exception ValueError: If the ``mode`` is not "r", or if a ``StringIO`` - instance is used for ``fp``. - :exception TypeError: If ``formats`` is not ``None``, a list or a tuple. - """ - - if mode != "r": - msg = f"bad mode {repr(mode)}" - raise ValueError(msg) - elif isinstance(fp, io.StringIO): - msg = ( - "StringIO cannot be used to open an image. " - "Binary data must be used instead." - ) - raise ValueError(msg) - - if formats is None: - formats = ID - elif not isinstance(formats, (list, tuple)): - msg = "formats must be a list or tuple" - raise TypeError(msg) - - exclusive_fp = False - filename = "" - if isinstance(fp, Path): - filename = str(fp.resolve()) - elif is_path(fp): - filename = fp - - if filename: - fp = builtins.open(filename, "rb") - exclusive_fp = True - - try: - fp.seek(0) - except (AttributeError, io.UnsupportedOperation): - fp = io.BytesIO(fp.read()) - exclusive_fp = True - - prefix = fp.read(16) - - preinit() - - accept_warnings = [] - - def _open_core(fp, filename, prefix, formats): - for i in formats: - i = i.upper() - if i not in OPEN: - init() - try: - factory, accept = OPEN[i] - result = not accept or accept(prefix) - if type(result) in [str, bytes]: - accept_warnings.append(result) - elif result: - fp.seek(0) - im = factory(fp, filename) - _decompression_bomb_check(im.size) - return im - except (SyntaxError, IndexError, TypeError, struct.error): - # Leave disabled by default, spams the logs with image - # opening failures that are entirely expected. - # logger.debug("", exc_info=True) - continue - except BaseException: - if exclusive_fp: - fp.close() - raise - return None - - im = _open_core(fp, filename, prefix, formats) - - if im is None and formats is ID: - checked_formats = formats.copy() - if init(): - im = _open_core( - fp, - filename, - prefix, - tuple(format for format in formats if format not in checked_formats), - ) - - if im: - im._exclusive_fp = exclusive_fp - return im - - if exclusive_fp: - fp.close() - for message in accept_warnings: - warnings.warn(message) - msg = "cannot identify image file %r" % (filename if filename else fp) - raise UnidentifiedImageError(msg) - - -# -# Image processing. - - -def alpha_composite(im1, im2): - """ - Alpha composite im2 over im1. - - :param im1: The first image. Must have mode RGBA. - :param im2: The second image. Must have mode RGBA, and the same size as - the first image. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - im1.load() - im2.load() - return im1._new(core.alpha_composite(im1.im, im2.im)) - - -def blend(im1, im2, alpha): - """ - Creates a new image by interpolating between two input images, using - a constant alpha:: - - out = image1 * (1.0 - alpha) + image2 * alpha - - :param im1: The first image. - :param im2: The second image. Must have the same mode and size as - the first image. - :param alpha: The interpolation alpha factor. If alpha is 0.0, a - copy of the first image is returned. If alpha is 1.0, a copy of - the second image is returned. There are no restrictions on the - alpha value. If necessary, the result is clipped to fit into - the allowed output range. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - im1.load() - im2.load() - return im1._new(core.blend(im1.im, im2.im, alpha)) - - -def composite(image1, image2, mask): - """ - Create composite image by blending images using a transparency mask. - - :param image1: The first image. - :param image2: The second image. Must have the same mode and - size as the first image. - :param mask: A mask image. This image can have mode - "1", "L", or "RGBA", and must have the same size as the - other two images. - """ - - image = image2.copy() - image.paste(image1, None, mask) - return image - - -def eval(image, *args): - """ - Applies the function (which should take one argument) to each pixel - in the given image. If the image has more than one band, the same - function is applied to each band. Note that the function is - evaluated once for each possible pixel value, so you cannot use - random components or other generators. - - :param image: The input image. - :param function: A function object, taking one integer argument. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - return image.point(args[0]) - - -def merge(mode, bands): - """ - Merge a set of single band images into a new multiband image. - - :param mode: The mode to use for the output image. See: - :ref:`concept-modes`. - :param bands: A sequence containing one single-band image for - each band in the output image. All bands must have the - same size. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - - if getmodebands(mode) != len(bands) or "*" in mode: - msg = "wrong number of bands" - raise ValueError(msg) - for band in bands[1:]: - if band.mode != getmodetype(mode): - msg = "mode mismatch" - raise ValueError(msg) - if band.size != bands[0].size: - msg = "size mismatch" - raise ValueError(msg) - for band in bands: - band.load() - return bands[0]._new(core.merge(mode, *[b.im for b in bands])) - - -# -------------------------------------------------------------------- -# Plugin registry - - -def register_open(id, factory, accept=None) -> None: - """ - Register an image file plugin. This function should not be used - in application code. - - :param id: An image format identifier. - :param factory: An image file factory method. - :param accept: An optional function that can be used to quickly - reject images having another format. - """ - id = id.upper() - if id not in ID: - ID.append(id) - OPEN[id] = factory, accept - - -def register_mime(id, mimetype): - """ - Registers an image MIME type by populating ``Image.MIME``. This function - should not be used in application code. - - ``Image.MIME`` provides a mapping from image format identifiers to mime - formats, but :py:meth:`~PIL.ImageFile.ImageFile.get_format_mimetype` can - provide a different result for specific images. - - :param id: An image format identifier. - :param mimetype: The image MIME type for this format. - """ - MIME[id.upper()] = mimetype - - -def register_save(id, driver): - """ - Registers an image save function. This function should not be - used in application code. - - :param id: An image format identifier. - :param driver: A function to save images in this format. - """ - SAVE[id.upper()] = driver - - -def register_save_all(id, driver): - """ - Registers an image function to save all the frames - of a multiframe format. This function should not be - used in application code. - - :param id: An image format identifier. - :param driver: A function to save images in this format. - """ - SAVE_ALL[id.upper()] = driver - - -def register_extension(id, extension) -> None: - """ - Registers an image extension. This function should not be - used in application code. - - :param id: An image format identifier. - :param extension: An extension used for this format. - """ - EXTENSION[extension.lower()] = id.upper() - - -def register_extensions(id, extensions): - """ - Registers image extensions. This function should not be - used in application code. - - :param id: An image format identifier. - :param extensions: A list of extensions used for this format. - """ - for extension in extensions: - register_extension(id, extension) - - -def registered_extensions(): - """ - Returns a dictionary containing all file extensions belonging - to registered plugins - """ - init() - return EXTENSION - - -def register_decoder(name, decoder): - """ - Registers an image decoder. This function should not be - used in application code. - - :param name: The name of the decoder - :param decoder: A callable(mode, args) that returns an - ImageFile.PyDecoder object - - .. versionadded:: 4.1.0 - """ - DECODERS[name] = decoder - - -def register_encoder(name, encoder): - """ - Registers an image encoder. This function should not be - used in application code. - - :param name: The name of the encoder - :param encoder: A callable(mode, args) that returns an - ImageFile.PyEncoder object - - .. versionadded:: 4.1.0 - """ - ENCODERS[name] = encoder - - -# -------------------------------------------------------------------- -# Simple display support. - - -def _show(image, **options): - from . import ImageShow - - ImageShow.show(image, **options) - - -# -------------------------------------------------------------------- -# Effects - - -def effect_mandelbrot(size, extent, quality): - """ - Generate a Mandelbrot set covering the given extent. - - :param size: The requested size in pixels, as a 2-tuple: - (width, height). - :param extent: The extent to cover, as a 4-tuple: - (x0, y0, x1, y1). - :param quality: Quality. - """ - return Image()._new(core.effect_mandelbrot(size, extent, quality)) - - -def effect_noise(size, sigma): - """ - Generate Gaussian noise centered around 128. - - :param size: The requested size in pixels, as a 2-tuple: - (width, height). - :param sigma: Standard deviation of noise. - """ - return Image()._new(core.effect_noise(size, sigma)) - - -def linear_gradient(mode): - """ - Generate 256x256 linear gradient from black to white, top to bottom. - - :param mode: Input mode. - """ - return Image()._new(core.linear_gradient(mode)) - - -def radial_gradient(mode): - """ - Generate 256x256 radial gradient from black to white, centre to edge. - - :param mode: Input mode. - """ - return Image()._new(core.radial_gradient(mode)) - - -# -------------------------------------------------------------------- -# Resources - - -def _apply_env_variables(env=None): - if env is None: - env = os.environ - - for var_name, setter in [ - ("PILLOW_ALIGNMENT", core.set_alignment), - ("PILLOW_BLOCK_SIZE", core.set_block_size), - ("PILLOW_BLOCKS_MAX", core.set_blocks_max), - ]: - if var_name not in env: - continue - - var = env[var_name].lower() - - units = 1 - for postfix, mul in [("k", 1024), ("m", 1024 * 1024)]: - if var.endswith(postfix): - units = mul - var = var[: -len(postfix)] - - try: - var = int(var) * units - except ValueError: - warnings.warn(f"{var_name} is not int") - continue - - try: - setter(var) - except ValueError as e: - warnings.warn(f"{var_name}: {e}") - - -_apply_env_variables() -atexit.register(core.clear_cache) - - -class Exif(MutableMapping): - """ - This class provides read and write access to EXIF image data:: - - from PIL import Image - im = Image.open("exif.png") - exif = im.getexif() # Returns an instance of this class - - Information can be read and written, iterated over or deleted:: - - print(exif[274]) # 1 - exif[274] = 2 - for k, v in exif.items(): - print("Tag", k, "Value", v) # Tag 274 Value 2 - del exif[274] - - To access information beyond IFD0, :py:meth:`~PIL.Image.Exif.get_ifd` - returns a dictionary:: - - from PIL import ExifTags - im = Image.open("exif_gps.jpg") - exif = im.getexif() - gps_ifd = exif.get_ifd(ExifTags.IFD.GPSInfo) - print(gps_ifd) - - Other IFDs include ``ExifTags.IFD.Exif``, ``ExifTags.IFD.Makernote``, - ``ExifTags.IFD.Interop`` and ``ExifTags.IFD.IFD1``. - - :py:mod:`~PIL.ExifTags` also has enum classes to provide names for data:: - - print(exif[ExifTags.Base.Software]) # PIL - print(gps_ifd[ExifTags.GPS.GPSDateStamp]) # 1999:99:99 99:99:99 - """ - - endian = None - bigtiff = False - - def __init__(self): - self._data = {} - self._hidden_data = {} - self._ifds = {} - self._info = None - self._loaded_exif = None - - def _fixup(self, value): - try: - if len(value) == 1 and isinstance(value, tuple): - return value[0] - except Exception: - pass - return value - - def _fixup_dict(self, src_dict): - # Helper function - # returns a dict with any single item tuples/lists as individual values - return {k: self._fixup(v) for k, v in src_dict.items()} - - def _get_ifd_dict(self, offset): - try: - # an offset pointer to the location of the nested embedded IFD. - # It should be a long, but may be corrupted. - self.fp.seek(offset) - except (KeyError, TypeError): - pass - else: - from . import TiffImagePlugin - - info = TiffImagePlugin.ImageFileDirectory_v2(self.head) - info.load(self.fp) - return self._fixup_dict(info) - - def _get_head(self): - version = b"\x2B" if self.bigtiff else b"\x2A" - if self.endian == "<": - head = b"II" + version + b"\x00" + o32le(8) - else: - head = b"MM\x00" + version + o32be(8) - if self.bigtiff: - head += o32le(8) if self.endian == "<" else o32be(8) - head += b"\x00\x00\x00\x00" - return head - - def load(self, data): - # Extract EXIF information. This is highly experimental, - # and is likely to be replaced with something better in a future - # version. - - # The EXIF record consists of a TIFF file embedded in a JPEG - # application marker (!). - if data == self._loaded_exif: - return - self._loaded_exif = data - self._data.clear() - self._hidden_data.clear() - self._ifds.clear() - if data and data.startswith(b"Exif\x00\x00"): - data = data[6:] - if not data: - self._info = None - return - - self.fp = io.BytesIO(data) - self.head = self.fp.read(8) - # process dictionary - from . import TiffImagePlugin - - self._info = TiffImagePlugin.ImageFileDirectory_v2(self.head) - self.endian = self._info._endian - self.fp.seek(self._info.next) - self._info.load(self.fp) - - def load_from_fp(self, fp, offset=None): - self._loaded_exif = None - self._data.clear() - self._hidden_data.clear() - self._ifds.clear() - - # process dictionary - from . import TiffImagePlugin - - self.fp = fp - if offset is not None: - self.head = self._get_head() - else: - self.head = self.fp.read(8) - self._info = TiffImagePlugin.ImageFileDirectory_v2(self.head) - if self.endian is None: - self.endian = self._info._endian - if offset is None: - offset = self._info.next - self.fp.tell() - self.fp.seek(offset) - self._info.load(self.fp) - - def _get_merged_dict(self): - merged_dict = dict(self) - - # get EXIF extension - if ExifTags.IFD.Exif in self: - ifd = self._get_ifd_dict(self[ExifTags.IFD.Exif]) - if ifd: - merged_dict.update(ifd) - - # GPS - if ExifTags.IFD.GPSInfo in self: - merged_dict[ExifTags.IFD.GPSInfo] = self._get_ifd_dict( - self[ExifTags.IFD.GPSInfo] - ) - - return merged_dict - - def tobytes(self, offset=8): - from . import TiffImagePlugin - - head = self._get_head() - ifd = TiffImagePlugin.ImageFileDirectory_v2(ifh=head) - for tag, value in self.items(): - if tag in [ - ExifTags.IFD.Exif, - ExifTags.IFD.GPSInfo, - ] and not isinstance(value, dict): - value = self.get_ifd(tag) - if ( - tag == ExifTags.IFD.Exif - and ExifTags.IFD.Interop in value - and not isinstance(value[ExifTags.IFD.Interop], dict) - ): - value = value.copy() - value[ExifTags.IFD.Interop] = self.get_ifd(ExifTags.IFD.Interop) - ifd[tag] = value - return b"Exif\x00\x00" + head + ifd.tobytes(offset) - - def get_ifd(self, tag): - if tag not in self._ifds: - if tag == ExifTags.IFD.IFD1: - if self._info is not None and self._info.next != 0: - self._ifds[tag] = self._get_ifd_dict(self._info.next) - elif tag in [ExifTags.IFD.Exif, ExifTags.IFD.GPSInfo]: - offset = self._hidden_data.get(tag, self.get(tag)) - if offset is not None: - self._ifds[tag] = self._get_ifd_dict(offset) - elif tag in [ExifTags.IFD.Interop, ExifTags.IFD.Makernote]: - if ExifTags.IFD.Exif not in self._ifds: - self.get_ifd(ExifTags.IFD.Exif) - tag_data = self._ifds[ExifTags.IFD.Exif][tag] - if tag == ExifTags.IFD.Makernote: - from .TiffImagePlugin import ImageFileDirectory_v2 - - if tag_data[:8] == b"FUJIFILM": - ifd_offset = i32le(tag_data, 8) - ifd_data = tag_data[ifd_offset:] - - makernote = {} - for i in range(0, struct.unpack(" 4: - (offset,) = struct.unpack("H", tag_data[:2])[0]): - ifd_tag, typ, count, data = struct.unpack( - ">HHL4s", tag_data[i * 12 + 2 : (i + 1) * 12 + 2] - ) - if ifd_tag == 0x1101: - # CameraInfo - (offset,) = struct.unpack(">L", data) - self.fp.seek(offset) - - camerainfo = {"ModelID": self.fp.read(4)} - - self.fp.read(4) - # Seconds since 2000 - camerainfo["TimeStamp"] = i32le(self.fp.read(12)) - - self.fp.read(4) - camerainfo["InternalSerialNumber"] = self.fp.read(4) - - self.fp.read(12) - parallax = self.fp.read(4) - handler = ImageFileDirectory_v2._load_dispatch[ - TiffTags.FLOAT - ][1] - camerainfo["Parallax"] = handler( - ImageFileDirectory_v2(), parallax, False - ) - - self.fp.read(4) - camerainfo["Category"] = self.fp.read(2) - - makernote = {0x1101: dict(self._fixup_dict(camerainfo))} - self._ifds[tag] = makernote - else: - # Interop - self._ifds[tag] = self._get_ifd_dict(tag_data) - ifd = self._ifds.get(tag, {}) - if tag == ExifTags.IFD.Exif and self._hidden_data: - ifd = { - k: v - for (k, v) in ifd.items() - if k not in (ExifTags.IFD.Interop, ExifTags.IFD.Makernote) - } - return ifd - - def hide_offsets(self): - for tag in (ExifTags.IFD.Exif, ExifTags.IFD.GPSInfo): - if tag in self: - self._hidden_data[tag] = self[tag] - del self[tag] - - def __str__(self): - if self._info is not None: - # Load all keys into self._data - for tag in self._info: - self[tag] - - return str(self._data) - - def __len__(self): - keys = set(self._data) - if self._info is not None: - keys.update(self._info) - return len(keys) - - def __getitem__(self, tag): - if self._info is not None and tag not in self._data and tag in self._info: - self._data[tag] = self._fixup(self._info[tag]) - del self._info[tag] - return self._data[tag] - - def __contains__(self, tag): - return tag in self._data or (self._info is not None and tag in self._info) - - def __setitem__(self, tag, value): - if self._info is not None and tag in self._info: - del self._info[tag] - self._data[tag] = value - - def __delitem__(self, tag): - if self._info is not None and tag in self._info: - del self._info[tag] - else: - del self._data[tag] - - def __iter__(self): - keys = set(self._data) - if self._info is not None: - keys.update(self._info) - return iter(keys) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageChops.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageChops.py deleted file mode 100644 index 29a5c99..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageChops.py +++ /dev/null @@ -1,311 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# standard channel operations -# -# History: -# 1996-03-24 fl Created -# 1996-08-13 fl Added logical operations (for "1" images) -# 2000-10-12 fl Added offset method (from Image.py) -# -# Copyright (c) 1997-2000 by Secret Labs AB -# Copyright (c) 1996-2000 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# - -from __future__ import annotations - -from . import Image - - -def constant(image: Image.Image, value: int) -> Image.Image: - """Fill a channel with a given gray level. - - :rtype: :py:class:`~PIL.Image.Image` - """ - - return Image.new("L", image.size, value) - - -def duplicate(image: Image.Image) -> Image.Image: - """Copy a channel. Alias for :py:meth:`PIL.Image.Image.copy`. - - :rtype: :py:class:`~PIL.Image.Image` - """ - - return image.copy() - - -def invert(image: Image.Image) -> Image.Image: - """ - Invert an image (channel). :: - - out = MAX - image - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image.load() - return image._new(image.im.chop_invert()) - - -def lighter(image1: Image.Image, image2: Image.Image) -> Image.Image: - """ - Compares the two images, pixel by pixel, and returns a new image containing - the lighter values. :: - - out = max(image1, image2) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_lighter(image2.im)) - - -def darker(image1: Image.Image, image2: Image.Image) -> Image.Image: - """ - Compares the two images, pixel by pixel, and returns a new image containing - the darker values. :: - - out = min(image1, image2) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_darker(image2.im)) - - -def difference(image1: Image.Image, image2: Image.Image) -> Image.Image: - """ - Returns the absolute value of the pixel-by-pixel difference between the two - images. :: - - out = abs(image1 - image2) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_difference(image2.im)) - - -def multiply(image1: Image.Image, image2: Image.Image) -> Image.Image: - """ - Superimposes two images on top of each other. - - If you multiply an image with a solid black image, the result is black. If - you multiply with a solid white image, the image is unaffected. :: - - out = image1 * image2 / MAX - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_multiply(image2.im)) - - -def screen(image1: Image.Image, image2: Image.Image) -> Image.Image: - """ - Superimposes two inverted images on top of each other. :: - - out = MAX - ((MAX - image1) * (MAX - image2) / MAX) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_screen(image2.im)) - - -def soft_light(image1: Image.Image, image2: Image.Image) -> Image.Image: - """ - Superimposes two images on top of each other using the Soft Light algorithm - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_soft_light(image2.im)) - - -def hard_light(image1: Image.Image, image2: Image.Image) -> Image.Image: - """ - Superimposes two images on top of each other using the Hard Light algorithm - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_hard_light(image2.im)) - - -def overlay(image1: Image.Image, image2: Image.Image) -> Image.Image: - """ - Superimposes two images on top of each other using the Overlay algorithm - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_overlay(image2.im)) - - -def add( - image1: Image.Image, image2: Image.Image, scale: float = 1.0, offset: float = 0 -) -> Image.Image: - """ - Adds two images, dividing the result by scale and adding the - offset. If omitted, scale defaults to 1.0, and offset to 0.0. :: - - out = ((image1 + image2) / scale + offset) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_add(image2.im, scale, offset)) - - -def subtract( - image1: Image.Image, image2: Image.Image, scale: float = 1.0, offset: float = 0 -) -> Image.Image: - """ - Subtracts two images, dividing the result by scale and adding the offset. - If omitted, scale defaults to 1.0, and offset to 0.0. :: - - out = ((image1 - image2) / scale + offset) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_subtract(image2.im, scale, offset)) - - -def add_modulo(image1: Image.Image, image2: Image.Image) -> Image.Image: - """Add two images, without clipping the result. :: - - out = ((image1 + image2) % MAX) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_add_modulo(image2.im)) - - -def subtract_modulo(image1: Image.Image, image2: Image.Image) -> Image.Image: - """Subtract two images, without clipping the result. :: - - out = ((image1 - image2) % MAX) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_subtract_modulo(image2.im)) - - -def logical_and(image1: Image.Image, image2: Image.Image) -> Image.Image: - """Logical AND between two images. - - Both of the images must have mode "1". If you would like to perform a - logical AND on an image with a mode other than "1", try - :py:meth:`~PIL.ImageChops.multiply` instead, using a black-and-white mask - as the second image. :: - - out = ((image1 and image2) % MAX) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_and(image2.im)) - - -def logical_or(image1: Image.Image, image2: Image.Image) -> Image.Image: - """Logical OR between two images. - - Both of the images must have mode "1". :: - - out = ((image1 or image2) % MAX) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_or(image2.im)) - - -def logical_xor(image1: Image.Image, image2: Image.Image) -> Image.Image: - """Logical XOR between two images. - - Both of the images must have mode "1". :: - - out = ((bool(image1) != bool(image2)) % MAX) - - :rtype: :py:class:`~PIL.Image.Image` - """ - - image1.load() - image2.load() - return image1._new(image1.im.chop_xor(image2.im)) - - -def blend(image1: Image.Image, image2: Image.Image, alpha: float) -> Image.Image: - """Blend images using constant transparency weight. Alias for - :py:func:`PIL.Image.blend`. - - :rtype: :py:class:`~PIL.Image.Image` - """ - - return Image.blend(image1, image2, alpha) - - -def composite( - image1: Image.Image, image2: Image.Image, mask: Image.Image -) -> Image.Image: - """Create composite using transparency mask. Alias for - :py:func:`PIL.Image.composite`. - - :rtype: :py:class:`~PIL.Image.Image` - """ - - return Image.composite(image1, image2, mask) - - -def offset(image: Image.Image, xoffset: int, yoffset: int | None = None) -> Image.Image: - """Returns a copy of the image where data has been offset by the given - distances. Data wraps around the edges. If ``yoffset`` is omitted, it - is assumed to be equal to ``xoffset``. - - :param image: Input image. - :param xoffset: The horizontal distance. - :param yoffset: The vertical distance. If omitted, both - distances are set to the same value. - :rtype: :py:class:`~PIL.Image.Image` - """ - - if yoffset is None: - yoffset = xoffset - image.load() - return image._new(image.im.offset(xoffset, yoffset)) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageCms.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageCms.py deleted file mode 100644 index 643fce8..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageCms.py +++ /dev/null @@ -1,1007 +0,0 @@ -# The Python Imaging Library. -# $Id$ - -# Optional color management support, based on Kevin Cazabon's PyCMS -# library. - -# History: - -# 2009-03-08 fl Added to PIL. - -# Copyright (C) 2002-2003 Kevin Cazabon -# Copyright (c) 2009 by Fredrik Lundh -# Copyright (c) 2013 by Eric Soroos - -# See the README file for information on usage and redistribution. See -# below for the original description. -from __future__ import annotations - -import sys -from enum import IntEnum - -from . import Image - -try: - from . import _imagingcms -except ImportError as ex: - # Allow error import for doc purposes, but error out when accessing - # anything in core. - from ._util import DeferredError - - _imagingcms = DeferredError.new(ex) - -DESCRIPTION = """ -pyCMS - - a Python / PIL interface to the littleCMS ICC Color Management System - Copyright (C) 2002-2003 Kevin Cazabon - kevin@cazabon.com - https://www.cazabon.com - - pyCMS home page: https://www.cazabon.com/pyCMS - littleCMS home page: https://www.littlecms.com - (littleCMS is Copyright (C) 1998-2001 Marti Maria) - - Originally released under LGPL. Graciously donated to PIL in - March 2009, for distribution under the standard PIL license - - The pyCMS.py module provides a "clean" interface between Python/PIL and - pyCMSdll, taking care of some of the more complex handling of the direct - pyCMSdll functions, as well as error-checking and making sure that all - relevant data is kept together. - - While it is possible to call pyCMSdll functions directly, it's not highly - recommended. - - Version History: - - 1.0.0 pil Oct 2013 Port to LCMS 2. - - 0.1.0 pil mod March 10, 2009 - - Renamed display profile to proof profile. The proof - profile is the profile of the device that is being - simulated, not the profile of the device which is - actually used to display/print the final simulation - (that'd be the output profile) - also see LCMSAPI.txt - input colorspace -> using 'renderingIntent' -> proof - colorspace -> using 'proofRenderingIntent' -> output - colorspace - - Added LCMS FLAGS support. - Added FLAGS["SOFTPROOFING"] as default flag for - buildProofTransform (otherwise the proof profile/intent - would be ignored). - - 0.1.0 pil March 2009 - added to PIL, as PIL.ImageCms - - 0.0.2 alpha Jan 6, 2002 - - Added try/except statements around type() checks of - potential CObjects... Python won't let you use type() - on them, and raises a TypeError (stupid, if you ask - me!) - - Added buildProofTransformFromOpenProfiles() function. - Additional fixes in DLL, see DLL code for details. - - 0.0.1 alpha first public release, Dec. 26, 2002 - - Known to-do list with current version (of Python interface, not pyCMSdll): - - none - -""" - -VERSION = "1.0.0 pil" - -# --------------------------------------------------------------------. - -core = _imagingcms - -# -# intent/direction values - - -class Intent(IntEnum): - PERCEPTUAL = 0 - RELATIVE_COLORIMETRIC = 1 - SATURATION = 2 - ABSOLUTE_COLORIMETRIC = 3 - - -class Direction(IntEnum): - INPUT = 0 - OUTPUT = 1 - PROOF = 2 - - -# -# flags - -FLAGS = { - "MATRIXINPUT": 1, - "MATRIXOUTPUT": 2, - "MATRIXONLY": (1 | 2), - "NOWHITEONWHITEFIXUP": 4, # Don't hot fix scum dot - # Don't create prelinearization tables on precalculated transforms - # (internal use): - "NOPRELINEARIZATION": 16, - "GUESSDEVICECLASS": 32, # Guess device class (for transform2devicelink) - "NOTCACHE": 64, # Inhibit 1-pixel cache - "NOTPRECALC": 256, - "NULLTRANSFORM": 512, # Don't transform anyway - "HIGHRESPRECALC": 1024, # Use more memory to give better accuracy - "LOWRESPRECALC": 2048, # Use less memory to minimize resources - "WHITEBLACKCOMPENSATION": 8192, - "BLACKPOINTCOMPENSATION": 8192, - "GAMUTCHECK": 4096, # Out of Gamut alarm - "SOFTPROOFING": 16384, # Do softproofing - "PRESERVEBLACK": 32768, # Black preservation - "NODEFAULTRESOURCEDEF": 16777216, # CRD special - "GRIDPOINTS": lambda n: (n & 0xFF) << 16, # Gridpoints -} - -_MAX_FLAG = 0 -for flag in FLAGS.values(): - if isinstance(flag, int): - _MAX_FLAG = _MAX_FLAG | flag - - -# --------------------------------------------------------------------. -# Experimental PIL-level API -# --------------------------------------------------------------------. - -## -# Profile. - - -class ImageCmsProfile: - def __init__(self, profile): - """ - :param profile: Either a string representing a filename, - a file like object containing a profile or a - low-level profile object - - """ - - if isinstance(profile, str): - if sys.platform == "win32": - profile_bytes_path = profile.encode() - try: - profile_bytes_path.decode("ascii") - except UnicodeDecodeError: - with open(profile, "rb") as f: - self._set(core.profile_frombytes(f.read())) - return - self._set(core.profile_open(profile), profile) - elif hasattr(profile, "read"): - self._set(core.profile_frombytes(profile.read())) - elif isinstance(profile, _imagingcms.CmsProfile): - self._set(profile) - else: - msg = "Invalid type for Profile" - raise TypeError(msg) - - def _set(self, profile, filename=None): - self.profile = profile - self.filename = filename - self.product_name = None # profile.product_name - self.product_info = None # profile.product_info - - def tobytes(self): - """ - Returns the profile in a format suitable for embedding in - saved images. - - :returns: a bytes object containing the ICC profile. - """ - - return core.profile_tobytes(self.profile) - - -class ImageCmsTransform(Image.ImagePointHandler): - - """ - Transform. This can be used with the procedural API, or with the standard - :py:func:`~PIL.Image.Image.point` method. - - Will return the output profile in the ``output.info['icc_profile']``. - """ - - def __init__( - self, - input, - output, - input_mode, - output_mode, - intent=Intent.PERCEPTUAL, - proof=None, - proof_intent=Intent.ABSOLUTE_COLORIMETRIC, - flags=0, - ): - if proof is None: - self.transform = core.buildTransform( - input.profile, output.profile, input_mode, output_mode, intent, flags - ) - else: - self.transform = core.buildProofTransform( - input.profile, - output.profile, - proof.profile, - input_mode, - output_mode, - intent, - proof_intent, - flags, - ) - # Note: inputMode and outputMode are for pyCMS compatibility only - self.input_mode = self.inputMode = input_mode - self.output_mode = self.outputMode = output_mode - - self.output_profile = output - - def point(self, im): - return self.apply(im) - - def apply(self, im, imOut=None): - im.load() - if imOut is None: - imOut = Image.new(self.output_mode, im.size, None) - self.transform.apply(im.im.id, imOut.im.id) - imOut.info["icc_profile"] = self.output_profile.tobytes() - return imOut - - def apply_in_place(self, im): - im.load() - if im.mode != self.output_mode: - msg = "mode mismatch" - raise ValueError(msg) # wrong output mode - self.transform.apply(im.im.id, im.im.id) - im.info["icc_profile"] = self.output_profile.tobytes() - return im - - -def get_display_profile(handle=None): - """ - (experimental) Fetches the profile for the current display device. - - :returns: ``None`` if the profile is not known. - """ - - if sys.platform != "win32": - return None - - from . import ImageWin - - if isinstance(handle, ImageWin.HDC): - profile = core.get_display_profile_win32(handle, 1) - else: - profile = core.get_display_profile_win32(handle or 0) - if profile is None: - return None - return ImageCmsProfile(profile) - - -# --------------------------------------------------------------------. -# pyCMS compatible layer -# --------------------------------------------------------------------. - - -class PyCMSError(Exception): - - """(pyCMS) Exception class. - This is used for all errors in the pyCMS API.""" - - pass - - -def profileToProfile( - im, - inputProfile, - outputProfile, - renderingIntent=Intent.PERCEPTUAL, - outputMode=None, - inPlace=False, - flags=0, -): - """ - (pyCMS) Applies an ICC transformation to a given image, mapping from - ``inputProfile`` to ``outputProfile``. - - If the input or output profiles specified are not valid filenames, a - :exc:`PyCMSError` will be raised. If ``inPlace`` is ``True`` and - ``outputMode != im.mode``, a :exc:`PyCMSError` will be raised. - If an error occurs during application of the profiles, - a :exc:`PyCMSError` will be raised. - If ``outputMode`` is not a mode supported by the ``outputProfile`` (or by pyCMS), - a :exc:`PyCMSError` will be raised. - - This function applies an ICC transformation to im from ``inputProfile``'s - color space to ``outputProfile``'s color space using the specified rendering - intent to decide how to handle out-of-gamut colors. - - ``outputMode`` can be used to specify that a color mode conversion is to - be done using these profiles, but the specified profiles must be able - to handle that mode. I.e., if converting im from RGB to CMYK using - profiles, the input profile must handle RGB data, and the output - profile must handle CMYK data. - - :param im: An open :py:class:`~PIL.Image.Image` object (i.e. Image.new(...) - or Image.open(...), etc.) - :param inputProfile: String, as a valid filename path to the ICC input - profile you wish to use for this image, or a profile object - :param outputProfile: String, as a valid filename path to the ICC output - profile you wish to use for this image, or a profile object - :param renderingIntent: Integer (0-3) specifying the rendering intent you - wish to use for the transform - - ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) - ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 - ImageCms.Intent.SATURATION = 2 - ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 - - see the pyCMS documentation for details on rendering intents and what - they do. - :param outputMode: A valid PIL mode for the output image (i.e. "RGB", - "CMYK", etc.). Note: if rendering the image "inPlace", outputMode - MUST be the same mode as the input, or omitted completely. If - omitted, the outputMode will be the same as the mode of the input - image (im.mode) - :param inPlace: Boolean. If ``True``, the original image is modified in-place, - and ``None`` is returned. If ``False`` (default), a new - :py:class:`~PIL.Image.Image` object is returned with the transform applied. - :param flags: Integer (0-...) specifying additional flags - :returns: Either None or a new :py:class:`~PIL.Image.Image` object, depending on - the value of ``inPlace`` - :exception PyCMSError: - """ - - if outputMode is None: - outputMode = im.mode - - if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): - msg = "renderingIntent must be an integer between 0 and 3" - raise PyCMSError(msg) - - if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): - msg = f"flags must be an integer between 0 and {_MAX_FLAG}" - raise PyCMSError(msg) - - try: - if not isinstance(inputProfile, ImageCmsProfile): - inputProfile = ImageCmsProfile(inputProfile) - if not isinstance(outputProfile, ImageCmsProfile): - outputProfile = ImageCmsProfile(outputProfile) - transform = ImageCmsTransform( - inputProfile, - outputProfile, - im.mode, - outputMode, - renderingIntent, - flags=flags, - ) - if inPlace: - transform.apply_in_place(im) - imOut = None - else: - imOut = transform.apply(im) - except (OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - return imOut - - -def getOpenProfile(profileFilename): - """ - (pyCMS) Opens an ICC profile file. - - The PyCMSProfile object can be passed back into pyCMS for use in creating - transforms and such (as in ImageCms.buildTransformFromOpenProfiles()). - - If ``profileFilename`` is not a valid filename for an ICC profile, - a :exc:`PyCMSError` will be raised. - - :param profileFilename: String, as a valid filename path to the ICC profile - you wish to open, or a file-like object. - :returns: A CmsProfile class object. - :exception PyCMSError: - """ - - try: - return ImageCmsProfile(profileFilename) - except (OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def buildTransform( - inputProfile, - outputProfile, - inMode, - outMode, - renderingIntent=Intent.PERCEPTUAL, - flags=0, -): - """ - (pyCMS) Builds an ICC transform mapping from the ``inputProfile`` to the - ``outputProfile``. Use applyTransform to apply the transform to a given - image. - - If the input or output profiles specified are not valid filenames, a - :exc:`PyCMSError` will be raised. If an error occurs during creation - of the transform, a :exc:`PyCMSError` will be raised. - - If ``inMode`` or ``outMode`` are not a mode supported by the ``outputProfile`` - (or by pyCMS), a :exc:`PyCMSError` will be raised. - - This function builds and returns an ICC transform from the ``inputProfile`` - to the ``outputProfile`` using the ``renderingIntent`` to determine what to do - with out-of-gamut colors. It will ONLY work for converting images that - are in ``inMode`` to images that are in ``outMode`` color format (PIL mode, - i.e. "RGB", "RGBA", "CMYK", etc.). - - Building the transform is a fair part of the overhead in - ImageCms.profileToProfile(), so if you're planning on converting multiple - images using the same input/output settings, this can save you time. - Once you have a transform object, it can be used with - ImageCms.applyProfile() to convert images without the need to re-compute - the lookup table for the transform. - - The reason pyCMS returns a class object rather than a handle directly - to the transform is that it needs to keep track of the PIL input/output - modes that the transform is meant for. These attributes are stored in - the ``inMode`` and ``outMode`` attributes of the object (which can be - manually overridden if you really want to, but I don't know of any - time that would be of use, or would even work). - - :param inputProfile: String, as a valid filename path to the ICC input - profile you wish to use for this transform, or a profile object - :param outputProfile: String, as a valid filename path to the ICC output - profile you wish to use for this transform, or a profile object - :param inMode: String, as a valid PIL mode that the appropriate profile - also supports (i.e. "RGB", "RGBA", "CMYK", etc.) - :param outMode: String, as a valid PIL mode that the appropriate profile - also supports (i.e. "RGB", "RGBA", "CMYK", etc.) - :param renderingIntent: Integer (0-3) specifying the rendering intent you - wish to use for the transform - - ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) - ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 - ImageCms.Intent.SATURATION = 2 - ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 - - see the pyCMS documentation for details on rendering intents and what - they do. - :param flags: Integer (0-...) specifying additional flags - :returns: A CmsTransform class object. - :exception PyCMSError: - """ - - if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): - msg = "renderingIntent must be an integer between 0 and 3" - raise PyCMSError(msg) - - if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): - msg = "flags must be an integer between 0 and %s" + _MAX_FLAG - raise PyCMSError(msg) - - try: - if not isinstance(inputProfile, ImageCmsProfile): - inputProfile = ImageCmsProfile(inputProfile) - if not isinstance(outputProfile, ImageCmsProfile): - outputProfile = ImageCmsProfile(outputProfile) - return ImageCmsTransform( - inputProfile, outputProfile, inMode, outMode, renderingIntent, flags=flags - ) - except (OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def buildProofTransform( - inputProfile, - outputProfile, - proofProfile, - inMode, - outMode, - renderingIntent=Intent.PERCEPTUAL, - proofRenderingIntent=Intent.ABSOLUTE_COLORIMETRIC, - flags=FLAGS["SOFTPROOFING"], -): - """ - (pyCMS) Builds an ICC transform mapping from the ``inputProfile`` to the - ``outputProfile``, but tries to simulate the result that would be - obtained on the ``proofProfile`` device. - - If the input, output, or proof profiles specified are not valid - filenames, a :exc:`PyCMSError` will be raised. - - If an error occurs during creation of the transform, - a :exc:`PyCMSError` will be raised. - - If ``inMode`` or ``outMode`` are not a mode supported by the ``outputProfile`` - (or by pyCMS), a :exc:`PyCMSError` will be raised. - - This function builds and returns an ICC transform from the ``inputProfile`` - to the ``outputProfile``, but tries to simulate the result that would be - obtained on the ``proofProfile`` device using ``renderingIntent`` and - ``proofRenderingIntent`` to determine what to do with out-of-gamut - colors. This is known as "soft-proofing". It will ONLY work for - converting images that are in ``inMode`` to images that are in outMode - color format (PIL mode, i.e. "RGB", "RGBA", "CMYK", etc.). - - Usage of the resulting transform object is exactly the same as with - ImageCms.buildTransform(). - - Proof profiling is generally used when using an output device to get a - good idea of what the final printed/displayed image would look like on - the ``proofProfile`` device when it's quicker and easier to use the - output device for judging color. Generally, this means that the - output device is a monitor, or a dye-sub printer (etc.), and the simulated - device is something more expensive, complicated, or time consuming - (making it difficult to make a real print for color judgement purposes). - - Soft-proofing basically functions by adjusting the colors on the - output device to match the colors of the device being simulated. However, - when the simulated device has a much wider gamut than the output - device, you may obtain marginal results. - - :param inputProfile: String, as a valid filename path to the ICC input - profile you wish to use for this transform, or a profile object - :param outputProfile: String, as a valid filename path to the ICC output - (monitor, usually) profile you wish to use for this transform, or a - profile object - :param proofProfile: String, as a valid filename path to the ICC proof - profile you wish to use for this transform, or a profile object - :param inMode: String, as a valid PIL mode that the appropriate profile - also supports (i.e. "RGB", "RGBA", "CMYK", etc.) - :param outMode: String, as a valid PIL mode that the appropriate profile - also supports (i.e. "RGB", "RGBA", "CMYK", etc.) - :param renderingIntent: Integer (0-3) specifying the rendering intent you - wish to use for the input->proof (simulated) transform - - ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) - ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 - ImageCms.Intent.SATURATION = 2 - ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 - - see the pyCMS documentation for details on rendering intents and what - they do. - :param proofRenderingIntent: Integer (0-3) specifying the rendering intent - you wish to use for proof->output transform - - ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) - ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 - ImageCms.Intent.SATURATION = 2 - ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 - - see the pyCMS documentation for details on rendering intents and what - they do. - :param flags: Integer (0-...) specifying additional flags - :returns: A CmsTransform class object. - :exception PyCMSError: - """ - - if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): - msg = "renderingIntent must be an integer between 0 and 3" - raise PyCMSError(msg) - - if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): - msg = "flags must be an integer between 0 and %s" + _MAX_FLAG - raise PyCMSError(msg) - - try: - if not isinstance(inputProfile, ImageCmsProfile): - inputProfile = ImageCmsProfile(inputProfile) - if not isinstance(outputProfile, ImageCmsProfile): - outputProfile = ImageCmsProfile(outputProfile) - if not isinstance(proofProfile, ImageCmsProfile): - proofProfile = ImageCmsProfile(proofProfile) - return ImageCmsTransform( - inputProfile, - outputProfile, - inMode, - outMode, - renderingIntent, - proofProfile, - proofRenderingIntent, - flags, - ) - except (OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -buildTransformFromOpenProfiles = buildTransform -buildProofTransformFromOpenProfiles = buildProofTransform - - -def applyTransform(im, transform, inPlace=False): - """ - (pyCMS) Applies a transform to a given image. - - If ``im.mode != transform.inMode``, a :exc:`PyCMSError` is raised. - - If ``inPlace`` is ``True`` and ``transform.inMode != transform.outMode``, a - :exc:`PyCMSError` is raised. - - If ``im.mode``, ``transform.inMode`` or ``transform.outMode`` is not - supported by pyCMSdll or the profiles you used for the transform, a - :exc:`PyCMSError` is raised. - - If an error occurs while the transform is being applied, - a :exc:`PyCMSError` is raised. - - This function applies a pre-calculated transform (from - ImageCms.buildTransform() or ImageCms.buildTransformFromOpenProfiles()) - to an image. The transform can be used for multiple images, saving - considerable calculation time if doing the same conversion multiple times. - - If you want to modify im in-place instead of receiving a new image as - the return value, set ``inPlace`` to ``True``. This can only be done if - ``transform.inMode`` and ``transform.outMode`` are the same, because we can't - change the mode in-place (the buffer sizes for some modes are - different). The default behavior is to return a new :py:class:`~PIL.Image.Image` - object of the same dimensions in mode ``transform.outMode``. - - :param im: An :py:class:`~PIL.Image.Image` object, and im.mode must be the same - as the ``inMode`` supported by the transform. - :param transform: A valid CmsTransform class object - :param inPlace: Bool. If ``True``, ``im`` is modified in place and ``None`` is - returned, if ``False``, a new :py:class:`~PIL.Image.Image` object with the - transform applied is returned (and ``im`` is not changed). The default is - ``False``. - :returns: Either ``None``, or a new :py:class:`~PIL.Image.Image` object, - depending on the value of ``inPlace``. The profile will be returned in - the image's ``info['icc_profile']``. - :exception PyCMSError: - """ - - try: - if inPlace: - transform.apply_in_place(im) - imOut = None - else: - imOut = transform.apply(im) - except (TypeError, ValueError) as v: - raise PyCMSError(v) from v - - return imOut - - -def createProfile(colorSpace, colorTemp=-1): - """ - (pyCMS) Creates a profile. - - If colorSpace not in ``["LAB", "XYZ", "sRGB"]``, - a :exc:`PyCMSError` is raised. - - If using LAB and ``colorTemp`` is not a positive integer, - a :exc:`PyCMSError` is raised. - - If an error occurs while creating the profile, - a :exc:`PyCMSError` is raised. - - Use this function to create common profiles on-the-fly instead of - having to supply a profile on disk and knowing the path to it. It - returns a normal CmsProfile object that can be passed to - ImageCms.buildTransformFromOpenProfiles() to create a transform to apply - to images. - - :param colorSpace: String, the color space of the profile you wish to - create. - Currently only "LAB", "XYZ", and "sRGB" are supported. - :param colorTemp: Positive integer for the white point for the profile, in - degrees Kelvin (i.e. 5000, 6500, 9600, etc.). The default is for D50 - illuminant if omitted (5000k). colorTemp is ONLY applied to LAB - profiles, and is ignored for XYZ and sRGB. - :returns: A CmsProfile class object - :exception PyCMSError: - """ - - if colorSpace not in ["LAB", "XYZ", "sRGB"]: - msg = ( - f"Color space not supported for on-the-fly profile creation ({colorSpace})" - ) - raise PyCMSError(msg) - - if colorSpace == "LAB": - try: - colorTemp = float(colorTemp) - except (TypeError, ValueError) as e: - msg = f'Color temperature must be numeric, "{colorTemp}" not valid' - raise PyCMSError(msg) from e - - try: - return core.createProfile(colorSpace, colorTemp) - except (TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def getProfileName(profile): - """ - - (pyCMS) Gets the internal product name for the given profile. - - If ``profile`` isn't a valid CmsProfile object or filename to a profile, - a :exc:`PyCMSError` is raised If an error occurs while trying - to obtain the name tag, a :exc:`PyCMSError` is raised. - - Use this function to obtain the INTERNAL name of the profile (stored - in an ICC tag in the profile itself), usually the one used when the - profile was originally created. Sometimes this tag also contains - additional information supplied by the creator. - - :param profile: EITHER a valid CmsProfile object, OR a string of the - filename of an ICC profile. - :returns: A string containing the internal name of the profile as stored - in an ICC tag. - :exception PyCMSError: - """ - - try: - # add an extra newline to preserve pyCMS compatibility - if not isinstance(profile, ImageCmsProfile): - profile = ImageCmsProfile(profile) - # do it in python, not c. - # // name was "%s - %s" (model, manufacturer) || Description , - # // but if the Model and Manufacturer were the same or the model - # // was long, Just the model, in 1.x - model = profile.profile.model - manufacturer = profile.profile.manufacturer - - if not (model or manufacturer): - return (profile.profile.profile_description or "") + "\n" - if not manufacturer or len(model) > 30: - return model + "\n" - return f"{model} - {manufacturer}\n" - - except (AttributeError, OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def getProfileInfo(profile): - """ - (pyCMS) Gets the internal product information for the given profile. - - If ``profile`` isn't a valid CmsProfile object or filename to a profile, - a :exc:`PyCMSError` is raised. - - If an error occurs while trying to obtain the info tag, - a :exc:`PyCMSError` is raised. - - Use this function to obtain the information stored in the profile's - info tag. This often contains details about the profile, and how it - was created, as supplied by the creator. - - :param profile: EITHER a valid CmsProfile object, OR a string of the - filename of an ICC profile. - :returns: A string containing the internal profile information stored in - an ICC tag. - :exception PyCMSError: - """ - - try: - if not isinstance(profile, ImageCmsProfile): - profile = ImageCmsProfile(profile) - # add an extra newline to preserve pyCMS compatibility - # Python, not C. the white point bits weren't working well, - # so skipping. - # info was description \r\n\r\n copyright \r\n\r\n K007 tag \r\n\r\n whitepoint - description = profile.profile.profile_description - cpright = profile.profile.copyright - elements = [element for element in (description, cpright) if element] - return "\r\n\r\n".join(elements) + "\r\n\r\n" - - except (AttributeError, OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def getProfileCopyright(profile): - """ - (pyCMS) Gets the copyright for the given profile. - - If ``profile`` isn't a valid CmsProfile object or filename to a profile, a - :exc:`PyCMSError` is raised. - - If an error occurs while trying to obtain the copyright tag, - a :exc:`PyCMSError` is raised. - - Use this function to obtain the information stored in the profile's - copyright tag. - - :param profile: EITHER a valid CmsProfile object, OR a string of the - filename of an ICC profile. - :returns: A string containing the internal profile information stored in - an ICC tag. - :exception PyCMSError: - """ - try: - # add an extra newline to preserve pyCMS compatibility - if not isinstance(profile, ImageCmsProfile): - profile = ImageCmsProfile(profile) - return (profile.profile.copyright or "") + "\n" - except (AttributeError, OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def getProfileManufacturer(profile): - """ - (pyCMS) Gets the manufacturer for the given profile. - - If ``profile`` isn't a valid CmsProfile object or filename to a profile, a - :exc:`PyCMSError` is raised. - - If an error occurs while trying to obtain the manufacturer tag, a - :exc:`PyCMSError` is raised. - - Use this function to obtain the information stored in the profile's - manufacturer tag. - - :param profile: EITHER a valid CmsProfile object, OR a string of the - filename of an ICC profile. - :returns: A string containing the internal profile information stored in - an ICC tag. - :exception PyCMSError: - """ - try: - # add an extra newline to preserve pyCMS compatibility - if not isinstance(profile, ImageCmsProfile): - profile = ImageCmsProfile(profile) - return (profile.profile.manufacturer or "") + "\n" - except (AttributeError, OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def getProfileModel(profile): - """ - (pyCMS) Gets the model for the given profile. - - If ``profile`` isn't a valid CmsProfile object or filename to a profile, a - :exc:`PyCMSError` is raised. - - If an error occurs while trying to obtain the model tag, - a :exc:`PyCMSError` is raised. - - Use this function to obtain the information stored in the profile's - model tag. - - :param profile: EITHER a valid CmsProfile object, OR a string of the - filename of an ICC profile. - :returns: A string containing the internal profile information stored in - an ICC tag. - :exception PyCMSError: - """ - - try: - # add an extra newline to preserve pyCMS compatibility - if not isinstance(profile, ImageCmsProfile): - profile = ImageCmsProfile(profile) - return (profile.profile.model or "") + "\n" - except (AttributeError, OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def getProfileDescription(profile): - """ - (pyCMS) Gets the description for the given profile. - - If ``profile`` isn't a valid CmsProfile object or filename to a profile, a - :exc:`PyCMSError` is raised. - - If an error occurs while trying to obtain the description tag, - a :exc:`PyCMSError` is raised. - - Use this function to obtain the information stored in the profile's - description tag. - - :param profile: EITHER a valid CmsProfile object, OR a string of the - filename of an ICC profile. - :returns: A string containing the internal profile information stored in an - ICC tag. - :exception PyCMSError: - """ - - try: - # add an extra newline to preserve pyCMS compatibility - if not isinstance(profile, ImageCmsProfile): - profile = ImageCmsProfile(profile) - return (profile.profile.profile_description or "") + "\n" - except (AttributeError, OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def getDefaultIntent(profile): - """ - (pyCMS) Gets the default intent name for the given profile. - - If ``profile`` isn't a valid CmsProfile object or filename to a profile, a - :exc:`PyCMSError` is raised. - - If an error occurs while trying to obtain the default intent, a - :exc:`PyCMSError` is raised. - - Use this function to determine the default (and usually best optimized) - rendering intent for this profile. Most profiles support multiple - rendering intents, but are intended mostly for one type of conversion. - If you wish to use a different intent than returned, use - ImageCms.isIntentSupported() to verify it will work first. - - :param profile: EITHER a valid CmsProfile object, OR a string of the - filename of an ICC profile. - :returns: Integer 0-3 specifying the default rendering intent for this - profile. - - ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) - ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 - ImageCms.Intent.SATURATION = 2 - ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 - - see the pyCMS documentation for details on rendering intents and what - they do. - :exception PyCMSError: - """ - - try: - if not isinstance(profile, ImageCmsProfile): - profile = ImageCmsProfile(profile) - return profile.profile.rendering_intent - except (AttributeError, OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def isIntentSupported(profile, intent, direction): - """ - (pyCMS) Checks if a given intent is supported. - - Use this function to verify that you can use your desired - ``intent`` with ``profile``, and that ``profile`` can be used for the - input/output/proof profile as you desire. - - Some profiles are created specifically for one "direction", can cannot - be used for others. Some profiles can only be used for certain - rendering intents, so it's best to either verify this before trying - to create a transform with them (using this function), or catch the - potential :exc:`PyCMSError` that will occur if they don't - support the modes you select. - - :param profile: EITHER a valid CmsProfile object, OR a string of the - filename of an ICC profile. - :param intent: Integer (0-3) specifying the rendering intent you wish to - use with this profile - - ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) - ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 - ImageCms.Intent.SATURATION = 2 - ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 - - see the pyCMS documentation for details on rendering intents and what - they do. - :param direction: Integer specifying if the profile is to be used for - input, output, or proof - - INPUT = 0 (or use ImageCms.Direction.INPUT) - OUTPUT = 1 (or use ImageCms.Direction.OUTPUT) - PROOF = 2 (or use ImageCms.Direction.PROOF) - - :returns: 1 if the intent/direction are supported, -1 if they are not. - :exception PyCMSError: - """ - - try: - if not isinstance(profile, ImageCmsProfile): - profile = ImageCmsProfile(profile) - # FIXME: I get different results for the same data w. different - # compilers. Bug in LittleCMS or in the binding? - if profile.profile.is_intent_supported(intent, direction): - return 1 - else: - return -1 - except (AttributeError, OSError, TypeError, ValueError) as v: - raise PyCMSError(v) from v - - -def versions(): - """ - (pyCMS) Fetches versions. - """ - - return VERSION, core.littlecms_version, sys.version.split()[0], Image.__version__ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageColor.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageColor.py deleted file mode 100644 index ad59b06..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageColor.py +++ /dev/null @@ -1,317 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# map CSS3-style colour description strings to RGB -# -# History: -# 2002-10-24 fl Added support for CSS-style color strings -# 2002-12-15 fl Added RGBA support -# 2004-03-27 fl Fixed remaining int() problems for Python 1.5.2 -# 2004-07-19 fl Fixed gray/grey spelling issues -# 2009-03-05 fl Fixed rounding error in grayscale calculation -# -# Copyright (c) 2002-2004 by Secret Labs AB -# Copyright (c) 2002-2004 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import re -from functools import lru_cache - -from . import Image - - -@lru_cache -def getrgb(color): - """ - Convert a color string to an RGB or RGBA tuple. If the string cannot be - parsed, this function raises a :py:exc:`ValueError` exception. - - .. versionadded:: 1.1.4 - - :param color: A color string - :return: ``(red, green, blue[, alpha])`` - """ - if len(color) > 100: - msg = "color specifier is too long" - raise ValueError(msg) - color = color.lower() - - rgb = colormap.get(color, None) - if rgb: - if isinstance(rgb, tuple): - return rgb - colormap[color] = rgb = getrgb(rgb) - return rgb - - # check for known string formats - if re.match("#[a-f0-9]{3}$", color): - return int(color[1] * 2, 16), int(color[2] * 2, 16), int(color[3] * 2, 16) - - if re.match("#[a-f0-9]{4}$", color): - return ( - int(color[1] * 2, 16), - int(color[2] * 2, 16), - int(color[3] * 2, 16), - int(color[4] * 2, 16), - ) - - if re.match("#[a-f0-9]{6}$", color): - return int(color[1:3], 16), int(color[3:5], 16), int(color[5:7], 16) - - if re.match("#[a-f0-9]{8}$", color): - return ( - int(color[1:3], 16), - int(color[3:5], 16), - int(color[5:7], 16), - int(color[7:9], 16), - ) - - m = re.match(r"rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$", color) - if m: - return int(m.group(1)), int(m.group(2)), int(m.group(3)) - - m = re.match(r"rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)$", color) - if m: - return ( - int((int(m.group(1)) * 255) / 100.0 + 0.5), - int((int(m.group(2)) * 255) / 100.0 + 0.5), - int((int(m.group(3)) * 255) / 100.0 + 0.5), - ) - - m = re.match( - r"hsl\(\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)%\s*,\s*(\d+\.?\d*)%\s*\)$", color - ) - if m: - from colorsys import hls_to_rgb - - rgb = hls_to_rgb( - float(m.group(1)) / 360.0, - float(m.group(3)) / 100.0, - float(m.group(2)) / 100.0, - ) - return ( - int(rgb[0] * 255 + 0.5), - int(rgb[1] * 255 + 0.5), - int(rgb[2] * 255 + 0.5), - ) - - m = re.match( - r"hs[bv]\(\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)%\s*,\s*(\d+\.?\d*)%\s*\)$", color - ) - if m: - from colorsys import hsv_to_rgb - - rgb = hsv_to_rgb( - float(m.group(1)) / 360.0, - float(m.group(2)) / 100.0, - float(m.group(3)) / 100.0, - ) - return ( - int(rgb[0] * 255 + 0.5), - int(rgb[1] * 255 + 0.5), - int(rgb[2] * 255 + 0.5), - ) - - m = re.match(r"rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$", color) - if m: - return int(m.group(1)), int(m.group(2)), int(m.group(3)), int(m.group(4)) - msg = f"unknown color specifier: {repr(color)}" - raise ValueError(msg) - - -@lru_cache -def getcolor(color, mode): - """ - Same as :py:func:`~PIL.ImageColor.getrgb` for most modes. However, if - ``mode`` is HSV, converts the RGB value to a HSV value, or if ``mode`` is - not color or a palette image, converts the RGB value to a grayscale value. - If the string cannot be parsed, this function raises a :py:exc:`ValueError` - exception. - - .. versionadded:: 1.1.4 - - :param color: A color string - :param mode: Convert result to this mode - :return: ``(graylevel[, alpha]) or (red, green, blue[, alpha])`` - """ - # same as getrgb, but converts the result to the given mode - color, alpha = getrgb(color), 255 - if len(color) == 4: - color, alpha = color[:3], color[3] - - if mode == "HSV": - from colorsys import rgb_to_hsv - - r, g, b = color - h, s, v = rgb_to_hsv(r / 255, g / 255, b / 255) - return int(h * 255), int(s * 255), int(v * 255) - elif Image.getmodebase(mode) == "L": - r, g, b = color - # ITU-R Recommendation 601-2 for nonlinear RGB - # scaled to 24 bits to match the convert's implementation. - color = (r * 19595 + g * 38470 + b * 7471 + 0x8000) >> 16 - if mode[-1] == "A": - return color, alpha - else: - if mode[-1] == "A": - return color + (alpha,) - return color - - -colormap = { - # X11 colour table from https://drafts.csswg.org/css-color-4/, with - # gray/grey spelling issues fixed. This is a superset of HTML 4.0 - # colour names used in CSS 1. - "aliceblue": "#f0f8ff", - "antiquewhite": "#faebd7", - "aqua": "#00ffff", - "aquamarine": "#7fffd4", - "azure": "#f0ffff", - "beige": "#f5f5dc", - "bisque": "#ffe4c4", - "black": "#000000", - "blanchedalmond": "#ffebcd", - "blue": "#0000ff", - "blueviolet": "#8a2be2", - "brown": "#a52a2a", - "burlywood": "#deb887", - "cadetblue": "#5f9ea0", - "chartreuse": "#7fff00", - "chocolate": "#d2691e", - "coral": "#ff7f50", - "cornflowerblue": "#6495ed", - "cornsilk": "#fff8dc", - "crimson": "#dc143c", - "cyan": "#00ffff", - "darkblue": "#00008b", - "darkcyan": "#008b8b", - "darkgoldenrod": "#b8860b", - "darkgray": "#a9a9a9", - "darkgrey": "#a9a9a9", - "darkgreen": "#006400", - "darkkhaki": "#bdb76b", - "darkmagenta": "#8b008b", - "darkolivegreen": "#556b2f", - "darkorange": "#ff8c00", - "darkorchid": "#9932cc", - "darkred": "#8b0000", - "darksalmon": "#e9967a", - "darkseagreen": "#8fbc8f", - "darkslateblue": "#483d8b", - "darkslategray": "#2f4f4f", - "darkslategrey": "#2f4f4f", - "darkturquoise": "#00ced1", - "darkviolet": "#9400d3", - "deeppink": "#ff1493", - "deepskyblue": "#00bfff", - "dimgray": "#696969", - "dimgrey": "#696969", - "dodgerblue": "#1e90ff", - "firebrick": "#b22222", - "floralwhite": "#fffaf0", - "forestgreen": "#228b22", - "fuchsia": "#ff00ff", - "gainsboro": "#dcdcdc", - "ghostwhite": "#f8f8ff", - "gold": "#ffd700", - "goldenrod": "#daa520", - "gray": "#808080", - "grey": "#808080", - "green": "#008000", - "greenyellow": "#adff2f", - "honeydew": "#f0fff0", - "hotpink": "#ff69b4", - "indianred": "#cd5c5c", - "indigo": "#4b0082", - "ivory": "#fffff0", - "khaki": "#f0e68c", - "lavender": "#e6e6fa", - "lavenderblush": "#fff0f5", - "lawngreen": "#7cfc00", - "lemonchiffon": "#fffacd", - "lightblue": "#add8e6", - "lightcoral": "#f08080", - "lightcyan": "#e0ffff", - "lightgoldenrodyellow": "#fafad2", - "lightgreen": "#90ee90", - "lightgray": "#d3d3d3", - "lightgrey": "#d3d3d3", - "lightpink": "#ffb6c1", - "lightsalmon": "#ffa07a", - "lightseagreen": "#20b2aa", - "lightskyblue": "#87cefa", - "lightslategray": "#778899", - "lightslategrey": "#778899", - "lightsteelblue": "#b0c4de", - "lightyellow": "#ffffe0", - "lime": "#00ff00", - "limegreen": "#32cd32", - "linen": "#faf0e6", - "magenta": "#ff00ff", - "maroon": "#800000", - "mediumaquamarine": "#66cdaa", - "mediumblue": "#0000cd", - "mediumorchid": "#ba55d3", - "mediumpurple": "#9370db", - "mediumseagreen": "#3cb371", - "mediumslateblue": "#7b68ee", - "mediumspringgreen": "#00fa9a", - "mediumturquoise": "#48d1cc", - "mediumvioletred": "#c71585", - "midnightblue": "#191970", - "mintcream": "#f5fffa", - "mistyrose": "#ffe4e1", - "moccasin": "#ffe4b5", - "navajowhite": "#ffdead", - "navy": "#000080", - "oldlace": "#fdf5e6", - "olive": "#808000", - "olivedrab": "#6b8e23", - "orange": "#ffa500", - "orangered": "#ff4500", - "orchid": "#da70d6", - "palegoldenrod": "#eee8aa", - "palegreen": "#98fb98", - "paleturquoise": "#afeeee", - "palevioletred": "#db7093", - "papayawhip": "#ffefd5", - "peachpuff": "#ffdab9", - "peru": "#cd853f", - "pink": "#ffc0cb", - "plum": "#dda0dd", - "powderblue": "#b0e0e6", - "purple": "#800080", - "rebeccapurple": "#663399", - "red": "#ff0000", - "rosybrown": "#bc8f8f", - "royalblue": "#4169e1", - "saddlebrown": "#8b4513", - "salmon": "#fa8072", - "sandybrown": "#f4a460", - "seagreen": "#2e8b57", - "seashell": "#fff5ee", - "sienna": "#a0522d", - "silver": "#c0c0c0", - "skyblue": "#87ceeb", - "slateblue": "#6a5acd", - "slategray": "#708090", - "slategrey": "#708090", - "snow": "#fffafa", - "springgreen": "#00ff7f", - "steelblue": "#4682b4", - "tan": "#d2b48c", - "teal": "#008080", - "thistle": "#d8bfd8", - "tomato": "#ff6347", - "turquoise": "#40e0d0", - "violet": "#ee82ee", - "wheat": "#f5deb3", - "white": "#ffffff", - "whitesmoke": "#f5f5f5", - "yellow": "#ffff00", - "yellowgreen": "#9acd32", -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageDraw.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageDraw.py deleted file mode 100644 index 84665f5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageDraw.py +++ /dev/null @@ -1,1065 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# drawing interface operations -# -# History: -# 1996-04-13 fl Created (experimental) -# 1996-08-07 fl Filled polygons, ellipses. -# 1996-08-13 fl Added text support -# 1998-06-28 fl Handle I and F images -# 1998-12-29 fl Added arc; use arc primitive to draw ellipses -# 1999-01-10 fl Added shape stuff (experimental) -# 1999-02-06 fl Added bitmap support -# 1999-02-11 fl Changed all primitives to take options -# 1999-02-20 fl Fixed backwards compatibility -# 2000-10-12 fl Copy on write, when necessary -# 2001-02-18 fl Use default ink for bitmap/text also in fill mode -# 2002-10-24 fl Added support for CSS-style color strings -# 2002-12-10 fl Added experimental support for RGBA-on-RGB drawing -# 2002-12-11 fl Refactored low-level drawing API (work in progress) -# 2004-08-26 fl Made Draw() a factory function, added getdraw() support -# 2004-09-04 fl Added width support to line primitive -# 2004-09-10 fl Added font mode handling -# 2006-06-19 fl Added font bearing support (getmask2) -# -# Copyright (c) 1997-2006 by Secret Labs AB -# Copyright (c) 1996-2006 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import math -import numbers -import struct - -from . import Image, ImageColor - -""" -A simple 2D drawing interface for PIL images. -

-Application code should use the Draw factory, instead of -directly. -""" - - -class ImageDraw: - font = None - - def __init__(self, im, mode=None): - """ - Create a drawing instance. - - :param im: The image to draw in. - :param mode: Optional mode to use for color values. For RGB - images, this argument can be RGB or RGBA (to blend the - drawing into the image). For all other modes, this argument - must be the same as the image mode. If omitted, the mode - defaults to the mode of the image. - """ - im.load() - if im.readonly: - im._copy() # make it writeable - blend = 0 - if mode is None: - mode = im.mode - if mode != im.mode: - if mode == "RGBA" and im.mode == "RGB": - blend = 1 - else: - msg = "mode mismatch" - raise ValueError(msg) - if mode == "P": - self.palette = im.palette - else: - self.palette = None - self._image = im - self.im = im.im - self.draw = Image.core.draw(self.im, blend) - self.mode = mode - if mode in ("I", "F"): - self.ink = self.draw.draw_ink(1) - else: - self.ink = self.draw.draw_ink(-1) - if mode in ("1", "P", "I", "F"): - # FIXME: fix Fill2 to properly support matte for I+F images - self.fontmode = "1" - else: - self.fontmode = "L" # aliasing is okay for other modes - self.fill = False - - def getfont(self): - """ - Get the current default font. - - To set the default font for this ImageDraw instance:: - - from PIL import ImageDraw, ImageFont - draw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf") - - To set the default font for all future ImageDraw instances:: - - from PIL import ImageDraw, ImageFont - ImageDraw.ImageDraw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf") - - If the current default font is ``None``, - it is initialized with ``ImageFont.load_default()``. - - :returns: An image font.""" - if not self.font: - # FIXME: should add a font repository - from . import ImageFont - - self.font = ImageFont.load_default() - return self.font - - def _getfont(self, font_size): - if font_size is not None: - from . import ImageFont - - font = ImageFont.load_default(font_size) - else: - font = self.getfont() - return font - - def _getink(self, ink, fill=None): - if ink is None and fill is None: - if self.fill: - fill = self.ink - else: - ink = self.ink - else: - if ink is not None: - if isinstance(ink, str): - ink = ImageColor.getcolor(ink, self.mode) - if self.palette and not isinstance(ink, numbers.Number): - ink = self.palette.getcolor(ink, self._image) - ink = self.draw.draw_ink(ink) - if fill is not None: - if isinstance(fill, str): - fill = ImageColor.getcolor(fill, self.mode) - if self.palette and not isinstance(fill, numbers.Number): - fill = self.palette.getcolor(fill, self._image) - fill = self.draw.draw_ink(fill) - return ink, fill - - def arc(self, xy, start, end, fill=None, width=1): - """Draw an arc.""" - ink, fill = self._getink(fill) - if ink is not None: - self.draw.draw_arc(xy, start, end, ink, width) - - def bitmap(self, xy, bitmap, fill=None): - """Draw a bitmap.""" - bitmap.load() - ink, fill = self._getink(fill) - if ink is None: - ink = fill - if ink is not None: - self.draw.draw_bitmap(xy, bitmap.im, ink) - - def chord(self, xy, start, end, fill=None, outline=None, width=1): - """Draw a chord.""" - ink, fill = self._getink(outline, fill) - if fill is not None: - self.draw.draw_chord(xy, start, end, fill, 1) - if ink is not None and ink != fill and width != 0: - self.draw.draw_chord(xy, start, end, ink, 0, width) - - def ellipse(self, xy, fill=None, outline=None, width=1): - """Draw an ellipse.""" - ink, fill = self._getink(outline, fill) - if fill is not None: - self.draw.draw_ellipse(xy, fill, 1) - if ink is not None and ink != fill and width != 0: - self.draw.draw_ellipse(xy, ink, 0, width) - - def line(self, xy, fill=None, width=0, joint=None): - """Draw a line, or a connected sequence of line segments.""" - ink = self._getink(fill)[0] - if ink is not None: - self.draw.draw_lines(xy, ink, width) - if joint == "curve" and width > 4: - if not isinstance(xy[0], (list, tuple)): - xy = [tuple(xy[i : i + 2]) for i in range(0, len(xy), 2)] - for i in range(1, len(xy) - 1): - point = xy[i] - angles = [ - math.degrees(math.atan2(end[0] - start[0], start[1] - end[1])) - % 360 - for start, end in ((xy[i - 1], point), (point, xy[i + 1])) - ] - if angles[0] == angles[1]: - # This is a straight line, so no joint is required - continue - - def coord_at_angle(coord, angle): - x, y = coord - angle -= 90 - distance = width / 2 - 1 - return tuple( - p + (math.floor(p_d) if p_d > 0 else math.ceil(p_d)) - for p, p_d in ( - (x, distance * math.cos(math.radians(angle))), - (y, distance * math.sin(math.radians(angle))), - ) - ) - - flipped = ( - angles[1] > angles[0] and angles[1] - 180 > angles[0] - ) or (angles[1] < angles[0] and angles[1] + 180 > angles[0]) - coords = [ - (point[0] - width / 2 + 1, point[1] - width / 2 + 1), - (point[0] + width / 2 - 1, point[1] + width / 2 - 1), - ] - if flipped: - start, end = (angles[1] + 90, angles[0] + 90) - else: - start, end = (angles[0] - 90, angles[1] - 90) - self.pieslice(coords, start - 90, end - 90, fill) - - if width > 8: - # Cover potential gaps between the line and the joint - if flipped: - gap_coords = [ - coord_at_angle(point, angles[0] + 90), - point, - coord_at_angle(point, angles[1] + 90), - ] - else: - gap_coords = [ - coord_at_angle(point, angles[0] - 90), - point, - coord_at_angle(point, angles[1] - 90), - ] - self.line(gap_coords, fill, width=3) - - def shape(self, shape, fill=None, outline=None): - """(Experimental) Draw a shape.""" - shape.close() - ink, fill = self._getink(outline, fill) - if fill is not None: - self.draw.draw_outline(shape, fill, 1) - if ink is not None and ink != fill: - self.draw.draw_outline(shape, ink, 0) - - def pieslice(self, xy, start, end, fill=None, outline=None, width=1): - """Draw a pieslice.""" - ink, fill = self._getink(outline, fill) - if fill is not None: - self.draw.draw_pieslice(xy, start, end, fill, 1) - if ink is not None and ink != fill and width != 0: - self.draw.draw_pieslice(xy, start, end, ink, 0, width) - - def point(self, xy, fill=None): - """Draw one or more individual pixels.""" - ink, fill = self._getink(fill) - if ink is not None: - self.draw.draw_points(xy, ink) - - def polygon(self, xy, fill=None, outline=None, width=1): - """Draw a polygon.""" - ink, fill = self._getink(outline, fill) - if fill is not None: - self.draw.draw_polygon(xy, fill, 1) - if ink is not None and ink != fill and width != 0: - if width == 1: - self.draw.draw_polygon(xy, ink, 0, width) - else: - # To avoid expanding the polygon outwards, - # use the fill as a mask - mask = Image.new("1", self.im.size) - mask_ink = self._getink(1)[0] - - fill_im = mask.copy() - draw = Draw(fill_im) - draw.draw.draw_polygon(xy, mask_ink, 1) - - ink_im = mask.copy() - draw = Draw(ink_im) - width = width * 2 - 1 - draw.draw.draw_polygon(xy, mask_ink, 0, width) - - mask.paste(ink_im, mask=fill_im) - - im = Image.new(self.mode, self.im.size) - draw = Draw(im) - draw.draw.draw_polygon(xy, ink, 0, width) - self.im.paste(im.im, (0, 0) + im.size, mask.im) - - def regular_polygon( - self, bounding_circle, n_sides, rotation=0, fill=None, outline=None, width=1 - ): - """Draw a regular polygon.""" - xy = _compute_regular_polygon_vertices(bounding_circle, n_sides, rotation) - self.polygon(xy, fill, outline, width) - - def rectangle(self, xy, fill=None, outline=None, width=1): - """Draw a rectangle.""" - ink, fill = self._getink(outline, fill) - if fill is not None: - self.draw.draw_rectangle(xy, fill, 1) - if ink is not None and ink != fill and width != 0: - self.draw.draw_rectangle(xy, ink, 0, width) - - def rounded_rectangle( - self, xy, radius=0, fill=None, outline=None, width=1, *, corners=None - ): - """Draw a rounded rectangle.""" - if isinstance(xy[0], (list, tuple)): - (x0, y0), (x1, y1) = xy - else: - x0, y0, x1, y1 = xy - if x1 < x0: - msg = "x1 must be greater than or equal to x0" - raise ValueError(msg) - if y1 < y0: - msg = "y1 must be greater than or equal to y0" - raise ValueError(msg) - if corners is None: - corners = (True, True, True, True) - - d = radius * 2 - - full_x, full_y = False, False - if all(corners): - full_x = d >= x1 - x0 - 1 - if full_x: - # The two left and two right corners are joined - d = x1 - x0 - full_y = d >= y1 - y0 - 1 - if full_y: - # The two top and two bottom corners are joined - d = y1 - y0 - if full_x and full_y: - # If all corners are joined, that is a circle - return self.ellipse(xy, fill, outline, width) - - if d == 0 or not any(corners): - # If the corners have no curve, - # or there are no corners, - # that is a rectangle - return self.rectangle(xy, fill, outline, width) - - r = d // 2 - ink, fill = self._getink(outline, fill) - - def draw_corners(pieslice): - if full_x: - # Draw top and bottom halves - parts = ( - ((x0, y0, x0 + d, y0 + d), 180, 360), - ((x0, y1 - d, x0 + d, y1), 0, 180), - ) - elif full_y: - # Draw left and right halves - parts = ( - ((x0, y0, x0 + d, y0 + d), 90, 270), - ((x1 - d, y0, x1, y0 + d), 270, 90), - ) - else: - # Draw four separate corners - parts = [] - for i, part in enumerate( - ( - ((x0, y0, x0 + d, y0 + d), 180, 270), - ((x1 - d, y0, x1, y0 + d), 270, 360), - ((x1 - d, y1 - d, x1, y1), 0, 90), - ((x0, y1 - d, x0 + d, y1), 90, 180), - ) - ): - if corners[i]: - parts.append(part) - for part in parts: - if pieslice: - self.draw.draw_pieslice(*(part + (fill, 1))) - else: - self.draw.draw_arc(*(part + (ink, width))) - - if fill is not None: - draw_corners(True) - - if full_x: - self.draw.draw_rectangle((x0, y0 + r + 1, x1, y1 - r - 1), fill, 1) - else: - self.draw.draw_rectangle((x0 + r + 1, y0, x1 - r - 1, y1), fill, 1) - if not full_x and not full_y: - left = [x0, y0, x0 + r, y1] - if corners[0]: - left[1] += r + 1 - if corners[3]: - left[3] -= r + 1 - self.draw.draw_rectangle(left, fill, 1) - - right = [x1 - r, y0, x1, y1] - if corners[1]: - right[1] += r + 1 - if corners[2]: - right[3] -= r + 1 - self.draw.draw_rectangle(right, fill, 1) - if ink is not None and ink != fill and width != 0: - draw_corners(False) - - if not full_x: - top = [x0, y0, x1, y0 + width - 1] - if corners[0]: - top[0] += r + 1 - if corners[1]: - top[2] -= r + 1 - self.draw.draw_rectangle(top, ink, 1) - - bottom = [x0, y1 - width + 1, x1, y1] - if corners[3]: - bottom[0] += r + 1 - if corners[2]: - bottom[2] -= r + 1 - self.draw.draw_rectangle(bottom, ink, 1) - if not full_y: - left = [x0, y0, x0 + width - 1, y1] - if corners[0]: - left[1] += r + 1 - if corners[3]: - left[3] -= r + 1 - self.draw.draw_rectangle(left, ink, 1) - - right = [x1 - width + 1, y0, x1, y1] - if corners[1]: - right[1] += r + 1 - if corners[2]: - right[3] -= r + 1 - self.draw.draw_rectangle(right, ink, 1) - - def _multiline_check(self, text): - split_character = "\n" if isinstance(text, str) else b"\n" - - return split_character in text - - def _multiline_split(self, text): - split_character = "\n" if isinstance(text, str) else b"\n" - - return text.split(split_character) - - def _multiline_spacing(self, font, spacing, stroke_width): - return ( - self.textbbox((0, 0), "A", font, stroke_width=stroke_width)[3] - + stroke_width - + spacing - ) - - def text( - self, - xy, - text, - fill=None, - font=None, - anchor=None, - spacing=4, - align="left", - direction=None, - features=None, - language=None, - stroke_width=0, - stroke_fill=None, - embedded_color=False, - *args, - **kwargs, - ): - """Draw text.""" - if embedded_color and self.mode not in ("RGB", "RGBA"): - msg = "Embedded color supported only in RGB and RGBA modes" - raise ValueError(msg) - - if font is None: - font = self._getfont(kwargs.get("font_size")) - - if self._multiline_check(text): - return self.multiline_text( - xy, - text, - fill, - font, - anchor, - spacing, - align, - direction, - features, - language, - stroke_width, - stroke_fill, - embedded_color, - ) - - def getink(fill): - ink, fill = self._getink(fill) - if ink is None: - return fill - return ink - - def draw_text(ink, stroke_width=0, stroke_offset=None): - mode = self.fontmode - if stroke_width == 0 and embedded_color: - mode = "RGBA" - coord = [] - start = [] - for i in range(2): - coord.append(int(xy[i])) - start.append(math.modf(xy[i])[0]) - try: - mask, offset = font.getmask2( - text, - mode, - direction=direction, - features=features, - language=language, - stroke_width=stroke_width, - anchor=anchor, - ink=ink, - start=start, - *args, - **kwargs, - ) - coord = coord[0] + offset[0], coord[1] + offset[1] - except AttributeError: - try: - mask = font.getmask( - text, - mode, - direction, - features, - language, - stroke_width, - anchor, - ink, - start=start, - *args, - **kwargs, - ) - except TypeError: - mask = font.getmask(text) - if stroke_offset: - coord = coord[0] + stroke_offset[0], coord[1] + stroke_offset[1] - if mode == "RGBA": - # font.getmask2(mode="RGBA") returns color in RGB bands and mask in A - # extract mask and set text alpha - color, mask = mask, mask.getband(3) - ink_alpha = struct.pack("i", ink)[3] - color.fillband(3, ink_alpha) - x, y = coord - self.im.paste(color, (x, y, x + mask.size[0], y + mask.size[1]), mask) - else: - self.draw.draw_bitmap(coord, mask, ink) - - ink = getink(fill) - if ink is not None: - stroke_ink = None - if stroke_width: - stroke_ink = getink(stroke_fill) if stroke_fill is not None else ink - - if stroke_ink is not None: - # Draw stroked text - draw_text(stroke_ink, stroke_width) - - # Draw normal text - draw_text(ink, 0) - else: - # Only draw normal text - draw_text(ink) - - def multiline_text( - self, - xy, - text, - fill=None, - font=None, - anchor=None, - spacing=4, - align="left", - direction=None, - features=None, - language=None, - stroke_width=0, - stroke_fill=None, - embedded_color=False, - *, - font_size=None, - ): - if direction == "ttb": - msg = "ttb direction is unsupported for multiline text" - raise ValueError(msg) - - if anchor is None: - anchor = "la" - elif len(anchor) != 2: - msg = "anchor must be a 2 character string" - raise ValueError(msg) - elif anchor[1] in "tb": - msg = "anchor not supported for multiline text" - raise ValueError(msg) - - if font is None: - font = self._getfont(font_size) - - widths = [] - max_width = 0 - lines = self._multiline_split(text) - line_spacing = self._multiline_spacing(font, spacing, stroke_width) - for line in lines: - line_width = self.textlength( - line, font, direction=direction, features=features, language=language - ) - widths.append(line_width) - max_width = max(max_width, line_width) - - top = xy[1] - if anchor[1] == "m": - top -= (len(lines) - 1) * line_spacing / 2.0 - elif anchor[1] == "d": - top -= (len(lines) - 1) * line_spacing - - for idx, line in enumerate(lines): - left = xy[0] - width_difference = max_width - widths[idx] - - # first align left by anchor - if anchor[0] == "m": - left -= width_difference / 2.0 - elif anchor[0] == "r": - left -= width_difference - - # then align by align parameter - if align == "left": - pass - elif align == "center": - left += width_difference / 2.0 - elif align == "right": - left += width_difference - else: - msg = 'align must be "left", "center" or "right"' - raise ValueError(msg) - - self.text( - (left, top), - line, - fill, - font, - anchor, - direction=direction, - features=features, - language=language, - stroke_width=stroke_width, - stroke_fill=stroke_fill, - embedded_color=embedded_color, - ) - top += line_spacing - - def textlength( - self, - text, - font=None, - direction=None, - features=None, - language=None, - embedded_color=False, - *, - font_size=None, - ): - """Get the length of a given string, in pixels with 1/64 precision.""" - if self._multiline_check(text): - msg = "can't measure length of multiline text" - raise ValueError(msg) - if embedded_color and self.mode not in ("RGB", "RGBA"): - msg = "Embedded color supported only in RGB and RGBA modes" - raise ValueError(msg) - - if font is None: - font = self._getfont(font_size) - mode = "RGBA" if embedded_color else self.fontmode - return font.getlength(text, mode, direction, features, language) - - def textbbox( - self, - xy, - text, - font=None, - anchor=None, - spacing=4, - align="left", - direction=None, - features=None, - language=None, - stroke_width=0, - embedded_color=False, - *, - font_size=None, - ): - """Get the bounding box of a given string, in pixels.""" - if embedded_color and self.mode not in ("RGB", "RGBA"): - msg = "Embedded color supported only in RGB and RGBA modes" - raise ValueError(msg) - - if font is None: - font = self._getfont(font_size) - - if self._multiline_check(text): - return self.multiline_textbbox( - xy, - text, - font, - anchor, - spacing, - align, - direction, - features, - language, - stroke_width, - embedded_color, - ) - - mode = "RGBA" if embedded_color else self.fontmode - bbox = font.getbbox( - text, mode, direction, features, language, stroke_width, anchor - ) - return bbox[0] + xy[0], bbox[1] + xy[1], bbox[2] + xy[0], bbox[3] + xy[1] - - def multiline_textbbox( - self, - xy, - text, - font=None, - anchor=None, - spacing=4, - align="left", - direction=None, - features=None, - language=None, - stroke_width=0, - embedded_color=False, - *, - font_size=None, - ): - if direction == "ttb": - msg = "ttb direction is unsupported for multiline text" - raise ValueError(msg) - - if anchor is None: - anchor = "la" - elif len(anchor) != 2: - msg = "anchor must be a 2 character string" - raise ValueError(msg) - elif anchor[1] in "tb": - msg = "anchor not supported for multiline text" - raise ValueError(msg) - - if font is None: - font = self._getfont(font_size) - - widths = [] - max_width = 0 - lines = self._multiline_split(text) - line_spacing = self._multiline_spacing(font, spacing, stroke_width) - for line in lines: - line_width = self.textlength( - line, - font, - direction=direction, - features=features, - language=language, - embedded_color=embedded_color, - ) - widths.append(line_width) - max_width = max(max_width, line_width) - - top = xy[1] - if anchor[1] == "m": - top -= (len(lines) - 1) * line_spacing / 2.0 - elif anchor[1] == "d": - top -= (len(lines) - 1) * line_spacing - - bbox = None - - for idx, line in enumerate(lines): - left = xy[0] - width_difference = max_width - widths[idx] - - # first align left by anchor - if anchor[0] == "m": - left -= width_difference / 2.0 - elif anchor[0] == "r": - left -= width_difference - - # then align by align parameter - if align == "left": - pass - elif align == "center": - left += width_difference / 2.0 - elif align == "right": - left += width_difference - else: - msg = 'align must be "left", "center" or "right"' - raise ValueError(msg) - - bbox_line = self.textbbox( - (left, top), - line, - font, - anchor, - direction=direction, - features=features, - language=language, - stroke_width=stroke_width, - embedded_color=embedded_color, - ) - if bbox is None: - bbox = bbox_line - else: - bbox = ( - min(bbox[0], bbox_line[0]), - min(bbox[1], bbox_line[1]), - max(bbox[2], bbox_line[2]), - max(bbox[3], bbox_line[3]), - ) - - top += line_spacing - - if bbox is None: - return xy[0], xy[1], xy[0], xy[1] - return bbox - - -def Draw(im, mode=None): - """ - A simple 2D drawing interface for PIL images. - - :param im: The image to draw in. - :param mode: Optional mode to use for color values. For RGB - images, this argument can be RGB or RGBA (to blend the - drawing into the image). For all other modes, this argument - must be the same as the image mode. If omitted, the mode - defaults to the mode of the image. - """ - try: - return im.getdraw(mode) - except AttributeError: - return ImageDraw(im, mode) - - -# experimental access to the outline API -try: - Outline = Image.core.outline -except AttributeError: - Outline = None - - -def getdraw(im=None, hints=None): - """ - (Experimental) A more advanced 2D drawing interface for PIL images, - based on the WCK interface. - - :param im: The image to draw in. - :param hints: An optional list of hints. - :returns: A (drawing context, drawing resource factory) tuple. - """ - # FIXME: this needs more work! - # FIXME: come up with a better 'hints' scheme. - handler = None - if not hints or "nicest" in hints: - try: - from . import _imagingagg as handler - except ImportError: - pass - if handler is None: - from . import ImageDraw2 as handler - if im: - im = handler.Draw(im) - return im, handler - - -def floodfill(image, xy, value, border=None, thresh=0): - """ - (experimental) Fills a bounded region with a given color. - - :param image: Target image. - :param xy: Seed position (a 2-item coordinate tuple). See - :ref:`coordinate-system`. - :param value: Fill color. - :param border: Optional border value. If given, the region consists of - pixels with a color different from the border color. If not given, - the region consists of pixels having the same color as the seed - pixel. - :param thresh: Optional threshold value which specifies a maximum - tolerable difference of a pixel value from the 'background' in - order for it to be replaced. Useful for filling regions of - non-homogeneous, but similar, colors. - """ - # based on an implementation by Eric S. Raymond - # amended by yo1995 @20180806 - pixel = image.load() - x, y = xy - try: - background = pixel[x, y] - if _color_diff(value, background) <= thresh: - return # seed point already has fill color - pixel[x, y] = value - except (ValueError, IndexError): - return # seed point outside image - edge = {(x, y)} - # use a set to keep record of current and previous edge pixels - # to reduce memory consumption - full_edge = set() - while edge: - new_edge = set() - for x, y in edge: # 4 adjacent method - for s, t in ((x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)): - # If already processed, or if a coordinate is negative, skip - if (s, t) in full_edge or s < 0 or t < 0: - continue - try: - p = pixel[s, t] - except (ValueError, IndexError): - pass - else: - full_edge.add((s, t)) - if border is None: - fill = _color_diff(p, background) <= thresh - else: - fill = p not in (value, border) - if fill: - pixel[s, t] = value - new_edge.add((s, t)) - full_edge = edge # discard pixels processed - edge = new_edge - - -def _compute_regular_polygon_vertices(bounding_circle, n_sides, rotation): - """ - Generate a list of vertices for a 2D regular polygon. - - :param bounding_circle: The bounding circle is a tuple defined - by a point and radius. The polygon is inscribed in this circle. - (e.g. ``bounding_circle=(x, y, r)`` or ``((x, y), r)``) - :param n_sides: Number of sides - (e.g. ``n_sides=3`` for a triangle, ``6`` for a hexagon) - :param rotation: Apply an arbitrary rotation to the polygon - (e.g. ``rotation=90``, applies a 90 degree rotation) - :return: List of regular polygon vertices - (e.g. ``[(25, 50), (50, 50), (50, 25), (25, 25)]``) - - How are the vertices computed? - 1. Compute the following variables - - theta: Angle between the apothem & the nearest polygon vertex - - side_length: Length of each polygon edge - - centroid: Center of bounding circle (1st, 2nd elements of bounding_circle) - - polygon_radius: Polygon radius (last element of bounding_circle) - - angles: Location of each polygon vertex in polar grid - (e.g. A square with 0 degree rotation => [225.0, 315.0, 45.0, 135.0]) - - 2. For each angle in angles, get the polygon vertex at that angle - The vertex is computed using the equation below. - X= xcos(φ) + ysin(φ) - Y= −xsin(φ) + ycos(φ) - - Note: - φ = angle in degrees - x = 0 - y = polygon_radius - - The formula above assumes rotation around the origin. - In our case, we are rotating around the centroid. - To account for this, we use the formula below - X = xcos(φ) + ysin(φ) + centroid_x - Y = −xsin(φ) + ycos(φ) + centroid_y - """ - # 1. Error Handling - # 1.1 Check `n_sides` has an appropriate value - if not isinstance(n_sides, int): - msg = "n_sides should be an int" - raise TypeError(msg) - if n_sides < 3: - msg = "n_sides should be an int > 2" - raise ValueError(msg) - - # 1.2 Check `bounding_circle` has an appropriate value - if not isinstance(bounding_circle, (list, tuple)): - msg = "bounding_circle should be a tuple" - raise TypeError(msg) - - if len(bounding_circle) == 3: - *centroid, polygon_radius = bounding_circle - elif len(bounding_circle) == 2: - centroid, polygon_radius = bounding_circle - else: - msg = ( - "bounding_circle should contain 2D coordinates " - "and a radius (e.g. (x, y, r) or ((x, y), r) )" - ) - raise ValueError(msg) - - if not all(isinstance(i, (int, float)) for i in (*centroid, polygon_radius)): - msg = "bounding_circle should only contain numeric data" - raise ValueError(msg) - - if not len(centroid) == 2: - msg = "bounding_circle centre should contain 2D coordinates (e.g. (x, y))" - raise ValueError(msg) - - if polygon_radius <= 0: - msg = "bounding_circle radius should be > 0" - raise ValueError(msg) - - # 1.3 Check `rotation` has an appropriate value - if not isinstance(rotation, (int, float)): - msg = "rotation should be an int or float" - raise ValueError(msg) - - # 2. Define Helper Functions - def _apply_rotation(point, degrees, centroid): - return ( - round( - point[0] * math.cos(math.radians(360 - degrees)) - - point[1] * math.sin(math.radians(360 - degrees)) - + centroid[0], - 2, - ), - round( - point[1] * math.cos(math.radians(360 - degrees)) - + point[0] * math.sin(math.radians(360 - degrees)) - + centroid[1], - 2, - ), - ) - - def _compute_polygon_vertex(centroid, polygon_radius, angle): - start_point = [polygon_radius, 0] - return _apply_rotation(start_point, angle, centroid) - - def _get_angles(n_sides, rotation): - angles = [] - degrees = 360 / n_sides - # Start with the bottom left polygon vertex - current_angle = (270 - 0.5 * degrees) + rotation - for _ in range(0, n_sides): - angles.append(current_angle) - current_angle += degrees - if current_angle > 360: - current_angle -= 360 - return angles - - # 3. Variable Declarations - angles = _get_angles(n_sides, rotation) - - # 4. Compute Vertices - return [ - _compute_polygon_vertex(centroid, polygon_radius, angle) for angle in angles - ] - - -def _color_diff(color1, color2): - """ - Uses 1-norm distance to calculate difference between two values. - """ - if isinstance(color2, tuple): - return sum(abs(color1[i] - color2[i]) for i in range(0, len(color2))) - else: - return abs(color1 - color2) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageDraw2.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageDraw2.py deleted file mode 100644 index 35ee583..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageDraw2.py +++ /dev/null @@ -1,193 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# WCK-style drawing interface operations -# -# History: -# 2003-12-07 fl created -# 2005-05-15 fl updated; added to PIL as ImageDraw2 -# 2005-05-15 fl added text support -# 2005-05-20 fl added arc/chord/pieslice support -# -# Copyright (c) 2003-2005 by Secret Labs AB -# Copyright (c) 2003-2005 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# - - -""" -(Experimental) WCK-style drawing interface operations - -.. seealso:: :py:mod:`PIL.ImageDraw` -""" -from __future__ import annotations - -from . import Image, ImageColor, ImageDraw, ImageFont, ImagePath - - -class Pen: - """Stores an outline color and width.""" - - def __init__(self, color, width=1, opacity=255): - self.color = ImageColor.getrgb(color) - self.width = width - - -class Brush: - """Stores a fill color""" - - def __init__(self, color, opacity=255): - self.color = ImageColor.getrgb(color) - - -class Font: - """Stores a TrueType font and color""" - - def __init__(self, color, file, size=12): - # FIXME: add support for bitmap fonts - self.color = ImageColor.getrgb(color) - self.font = ImageFont.truetype(file, size) - - -class Draw: - """ - (Experimental) WCK-style drawing interface - """ - - def __init__(self, image, size=None, color=None): - if not hasattr(image, "im"): - image = Image.new(image, size, color) - self.draw = ImageDraw.Draw(image) - self.image = image - self.transform = None - - def flush(self): - return self.image - - def render(self, op, xy, pen, brush=None): - # handle color arguments - outline = fill = None - width = 1 - if isinstance(pen, Pen): - outline = pen.color - width = pen.width - elif isinstance(brush, Pen): - outline = brush.color - width = brush.width - if isinstance(brush, Brush): - fill = brush.color - elif isinstance(pen, Brush): - fill = pen.color - # handle transformation - if self.transform: - xy = ImagePath.Path(xy) - xy.transform(self.transform) - # render the item - if op == "line": - self.draw.line(xy, fill=outline, width=width) - else: - getattr(self.draw, op)(xy, fill=fill, outline=outline) - - def settransform(self, offset): - """Sets a transformation offset.""" - (xoffset, yoffset) = offset - self.transform = (1, 0, xoffset, 0, 1, yoffset) - - def arc(self, xy, start, end, *options): - """ - Draws an arc (a portion of a circle outline) between the start and end - angles, inside the given bounding box. - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.arc` - """ - self.render("arc", xy, start, end, *options) - - def chord(self, xy, start, end, *options): - """ - Same as :py:meth:`~PIL.ImageDraw2.Draw.arc`, but connects the end points - with a straight line. - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.chord` - """ - self.render("chord", xy, start, end, *options) - - def ellipse(self, xy, *options): - """ - Draws an ellipse inside the given bounding box. - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.ellipse` - """ - self.render("ellipse", xy, *options) - - def line(self, xy, *options): - """ - Draws a line between the coordinates in the ``xy`` list. - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.line` - """ - self.render("line", xy, *options) - - def pieslice(self, xy, start, end, *options): - """ - Same as arc, but also draws straight lines between the end points and the - center of the bounding box. - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.pieslice` - """ - self.render("pieslice", xy, start, end, *options) - - def polygon(self, xy, *options): - """ - Draws a polygon. - - The polygon outline consists of straight lines between the given - coordinates, plus a straight line between the last and the first - coordinate. - - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.polygon` - """ - self.render("polygon", xy, *options) - - def rectangle(self, xy, *options): - """ - Draws a rectangle. - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.rectangle` - """ - self.render("rectangle", xy, *options) - - def text(self, xy, text, font): - """ - Draws the string at the given position. - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.text` - """ - if self.transform: - xy = ImagePath.Path(xy) - xy.transform(self.transform) - self.draw.text(xy, text, font=font.font, fill=font.color) - - def textbbox(self, xy, text, font): - """ - Returns bounding box (in pixels) of given text. - - :return: ``(left, top, right, bottom)`` bounding box - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textbbox` - """ - if self.transform: - xy = ImagePath.Path(xy) - xy.transform(self.transform) - return self.draw.textbbox(xy, text, font=font.font) - - def textlength(self, text, font): - """ - Returns length (in pixels) of given text. - This is the amount by which following text should be offset. - - .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textlength` - """ - return self.draw.textlength(text, font=font.font) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageEnhance.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageEnhance.py deleted file mode 100644 index 93a50d2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageEnhance.py +++ /dev/null @@ -1,104 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# image enhancement classes -# -# For a background, see "Image Processing By Interpolation and -# Extrapolation", Paul Haeberli and Douglas Voorhies. Available -# at http://www.graficaobscura.com/interp/index.html -# -# History: -# 1996-03-23 fl Created -# 2009-06-16 fl Fixed mean calculation -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1996. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFilter, ImageStat - - -class _Enhance: - def enhance(self, factor): - """ - Returns an enhanced image. - - :param factor: A floating point value controlling the enhancement. - Factor 1.0 always returns a copy of the original image, - lower factors mean less color (brightness, contrast, - etc), and higher values more. There are no restrictions - on this value. - :rtype: :py:class:`~PIL.Image.Image` - """ - return Image.blend(self.degenerate, self.image, factor) - - -class Color(_Enhance): - """Adjust image color balance. - - This class can be used to adjust the colour balance of an image, in - a manner similar to the controls on a colour TV set. An enhancement - factor of 0.0 gives a black and white image. A factor of 1.0 gives - the original image. - """ - - def __init__(self, image): - self.image = image - self.intermediate_mode = "L" - if "A" in image.getbands(): - self.intermediate_mode = "LA" - - self.degenerate = image.convert(self.intermediate_mode).convert(image.mode) - - -class Contrast(_Enhance): - """Adjust image contrast. - - This class can be used to control the contrast of an image, similar - to the contrast control on a TV set. An enhancement factor of 0.0 - gives a solid gray image. A factor of 1.0 gives the original image. - """ - - def __init__(self, image): - self.image = image - mean = int(ImageStat.Stat(image.convert("L")).mean[0] + 0.5) - self.degenerate = Image.new("L", image.size, mean).convert(image.mode) - - if "A" in image.getbands(): - self.degenerate.putalpha(image.getchannel("A")) - - -class Brightness(_Enhance): - """Adjust image brightness. - - This class can be used to control the brightness of an image. An - enhancement factor of 0.0 gives a black image. A factor of 1.0 gives the - original image. - """ - - def __init__(self, image): - self.image = image - self.degenerate = Image.new(image.mode, image.size, 0) - - if "A" in image.getbands(): - self.degenerate.putalpha(image.getchannel("A")) - - -class Sharpness(_Enhance): - """Adjust image sharpness. - - This class can be used to adjust the sharpness of an image. An - enhancement factor of 0.0 gives a blurred image, a factor of 1.0 gives the - original image, and a factor of 2.0 gives a sharpened image. - """ - - def __init__(self, image): - self.image = image - self.degenerate = image.filter(ImageFilter.SMOOTH) - - if "A" in image.getbands(): - self.degenerate.putalpha(image.getchannel("A")) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFile.py deleted file mode 100644 index 0923979..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFile.py +++ /dev/null @@ -1,795 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# base class for image file handlers -# -# history: -# 1995-09-09 fl Created -# 1996-03-11 fl Fixed load mechanism. -# 1996-04-15 fl Added pcx/xbm decoders. -# 1996-04-30 fl Added encoders. -# 1996-12-14 fl Added load helpers -# 1997-01-11 fl Use encode_to_file where possible -# 1997-08-27 fl Flush output in _save -# 1998-03-05 fl Use memory mapping for some modes -# 1999-02-04 fl Use memory mapping also for "I;16" and "I;16B" -# 1999-05-31 fl Added image parser -# 2000-10-12 fl Set readonly flag on memory-mapped images -# 2002-03-20 fl Use better messages for common decoder errors -# 2003-04-21 fl Fall back on mmap/map_buffer if map is not available -# 2003-10-30 fl Added StubImageFile class -# 2004-02-25 fl Made incremental parser more robust -# -# Copyright (c) 1997-2004 by Secret Labs AB -# Copyright (c) 1995-2004 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -import itertools -import struct -import sys -from typing import Any, NamedTuple - -from . import Image -from ._deprecate import deprecate -from ._util import is_path - -MAXBLOCK = 65536 - -SAFEBLOCK = 1024 * 1024 - -LOAD_TRUNCATED_IMAGES = False -"""Whether or not to load truncated image files. User code may change this.""" - -ERRORS = { - -1: "image buffer overrun error", - -2: "decoding error", - -3: "unknown error", - -8: "bad configuration", - -9: "out of memory error", -} -""" -Dict of known error codes returned from :meth:`.PyDecoder.decode`, -:meth:`.PyEncoder.encode` :meth:`.PyEncoder.encode_to_pyfd` and -:meth:`.PyEncoder.encode_to_file`. -""" - - -# -# -------------------------------------------------------------------- -# Helpers - - -def _get_oserror(error, *, encoder): - try: - msg = Image.core.getcodecstatus(error) - except AttributeError: - msg = ERRORS.get(error) - if not msg: - msg = f"{'encoder' if encoder else 'decoder'} error {error}" - msg += f" when {'writing' if encoder else 'reading'} image file" - return OSError(msg) - - -def raise_oserror(error): - deprecate( - "raise_oserror", - 12, - action="It is only useful for translating error codes returned by a codec's " - "decode() method, which ImageFile already does automatically.", - ) - raise _get_oserror(error, encoder=False) - - -def _tilesort(t): - # sort on offset - return t[2] - - -class _Tile(NamedTuple): - encoder_name: str - extents: tuple[int, int, int, int] - offset: int - args: tuple[Any, ...] | str | None - - -# -# -------------------------------------------------------------------- -# ImageFile base class - - -class ImageFile(Image.Image): - """Base class for image file format handlers.""" - - def __init__(self, fp=None, filename=None): - super().__init__() - - self._min_frame = 0 - - self.custom_mimetype = None - - self.tile = None - """ A list of tile descriptors, or ``None`` """ - - self.readonly = 1 # until we know better - - self.decoderconfig = () - self.decodermaxblock = MAXBLOCK - - if is_path(fp): - # filename - self.fp = open(fp, "rb") - self.filename = fp - self._exclusive_fp = True - else: - # stream - self.fp = fp - self.filename = filename - # can be overridden - self._exclusive_fp = None - - try: - try: - self._open() - except ( - IndexError, # end of data - TypeError, # end of data (ord) - KeyError, # unsupported mode - EOFError, # got header but not the first frame - struct.error, - ) as v: - raise SyntaxError(v) from v - - if not self.mode or self.size[0] <= 0 or self.size[1] <= 0: - msg = "not identified by this driver" - raise SyntaxError(msg) - except BaseException: - # close the file only if we have opened it this constructor - if self._exclusive_fp: - self.fp.close() - raise - - def get_format_mimetype(self): - if self.custom_mimetype: - return self.custom_mimetype - if self.format is not None: - return Image.MIME.get(self.format.upper()) - - def __setstate__(self, state): - self.tile = [] - super().__setstate__(state) - - def verify(self): - """Check file integrity""" - - # raise exception if something's wrong. must be called - # directly after open, and closes file when finished. - if self._exclusive_fp: - self.fp.close() - self.fp = None - - def load(self): - """Load image data based on tile list""" - - if self.tile is None: - msg = "cannot load this image" - raise OSError(msg) - - pixel = Image.Image.load(self) - if not self.tile: - return pixel - - self.map = None - use_mmap = self.filename and len(self.tile) == 1 - # As of pypy 2.1.0, memory mapping was failing here. - use_mmap = use_mmap and not hasattr(sys, "pypy_version_info") - - readonly = 0 - - # look for read/seek overrides - try: - read = self.load_read - # don't use mmap if there are custom read/seek functions - use_mmap = False - except AttributeError: - read = self.fp.read - - try: - seek = self.load_seek - use_mmap = False - except AttributeError: - seek = self.fp.seek - - if use_mmap: - # try memory mapping - decoder_name, extents, offset, args = self.tile[0] - if isinstance(args, str): - args = (args, 0, 1) - if ( - decoder_name == "raw" - and len(args) >= 3 - and args[0] == self.mode - and args[0] in Image._MAPMODES - ): - try: - # use mmap, if possible - import mmap - - with open(self.filename) as fp: - self.map = mmap.mmap(fp.fileno(), 0, access=mmap.ACCESS_READ) - if offset + self.size[1] * args[1] > self.map.size(): - msg = "buffer is not large enough" - raise OSError(msg) - self.im = Image.core.map_buffer( - self.map, self.size, decoder_name, offset, args - ) - readonly = 1 - # After trashing self.im, - # we might need to reload the palette data. - if self.palette: - self.palette.dirty = 1 - except (AttributeError, OSError, ImportError): - self.map = None - - self.load_prepare() - err_code = -3 # initialize to unknown error - if not self.map: - # sort tiles in file order - self.tile.sort(key=_tilesort) - - try: - # FIXME: This is a hack to handle TIFF's JpegTables tag. - prefix = self.tile_prefix - except AttributeError: - prefix = b"" - - # Remove consecutive duplicates that only differ by their offset - self.tile = [ - list(tiles)[-1] - for _, tiles in itertools.groupby( - self.tile, lambda tile: (tile[0], tile[1], tile[3]) - ) - ] - for decoder_name, extents, offset, args in self.tile: - seek(offset) - decoder = Image._getdecoder( - self.mode, decoder_name, args, self.decoderconfig - ) - try: - decoder.setimage(self.im, extents) - if decoder.pulls_fd: - decoder.setfd(self.fp) - err_code = decoder.decode(b"")[1] - else: - b = prefix - while True: - try: - s = read(self.decodermaxblock) - except (IndexError, struct.error) as e: - # truncated png/gif - if LOAD_TRUNCATED_IMAGES: - break - else: - msg = "image file is truncated" - raise OSError(msg) from e - - if not s: # truncated jpeg - if LOAD_TRUNCATED_IMAGES: - break - else: - msg = ( - "image file is truncated " - f"({len(b)} bytes not processed)" - ) - raise OSError(msg) - - b = b + s - n, err_code = decoder.decode(b) - if n < 0: - break - b = b[n:] - finally: - # Need to cleanup here to prevent leaks - decoder.cleanup() - - self.tile = [] - self.readonly = readonly - - self.load_end() - - if self._exclusive_fp and self._close_exclusive_fp_after_loading: - self.fp.close() - self.fp = None - - if not self.map and not LOAD_TRUNCATED_IMAGES and err_code < 0: - # still raised if decoder fails to return anything - raise _get_oserror(err_code, encoder=False) - - return Image.Image.load(self) - - def load_prepare(self): - # create image memory if necessary - if not self.im or self.im.mode != self.mode or self.im.size != self.size: - self.im = Image.core.new(self.mode, self.size) - # create palette (optional) - if self.mode == "P": - Image.Image.load(self) - - def load_end(self): - # may be overridden - pass - - # may be defined for contained formats - # def load_seek(self, pos): - # pass - - # may be defined for blocked formats (e.g. PNG) - # def load_read(self, bytes): - # pass - - def _seek_check(self, frame): - if ( - frame < self._min_frame - # Only check upper limit on frames if additional seek operations - # are not required to do so - or ( - not (hasattr(self, "_n_frames") and self._n_frames is None) - and frame >= self.n_frames + self._min_frame - ) - ): - msg = "attempt to seek outside sequence" - raise EOFError(msg) - - return self.tell() != frame - - -class StubImageFile(ImageFile): - """ - Base class for stub image loaders. - - A stub loader is an image loader that can identify files of a - certain format, but relies on external code to load the file. - """ - - def _open(self): - msg = "StubImageFile subclass must implement _open" - raise NotImplementedError(msg) - - def load(self): - loader = self._load() - if loader is None: - msg = f"cannot find loader for this {self.format} file" - raise OSError(msg) - image = loader.load(self) - assert image is not None - # become the other object (!) - self.__class__ = image.__class__ - self.__dict__ = image.__dict__ - return image.load() - - def _load(self): - """(Hook) Find actual image loader.""" - msg = "StubImageFile subclass must implement _load" - raise NotImplementedError(msg) - - -class Parser: - """ - Incremental image parser. This class implements the standard - feed/close consumer interface. - """ - - incremental = None - image = None - data = None - decoder = None - offset = 0 - finished = 0 - - def reset(self): - """ - (Consumer) Reset the parser. Note that you can only call this - method immediately after you've created a parser; parser - instances cannot be reused. - """ - assert self.data is None, "cannot reuse parsers" - - def feed(self, data): - """ - (Consumer) Feed data to the parser. - - :param data: A string buffer. - :exception OSError: If the parser failed to parse the image file. - """ - # collect data - - if self.finished: - return - - if self.data is None: - self.data = data - else: - self.data = self.data + data - - # parse what we have - if self.decoder: - if self.offset > 0: - # skip header - skip = min(len(self.data), self.offset) - self.data = self.data[skip:] - self.offset = self.offset - skip - if self.offset > 0 or not self.data: - return - - n, e = self.decoder.decode(self.data) - - if n < 0: - # end of stream - self.data = None - self.finished = 1 - if e < 0: - # decoding error - self.image = None - raise _get_oserror(e, encoder=False) - else: - # end of image - return - self.data = self.data[n:] - - elif self.image: - # if we end up here with no decoder, this file cannot - # be incrementally parsed. wait until we've gotten all - # available data - pass - - else: - # attempt to open this file - try: - with io.BytesIO(self.data) as fp: - im = Image.open(fp) - except OSError: - pass # not enough data - else: - flag = hasattr(im, "load_seek") or hasattr(im, "load_read") - if flag or len(im.tile) != 1: - # custom load code, or multiple tiles - self.decode = None - else: - # initialize decoder - im.load_prepare() - d, e, o, a = im.tile[0] - im.tile = [] - self.decoder = Image._getdecoder(im.mode, d, a, im.decoderconfig) - self.decoder.setimage(im.im, e) - - # calculate decoder offset - self.offset = o - if self.offset <= len(self.data): - self.data = self.data[self.offset :] - self.offset = 0 - - self.image = im - - def __enter__(self): - return self - - def __exit__(self, *args): - self.close() - - def close(self): - """ - (Consumer) Close the stream. - - :returns: An image object. - :exception OSError: If the parser failed to parse the image file either - because it cannot be identified or cannot be - decoded. - """ - # finish decoding - if self.decoder: - # get rid of what's left in the buffers - self.feed(b"") - self.data = self.decoder = None - if not self.finished: - msg = "image was incomplete" - raise OSError(msg) - if not self.image: - msg = "cannot parse this image" - raise OSError(msg) - if self.data: - # incremental parsing not possible; reopen the file - # not that we have all data - with io.BytesIO(self.data) as fp: - try: - self.image = Image.open(fp) - finally: - self.image.load() - return self.image - - -# -------------------------------------------------------------------- - - -def _save(im, fp, tile, bufsize=0): - """Helper to save image based on tile list - - :param im: Image object. - :param fp: File object. - :param tile: Tile list. - :param bufsize: Optional buffer size - """ - - im.load() - if not hasattr(im, "encoderconfig"): - im.encoderconfig = () - tile.sort(key=_tilesort) - # FIXME: make MAXBLOCK a configuration parameter - # It would be great if we could have the encoder specify what it needs - # But, it would need at least the image size in most cases. RawEncode is - # a tricky case. - bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4) # see RawEncode.c - try: - fh = fp.fileno() - fp.flush() - _encode_tile(im, fp, tile, bufsize, fh) - except (AttributeError, io.UnsupportedOperation) as exc: - _encode_tile(im, fp, tile, bufsize, None, exc) - if hasattr(fp, "flush"): - fp.flush() - - -def _encode_tile(im, fp, tile: list[_Tile], bufsize, fh, exc=None): - for encoder_name, extents, offset, args in tile: - if offset > 0: - fp.seek(offset) - encoder = Image._getencoder(im.mode, encoder_name, args, im.encoderconfig) - try: - encoder.setimage(im.im, extents) - if encoder.pushes_fd: - encoder.setfd(fp) - errcode = encoder.encode_to_pyfd()[1] - else: - if exc: - # compress to Python file-compatible object - while True: - errcode, data = encoder.encode(bufsize)[1:] - fp.write(data) - if errcode: - break - else: - # slight speedup: compress to real file object - errcode = encoder.encode_to_file(fh, bufsize) - if errcode < 0: - raise _get_oserror(errcode, encoder=True) from exc - finally: - encoder.cleanup() - - -def _safe_read(fp, size): - """ - Reads large blocks in a safe way. Unlike fp.read(n), this function - doesn't trust the user. If the requested size is larger than - SAFEBLOCK, the file is read block by block. - - :param fp: File handle. Must implement a read method. - :param size: Number of bytes to read. - :returns: A string containing size bytes of data. - - Raises an OSError if the file is truncated and the read cannot be completed - - """ - if size <= 0: - return b"" - if size <= SAFEBLOCK: - data = fp.read(size) - if len(data) < size: - msg = "Truncated File Read" - raise OSError(msg) - return data - data = [] - remaining_size = size - while remaining_size > 0: - block = fp.read(min(remaining_size, SAFEBLOCK)) - if not block: - break - data.append(block) - remaining_size -= len(block) - if sum(len(d) for d in data) < size: - msg = "Truncated File Read" - raise OSError(msg) - return b"".join(data) - - -class PyCodecState: - def __init__(self): - self.xsize = 0 - self.ysize = 0 - self.xoff = 0 - self.yoff = 0 - - def extents(self): - return self.xoff, self.yoff, self.xoff + self.xsize, self.yoff + self.ysize - - -class PyCodec: - def __init__(self, mode, *args): - self.im = None - self.state = PyCodecState() - self.fd = None - self.mode = mode - self.init(args) - - def init(self, args): - """ - Override to perform codec specific initialization - - :param args: Array of args items from the tile entry - :returns: None - """ - self.args = args - - def cleanup(self): - """ - Override to perform codec specific cleanup - - :returns: None - """ - pass - - def setfd(self, fd): - """ - Called from ImageFile to set the Python file-like object - - :param fd: A Python file-like object - :returns: None - """ - self.fd = fd - - def setimage(self, im, extents=None): - """ - Called from ImageFile to set the core output image for the codec - - :param im: A core image object - :param extents: a 4 tuple of (x0, y0, x1, y1) defining the rectangle - for this tile - :returns: None - """ - - # following c code - self.im = im - - if extents: - (x0, y0, x1, y1) = extents - else: - (x0, y0, x1, y1) = (0, 0, 0, 0) - - if x0 == 0 and x1 == 0: - self.state.xsize, self.state.ysize = self.im.size - else: - self.state.xoff = x0 - self.state.yoff = y0 - self.state.xsize = x1 - x0 - self.state.ysize = y1 - y0 - - if self.state.xsize <= 0 or self.state.ysize <= 0: - msg = "Size cannot be negative" - raise ValueError(msg) - - if ( - self.state.xsize + self.state.xoff > self.im.size[0] - or self.state.ysize + self.state.yoff > self.im.size[1] - ): - msg = "Tile cannot extend outside image" - raise ValueError(msg) - - -class PyDecoder(PyCodec): - """ - Python implementation of a format decoder. Override this class and - add the decoding logic in the :meth:`decode` method. - - See :ref:`Writing Your Own File Codec in Python` - """ - - _pulls_fd = False - - @property - def pulls_fd(self): - return self._pulls_fd - - def decode(self, buffer): - """ - Override to perform the decoding process. - - :param buffer: A bytes object with the data to be decoded. - :returns: A tuple of ``(bytes consumed, errcode)``. - If finished with decoding return -1 for the bytes consumed. - Err codes are from :data:`.ImageFile.ERRORS`. - """ - msg = "unavailable in base decoder" - raise NotImplementedError(msg) - - def set_as_raw(self, data, rawmode=None): - """ - Convenience method to set the internal image from a stream of raw data - - :param data: Bytes to be set - :param rawmode: The rawmode to be used for the decoder. - If not specified, it will default to the mode of the image - :returns: None - """ - - if not rawmode: - rawmode = self.mode - d = Image._getdecoder(self.mode, "raw", rawmode) - d.setimage(self.im, self.state.extents()) - s = d.decode(data) - - if s[0] >= 0: - msg = "not enough image data" - raise ValueError(msg) - if s[1] != 0: - msg = "cannot decode image data" - raise ValueError(msg) - - -class PyEncoder(PyCodec): - """ - Python implementation of a format encoder. Override this class and - add the decoding logic in the :meth:`encode` method. - - See :ref:`Writing Your Own File Codec in Python` - """ - - _pushes_fd = False - - @property - def pushes_fd(self): - return self._pushes_fd - - def encode(self, bufsize): - """ - Override to perform the encoding process. - - :param bufsize: Buffer size. - :returns: A tuple of ``(bytes encoded, errcode, bytes)``. - If finished with encoding return 1 for the error code. - Err codes are from :data:`.ImageFile.ERRORS`. - """ - msg = "unavailable in base encoder" - raise NotImplementedError(msg) - - def encode_to_pyfd(self): - """ - If ``pushes_fd`` is ``True``, then this method will be used, - and ``encode()`` will only be called once. - - :returns: A tuple of ``(bytes consumed, errcode)``. - Err codes are from :data:`.ImageFile.ERRORS`. - """ - if not self.pushes_fd: - return 0, -8 # bad configuration - bytes_consumed, errcode, data = self.encode(0) - if data: - self.fd.write(data) - return bytes_consumed, errcode - - def encode_to_file(self, fh, bufsize): - """ - :param fh: File handle. - :param bufsize: Buffer size. - - :returns: If finished successfully, return 0. - Otherwise, return an error code. Err codes are from - :data:`.ImageFile.ERRORS`. - """ - errcode = 0 - while errcode == 0: - status, errcode, buf = self.encode(bufsize) - if status > 0: - fh.write(buf[status:]) - return errcode diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFilter.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFilter.py deleted file mode 100644 index 035b83c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFilter.py +++ /dev/null @@ -1,568 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# standard filters -# -# History: -# 1995-11-27 fl Created -# 2002-06-08 fl Added rank and mode filters -# 2003-09-15 fl Fixed rank calculation in rank filter; added expand call -# -# Copyright (c) 1997-2003 by Secret Labs AB. -# Copyright (c) 1995-2002 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import functools - - -class Filter: - pass - - -class MultibandFilter(Filter): - pass - - -class BuiltinFilter(MultibandFilter): - def filter(self, image): - if image.mode == "P": - msg = "cannot filter palette images" - raise ValueError(msg) - return image.filter(*self.filterargs) - - -class Kernel(BuiltinFilter): - """ - Create a convolution kernel. The current version only - supports 3x3 and 5x5 integer and floating point kernels. - - In the current version, kernels can only be applied to - "L" and "RGB" images. - - :param size: Kernel size, given as (width, height). In the current - version, this must be (3,3) or (5,5). - :param kernel: A sequence containing kernel weights. The kernel will - be flipped vertically before being applied to the image. - :param scale: Scale factor. If given, the result for each pixel is - divided by this value. The default is the sum of the - kernel weights. - :param offset: Offset. If given, this value is added to the result, - after it has been divided by the scale factor. - """ - - name = "Kernel" - - def __init__(self, size, kernel, scale=None, offset=0): - if scale is None: - # default scale is sum of kernel - scale = functools.reduce(lambda a, b: a + b, kernel) - if size[0] * size[1] != len(kernel): - msg = "not enough coefficients in kernel" - raise ValueError(msg) - self.filterargs = size, scale, offset, kernel - - -class RankFilter(Filter): - """ - Create a rank filter. The rank filter sorts all pixels in - a window of the given size, and returns the ``rank``'th value. - - :param size: The kernel size, in pixels. - :param rank: What pixel value to pick. Use 0 for a min filter, - ``size * size / 2`` for a median filter, ``size * size - 1`` - for a max filter, etc. - """ - - name = "Rank" - - def __init__(self, size, rank): - self.size = size - self.rank = rank - - def filter(self, image): - if image.mode == "P": - msg = "cannot filter palette images" - raise ValueError(msg) - image = image.expand(self.size // 2, self.size // 2) - return image.rankfilter(self.size, self.rank) - - -class MedianFilter(RankFilter): - """ - Create a median filter. Picks the median pixel value in a window with the - given size. - - :param size: The kernel size, in pixels. - """ - - name = "Median" - - def __init__(self, size=3): - self.size = size - self.rank = size * size // 2 - - -class MinFilter(RankFilter): - """ - Create a min filter. Picks the lowest pixel value in a window with the - given size. - - :param size: The kernel size, in pixels. - """ - - name = "Min" - - def __init__(self, size=3): - self.size = size - self.rank = 0 - - -class MaxFilter(RankFilter): - """ - Create a max filter. Picks the largest pixel value in a window with the - given size. - - :param size: The kernel size, in pixels. - """ - - name = "Max" - - def __init__(self, size=3): - self.size = size - self.rank = size * size - 1 - - -class ModeFilter(Filter): - """ - Create a mode filter. Picks the most frequent pixel value in a box with the - given size. Pixel values that occur only once or twice are ignored; if no - pixel value occurs more than twice, the original pixel value is preserved. - - :param size: The kernel size, in pixels. - """ - - name = "Mode" - - def __init__(self, size=3): - self.size = size - - def filter(self, image): - return image.modefilter(self.size) - - -class GaussianBlur(MultibandFilter): - """Blurs the image with a sequence of extended box filters, which - approximates a Gaussian kernel. For details on accuracy see - - - :param radius: Standard deviation of the Gaussian kernel. Either a sequence of two - numbers for x and y, or a single number for both. - """ - - name = "GaussianBlur" - - def __init__(self, radius=2): - self.radius = radius - - def filter(self, image): - xy = self.radius - if not isinstance(xy, (tuple, list)): - xy = (xy, xy) - if xy == (0, 0): - return image.copy() - return image.gaussian_blur(xy) - - -class BoxBlur(MultibandFilter): - """Blurs the image by setting each pixel to the average value of the pixels - in a square box extending radius pixels in each direction. - Supports float radius of arbitrary size. Uses an optimized implementation - which runs in linear time relative to the size of the image - for any radius value. - - :param radius: Size of the box in a direction. Either a sequence of two numbers for - x and y, or a single number for both. - - Radius 0 does not blur, returns an identical image. - Radius 1 takes 1 pixel in each direction, i.e. 9 pixels in total. - """ - - name = "BoxBlur" - - def __init__(self, radius): - xy = radius - if not isinstance(xy, (tuple, list)): - xy = (xy, xy) - if xy[0] < 0 or xy[1] < 0: - msg = "radius must be >= 0" - raise ValueError(msg) - self.radius = radius - - def filter(self, image): - xy = self.radius - if not isinstance(xy, (tuple, list)): - xy = (xy, xy) - if xy == (0, 0): - return image.copy() - return image.box_blur(xy) - - -class UnsharpMask(MultibandFilter): - """Unsharp mask filter. - - See Wikipedia's entry on `digital unsharp masking`_ for an explanation of - the parameters. - - :param radius: Blur Radius - :param percent: Unsharp strength, in percent - :param threshold: Threshold controls the minimum brightness change that - will be sharpened - - .. _digital unsharp masking: https://en.wikipedia.org/wiki/Unsharp_masking#Digital_unsharp_masking - - """ - - name = "UnsharpMask" - - def __init__(self, radius=2, percent=150, threshold=3): - self.radius = radius - self.percent = percent - self.threshold = threshold - - def filter(self, image): - return image.unsharp_mask(self.radius, self.percent, self.threshold) - - -class BLUR(BuiltinFilter): - name = "Blur" - # fmt: off - filterargs = (5, 5), 16, 0, ( - 1, 1, 1, 1, 1, - 1, 0, 0, 0, 1, - 1, 0, 0, 0, 1, - 1, 0, 0, 0, 1, - 1, 1, 1, 1, 1, - ) - # fmt: on - - -class CONTOUR(BuiltinFilter): - name = "Contour" - # fmt: off - filterargs = (3, 3), 1, 255, ( - -1, -1, -1, - -1, 8, -1, - -1, -1, -1, - ) - # fmt: on - - -class DETAIL(BuiltinFilter): - name = "Detail" - # fmt: off - filterargs = (3, 3), 6, 0, ( - 0, -1, 0, - -1, 10, -1, - 0, -1, 0, - ) - # fmt: on - - -class EDGE_ENHANCE(BuiltinFilter): - name = "Edge-enhance" - # fmt: off - filterargs = (3, 3), 2, 0, ( - -1, -1, -1, - -1, 10, -1, - -1, -1, -1, - ) - # fmt: on - - -class EDGE_ENHANCE_MORE(BuiltinFilter): - name = "Edge-enhance More" - # fmt: off - filterargs = (3, 3), 1, 0, ( - -1, -1, -1, - -1, 9, -1, - -1, -1, -1, - ) - # fmt: on - - -class EMBOSS(BuiltinFilter): - name = "Emboss" - # fmt: off - filterargs = (3, 3), 1, 128, ( - -1, 0, 0, - 0, 1, 0, - 0, 0, 0, - ) - # fmt: on - - -class FIND_EDGES(BuiltinFilter): - name = "Find Edges" - # fmt: off - filterargs = (3, 3), 1, 0, ( - -1, -1, -1, - -1, 8, -1, - -1, -1, -1, - ) - # fmt: on - - -class SHARPEN(BuiltinFilter): - name = "Sharpen" - # fmt: off - filterargs = (3, 3), 16, 0, ( - -2, -2, -2, - -2, 32, -2, - -2, -2, -2, - ) - # fmt: on - - -class SMOOTH(BuiltinFilter): - name = "Smooth" - # fmt: off - filterargs = (3, 3), 13, 0, ( - 1, 1, 1, - 1, 5, 1, - 1, 1, 1, - ) - # fmt: on - - -class SMOOTH_MORE(BuiltinFilter): - name = "Smooth More" - # fmt: off - filterargs = (5, 5), 100, 0, ( - 1, 1, 1, 1, 1, - 1, 5, 5, 5, 1, - 1, 5, 44, 5, 1, - 1, 5, 5, 5, 1, - 1, 1, 1, 1, 1, - ) - # fmt: on - - -class Color3DLUT(MultibandFilter): - """Three-dimensional color lookup table. - - Transforms 3-channel pixels using the values of the channels as coordinates - in the 3D lookup table and interpolating the nearest elements. - - This method allows you to apply almost any color transformation - in constant time by using pre-calculated decimated tables. - - .. versionadded:: 5.2.0 - - :param size: Size of the table. One int or tuple of (int, int, int). - Minimal size in any dimension is 2, maximum is 65. - :param table: Flat lookup table. A list of ``channels * size**3`` - float elements or a list of ``size**3`` channels-sized - tuples with floats. Channels are changed first, - then first dimension, then second, then third. - Value 0.0 corresponds lowest value of output, 1.0 highest. - :param channels: Number of channels in the table. Could be 3 or 4. - Default is 3. - :param target_mode: A mode for the result image. Should have not less - than ``channels`` channels. Default is ``None``, - which means that mode wouldn't be changed. - """ - - name = "Color 3D LUT" - - def __init__(self, size, table, channels=3, target_mode=None, **kwargs): - if channels not in (3, 4): - msg = "Only 3 or 4 output channels are supported" - raise ValueError(msg) - self.size = size = self._check_size(size) - self.channels = channels - self.mode = target_mode - - # Hidden flag `_copy_table=False` could be used to avoid extra copying - # of the table if the table is specially made for the constructor. - copy_table = kwargs.get("_copy_table", True) - items = size[0] * size[1] * size[2] - wrong_size = False - - numpy = None - if hasattr(table, "shape"): - try: - import numpy - except ImportError: - pass - - if numpy and isinstance(table, numpy.ndarray): - if copy_table: - table = table.copy() - - if table.shape in [ - (items * channels,), - (items, channels), - (size[2], size[1], size[0], channels), - ]: - table = table.reshape(items * channels) - else: - wrong_size = True - - else: - if copy_table: - table = list(table) - - # Convert to a flat list - if table and isinstance(table[0], (list, tuple)): - table, raw_table = [], table - for pixel in raw_table: - if len(pixel) != channels: - msg = ( - "The elements of the table should " - f"have a length of {channels}." - ) - raise ValueError(msg) - table.extend(pixel) - - if wrong_size or len(table) != items * channels: - msg = ( - "The table should have either channels * size**3 float items " - "or size**3 items of channels-sized tuples with floats. " - f"Table should be: {channels}x{size[0]}x{size[1]}x{size[2]}. " - f"Actual length: {len(table)}" - ) - raise ValueError(msg) - self.table = table - - @staticmethod - def _check_size(size): - try: - _, _, _ = size - except ValueError as e: - msg = "Size should be either an integer or a tuple of three integers." - raise ValueError(msg) from e - except TypeError: - size = (size, size, size) - size = [int(x) for x in size] - for size_1d in size: - if not 2 <= size_1d <= 65: - msg = "Size should be in [2, 65] range." - raise ValueError(msg) - return size - - @classmethod - def generate(cls, size, callback, channels=3, target_mode=None): - """Generates new LUT using provided callback. - - :param size: Size of the table. Passed to the constructor. - :param callback: Function with three parameters which correspond - three color channels. Will be called ``size**3`` - times with values from 0.0 to 1.0 and should return - a tuple with ``channels`` elements. - :param channels: The number of channels which should return callback. - :param target_mode: Passed to the constructor of the resulting - lookup table. - """ - size_1d, size_2d, size_3d = cls._check_size(size) - if channels not in (3, 4): - msg = "Only 3 or 4 output channels are supported" - raise ValueError(msg) - - table = [0] * (size_1d * size_2d * size_3d * channels) - idx_out = 0 - for b in range(size_3d): - for g in range(size_2d): - for r in range(size_1d): - table[idx_out : idx_out + channels] = callback( - r / (size_1d - 1), g / (size_2d - 1), b / (size_3d - 1) - ) - idx_out += channels - - return cls( - (size_1d, size_2d, size_3d), - table, - channels=channels, - target_mode=target_mode, - _copy_table=False, - ) - - def transform(self, callback, with_normals=False, channels=None, target_mode=None): - """Transforms the table values using provided callback and returns - a new LUT with altered values. - - :param callback: A function which takes old lookup table values - and returns a new set of values. The number - of arguments which function should take is - ``self.channels`` or ``3 + self.channels`` - if ``with_normals`` flag is set. - Should return a tuple of ``self.channels`` or - ``channels`` elements if it is set. - :param with_normals: If true, ``callback`` will be called with - coordinates in the color cube as the first - three arguments. Otherwise, ``callback`` - will be called only with actual color values. - :param channels: The number of channels in the resulting lookup table. - :param target_mode: Passed to the constructor of the resulting - lookup table. - """ - if channels not in (None, 3, 4): - msg = "Only 3 or 4 output channels are supported" - raise ValueError(msg) - ch_in = self.channels - ch_out = channels or ch_in - size_1d, size_2d, size_3d = self.size - - table = [0] * (size_1d * size_2d * size_3d * ch_out) - idx_in = 0 - idx_out = 0 - for b in range(size_3d): - for g in range(size_2d): - for r in range(size_1d): - values = self.table[idx_in : idx_in + ch_in] - if with_normals: - values = callback( - r / (size_1d - 1), - g / (size_2d - 1), - b / (size_3d - 1), - *values, - ) - else: - values = callback(*values) - table[idx_out : idx_out + ch_out] = values - idx_in += ch_in - idx_out += ch_out - - return type(self)( - self.size, - table, - channels=ch_out, - target_mode=target_mode or self.mode, - _copy_table=False, - ) - - def __repr__(self): - r = [ - f"{self.__class__.__name__} from {self.table.__class__.__name__}", - "size={:d}x{:d}x{:d}".format(*self.size), - f"channels={self.channels:d}", - ] - if self.mode: - r.append(f"target_mode={self.mode}") - return "<{}>".format(" ".join(r)) - - def filter(self, image): - from . import Image - - return image.color_lut_3d( - self.mode or image.mode, - Image.Resampling.BILINEAR, - self.channels, - self.size[0], - self.size[1], - self.size[2], - self.table, - ) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFont.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFont.py deleted file mode 100644 index 8213d03..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageFont.py +++ /dev/null @@ -1,1264 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# PIL raster font management -# -# History: -# 1996-08-07 fl created (experimental) -# 1997-08-25 fl minor adjustments to handle fonts from pilfont 0.3 -# 1999-02-06 fl rewrote most font management stuff in C -# 1999-03-17 fl take pth files into account in load_path (from Richard Jones) -# 2001-02-17 fl added freetype support -# 2001-05-09 fl added TransposedFont wrapper class -# 2002-03-04 fl make sure we have a "L" or "1" font -# 2002-12-04 fl skip non-directory entries in the system path -# 2003-04-29 fl add embedded default font -# 2003-09-27 fl added support for truetype charmap encodings -# -# Todo: -# Adapt to PILFONT2 format (16-bit fonts, compressed, single file) -# -# Copyright (c) 1997-2003 by Secret Labs AB -# Copyright (c) 1996-2003 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# - -from __future__ import annotations - -import base64 -import os -import sys -import warnings -from enum import IntEnum -from io import BytesIO -from pathlib import Path -from typing import BinaryIO - -from . import Image -from ._util import is_directory, is_path - - -class Layout(IntEnum): - BASIC = 0 - RAQM = 1 - - -MAX_STRING_LENGTH = 1_000_000 - - -try: - from . import _imagingft as core -except ImportError as ex: - from ._util import DeferredError - - core = DeferredError.new(ex) - - -def _string_length_check(text): - if MAX_STRING_LENGTH is not None and len(text) > MAX_STRING_LENGTH: - msg = "too many characters in string" - raise ValueError(msg) - - -# FIXME: add support for pilfont2 format (see FontFile.py) - -# -------------------------------------------------------------------- -# Font metrics format: -# "PILfont" LF -# fontdescriptor LF -# (optional) key=value... LF -# "DATA" LF -# binary data: 256*10*2 bytes (dx, dy, dstbox, srcbox) -# -# To place a character, cut out srcbox and paste at dstbox, -# relative to the character position. Then move the character -# position according to dx, dy. -# -------------------------------------------------------------------- - - -class ImageFont: - """PIL font wrapper""" - - def _load_pilfont(self, filename): - with open(filename, "rb") as fp: - image = None - for ext in (".png", ".gif", ".pbm"): - if image: - image.close() - try: - fullname = os.path.splitext(filename)[0] + ext - image = Image.open(fullname) - except Exception: - pass - else: - if image and image.mode in ("1", "L"): - break - else: - if image: - image.close() - msg = "cannot find glyph data file" - raise OSError(msg) - - self.file = fullname - - self._load_pilfont_data(fp, image) - image.close() - - def _load_pilfont_data(self, file, image): - # read PILfont header - if file.readline() != b"PILfont\n": - msg = "Not a PILfont file" - raise SyntaxError(msg) - file.readline().split(b";") - self.info = [] # FIXME: should be a dictionary - while True: - s = file.readline() - if not s or s == b"DATA\n": - break - self.info.append(s) - - # read PILfont metrics - data = file.read(256 * 20) - - # check image - if image.mode not in ("1", "L"): - msg = "invalid font image mode" - raise TypeError(msg) - - image.load() - - self.font = Image.core.font(image.im, data) - - def getmask(self, text, mode="", *args, **kwargs): - """ - Create a bitmap for the text. - - If the font uses antialiasing, the bitmap should have mode ``L`` and use a - maximum value of 255. Otherwise, it should have mode ``1``. - - :param text: Text to render. - :param mode: Used by some graphics drivers to indicate what mode the - driver prefers; if empty, the renderer may return either - mode. Note that the mode is always a string, to simplify - C-level implementations. - - .. versionadded:: 1.1.5 - - :return: An internal PIL storage memory instance as defined by the - :py:mod:`PIL.Image.core` interface module. - """ - _string_length_check(text) - Image._decompression_bomb_check(self.font.getsize(text)) - return self.font.getmask(text, mode) - - def getbbox(self, text, *args, **kwargs): - """ - Returns bounding box (in pixels) of given text. - - .. versionadded:: 9.2.0 - - :param text: Text to render. - :param mode: Used by some graphics drivers to indicate what mode the - driver prefers; if empty, the renderer may return either - mode. Note that the mode is always a string, to simplify - C-level implementations. - - :return: ``(left, top, right, bottom)`` bounding box - """ - _string_length_check(text) - width, height = self.font.getsize(text) - return 0, 0, width, height - - def getlength(self, text, *args, **kwargs): - """ - Returns length (in pixels) of given text. - This is the amount by which following text should be offset. - - .. versionadded:: 9.2.0 - """ - _string_length_check(text) - width, height = self.font.getsize(text) - return width - - -## -# Wrapper for FreeType fonts. Application code should use the -# truetype factory function to create font objects. - - -class FreeTypeFont: - """FreeType font wrapper (requires _imagingft service)""" - - def __init__( - self, - font: bytes | str | Path | BinaryIO | None = None, - size: float = 10, - index: int = 0, - encoding: str = "", - layout_engine: Layout | None = None, - ) -> None: - # FIXME: use service provider instead - - if size <= 0: - msg = "font size must be greater than 0" - raise ValueError(msg) - - self.path = font - self.size = size - self.index = index - self.encoding = encoding - - if layout_engine not in (Layout.BASIC, Layout.RAQM): - layout_engine = Layout.BASIC - if core.HAVE_RAQM: - layout_engine = Layout.RAQM - elif layout_engine == Layout.RAQM and not core.HAVE_RAQM: - warnings.warn( - "Raqm layout was requested, but Raqm is not available. " - "Falling back to basic layout." - ) - layout_engine = Layout.BASIC - - self.layout_engine = layout_engine - - def load_from_bytes(f): - self.font_bytes = f.read() - self.font = core.getfont( - "", size, index, encoding, self.font_bytes, layout_engine - ) - - if is_path(font): - if isinstance(font, Path): - font = str(font) - if sys.platform == "win32": - font_bytes_path = font if isinstance(font, bytes) else font.encode() - try: - font_bytes_path.decode("ascii") - except UnicodeDecodeError: - # FreeType cannot load fonts with non-ASCII characters on Windows - # So load it into memory first - with open(font, "rb") as f: - load_from_bytes(f) - return - self.font = core.getfont( - font, size, index, encoding, layout_engine=layout_engine - ) - else: - load_from_bytes(font) - - def __getstate__(self): - return [self.path, self.size, self.index, self.encoding, self.layout_engine] - - def __setstate__(self, state): - path, size, index, encoding, layout_engine = state - self.__init__(path, size, index, encoding, layout_engine) - - def getname(self): - """ - :return: A tuple of the font family (e.g. Helvetica) and the font style - (e.g. Bold) - """ - return self.font.family, self.font.style - - def getmetrics(self): - """ - :return: A tuple of the font ascent (the distance from the baseline to - the highest outline point) and descent (the distance from the - baseline to the lowest outline point, a negative value) - """ - return self.font.ascent, self.font.descent - - def getlength(self, text, mode="", direction=None, features=None, language=None): - """ - Returns length (in pixels with 1/64 precision) of given text when rendered - in font with provided direction, features, and language. - - This is the amount by which following text should be offset. - Text bounding box may extend past the length in some fonts, - e.g. when using italics or accents. - - The result is returned as a float; it is a whole number if using basic layout. - - Note that the sum of two lengths may not equal the length of a concatenated - string due to kerning. If you need to adjust for kerning, include the following - character and subtract its length. - - For example, instead of :: - - hello = font.getlength("Hello") - world = font.getlength("World") - hello_world = hello + world # not adjusted for kerning - assert hello_world == font.getlength("HelloWorld") # may fail - - use :: - - hello = font.getlength("HelloW") - font.getlength("W") # adjusted for kerning - world = font.getlength("World") - hello_world = hello + world # adjusted for kerning - assert hello_world == font.getlength("HelloWorld") # True - - or disable kerning with (requires libraqm) :: - - hello = draw.textlength("Hello", font, features=["-kern"]) - world = draw.textlength("World", font, features=["-kern"]) - hello_world = hello + world # kerning is disabled, no need to adjust - assert hello_world == draw.textlength("HelloWorld", font, features=["-kern"]) - - .. versionadded:: 8.0.0 - - :param text: Text to measure. - :param mode: Used by some graphics drivers to indicate what mode the - driver prefers; if empty, the renderer may return either - mode. Note that the mode is always a string, to simplify - C-level implementations. - - :param direction: Direction of the text. It can be 'rtl' (right to - left), 'ltr' (left to right) or 'ttb' (top to bottom). - Requires libraqm. - - :param features: A list of OpenType font features to be used during text - layout. This is usually used to turn on optional - font features that are not enabled by default, - for example 'dlig' or 'ss01', but can be also - used to turn off default font features for - example '-liga' to disable ligatures or '-kern' - to disable kerning. To get all supported - features, see - https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist - Requires libraqm. - - :param language: Language of the text. Different languages may use - different glyph shapes or ligatures. This parameter tells - the font which language the text is in, and to apply the - correct substitutions as appropriate, if available. - It should be a `BCP 47 language code - `_ - Requires libraqm. - - :return: Either width for horizontal text, or height for vertical text. - """ - _string_length_check(text) - return self.font.getlength(text, mode, direction, features, language) / 64 - - def getbbox( - self, - text, - mode="", - direction=None, - features=None, - language=None, - stroke_width=0, - anchor=None, - ): - """ - Returns bounding box (in pixels) of given text relative to given anchor - when rendered in font with provided direction, features, and language. - - Use :py:meth:`getlength()` to get the offset of following text with - 1/64 pixel precision. The bounding box includes extra margins for - some fonts, e.g. italics or accents. - - .. versionadded:: 8.0.0 - - :param text: Text to render. - :param mode: Used by some graphics drivers to indicate what mode the - driver prefers; if empty, the renderer may return either - mode. Note that the mode is always a string, to simplify - C-level implementations. - - :param direction: Direction of the text. It can be 'rtl' (right to - left), 'ltr' (left to right) or 'ttb' (top to bottom). - Requires libraqm. - - :param features: A list of OpenType font features to be used during text - layout. This is usually used to turn on optional - font features that are not enabled by default, - for example 'dlig' or 'ss01', but can be also - used to turn off default font features for - example '-liga' to disable ligatures or '-kern' - to disable kerning. To get all supported - features, see - https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist - Requires libraqm. - - :param language: Language of the text. Different languages may use - different glyph shapes or ligatures. This parameter tells - the font which language the text is in, and to apply the - correct substitutions as appropriate, if available. - It should be a `BCP 47 language code - `_ - Requires libraqm. - - :param stroke_width: The width of the text stroke. - - :param anchor: The text anchor alignment. Determines the relative location of - the anchor to the text. The default alignment is top left, - specifically ``la`` for horizontal text and ``lt`` for - vertical text. See :ref:`text-anchors` for details. - - :return: ``(left, top, right, bottom)`` bounding box - """ - _string_length_check(text) - size, offset = self.font.getsize( - text, mode, direction, features, language, anchor - ) - left, top = offset[0] - stroke_width, offset[1] - stroke_width - width, height = size[0] + 2 * stroke_width, size[1] + 2 * stroke_width - return left, top, left + width, top + height - - def getmask( - self, - text, - mode="", - direction=None, - features=None, - language=None, - stroke_width=0, - anchor=None, - ink=0, - start=None, - ): - """ - Create a bitmap for the text. - - If the font uses antialiasing, the bitmap should have mode ``L`` and use a - maximum value of 255. If the font has embedded color data, the bitmap - should have mode ``RGBA``. Otherwise, it should have mode ``1``. - - :param text: Text to render. - :param mode: Used by some graphics drivers to indicate what mode the - driver prefers; if empty, the renderer may return either - mode. Note that the mode is always a string, to simplify - C-level implementations. - - .. versionadded:: 1.1.5 - - :param direction: Direction of the text. It can be 'rtl' (right to - left), 'ltr' (left to right) or 'ttb' (top to bottom). - Requires libraqm. - - .. versionadded:: 4.2.0 - - :param features: A list of OpenType font features to be used during text - layout. This is usually used to turn on optional - font features that are not enabled by default, - for example 'dlig' or 'ss01', but can be also - used to turn off default font features for - example '-liga' to disable ligatures or '-kern' - to disable kerning. To get all supported - features, see - https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist - Requires libraqm. - - .. versionadded:: 4.2.0 - - :param language: Language of the text. Different languages may use - different glyph shapes or ligatures. This parameter tells - the font which language the text is in, and to apply the - correct substitutions as appropriate, if available. - It should be a `BCP 47 language code - `_ - Requires libraqm. - - .. versionadded:: 6.0.0 - - :param stroke_width: The width of the text stroke. - - .. versionadded:: 6.2.0 - - :param anchor: The text anchor alignment. Determines the relative location of - the anchor to the text. The default alignment is top left, - specifically ``la`` for horizontal text and ``lt`` for - vertical text. See :ref:`text-anchors` for details. - - .. versionadded:: 8.0.0 - - :param ink: Foreground ink for rendering in RGBA mode. - - .. versionadded:: 8.0.0 - - :param start: Tuple of horizontal and vertical offset, as text may render - differently when starting at fractional coordinates. - - .. versionadded:: 9.4.0 - - :return: An internal PIL storage memory instance as defined by the - :py:mod:`PIL.Image.core` interface module. - """ - return self.getmask2( - text, - mode, - direction=direction, - features=features, - language=language, - stroke_width=stroke_width, - anchor=anchor, - ink=ink, - start=start, - )[0] - - def getmask2( - self, - text, - mode="", - direction=None, - features=None, - language=None, - stroke_width=0, - anchor=None, - ink=0, - start=None, - *args, - **kwargs, - ): - """ - Create a bitmap for the text. - - If the font uses antialiasing, the bitmap should have mode ``L`` and use a - maximum value of 255. If the font has embedded color data, the bitmap - should have mode ``RGBA``. Otherwise, it should have mode ``1``. - - :param text: Text to render. - :param mode: Used by some graphics drivers to indicate what mode the - driver prefers; if empty, the renderer may return either - mode. Note that the mode is always a string, to simplify - C-level implementations. - - .. versionadded:: 1.1.5 - - :param direction: Direction of the text. It can be 'rtl' (right to - left), 'ltr' (left to right) or 'ttb' (top to bottom). - Requires libraqm. - - .. versionadded:: 4.2.0 - - :param features: A list of OpenType font features to be used during text - layout. This is usually used to turn on optional - font features that are not enabled by default, - for example 'dlig' or 'ss01', but can be also - used to turn off default font features for - example '-liga' to disable ligatures or '-kern' - to disable kerning. To get all supported - features, see - https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist - Requires libraqm. - - .. versionadded:: 4.2.0 - - :param language: Language of the text. Different languages may use - different glyph shapes or ligatures. This parameter tells - the font which language the text is in, and to apply the - correct substitutions as appropriate, if available. - It should be a `BCP 47 language code - `_ - Requires libraqm. - - .. versionadded:: 6.0.0 - - :param stroke_width: The width of the text stroke. - - .. versionadded:: 6.2.0 - - :param anchor: The text anchor alignment. Determines the relative location of - the anchor to the text. The default alignment is top left, - specifically ``la`` for horizontal text and ``lt`` for - vertical text. See :ref:`text-anchors` for details. - - .. versionadded:: 8.0.0 - - :param ink: Foreground ink for rendering in RGBA mode. - - .. versionadded:: 8.0.0 - - :param start: Tuple of horizontal and vertical offset, as text may render - differently when starting at fractional coordinates. - - .. versionadded:: 9.4.0 - - :return: A tuple of an internal PIL storage memory instance as defined by the - :py:mod:`PIL.Image.core` interface module, and the text offset, the - gap between the starting coordinate and the first marking - """ - _string_length_check(text) - if start is None: - start = (0, 0) - im = None - size = None - - def fill(width, height): - nonlocal im, size - - size = (width, height) - if Image.MAX_IMAGE_PIXELS is not None: - pixels = max(1, width) * max(1, height) - if pixels > 2 * Image.MAX_IMAGE_PIXELS: - return - - im = Image.core.fill("RGBA" if mode == "RGBA" else "L", size) - return im - - offset = self.font.render( - text, - fill, - mode, - direction, - features, - language, - stroke_width, - anchor, - ink, - start[0], - start[1], - ) - Image._decompression_bomb_check(size) - return im, offset - - def font_variant( - self, font=None, size=None, index=None, encoding=None, layout_engine=None - ): - """ - Create a copy of this FreeTypeFont object, - using any specified arguments to override the settings. - - Parameters are identical to the parameters used to initialize this - object. - - :return: A FreeTypeFont object. - """ - if font is None: - try: - font = BytesIO(self.font_bytes) - except AttributeError: - font = self.path - return FreeTypeFont( - font=font, - size=self.size if size is None else size, - index=self.index if index is None else index, - encoding=self.encoding if encoding is None else encoding, - layout_engine=layout_engine or self.layout_engine, - ) - - def get_variation_names(self): - """ - :returns: A list of the named styles in a variation font. - :exception OSError: If the font is not a variation font. - """ - try: - names = self.font.getvarnames() - except AttributeError as e: - msg = "FreeType 2.9.1 or greater is required" - raise NotImplementedError(msg) from e - return [name.replace(b"\x00", b"") for name in names] - - def set_variation_by_name(self, name): - """ - :param name: The name of the style. - :exception OSError: If the font is not a variation font. - """ - names = self.get_variation_names() - if not isinstance(name, bytes): - name = name.encode() - index = names.index(name) + 1 - - if index == getattr(self, "_last_variation_index", None): - # When the same name is set twice in a row, - # there is an 'unknown freetype error' - # https://savannah.nongnu.org/bugs/?56186 - return - self._last_variation_index = index - - self.font.setvarname(index) - - def get_variation_axes(self): - """ - :returns: A list of the axes in a variation font. - :exception OSError: If the font is not a variation font. - """ - try: - axes = self.font.getvaraxes() - except AttributeError as e: - msg = "FreeType 2.9.1 or greater is required" - raise NotImplementedError(msg) from e - for axis in axes: - axis["name"] = axis["name"].replace(b"\x00", b"") - return axes - - def set_variation_by_axes(self, axes): - """ - :param axes: A list of values for each axis. - :exception OSError: If the font is not a variation font. - """ - try: - self.font.setvaraxes(axes) - except AttributeError as e: - msg = "FreeType 2.9.1 or greater is required" - raise NotImplementedError(msg) from e - - -class TransposedFont: - """Wrapper for writing rotated or mirrored text""" - - def __init__(self, font, orientation=None): - """ - Wrapper that creates a transposed font from any existing font - object. - - :param font: A font object. - :param orientation: An optional orientation. If given, this should - be one of Image.Transpose.FLIP_LEFT_RIGHT, Image.Transpose.FLIP_TOP_BOTTOM, - Image.Transpose.ROTATE_90, Image.Transpose.ROTATE_180, or - Image.Transpose.ROTATE_270. - """ - self.font = font - self.orientation = orientation # any 'transpose' argument, or None - - def getmask(self, text, mode="", *args, **kwargs): - im = self.font.getmask(text, mode, *args, **kwargs) - if self.orientation is not None: - return im.transpose(self.orientation) - return im - - def getbbox(self, text, *args, **kwargs): - # TransposedFont doesn't support getmask2, move top-left point to (0, 0) - # this has no effect on ImageFont and simulates anchor="lt" for FreeTypeFont - left, top, right, bottom = self.font.getbbox(text, *args, **kwargs) - width = right - left - height = bottom - top - if self.orientation in (Image.Transpose.ROTATE_90, Image.Transpose.ROTATE_270): - return 0, 0, height, width - return 0, 0, width, height - - def getlength(self, text, *args, **kwargs): - if self.orientation in (Image.Transpose.ROTATE_90, Image.Transpose.ROTATE_270): - msg = "text length is undefined for text rotated by 90 or 270 degrees" - raise ValueError(msg) - return self.font.getlength(text, *args, **kwargs) - - -def load(filename): - """ - Load a font file. This function loads a font object from the given - bitmap font file, and returns the corresponding font object. - - :param filename: Name of font file. - :return: A font object. - :exception OSError: If the file could not be read. - """ - f = ImageFont() - f._load_pilfont(filename) - return f - - -def truetype(font=None, size=10, index=0, encoding="", layout_engine=None): - """ - Load a TrueType or OpenType font from a file or file-like object, - and create a font object. - This function loads a font object from the given file or file-like - object, and creates a font object for a font of the given size. - - Pillow uses FreeType to open font files. On Windows, be aware that FreeType - will keep the file open as long as the FreeTypeFont object exists. Windows - limits the number of files that can be open in C at once to 512, so if many - fonts are opened simultaneously and that limit is approached, an - ``OSError`` may be thrown, reporting that FreeType "cannot open resource". - A workaround would be to copy the file(s) into memory, and open that instead. - - This function requires the _imagingft service. - - :param font: A filename or file-like object containing a TrueType font. - If the file is not found in this filename, the loader may also - search in other directories, such as the :file:`fonts/` - directory on Windows or :file:`/Library/Fonts/`, - :file:`/System/Library/Fonts/` and :file:`~/Library/Fonts/` on - macOS. - - :param size: The requested size, in pixels. - :param index: Which font face to load (default is first available face). - :param encoding: Which font encoding to use (default is Unicode). Possible - encodings include (see the FreeType documentation for more - information): - - * "unic" (Unicode) - * "symb" (Microsoft Symbol) - * "ADOB" (Adobe Standard) - * "ADBE" (Adobe Expert) - * "ADBC" (Adobe Custom) - * "armn" (Apple Roman) - * "sjis" (Shift JIS) - * "gb " (PRC) - * "big5" - * "wans" (Extended Wansung) - * "joha" (Johab) - * "lat1" (Latin-1) - - This specifies the character set to use. It does not alter the - encoding of any text provided in subsequent operations. - :param layout_engine: Which layout engine to use, if available: - :attr:`.ImageFont.Layout.BASIC` or :attr:`.ImageFont.Layout.RAQM`. - If it is available, Raqm layout will be used by default. - Otherwise, basic layout will be used. - - Raqm layout is recommended for all non-English text. If Raqm layout - is not required, basic layout will have better performance. - - You can check support for Raqm layout using - :py:func:`PIL.features.check_feature` with ``feature="raqm"``. - - .. versionadded:: 4.2.0 - :return: A font object. - :exception OSError: If the file could not be read. - :exception ValueError: If the font size is not greater than zero. - """ - - def freetype(font): - return FreeTypeFont(font, size, index, encoding, layout_engine) - - try: - return freetype(font) - except OSError: - if not is_path(font): - raise - ttf_filename = os.path.basename(font) - - dirs = [] - if sys.platform == "win32": - # check the windows font repository - # NOTE: must use uppercase WINDIR, to work around bugs in - # 1.5.2's os.environ.get() - windir = os.environ.get("WINDIR") - if windir: - dirs.append(os.path.join(windir, "fonts")) - elif sys.platform in ("linux", "linux2"): - lindirs = os.environ.get("XDG_DATA_DIRS") - if not lindirs: - # According to the freedesktop spec, XDG_DATA_DIRS should - # default to /usr/share - lindirs = "/usr/share" - dirs += [os.path.join(lindir, "fonts") for lindir in lindirs.split(":")] - elif sys.platform == "darwin": - dirs += [ - "/Library/Fonts", - "/System/Library/Fonts", - os.path.expanduser("~/Library/Fonts"), - ] - - ext = os.path.splitext(ttf_filename)[1] - first_font_with_a_different_extension = None - for directory in dirs: - for walkroot, walkdir, walkfilenames in os.walk(directory): - for walkfilename in walkfilenames: - if ext and walkfilename == ttf_filename: - return freetype(os.path.join(walkroot, walkfilename)) - elif not ext and os.path.splitext(walkfilename)[0] == ttf_filename: - fontpath = os.path.join(walkroot, walkfilename) - if os.path.splitext(fontpath)[1] == ".ttf": - return freetype(fontpath) - if not ext and first_font_with_a_different_extension is None: - first_font_with_a_different_extension = fontpath - if first_font_with_a_different_extension: - return freetype(first_font_with_a_different_extension) - raise - - -def load_path(filename): - """ - Load font file. Same as :py:func:`~PIL.ImageFont.load`, but searches for a - bitmap font along the Python path. - - :param filename: Name of font file. - :return: A font object. - :exception OSError: If the file could not be read. - """ - for directory in sys.path: - if is_directory(directory): - if not isinstance(filename, str): - filename = filename.decode("utf-8") - try: - return load(os.path.join(directory, filename)) - except OSError: - pass - msg = "cannot find font file" - raise OSError(msg) - - -def load_default(size=None): - """If FreeType support is available, load a version of Aileron Regular, - https://dotcolon.net/font/aileron, with a more limited character set. - - Otherwise, load a "better than nothing" font. - - .. versionadded:: 1.1.4 - - :param size: The font size of Aileron Regular. - - .. versionadded:: 10.1.0 - - :return: A font object. - """ - if core.__class__.__name__ == "module" or size is not None: - f = truetype( - BytesIO( - base64.b64decode( - b""" -AAEAAAAPAIAAAwBwRkZUTYwDlUAAADFoAAAAHEdERUYAqADnAAAo8AAAACRHUE9ThhmITwAAKfgAA -AduR1NVQnHxefoAACkUAAAA4k9TLzJovoHLAAABeAAAAGBjbWFw5lFQMQAAA6gAAAGqZ2FzcP//AA -MAACjoAAAACGdseWYmRXoPAAAGQAAAHfhoZWFkE18ayQAAAPwAAAA2aGhlYQboArEAAAE0AAAAJGh -tdHjjERZ8AAAB2AAAAdBsb2NhuOexrgAABVQAAADqbWF4cAC7AEYAAAFYAAAAIG5hbWUr+h5lAAAk -OAAAA6Jwb3N0D3oPTQAAJ9wAAAEKAAEAAAABGhxJDqIhXw889QALA+gAAAAA0Bqf2QAAAADhCh2h/ -2r/LgOxAyAAAAAIAAIAAAAAAAAAAQAAA8r/GgAAA7j/av9qA7EAAQAAAAAAAAAAAAAAAAAAAHQAAQ -AAAHQAQwAFAAAAAAACAAAAAQABAAAAQAAAAAAAAAADAfoBkAAFAAgCigJYAAAASwKKAlgAAAFeADI -BPgAAAAAFAAAAAAAAAAAAAAcAAAAAAAAAAAAAAABVS1dOAEAAIPsCAwL/GgDIA8oA5iAAAJMAAAAA -AhICsgAAACAAAwH0AAAAAAAAAU0AAADYAAAA8gA5AVMAVgJEAEYCRAA1AuQAKQKOAEAAsAArATsAZ -AE7AB4CMABVAkQAUADc/+EBEgAgANwAJQEv//sCRAApAkQAggJEADwCRAAtAkQAIQJEADkCRAArAk -QAMgJEACwCRAAxANwAJQDc/+ECRABnAkQAUAJEAEQB8wAjA1QANgJ/AB0CcwBkArsALwLFAGQCSwB -kAjcAZALGAC8C2gBkAQgAZAIgADcCYQBkAj8AZANiAGQCzgBkAuEALwJWAGQC3QAvAmsAZAJJADQC -ZAAiAqoAXgJuACADuAAaAnEAGQJFABMCTwAuATMAYgEv//sBJwAiAkQAUAH0ADIBLAApAhMAJAJjA -EoCEQAeAmcAHgIlAB4BIgAVAmcAHgJRAEoA7gA+AOn/8wIKAEoA9wBGA1cASgJRAEoCSgAeAmMASg -JnAB4BSgBKAcsAGAE5ABQCUABCAgIAAQMRAAEB4v/6AgEAAQHOABQBLwBAAPoAYAEvACECRABNA0Y -AJAItAHgBKgAcAkQAUAEsAHQAygAgAi0AOQD3ADYA9wAWAaEANgGhABYCbAAlAYMAeAGDADkA6/9q -AhsAFAIKABUB/QAVAAAAAwAAAAMAAAAcAAEAAAAAAKQAAwABAAAAHAAEAIgAAAAeABAAAwAOAH4Aq -QCrALEAtAC3ALsgGSAdICYgOiBEISL7Av//AAAAIACpAKsAsAC0ALcAuyAYIBwgJiA5IEQhIvsB// -//4/+5/7j/tP+y/7D/reBR4E/gR+A14CzfTwVxAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAMEBQYHCAkKCwwNDg8QERIT -FBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMT -U5PUFFSU1RVVldYWVpbXF1eX2BhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAA -AAAAAAYnFmAAAAAABlAAAAAAAAAAAAAAAAAAAAAAAAAAAAY2htAAAAAAAAAABrbGlqAAAAAHAAbm9 -ycwBnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmACYAJgAmAD4AUgCCAMoBCgFO -AVwBcgGIAaYBvAHKAdYB6AH2AgwCIAJKAogCpgLWAw4DIgNkA5wDugPUA+gD/AQQBEYEogS8BPoFJ -gVSBWoFgAWwBcoF1gX6BhQGJAZMBmgGiga0BuIHGgdUB2YHkAeiB8AH3AfyCAoIHAgqCDoITghcCG -oIogjSCPoJKglYCXwJwgnqCgIKKApACl4Klgq8CtwLDAs8C1YLjAuyC9oL7gwMDCYMSAxgDKAMrAz -qDQoNTA1mDYQNoA2uDcAN2g3oDfYODA4iDkoOXA5sDnoOnA7EDvwAAAAFAAAAAAH0ArwAAwAGAAkA -DAAPAAAxESERAxMhExcRASELARETAfT6qv6syKr+jgFUqsiqArz9RAGLAP/+1P8B/v3VAP8BLP4CA -P8AAgA5//IAuQKyAAMACwAANyMDMwIyFhQGIiY0oE4MZk84JCQ4JLQB/v3AJDgkJDgAAgBWAeUBPA -LfAAMABwAAEyMnMxcjJzOmRgpagkYKWgHl+vr6AAAAAAIARgAAAf4CsgAbAB8AAAEHMxUjByM3Iwc -jNyM1MzcjNTM3MwczNzMHMxUrAQczAZgdZXEvOi9bLzovWmYdZXEvOi9bLzovWp9bHlsBn4w429vb -2ziMONvb29s4jAAAAAMANf+mAg4DDAAfACYALAAAJRQGBxUjNS4BJzMeARcRLgE0Njc1MxUeARcjJ -icVHgEBFBYXNQ4BExU+ATU0Ag5xWDpgcgRcBz41Xl9oVTpVYwpcC1ttXP6cLTQuM5szOrVRZwlOTQ -ZqVzZECAEAGlukZAlOTQdrUG8O7iNlAQgxNhDlCDj+8/YGOjReAAAAAAUAKf/yArsCvAAHAAsAFQA -dACcAABIyFhQGIiY0EyMBMwQiBhUUFjI2NTQSMhYUBiImNDYiBhUUFjI2NTR5iFBQiFCVVwHAV/5c -OiMjOiPmiFBQiFCxOiMjOiMCvFaSVlaS/ZoCsjIzMC80NC8w/uNWklZWkhozMC80NC8wAAAAAgBA/ -/ICbgLAACIALgAAARUjEQYjIiY1NDY3LgE1NDYzMhcVJiMiBhUUFhcWOwE1MxUFFBYzMjc1IyIHDg -ECbmBcYYOOVkg7R4hsQjY4Q0RNRD4SLDxW/pJUXzksPCkUUk0BgUb+zBVUZ0BkDw5RO1huCkULQzp -COAMBcHDHRz0J/AIHRQAAAAEAKwHlAIUC3wADAAATIycze0YKWgHl+gAAAAABAGT/sAEXAwwACQAA -EzMGEBcjLgE0Nt06dXU6OUBAAwzG/jDGVePs4wAAAAEAHv+wANEDDAAJAAATMx4BFAYHIzYQHjo5Q -EA5OnUDDFXj7ONVxgHQAAAAAQBVAFIB2wHbAA4AAAE3FwcXBycHJzcnNxcnMwEtmxOfcTJjYzJxnx -ObCj4BKD07KYolmZkliik7PbMAAQBQAFUB9AIlAAsAAAEjFSM1IzUzNTMVMwH0tTq1tTq1AR/Kyjj -OzgAAAAAB/+H/iACMAGQABAAANwcjNzOMWlFOXVrS3AAAAQAgAP8A8gE3AAMAABMjNTPy0tIA/zgA -AQAl//IApQByAAcAADYyFhQGIiY0STgkJDgkciQ4JCQ4AAAAAf/7/+IBNALQAAMAABcjEzM5Pvs+H -gLuAAAAAAIAKf/yAhsCwAADAAcAABIgECA2IBAgKQHy/g5gATL+zgLA/TJEAkYAAAAAAQCCAAABlg -KyAAgAAAERIxEHNTc2MwGWVr6SIygCsv1OAldxW1sWAAEAPAAAAg4CwAAZAAA3IRUhNRM+ATU0JiM -iDwEjNz4BMzIWFRQGB7kBUv4x+kI2QTt+EAFWAQp8aGVtSl5GRjEA/0RVLzlLmAoKa3FsUkNxXQAA -AAEALf/yAhYCwAAqAAABHgEVFAYjIi8BMxceATMyNjU0KwE1MzI2NTQmIyIGDwEjNz4BMzIWFRQGA -YxBSZJo2RUBVgEHV0JBUaQREUBUQzc5TQcBVgEKfGhfcEMBbxJbQl1x0AoKRkZHPn9GSD80QUVCCg -pfbGBPOlgAAAACACEAAAIkArIACgAPAAAlIxUjNSE1ATMRMyMRBg8BAiRXVv6qAVZWV60dHLCurq4 -rAdn+QgFLMibzAAABADn/8gIZArIAHQAAATIWFRQGIyIvATMXFjMyNjU0JiMiByMTIRUhBzc2ATNv -d5Fl1RQBVgIad0VSTkVhL1IwAYj+vh8rMAHHgGdtgcUKCoFXTU5bYgGRRvAuHQAAAAACACv/8gITA -sAAFwAjAAABMhYVFAYjIhE0NjMyFh8BIycmIyIDNzYTMjY1NCYjIgYVFBYBLmp7imr0l3RZdAgBXA -IYZ5wKJzU6QVNJSz5SUAHSgWltiQFGxcNlVQoKdv7sPiz+ZF1LTmJbU0lhAAAAAQAyAAACGgKyAAY -AAAEVASMBITUCGv6oXAFL/oECsij9dgJsRgAAAAMALP/xAhgCwAAWACAALAAAAR4BFRQGIyImNTQ2 -Ny4BNTQ2MhYVFAYmIgYVFBYyNjU0AzI2NTQmIyIGFRQWAZQ5S5BmbIpPOjA7ecp5P2F8Q0J8RIVJS -0pLTEtOAW0TXTxpZ2ZqPF0SE1A3VWVlVTdQ/UU0N0RENzT9/ko+Ok1NOj1LAAIAMf/yAhkCwAAXAC -MAAAEyERQGIyImLwEzFxYzMhMHBiMiJjU0NhMyNjU0JiMiBhUUFgEl9Jd0WXQIAVwCGGecCic1SWp -7imo+UlBAQVNJAsD+usXDZVUKCnYBFD4sgWltif5kW1NJYV1LTmIAAAACACX/8gClAiAABwAPAAAS -MhYUBiImNBIyFhQGIiY0STgkJDgkJDgkJDgkAiAkOCQkOP52JDgkJDgAAAAC/+H/iAClAiAABwAMA -AASMhYUBiImNBMHIzczSTgkJDgkaFpSTl4CICQ4JCQ4/mba5gAAAQBnAB4B+AH0AAYAAAENARUlNS -UB+P6qAVb+bwGRAbCmpkbJRMkAAAIAUAC7AfQBuwADAAcAAAEhNSERITUhAfT+XAGk/lwBpAGDOP8 -AOAABAEQAHgHVAfQABgAAARUFNS0BNQHV/m8BVv6qAStEyUSmpkYAAAAAAgAj//IB1ALAABgAIAAA -ATIWFRQHDgEHIz4BNz4BNTQmIyIGByM+ARIyFhQGIiY0AQRibmktIAJWBSEqNig+NTlHBFoDezQ4J -CQ4JALAZ1BjaS03JS1DMD5LLDQ/SUVgcv2yJDgkJDgAAAAAAgA2/5gDFgKYADYAQgAAAQMGFRQzMj -Y1NCYjIg4CFRQWMzI2NxcGIyImNTQ+AjMyFhUUBiMiJwcGIyImNTQ2MzIfATcHNzYmIyIGFRQzMjY -Cej8EJjJJlnBAfGQ+oHtAhjUYg5OPx0h2k06Os3xRWQsVLjY5VHtdPBwJETcJDyUoOkZEJz8B0f74 -EQ8kZl6EkTFZjVOLlyknMVm1pmCiaTq4lX6CSCknTVRmmR8wPdYnQzxuSWVGAAIAHQAAAncCsgAHA -AoAACUjByMTMxMjATMDAcj+UVz4dO5d/sjPZPT0ArL9TgE6ATQAAAADAGQAAAJMArIAEAAbACcAAA -EeARUUBgcGKwERMzIXFhUUJRUzMjc2NTQnJiMTPgE1NCcmKwEVMzIBvkdHZkwiNt7LOSGq/oeFHBt -hahIlSTM+cB8Yj5UWAW8QT0VYYgwFArIEF5Fv1eMED2NfDAL93AU+N24PBP0AAAAAAQAv//ICjwLA -ABsAAAEyFh8BIycmIyIGFRQWMzI/ATMHDgEjIiY1NDYBdX+PCwFWAiKiaHx5ZaIiAlYBCpWBk6a0A -sCAagoKpqN/gaOmCgplhcicn8sAAAIAZAAAAp8CsgAMABkAAAEeARUUBgcGKwERMzITPgE1NCYnJi -sBETMyAY59lJp8IzXN0jUVWmdjWRs5d3I4Aq4QqJWUug8EArL9mQ+PeHGHDgX92gAAAAABAGQAAAI -vArIACwAAJRUhESEVIRUhFSEVAi/+NQHB/pUBTf6zRkYCskbwRvAAAAABAGQAAAIlArIACQAAExUh -FSERIxEhFboBQ/69VgHBAmzwRv7KArJGAAAAAAEAL//yAo8CwAAfAAABMxEjNQcGIyImNTQ2MzIWH -wEjJyYjIgYVFBYzMjY1IwGP90wfPnWTprSSf48LAVYCIqJofHllVG+hAU3+s3hARsicn8uAagoKpq -N/gaN1XAAAAAEAZAAAAowCsgALAAABESMRIREjETMRIRECjFb+hFZWAXwCsv1OAS7+0gKy/sQBPAA -AAAABAGQAAAC6ArIAAwAAMyMRM7pWVgKyAAABADf/8gHoArIAEwAAAREUBw4BIyImLwEzFxYzMjc2 -NREB6AIFcGpgbQIBVgIHfXQKAQKy/lYxIltob2EpKYyEFD0BpwAAAAABAGQAAAJ0ArIACwAACQEjA -wcVIxEzEQEzATsBJ3ntQlZWAVVlAWH+nwEnR+ACsv6RAW8AAQBkAAACLwKyAAUAACUVIREzEQIv/j -VWRkYCsv2UAAABAGQAAAMUArIAFAAAAREjETQ3BgcDIwMmJxYVESMRMxsBAxRWAiMxemx8NxsCVo7 -MywKy/U4BY7ZLco7+nAFmoFxLtP6dArL9lwJpAAAAAAEAZAAAAoACsgANAAAhIwEWFREjETMBJjUR -MwKAhP67A1aEAUUDVAJeeov+pwKy/aJ5jAFZAAAAAgAv//ICuwLAAAkAEwAAEiAWFRQGICY1NBIyN -jU0JiIGFRTbATSsrP7MrNrYenrYegLAxaKhxsahov47nIeIm5uIhwACAGQAAAJHArIADgAYAAABHg -EVFAYHBisBESMRMzITNjQnJisBETMyAZRUX2VOHzuAVtY7GlxcGDWIiDUCrgtnVlVpCgT+5gKy/rU -V1BUF/vgAAAACAC//zAK9AsAAEgAcAAAlFhcHJiMiBwYjIiY1NDYgFhUUJRQWMjY1NCYiBgI9PUMx -UDcfKh8omqysATSs/dR62Hp62HpICTg7NgkHxqGixcWitbWHnJyHiJubAAIAZAAAAlgCsgAXACMAA -CUWFyMmJyYnJisBESMRMzIXHgEVFAYHFiUzMjc+ATU0JyYrAQIqDCJfGQwNWhAhglbiOx9QXEY1Tv -6bhDATMj1lGSyMtYgtOXR0BwH+1wKyBApbU0BSESRAAgVAOGoQBAABADT/8gIoAsAAJQAAATIWFyM -uASMiBhUUFhceARUUBiMiJiczHgEzMjY1NCYnLgE1NDYBOmd2ClwGS0E6SUNRdW+HZnKKC1wPWkQ9 -Uk1cZGuEAsBwXUJHNjQ3OhIbZVZZbm5kREo+NT5DFRdYUFdrAAAAAAEAIgAAAmQCsgAHAAABIxEjE -SM1IQJk9lb2AkICbP2UAmxGAAEAXv/yAmQCsgAXAAABERQHDgEiJicmNREzERQXHgEyNjc2NRECZA -IIgfCBCAJWAgZYmlgGAgKy/k0qFFxzc1wUKgGz/lUrEkRQUEQSKwGrAAAAAAEAIAAAAnoCsgAGAAA -hIwMzGwEzAYJ07l3N1FwCsv2PAnEAAAEAGgAAA7ECsgAMAAABAyMLASMDMxsBMxsBA7HAcZyicrZi -kaB0nJkCsv1OAlP9rQKy/ZsCW/2kAmYAAAEAGQAAAm8CsgALAAAhCwEjEwMzGwEzAxMCCsrEY/bkY -re+Y/D6AST+3AFcAVb+5gEa/q3+oQAAAQATAAACUQKyAAgAAAERIxEDMxsBMwFdVvRjwLphARD+8A -EQAaL+sQFPAAABAC4AAAI5ArIACQAAJRUhNQEhNSEVAQI5/fUBof57Aen+YUZGQgIqRkX92QAAAAA -BAGL/sAEFAwwABwAAARUjETMVIxEBBWlpowMMOP0UOANcAAAB//v/4gE0AtAAAwAABSMDMwE0Pvs+ -HgLuAAAAAQAi/7AAxQMMAAcAABcjNTMRIzUzxaNpaaNQOALsOAABAFAA1wH0AmgABgAAJQsBIxMzE -wGwjY1GsESw1wFZ/qcBkf5vAAAAAQAy/6oBwv/iAAMAAAUhNSEBwv5wAZBWOAAAAAEAKQJEALYCsg -ADAAATIycztjhVUAJEbgAAAAACACT/8gHQAiAAHQAlAAAhJwcGIyImNTQ2OwE1NCcmIyIHIz4BMzI -XFh0BFBcnMjY9ASYVFAF6CR0wVUtgkJoiAgdgaQlaBm1Zrg4DCuQ9R+5MOSFQR1tbDiwUUXBUXowf -J8c9SjRORzYSgVwAAAAAAgBK//ICRQLfABEAHgAAATIWFRQGIyImLwEVIxEzETc2EzI2NTQmIyIGH -QEUFgFUcYCVbiNJEyNWVigySElcU01JXmECIJd4i5QTEDRJAt/+3jkq/hRuZV55ZWsdX14AAQAe// -IB9wIgABgAAAEyFhcjJiMiBhUUFjMyNjczDgEjIiY1NDYBF152DFocbEJXU0A1Rw1aE3pbaoKQAiB -oWH5qZm1tPDlaXYuLgZcAAAACAB7/8gIZAt8AEQAeAAABESM1BwYjIiY1NDYzMhYfAREDMjY9ATQm -IyIGFRQWAhlWKDJacYCVbiNJEyOnSV5hQUlcUwLf/SFVOSqXeIuUExA0ARb9VWVrHV9ebmVeeQACA -B7/8gH9AiAAFQAbAAABFAchHgEzMjY3Mw4BIyImNTQ2MzIWJyIGByEmAf0C/oAGUkA1SwlaD4FXbI -WObmt45UBVBwEqDQEYFhNjWD84W16Oh3+akU9aU60AAAEAFQAAARoC8gAWAAATBh0BMxUjESMRIzU -zNTQ3PgEzMhcVJqcDbW1WOTkDB0k8Hx5oAngVITRC/jQBzEIsJRs5PwVHEwAAAAIAHv8uAhkCIAAi -AC8AAAERFAcOASMiLwEzFx4BMzI2NzY9AQcGIyImNTQ2MzIWHwE1AzI2PQE0JiMiBhUUFgIZAQSEd -NwRAVcBBU5DTlUDASgyWnGAlW4jSRMjp0leYUFJXFMCEv5wSh1zeq8KCTI8VU0ZIQk5Kpd4i5QTED -RJ/iJlax1fXm5lXnkAAQBKAAACCgLkABcAAAEWFREjETQnLgEHDgEdASMRMxE3NjMyFgIIAlYCBDs -6RVRWViE5UVViAYUbQP7WASQxGzI7AQJyf+kC5P7TPSxUAAACAD4AAACsAsAABwALAAASMhYUBiIm -NBMjETNeLiAgLiBiVlYCwCAuICAu/WACEgAC//P/LgCnAsAABwAVAAASMhYUBiImNBcRFAcGIyInN -RY3NjURWS4gIC4gYgMLcRwNSgYCAsAgLiAgLo79wCUbZAJGBzMOHgJEAAAAAQBKAAACCALfAAsAAC -EnBxUjETMREzMHEwGTwTJWVvdu9/rgN6kC3/4oAQv6/ugAAQBG//wA3gLfAA8AABMRFBceATcVBiM -iJicmNRGcAQIcIxkkKi4CAQLf/bkhERoSBD4EJC8SNAJKAAAAAQBKAAADEAIgACQAAAEWFREjETQn -JiMiFREjETQnJiMiFREjETMVNzYzMhYXNzYzMhYDCwVWBAxedFYEDF50VlYiJko7ThAvJkpEVAGfI -jn+vAEcQyRZ1v76ARxDJFnW/voCEk08HzYtRB9HAAAAAAEASgAAAgoCIAAWAAABFhURIxE0JyYjIg -YdASMRMxU3NjMyFgIIAlYCCXBEVVZWITlRVWIBhRtA/tYBJDEbbHR/6QISWz0sVAAAAAACAB7/8gI -sAiAABwARAAASIBYUBiAmNBIyNjU0JiIGFRSlAQCHh/8Ah7ieWlqeWgIgn/Cfn/D+s3ZfYHV1YF8A -AgBK/zwCRQIgABEAHgAAATIWFRQGIyImLwERIxEzFTc2EzI2NTQmIyIGHQEUFgFUcYCVbiNJEyNWV -igySElcU01JXmECIJd4i5QTEDT+8wLWVTkq/hRuZV55ZWsdX14AAgAe/zwCGQIgABEAHgAAAREjEQ -cGIyImNTQ2MzIWHwE1AzI2PQE0JiMiBhUUFgIZVigyWnGAlW4jSRMjp0leYUFJXFMCEv0qARk5Kpd -4i5QTEDRJ/iJlax1fXm5lXnkAAQBKAAABPgIeAA0AAAEyFxUmBhURIxEzFTc2ARoWDkdXVlYwIwIe -B0EFVlf+0gISU0cYAAEAGP/yAa0CIAAjAAATMhYXIyYjIgYVFBYXHgEVFAYjIiYnMxYzMjY1NCYnL -gE1NDbkV2MJWhNdKy04PF1XbVhWbgxaE2ktOjlEUllkAiBaS2MrJCUoEBlPQkhOVFZoKCUmLhIWSE -BIUwAAAAEAFP/4ARQCiQAXAAATERQXHgE3FQYjIiYnJjURIzUzNTMVMxWxAQMmMx8qMjMEAUdHVmM -BzP7PGw4mFgY/BSwxDjQBNUJ7e0IAAAABAEL/8gICAhIAFwAAAREjNQcGIyImJyY1ETMRFBceATMy -Nj0BAgJWITlRT2EKBVYEBkA1RFECEv3uWj4qTToiOQE+/tIlJC43c4DpAAAAAAEAAQAAAfwCEgAGA -AABAyMDMxsBAfzJaclfop8CEv3uAhL+LQHTAAABAAEAAAMLAhIADAAAAQMjCwEjAzMbATMbAQMLqW -Z2dmapY3t0a3Z7AhL97gG+/kICEv5AAcD+QwG9AAAB//oAAAHWAhIACwAAARMjJwcjEwMzFzczARq -8ZIuKY763ZoWFYwEO/vLV1QEMAQbNzQAAAQAB/y4B+wISABEAAAEDDgEjIic1FjMyNj8BAzMbAQH7 -2iFZQB8NDRIpNhQH02GenQIS/cFVUAJGASozEwIt/i4B0gABABQAAAGxAg4ACQAAJRUhNQEhNSEVA -QGx/mMBNP7iAYL+zkREQgGIREX+ewAAAAABAED/sAEOAwwALAAAASMiBhUUFxYVFAYHHgEVFAcGFR -QWOwEVIyImNTQ3NjU0JzU2NTQnJjU0NjsBAQ4MKiMLDS4pKS4NCyMqDAtERAwLUlILDERECwLUGBk -WTlsgKzUFBTcrIFtOFhkYOC87GFVMIkUIOAhFIkxVGDsvAAAAAAEAYP84AJoDIAADAAAXIxEzmjo6 -yAPoAAEAIf+wAO8DDAAsAAATFQYVFBcWFRQGKwE1MzI2NTQnJjU0NjcuATU0NzY1NCYrATUzMhYVF -AcGFRTvUgsMREQLDCojCw0uKSkuDQsjKgwLREQMCwF6OAhFIkxVGDsvOBgZFk5bICs1BQU3KyBbTh -YZGDgvOxhVTCJFAAABAE0A3wH2AWQAEwAAATMUIyImJyYjIhUjNDMyFhcWMzIBvjhuGywtQR0xOG4 -bLC1BHTEBZIURGCNMhREYIwAAAwAk/94DIgLoAAcAEQApAAAAIBYQBiAmECQgBhUUFiA2NTQlMhYX -IyYjIgYUFjMyNjczDgEjIiY1NDYBAQFE3d3+vN0CB/7wubkBELn+xVBnD1wSWDo+QTcqOQZcEmZWX -HN2Aujg/rbg4AFKpr+Mjb6+jYxbWEldV5ZZNShLVn5na34AAgB4AFIB9AGeAAUACwAAAQcXIyc3Mw -cXIyc3AUqJiUmJifOJiUmJiQGepqampqampqYAAAIAHAHSAQ4CwAAHAA8AABIyFhQGIiY0NiIGFBY -yNjRgakREakSTNCEhNCECwEJqQkJqCiM4IyM4AAAAAAIAUAAAAfQCCwALAA8AAAEzFSMVIzUjNTM1 -MxMhNSEBP7W1OrW1OrX+XAGkAVs4tLQ4sP31OAAAAQB0AkQBAQKyAAMAABMjNzOsOD1QAkRuAAAAA -AEAIADsAKoBdgAHAAASMhYUBiImNEg6KCg6KAF2KDooKDoAAAIAOQBSAbUBngAFAAsAACUHIzcnMw -UHIzcnMwELiUmJiUkBM4lJiYlJ+KampqampqYAAAABADYB5QDhAt8ABAAAEzczByM2Xk1OXQHv8Po -AAQAWAeUAwQLfAAQAABMHIzczwV5NTl0C1fD6AAIANgHlAYsC3wAEAAkAABM3MwcjPwEzByM2Xk1O -XapeTU5dAe/w+grw+gAAAgAWAeUBawLfAAQACQAAEwcjNzMXByM3M8FeTU5dql5NTl0C1fD6CvD6A -AADACX/8gI1AHIABwAPABcAADYyFhQGIiY0NjIWFAYiJjQ2MhYUBiImNEk4JCQ4JOw4JCQ4JOw4JC -Q4JHIkOCQkOCQkOCQkOCQkOCQkOAAAAAEAeABSAUoBngAFAAABBxcjJzcBSomJSYmJAZ6mpqamAAA -AAAEAOQBSAQsBngAFAAAlByM3JzMBC4lJiYlJ+KampgAAAf9qAAABgQKyAAMAACsBATM/VwHAVwKy -AAAAAAIAFAHIAdwClAAHABQAABMVIxUjNSM1BRUjNwcjJxcjNTMXN9pKMkoByDICKzQqATJLKysCl -CmjoykBy46KiY3Lm5sAAQAVAAABvALyABgAAAERIxEjESMRIzUzNTQ3NjMyFxUmBgcGHQEBvFbCVj -k5AxHHHx5iVgcDAg798gHM/jQBzEIOJRuWBUcIJDAVIRYAAAABABX//AHkAvIAJQAAJR4BNxUGIyI -mJyY1ESYjIgcGHQEzFSMRIxEjNTM1NDc2MzIXERQBowIcIxkkKi4CAR4nXgwDbW1WLy8DEbNdOmYa -EQQ/BCQvEjQCFQZWFSEWQv40AcxCDiUblhP9uSEAAAAAAAAWAQ4AAQAAAAAAAAATACgAAQAAAAAAA -QAHAEwAAQAAAAAAAgAHAGQAAQAAAAAAAwAaAKIAAQAAAAAABAAHAM0AAQAAAAAABQA8AU8AAQAAAA -AABgAPAawAAQAAAAAACAALAdQAAQAAAAAACQALAfgAAQAAAAAACwAXAjQAAQAAAAAADAAXAnwAAwA -BBAkAAAAmAAAAAwABBAkAAQAOADwAAwABBAkAAgAOAFQAAwABBAkAAwA0AGwAAwABBAkABAAOAL0A -AwABBAkABQB4ANUAAwABBAkABgAeAYwAAwABBAkACAAWAbwAAwABBAkACQAWAeAAAwABBAkACwAuA -gQAAwABBAkADAAuAkwATgBvACAAUgBpAGcAaAB0AHMAIABSAGUAcwBlAHIAdgBlAGQALgAATm8gUm -lnaHRzIFJlc2VydmVkLgAAQQBpAGwAZQByAG8AbgAAQWlsZXJvbgAAUgBlAGcAdQBsAGEAcgAAUmV -ndWxhcgAAMQAuADEAMAAyADsAVQBLAFcATgA7AEEAaQBsAGUAcgBvAG4ALQBSAGUAZwB1AGwAYQBy -AAAxLjEwMjtVS1dOO0FpbGVyb24tUmVndWxhcgAAQQBpAGwAZQByAG8AbgAAQWlsZXJvbgAAVgBlA -HIAcwBpAG8AbgAgADEALgAxADAAMgA7AFAAUwAgADAAMAAxAC4AMQAwADIAOwBoAG8AdABjAG8Abg -B2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADgAMwAyADk -AAFZlcnNpb24gMS4xMDI7UFMgMDAxLjEwMjtob3Rjb252IDEuMC43MDttYWtlb3RmLmxpYjIuNS41 -ODMyOQAAQQBpAGwAZQByAG8AbgAtAFIAZQBnAHUAbABhAHIAAEFpbGVyb24tUmVndWxhcgAAUwBvA -HIAYQAgAFMAYQBnAGEAbgBvAABTb3JhIFNhZ2FubwAAUwBvAHIAYQAgAFMAYQBnAGEAbgBvAABTb3 -JhIFNhZ2FubwAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGQAbwB0AGMAbwBsAG8AbgAuAG4AZQB0AAB -odHRwOi8vd3d3LmRvdGNvbG9uLm5ldAAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGQAbwB0AGMAbwBs -AG8AbgAuAG4AZQB0AABodHRwOi8vd3d3LmRvdGNvbG9uLm5ldAAAAAACAAAAAAAA/4MAMgAAAAAAA -AAAAAAAAAAAAAAAAAAAAHQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATAB -QAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAA -xADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0A -TgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAIsAqQCDAJMAjQDDAKoAtgC3A -LQAtQCrAL4AvwC8AIwAwADBAAAAAAAB//8AAgABAAAADAAAABwAAAACAAIAAwBxAAEAcgBzAAIABA -AAAAIAAAABAAAACgBMAGYAAkRGTFQADmxhdG4AGgAEAAAAAP//AAEAAAAWAANDQVQgAB5NT0wgABZ -ST00gABYAAP//AAEAAAAA//8AAgAAAAEAAmxpZ2EADmxvY2wAFAAAAAEAAQAAAAEAAAACAAYAEAAG -AAAAAgASADQABAAAAAEATAADAAAAAgAQABYAAQAcAAAAAQABAE8AAQABAGcAAQABAE8AAwAAAAIAE -AAWAAEAHAAAAAEAAQAvAAEAAQBnAAEAAQAvAAEAGgABAAgAAgAGAAwAcwACAE8AcgACAEwAAQABAE -kAAAABAAAACgBGAGAAAkRGTFQADmxhdG4AHAAEAAAAAP//AAIAAAABABYAA0NBVCAAFk1PTCAAFlJ -PTSAAFgAA//8AAgAAAAEAAmNwc3AADmtlcm4AFAAAAAEAAAAAAAEAAQACAAYADgABAAAAAQASAAIA -AAACAB4ANgABAAoABQAFAAoAAgABACQAPQAAAAEAEgAEAAAAAQAMAAEAOP/nAAEAAQAkAAIGigAEA -AAFJAXKABoAGQAA//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAD/sv+4/+z/7v/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAD/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9T/6AAAAAD/8QAA -ABD/vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7gAAAAAAAAAAAAAAAAAA//MAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAP/5AAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAAD/4AAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//L/9AAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAA/+gAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAAAAAAAAAAAAAAD -/4gAA//AAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+AAAAAAAAP/OAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zv/qAAAAAP/0AAAACAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/ZAAD/egAA/1kAAAAA/5D/rgAAAAAAAAAAAA -AAAAAAAAAAAAAAAAD/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAD/8AAA/7b/8P+wAAD/8P/E/98AAAAA/8P/+P/0//oAAAAAAAAAAAAA//gA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/w//C/9MAAP/SAAD/9wAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yAAA/+kAAAAA//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9wAAAAD//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAP/cAAAAAAAAAAAAAAAA/7YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAP/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6AAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAkAFAAEAAAAAQACwAAABcA -BgAAAAAAAAAIAA4AAAAAAAsAEgAAAAAAAAATABkAAwANAAAAAQAJAAAAAAAAAAAAAAAAAAAAGAAAA -AAABwAAAAAAAAAAAAAAFQAFAAAAAAAYABgAAAAUAAAACgAAAAwAAgAPABEAFgAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAEAEQBdAAYAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAAAAAAABwAAAAAACAAAAAAAAAAAAAcAAAAHAAAAEwAJ -ABUADgAPAAAACwAQAAAAAAAAAAAAAAAAAAUAGAACAAIAAgAAAAIAGAAXAAAAGAAAABYAFgACABYAA -gAWAAAAEQADAAoAFAAMAA0ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEgAGAAEAHgAkAC -YAJwApACoALQAuAC8AMgAzADcAOAA5ADoAPAA9AEUASABOAE8AUgBTAFUAVwBZAFoAWwBcAF0AcwA -AAAAAAQAAAADa3tfFAAAAANAan9kAAAAA4QodoQ== -""" - ) - ), - 10 if size is None else size, - layout_engine=Layout.BASIC, - ) - else: - f = ImageFont() - f._load_pilfont_data( - # courB08 - BytesIO( - base64.b64decode( - b""" -UElMZm9udAo7Ozs7OzsxMDsKREFUQQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAA//8AAQAAAAAAAAABAAEA -BgAAAAH/+gADAAAAAQAAAAMABgAGAAAAAf/6AAT//QADAAAABgADAAYAAAAA//kABQABAAYAAAAL -AAgABgAAAAD/+AAFAAEACwAAABAACQAGAAAAAP/5AAUAAAAQAAAAFQAHAAYAAP////oABQAAABUA -AAAbAAYABgAAAAH/+QAE//wAGwAAAB4AAwAGAAAAAf/5AAQAAQAeAAAAIQAIAAYAAAAB//kABAAB -ACEAAAAkAAgABgAAAAD/+QAE//0AJAAAACgABAAGAAAAAP/6AAX//wAoAAAALQAFAAYAAAAB//8A -BAACAC0AAAAwAAMABgAAAAD//AAF//0AMAAAADUAAQAGAAAAAf//AAMAAAA1AAAANwABAAYAAAAB -//kABQABADcAAAA7AAgABgAAAAD/+QAFAAAAOwAAAEAABwAGAAAAAP/5AAYAAABAAAAARgAHAAYA -AAAA//kABQAAAEYAAABLAAcABgAAAAD/+QAFAAAASwAAAFAABwAGAAAAAP/5AAYAAABQAAAAVgAH -AAYAAAAA//kABQAAAFYAAABbAAcABgAAAAD/+QAFAAAAWwAAAGAABwAGAAAAAP/5AAUAAABgAAAA -ZQAHAAYAAAAA//kABQAAAGUAAABqAAcABgAAAAD/+QAFAAAAagAAAG8ABwAGAAAAAf/8AAMAAABv -AAAAcQAEAAYAAAAA//wAAwACAHEAAAB0AAYABgAAAAD/+gAE//8AdAAAAHgABQAGAAAAAP/7AAT/ -/gB4AAAAfAADAAYAAAAB//oABf//AHwAAACAAAUABgAAAAD/+gAFAAAAgAAAAIUABgAGAAAAAP/5 -AAYAAQCFAAAAiwAIAAYAAP////oABgAAAIsAAACSAAYABgAA////+gAFAAAAkgAAAJgABgAGAAAA -AP/6AAUAAACYAAAAnQAGAAYAAP////oABQAAAJ0AAACjAAYABgAA////+gAFAAAAowAAAKkABgAG -AAD////6AAUAAACpAAAArwAGAAYAAAAA//oABQAAAK8AAAC0AAYABgAA////+gAGAAAAtAAAALsA -BgAGAAAAAP/6AAQAAAC7AAAAvwAGAAYAAP////oABQAAAL8AAADFAAYABgAA////+gAGAAAAxQAA -AMwABgAGAAD////6AAUAAADMAAAA0gAGAAYAAP////oABQAAANIAAADYAAYABgAA////+gAGAAAA -2AAAAN8ABgAGAAAAAP/6AAUAAADfAAAA5AAGAAYAAP////oABQAAAOQAAADqAAYABgAAAAD/+gAF -AAEA6gAAAO8ABwAGAAD////6AAYAAADvAAAA9gAGAAYAAAAA//oABQAAAPYAAAD7AAYABgAA//// -+gAFAAAA+wAAAQEABgAGAAD////6AAYAAAEBAAABCAAGAAYAAP////oABgAAAQgAAAEPAAYABgAA -////+gAGAAABDwAAARYABgAGAAAAAP/6AAYAAAEWAAABHAAGAAYAAP////oABgAAARwAAAEjAAYA -BgAAAAD/+gAFAAABIwAAASgABgAGAAAAAf/5AAQAAQEoAAABKwAIAAYAAAAA//kABAABASsAAAEv -AAgABgAAAAH/+QAEAAEBLwAAATIACAAGAAAAAP/5AAX//AEyAAABNwADAAYAAAAAAAEABgACATcA -AAE9AAEABgAAAAH/+QAE//wBPQAAAUAAAwAGAAAAAP/7AAYAAAFAAAABRgAFAAYAAP////kABQAA -AUYAAAFMAAcABgAAAAD/+wAFAAABTAAAAVEABQAGAAAAAP/5AAYAAAFRAAABVwAHAAYAAAAA//sA -BQAAAVcAAAFcAAUABgAAAAD/+QAFAAABXAAAAWEABwAGAAAAAP/7AAYAAgFhAAABZwAHAAYAAP// -//kABQAAAWcAAAFtAAcABgAAAAD/+QAGAAABbQAAAXMABwAGAAAAAP/5AAQAAgFzAAABdwAJAAYA -AP////kABgAAAXcAAAF+AAcABgAAAAD/+QAGAAABfgAAAYQABwAGAAD////7AAUAAAGEAAABigAF -AAYAAP////sABQAAAYoAAAGQAAUABgAAAAD/+wAFAAABkAAAAZUABQAGAAD////7AAUAAgGVAAAB -mwAHAAYAAAAA//sABgACAZsAAAGhAAcABgAAAAD/+wAGAAABoQAAAacABQAGAAAAAP/7AAYAAAGn -AAABrQAFAAYAAAAA//kABgAAAa0AAAGzAAcABgAA////+wAGAAABswAAAboABQAGAAD////7AAUA -AAG6AAABwAAFAAYAAP////sABgAAAcAAAAHHAAUABgAAAAD/+wAGAAABxwAAAc0ABQAGAAD////7 -AAYAAgHNAAAB1AAHAAYAAAAA//sABQAAAdQAAAHZAAUABgAAAAH/+QAFAAEB2QAAAd0ACAAGAAAA -Av/6AAMAAQHdAAAB3gAHAAYAAAAA//kABAABAd4AAAHiAAgABgAAAAD/+wAF//0B4gAAAecAAgAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAB -//sAAwACAecAAAHpAAcABgAAAAD/+QAFAAEB6QAAAe4ACAAGAAAAAP/5AAYAAAHuAAAB9AAHAAYA -AAAA//oABf//AfQAAAH5AAUABgAAAAD/+QAGAAAB+QAAAf8ABwAGAAAAAv/5AAMAAgH/AAACAAAJ -AAYAAAAA//kABQABAgAAAAIFAAgABgAAAAH/+gAE//sCBQAAAggAAQAGAAAAAP/5AAYAAAIIAAAC -DgAHAAYAAAAB//kABf/+Ag4AAAISAAUABgAA////+wAGAAACEgAAAhkABQAGAAAAAP/7AAX//gIZ -AAACHgADAAYAAAAA//wABf/9Ah4AAAIjAAEABgAAAAD/+QAHAAACIwAAAioABwAGAAAAAP/6AAT/ -+wIqAAACLgABAAYAAAAA//kABP/8Ai4AAAIyAAMABgAAAAD/+gAFAAACMgAAAjcABgAGAAAAAf/5 -AAT//QI3AAACOgAEAAYAAAAB//kABP/9AjoAAAI9AAQABgAAAAL/+QAE//sCPQAAAj8AAgAGAAD/ -///7AAYAAgI/AAACRgAHAAYAAAAA//kABgABAkYAAAJMAAgABgAAAAH//AAD//0CTAAAAk4AAQAG -AAAAAf//AAQAAgJOAAACUQADAAYAAAAB//kABP/9AlEAAAJUAAQABgAAAAH/+QAF//4CVAAAAlgA -BQAGAAD////7AAYAAAJYAAACXwAFAAYAAP////kABgAAAl8AAAJmAAcABgAA////+QAGAAACZgAA -Am0ABwAGAAD////5AAYAAAJtAAACdAAHAAYAAAAA//sABQACAnQAAAJ5AAcABgAA////9wAGAAAC -eQAAAoAACQAGAAD////3AAYAAAKAAAAChwAJAAYAAP////cABgAAAocAAAKOAAkABgAA////9wAG -AAACjgAAApUACQAGAAD////4AAYAAAKVAAACnAAIAAYAAP////cABgAAApwAAAKjAAkABgAA//// -+gAGAAACowAAAqoABgAGAAAAAP/6AAUAAgKqAAACrwAIAAYAAP////cABQAAAq8AAAK1AAkABgAA -////9wAFAAACtQAAArsACQAGAAD////3AAUAAAK7AAACwQAJAAYAAP////gABQAAAsEAAALHAAgA -BgAAAAD/9wAEAAACxwAAAssACQAGAAAAAP/3AAQAAALLAAACzwAJAAYAAAAA//cABAAAAs8AAALT -AAkABgAAAAD/+AAEAAAC0wAAAtcACAAGAAD////6AAUAAALXAAAC3QAGAAYAAP////cABgAAAt0A -AALkAAkABgAAAAD/9wAFAAAC5AAAAukACQAGAAAAAP/3AAUAAALpAAAC7gAJAAYAAAAA//cABQAA -Au4AAALzAAkABgAAAAD/9wAFAAAC8wAAAvgACQAGAAAAAP/4AAUAAAL4AAAC/QAIAAYAAAAA//oA -Bf//Av0AAAMCAAUABgAA////+gAGAAADAgAAAwkABgAGAAD////3AAYAAAMJAAADEAAJAAYAAP// -//cABgAAAxAAAAMXAAkABgAA////9wAGAAADFwAAAx4ACQAGAAD////4AAYAAAAAAAoABwASAAYA -AP////cABgAAAAcACgAOABMABgAA////+gAFAAAADgAKABQAEAAGAAD////6AAYAAAAUAAoAGwAQ -AAYAAAAA//gABgAAABsACgAhABIABgAAAAD/+AAGAAAAIQAKACcAEgAGAAAAAP/4AAYAAAAnAAoA -LQASAAYAAAAA//gABgAAAC0ACgAzABIABgAAAAD/+QAGAAAAMwAKADkAEQAGAAAAAP/3AAYAAAA5 -AAoAPwATAAYAAP////sABQAAAD8ACgBFAA8ABgAAAAD/+wAFAAIARQAKAEoAEQAGAAAAAP/4AAUA -AABKAAoATwASAAYAAAAA//gABQAAAE8ACgBUABIABgAAAAD/+AAFAAAAVAAKAFkAEgAGAAAAAP/5 -AAUAAABZAAoAXgARAAYAAAAA//gABgAAAF4ACgBkABIABgAAAAD/+AAGAAAAZAAKAGoAEgAGAAAA -AP/4AAYAAABqAAoAcAASAAYAAAAA//kABgAAAHAACgB2ABEABgAAAAD/+AAFAAAAdgAKAHsAEgAG -AAD////4AAYAAAB7AAoAggASAAYAAAAA//gABQAAAIIACgCHABIABgAAAAD/+AAFAAAAhwAKAIwA -EgAGAAAAAP/4AAUAAACMAAoAkQASAAYAAAAA//gABQAAAJEACgCWABIABgAAAAD/+QAFAAAAlgAK -AJsAEQAGAAAAAP/6AAX//wCbAAoAoAAPAAYAAAAA//oABQABAKAACgClABEABgAA////+AAGAAAA -pQAKAKwAEgAGAAD////4AAYAAACsAAoAswASAAYAAP////gABgAAALMACgC6ABIABgAA////+QAG -AAAAugAKAMEAEQAGAAD////4AAYAAgDBAAoAyAAUAAYAAP////kABQACAMgACgDOABMABgAA//// -+QAGAAIAzgAKANUAEw== -""" - ) - ), - Image.open( - BytesIO( - base64.b64decode( - b""" -iVBORw0KGgoAAAANSUhEUgAAAx4AAAAUAQAAAAArMtZoAAAEwElEQVR4nABlAJr/AHVE4czCI/4u -Mc4b7vuds/xzjz5/3/7u/n9vMe7vnfH/9++vPn/xyf5zhxzjt8GHw8+2d83u8x27199/nxuQ6Od9 -M43/5z2I+9n9ZtmDBwMQECDRQw/eQIQohJXxpBCNVE6QCCAAAAD//wBlAJr/AgALyj1t/wINwq0g -LeNZUworuN1cjTPIzrTX6ofHWeo3v336qPzfEwRmBnHTtf95/fglZK5N0PDgfRTslpGBvz7LFc4F -IUXBWQGjQ5MGCx34EDFPwXiY4YbYxavpnhHFrk14CDAAAAD//wBlAJr/AgKqRooH2gAgPeggvUAA -Bu2WfgPoAwzRAABAAAAAAACQgLz/3Uv4Gv+gX7BJgDeeGP6AAAD1NMDzKHD7ANWr3loYbxsAD791 -NAADfcoIDyP44K/jv4Y63/Z+t98Ovt+ub4T48LAAAAD//wBlAJr/AuplMlADJAAAAGuAphWpqhMx -in0A/fRvAYBABPgBwBUgABBQ/sYAyv9g0bCHgOLoGAAAAAAAREAAwI7nr0ArYpow7aX8//9LaP/9 -SjdavWA8ePHeBIKB//81/83ndznOaXx379wAAAD//wBlAJr/AqDxW+D3AABAAbUh/QMnbQag/gAY -AYDAAACgtgD/gOqAAAB5IA/8AAAk+n9w0AAA8AAAmFRJuPo27ciC0cD5oeW4E7KA/wD3ECMAn2tt -y8PgwH8AfAxFzC0JzeAMtratAsC/ffwAAAD//wBlAJr/BGKAyCAA4AAAAvgeYTAwHd1kmQF5chkG -ABoMIHcL5xVpTfQbUqzlAAAErwAQBgAAEOClA5D9il08AEh/tUzdCBsXkbgACED+woQg8Si9VeqY -lODCn7lmF6NhnAEYgAAA/NMIAAAAAAD//2JgjLZgVGBg5Pv/Tvpc8hwGBjYGJADjHDrAwPzAjv/H -/Wf3PzCwtzcwHmBgYGcwbZz8wHaCAQMDOwMDQ8MCBgYOC3W7mp+f0w+wHOYxO3OG+e376hsMZjk3 -AAAAAP//YmCMY2A4wMAIN5e5gQETPD6AZisDAwMDgzSDAAPjByiHcQMDAwMDg1nOze1lByRu5/47 -c4859311AYNZzg0AAAAA//9iYGDBYihOIIMuwIjGL39/fwffA8b//xv/P2BPtzzHwCBjUQAAAAD/ -/yLFBrIBAAAA//9i1HhcwdhizX7u8NZNzyLbvT97bfrMf/QHI8evOwcSqGUJAAAA//9iYBB81iSw -pEE170Qrg5MIYydHqwdDQRMrAwcVrQAAAAD//2J4x7j9AAMDn8Q/BgYLBoaiAwwMjPdvMDBYM1Tv -oJodAAAAAP//Yqo/83+dxePWlxl3npsel9lvLfPcqlE9725C+acfVLMEAAAA//9i+s9gwCoaaGMR -evta/58PTEWzr21hufPjA8N+qlnBwAAAAAD//2JiWLci5v1+HmFXDqcnULE/MxgYGBj+f6CaJQAA -AAD//2Ji2FrkY3iYpYC5qDeGgeEMAwPDvwQBBoYvcTwOVLMEAAAA//9isDBgkP///0EOg9z35v// -Gc/eeW7BwPj5+QGZhANUswMAAAD//2JgqGBgYGBgqEMXlvhMPUsAAAAA//8iYDd1AAAAAP//AwDR -w7IkEbzhVQAAAABJRU5ErkJggg== -""" - ) - ) - ), - ) - return f diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageGrab.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageGrab.py deleted file mode 100644 index a4993d3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageGrab.py +++ /dev/null @@ -1,178 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# screen grabber -# -# History: -# 2001-04-26 fl created -# 2001-09-17 fl use builtin driver, if present -# 2002-11-19 fl added grabclipboard support -# -# Copyright (c) 2001-2002 by Secret Labs AB -# Copyright (c) 2001-2002 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -import os -import shutil -import subprocess -import sys -import tempfile - -from . import Image - - -def grab(bbox=None, include_layered_windows=False, all_screens=False, xdisplay=None): - if xdisplay is None: - if sys.platform == "darwin": - fh, filepath = tempfile.mkstemp(".png") - os.close(fh) - args = ["screencapture"] - if bbox: - left, top, right, bottom = bbox - args += ["-R", f"{left},{top},{right-left},{bottom-top}"] - subprocess.call(args + ["-x", filepath]) - im = Image.open(filepath) - im.load() - os.unlink(filepath) - if bbox: - im_resized = im.resize((right - left, bottom - top)) - im.close() - return im_resized - return im - elif sys.platform == "win32": - offset, size, data = Image.core.grabscreen_win32( - include_layered_windows, all_screens - ) - im = Image.frombytes( - "RGB", - size, - data, - # RGB, 32-bit line padding, origin lower left corner - "raw", - "BGR", - (size[0] * 3 + 3) & -4, - -1, - ) - if bbox: - x0, y0 = offset - left, top, right, bottom = bbox - im = im.crop((left - x0, top - y0, right - x0, bottom - y0)) - return im - try: - if not Image.core.HAVE_XCB: - msg = "Pillow was built without XCB support" - raise OSError(msg) - size, data = Image.core.grabscreen_x11(xdisplay) - except OSError: - if ( - xdisplay is None - and sys.platform not in ("darwin", "win32") - and shutil.which("gnome-screenshot") - ): - fh, filepath = tempfile.mkstemp(".png") - os.close(fh) - subprocess.call(["gnome-screenshot", "-f", filepath]) - im = Image.open(filepath) - im.load() - os.unlink(filepath) - if bbox: - im_cropped = im.crop(bbox) - im.close() - return im_cropped - return im - else: - raise - else: - im = Image.frombytes("RGB", size, data, "raw", "BGRX", size[0] * 4, 1) - if bbox: - im = im.crop(bbox) - return im - - -def grabclipboard(): - if sys.platform == "darwin": - fh, filepath = tempfile.mkstemp(".png") - os.close(fh) - commands = [ - 'set theFile to (open for access POSIX file "' - + filepath - + '" with write permission)', - "try", - " write (the clipboard as «class PNGf») to theFile", - "end try", - "close access theFile", - ] - script = ["osascript"] - for command in commands: - script += ["-e", command] - subprocess.call(script) - - im = None - if os.stat(filepath).st_size != 0: - im = Image.open(filepath) - im.load() - os.unlink(filepath) - return im - elif sys.platform == "win32": - fmt, data = Image.core.grabclipboard_win32() - if fmt == "file": # CF_HDROP - import struct - - o = struct.unpack_from("I", data)[0] - if data[16] != 0: - files = data[o:].decode("utf-16le").split("\0") - else: - files = data[o:].decode("mbcs").split("\0") - return files[: files.index("")] - if isinstance(data, bytes): - data = io.BytesIO(data) - if fmt == "png": - from . import PngImagePlugin - - return PngImagePlugin.PngImageFile(data) - elif fmt == "DIB": - from . import BmpImagePlugin - - return BmpImagePlugin.DibImageFile(data) - return None - else: - if os.getenv("WAYLAND_DISPLAY"): - session_type = "wayland" - elif os.getenv("DISPLAY"): - session_type = "x11" - else: # Session type check failed - session_type = None - - if shutil.which("wl-paste") and session_type in ("wayland", None): - output = subprocess.check_output(["wl-paste", "-l"]).decode() - mimetypes = output.splitlines() - if "image/png" in mimetypes: - mimetype = "image/png" - elif mimetypes: - mimetype = mimetypes[0] - else: - mimetype = None - - args = ["wl-paste"] - if mimetype: - args.extend(["-t", mimetype]) - elif shutil.which("xclip") and session_type in ("x11", None): - args = ["xclip", "-selection", "clipboard", "-t", "image/png", "-o"] - else: - msg = "wl-paste or xclip is required for ImageGrab.grabclipboard() on Linux" - raise NotImplementedError(msg) - - p = subprocess.run(args, capture_output=True) - err = p.stderr - if err: - msg = f"{args[0]} error: {err.strip().decode()}" - raise ChildProcessError(msg) - data = io.BytesIO(p.stdout) - im = Image.open(data) - im.load() - return im diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageMath.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageMath.py deleted file mode 100644 index b77f4bc..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageMath.py +++ /dev/null @@ -1,265 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# a simple math add-on for the Python Imaging Library -# -# History: -# 1999-02-15 fl Original PIL Plus release -# 2005-05-05 fl Simplified and cleaned up for PIL 1.1.6 -# 2005-09-12 fl Fixed int() and float() for Python 2.4.1 -# -# Copyright (c) 1999-2005 by Secret Labs AB -# Copyright (c) 2005 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import builtins - -from . import Image, _imagingmath - - -class _Operand: - """Wraps an image operand, providing standard operators""" - - def __init__(self, im): - self.im = im - - def __fixup(self, im1): - # convert image to suitable mode - if isinstance(im1, _Operand): - # argument was an image. - if im1.im.mode in ("1", "L"): - return im1.im.convert("I") - elif im1.im.mode in ("I", "F"): - return im1.im - else: - msg = f"unsupported mode: {im1.im.mode}" - raise ValueError(msg) - else: - # argument was a constant - if isinstance(im1, (int, float)) and self.im.mode in ("1", "L", "I"): - return Image.new("I", self.im.size, im1) - else: - return Image.new("F", self.im.size, im1) - - def apply(self, op, im1, im2=None, mode=None): - im1 = self.__fixup(im1) - if im2 is None: - # unary operation - out = Image.new(mode or im1.mode, im1.size, None) - im1.load() - try: - op = getattr(_imagingmath, op + "_" + im1.mode) - except AttributeError as e: - msg = f"bad operand type for '{op}'" - raise TypeError(msg) from e - _imagingmath.unop(op, out.im.id, im1.im.id) - else: - # binary operation - im2 = self.__fixup(im2) - if im1.mode != im2.mode: - # convert both arguments to floating point - if im1.mode != "F": - im1 = im1.convert("F") - if im2.mode != "F": - im2 = im2.convert("F") - if im1.size != im2.size: - # crop both arguments to a common size - size = (min(im1.size[0], im2.size[0]), min(im1.size[1], im2.size[1])) - if im1.size != size: - im1 = im1.crop((0, 0) + size) - if im2.size != size: - im2 = im2.crop((0, 0) + size) - out = Image.new(mode or im1.mode, im1.size, None) - im1.load() - im2.load() - try: - op = getattr(_imagingmath, op + "_" + im1.mode) - except AttributeError as e: - msg = f"bad operand type for '{op}'" - raise TypeError(msg) from e - _imagingmath.binop(op, out.im.id, im1.im.id, im2.im.id) - return _Operand(out) - - # unary operators - def __bool__(self): - # an image is "true" if it contains at least one non-zero pixel - return self.im.getbbox() is not None - - def __abs__(self): - return self.apply("abs", self) - - def __pos__(self): - return self - - def __neg__(self): - return self.apply("neg", self) - - # binary operators - def __add__(self, other): - return self.apply("add", self, other) - - def __radd__(self, other): - return self.apply("add", other, self) - - def __sub__(self, other): - return self.apply("sub", self, other) - - def __rsub__(self, other): - return self.apply("sub", other, self) - - def __mul__(self, other): - return self.apply("mul", self, other) - - def __rmul__(self, other): - return self.apply("mul", other, self) - - def __truediv__(self, other): - return self.apply("div", self, other) - - def __rtruediv__(self, other): - return self.apply("div", other, self) - - def __mod__(self, other): - return self.apply("mod", self, other) - - def __rmod__(self, other): - return self.apply("mod", other, self) - - def __pow__(self, other): - return self.apply("pow", self, other) - - def __rpow__(self, other): - return self.apply("pow", other, self) - - # bitwise - def __invert__(self): - return self.apply("invert", self) - - def __and__(self, other): - return self.apply("and", self, other) - - def __rand__(self, other): - return self.apply("and", other, self) - - def __or__(self, other): - return self.apply("or", self, other) - - def __ror__(self, other): - return self.apply("or", other, self) - - def __xor__(self, other): - return self.apply("xor", self, other) - - def __rxor__(self, other): - return self.apply("xor", other, self) - - def __lshift__(self, other): - return self.apply("lshift", self, other) - - def __rshift__(self, other): - return self.apply("rshift", self, other) - - # logical - def __eq__(self, other): - return self.apply("eq", self, other) - - def __ne__(self, other): - return self.apply("ne", self, other) - - def __lt__(self, other): - return self.apply("lt", self, other) - - def __le__(self, other): - return self.apply("le", self, other) - - def __gt__(self, other): - return self.apply("gt", self, other) - - def __ge__(self, other): - return self.apply("ge", self, other) - - -# conversions -def imagemath_int(self): - return _Operand(self.im.convert("I")) - - -def imagemath_float(self): - return _Operand(self.im.convert("F")) - - -# logical -def imagemath_equal(self, other): - return self.apply("eq", self, other, mode="I") - - -def imagemath_notequal(self, other): - return self.apply("ne", self, other, mode="I") - - -def imagemath_min(self, other): - return self.apply("min", self, other) - - -def imagemath_max(self, other): - return self.apply("max", self, other) - - -def imagemath_convert(self, mode): - return _Operand(self.im.convert(mode)) - - -ops = {} -for k, v in list(globals().items()): - if k[:10] == "imagemath_": - ops[k[10:]] = v - - -def eval(expression, _dict={}, **kw): - """ - Evaluates an image expression. - - :param expression: A string containing a Python-style expression. - :param options: Values to add to the evaluation context. You - can either use a dictionary, or one or more keyword - arguments. - :return: The evaluated expression. This is usually an image object, but can - also be an integer, a floating point value, or a pixel tuple, - depending on the expression. - """ - - # build execution namespace - args = ops.copy() - for k in list(_dict.keys()) + list(kw.keys()): - if "__" in k or hasattr(builtins, k): - msg = f"'{k}' not allowed" - raise ValueError(msg) - - args.update(_dict) - args.update(kw) - for k, v in args.items(): - if hasattr(v, "im"): - args[k] = _Operand(v) - - compiled_code = compile(expression, "", "eval") - - def scan(code): - for const in code.co_consts: - if type(const) is type(compiled_code): - scan(const) - - for name in code.co_names: - if name not in args and name != "abs": - msg = f"'{name}' not allowed" - raise ValueError(msg) - - scan(compiled_code) - out = builtins.eval(expression, {"__builtins": {"abs": abs}}, args) - try: - return out.im - except AttributeError: - return out diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageMode.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageMode.py deleted file mode 100644 index 0b31f60..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageMode.py +++ /dev/null @@ -1,96 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# standard mode descriptors -# -# History: -# 2006-03-20 fl Added -# -# Copyright (c) 2006 by Secret Labs AB. -# Copyright (c) 2006 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import sys -from functools import lru_cache - - -class ModeDescriptor: - """Wrapper for mode strings.""" - - def __init__( - self, - mode: str, - bands: tuple[str, ...], - basemode: str, - basetype: str, - typestr: str, - ) -> None: - self.mode = mode - self.bands = bands - self.basemode = basemode - self.basetype = basetype - self.typestr = typestr - - def __str__(self) -> str: - return self.mode - - -@lru_cache -def getmode(mode: str) -> ModeDescriptor: - """Gets a mode descriptor for the given mode.""" - # initialize mode cache - endian = "<" if sys.byteorder == "little" else ">" - - modes = { - # core modes - # Bits need to be extended to bytes - "1": ("L", "L", ("1",), "|b1"), - "L": ("L", "L", ("L",), "|u1"), - "I": ("L", "I", ("I",), endian + "i4"), - "F": ("L", "F", ("F",), endian + "f4"), - "P": ("P", "L", ("P",), "|u1"), - "RGB": ("RGB", "L", ("R", "G", "B"), "|u1"), - "RGBX": ("RGB", "L", ("R", "G", "B", "X"), "|u1"), - "RGBA": ("RGB", "L", ("R", "G", "B", "A"), "|u1"), - "CMYK": ("RGB", "L", ("C", "M", "Y", "K"), "|u1"), - "YCbCr": ("RGB", "L", ("Y", "Cb", "Cr"), "|u1"), - # UNDONE - unsigned |u1i1i1 - "LAB": ("RGB", "L", ("L", "A", "B"), "|u1"), - "HSV": ("RGB", "L", ("H", "S", "V"), "|u1"), - # extra experimental modes - "RGBa": ("RGB", "L", ("R", "G", "B", "a"), "|u1"), - "BGR;15": ("RGB", "L", ("B", "G", "R"), "|u1"), - "BGR;16": ("RGB", "L", ("B", "G", "R"), "|u1"), - "BGR;24": ("RGB", "L", ("B", "G", "R"), "|u1"), - "LA": ("L", "L", ("L", "A"), "|u1"), - "La": ("L", "L", ("L", "a"), "|u1"), - "PA": ("RGB", "L", ("P", "A"), "|u1"), - } - if mode in modes: - base_mode, base_type, bands, type_str = modes[mode] - return ModeDescriptor(mode, bands, base_mode, base_type, type_str) - - mapping_modes = { - # I;16 == I;16L, and I;32 == I;32L - "I;16": "u2", - "I;16BS": ">i2", - "I;16N": endian + "u2", - "I;16NS": endian + "i2", - "I;32": "u4", - "I;32L": "i4", - "I;32LS": " -from __future__ import annotations - -import re - -from . import Image, _imagingmorph - -LUT_SIZE = 1 << 9 - -# fmt: off -ROTATION_MATRIX = [ - 6, 3, 0, - 7, 4, 1, - 8, 5, 2, -] -MIRROR_MATRIX = [ - 2, 1, 0, - 5, 4, 3, - 8, 7, 6, -] -# fmt: on - - -class LutBuilder: - """A class for building a MorphLut from a descriptive language - - The input patterns is a list of a strings sequences like these:: - - 4:(... - .1. - 111)->1 - - (whitespaces including linebreaks are ignored). The option 4 - describes a series of symmetry operations (in this case a - 4-rotation), the pattern is described by: - - - . or X - Ignore - - 1 - Pixel is on - - 0 - Pixel is off - - The result of the operation is described after "->" string. - - The default is to return the current pixel value, which is - returned if no other match is found. - - Operations: - - - 4 - 4 way rotation - - N - Negate - - 1 - Dummy op for no other operation (an op must always be given) - - M - Mirroring - - Example:: - - lb = LutBuilder(patterns = ["4:(... .1. 111)->1"]) - lut = lb.build_lut() - - """ - - def __init__(self, patterns=None, op_name=None): - if patterns is not None: - self.patterns = patterns - else: - self.patterns = [] - self.lut = None - if op_name is not None: - known_patterns = { - "corner": ["1:(... ... ...)->0", "4:(00. 01. ...)->1"], - "dilation4": ["4:(... .0. .1.)->1"], - "dilation8": ["4:(... .0. .1.)->1", "4:(... .0. ..1)->1"], - "erosion4": ["4:(... .1. .0.)->0"], - "erosion8": ["4:(... .1. .0.)->0", "4:(... .1. ..0)->0"], - "edge": [ - "1:(... ... ...)->0", - "4:(.0. .1. ...)->1", - "4:(01. .1. ...)->1", - ], - } - if op_name not in known_patterns: - msg = "Unknown pattern " + op_name + "!" - raise Exception(msg) - - self.patterns = known_patterns[op_name] - - def add_patterns(self, patterns): - self.patterns += patterns - - def build_default_lut(self): - symbols = [0, 1] - m = 1 << 4 # pos of current pixel - self.lut = bytearray(symbols[(i & m) > 0] for i in range(LUT_SIZE)) - - def get_lut(self): - return self.lut - - def _string_permute(self, pattern, permutation): - """string_permute takes a pattern and a permutation and returns the - string permuted according to the permutation list. - """ - assert len(permutation) == 9 - return "".join(pattern[p] for p in permutation) - - def _pattern_permute(self, basic_pattern, options, basic_result): - """pattern_permute takes a basic pattern and its result and clones - the pattern according to the modifications described in the $options - parameter. It returns a list of all cloned patterns.""" - patterns = [(basic_pattern, basic_result)] - - # rotations - if "4" in options: - res = patterns[-1][1] - for i in range(4): - patterns.append( - (self._string_permute(patterns[-1][0], ROTATION_MATRIX), res) - ) - # mirror - if "M" in options: - n = len(patterns) - for pattern, res in patterns[:n]: - patterns.append((self._string_permute(pattern, MIRROR_MATRIX), res)) - - # negate - if "N" in options: - n = len(patterns) - for pattern, res in patterns[:n]: - # Swap 0 and 1 - pattern = pattern.replace("0", "Z").replace("1", "0").replace("Z", "1") - res = 1 - int(res) - patterns.append((pattern, res)) - - return patterns - - def build_lut(self): - """Compile all patterns into a morphology lut. - - TBD :Build based on (file) morphlut:modify_lut - """ - self.build_default_lut() - patterns = [] - - # Parse and create symmetries of the patterns strings - for p in self.patterns: - m = re.search(r"(\w*):?\s*\((.+?)\)\s*->\s*(\d)", p.replace("\n", "")) - if not m: - msg = 'Syntax error in pattern "' + p + '"' - raise Exception(msg) - options = m.group(1) - pattern = m.group(2) - result = int(m.group(3)) - - # Get rid of spaces - pattern = pattern.replace(" ", "").replace("\n", "") - - patterns += self._pattern_permute(pattern, options, result) - - # compile the patterns into regular expressions for speed - for i, pattern in enumerate(patterns): - p = pattern[0].replace(".", "X").replace("X", "[01]") - p = re.compile(p) - patterns[i] = (p, pattern[1]) - - # Step through table and find patterns that match. - # Note that all the patterns are searched. The last one - # caught overrides - for i in range(LUT_SIZE): - # Build the bit pattern - bitpattern = bin(i)[2:] - bitpattern = ("0" * (9 - len(bitpattern)) + bitpattern)[::-1] - - for p, r in patterns: - if p.match(bitpattern): - self.lut[i] = [0, 1][r] - - return self.lut - - -class MorphOp: - """A class for binary morphological operators""" - - def __init__(self, lut=None, op_name=None, patterns=None): - """Create a binary morphological operator""" - self.lut = lut - if op_name is not None: - self.lut = LutBuilder(op_name=op_name).build_lut() - elif patterns is not None: - self.lut = LutBuilder(patterns=patterns).build_lut() - - def apply(self, image): - """Run a single morphological operation on an image - - Returns a tuple of the number of changed pixels and the - morphed image""" - if self.lut is None: - msg = "No operator loaded" - raise Exception(msg) - - if image.mode != "L": - msg = "Image mode must be L" - raise ValueError(msg) - outimage = Image.new(image.mode, image.size, None) - count = _imagingmorph.apply(bytes(self.lut), image.im.id, outimage.im.id) - return count, outimage - - def match(self, image): - """Get a list of coordinates matching the morphological operation on - an image. - - Returns a list of tuples of (x,y) coordinates - of all matching pixels. See :ref:`coordinate-system`.""" - if self.lut is None: - msg = "No operator loaded" - raise Exception(msg) - - if image.mode != "L": - msg = "Image mode must be L" - raise ValueError(msg) - return _imagingmorph.match(bytes(self.lut), image.im.id) - - def get_on_pixels(self, image): - """Get a list of all turned on pixels in a binary image - - Returns a list of tuples of (x,y) coordinates - of all matching pixels. See :ref:`coordinate-system`.""" - - if image.mode != "L": - msg = "Image mode must be L" - raise ValueError(msg) - return _imagingmorph.get_on_pixels(image.im.id) - - def load_lut(self, filename): - """Load an operator from an mrl file""" - with open(filename, "rb") as f: - self.lut = bytearray(f.read()) - - if len(self.lut) != LUT_SIZE: - self.lut = None - msg = "Wrong size operator file!" - raise Exception(msg) - - def save_lut(self, filename): - """Save an operator to an mrl file""" - if self.lut is None: - msg = "No operator loaded" - raise Exception(msg) - with open(filename, "wb") as f: - f.write(self.lut) - - def set_lut(self, lut): - """Set the lut from an external source""" - self.lut = lut diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageOps.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageOps.py deleted file mode 100644 index a9e626b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageOps.py +++ /dev/null @@ -1,655 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# standard image operations -# -# History: -# 2001-10-20 fl Created -# 2001-10-23 fl Added autocontrast operator -# 2001-12-18 fl Added Kevin's fit operator -# 2004-03-14 fl Fixed potential division by zero in equalize -# 2005-05-05 fl Fixed equalize for low number of values -# -# Copyright (c) 2001-2004 by Secret Labs AB -# Copyright (c) 2001-2004 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import functools -import operator -import re - -from . import ExifTags, Image, ImagePalette - -# -# helpers - - -def _border(border): - if isinstance(border, tuple): - if len(border) == 2: - left, top = right, bottom = border - elif len(border) == 4: - left, top, right, bottom = border - else: - left = top = right = bottom = border - return left, top, right, bottom - - -def _color(color, mode): - if isinstance(color, str): - from . import ImageColor - - color = ImageColor.getcolor(color, mode) - return color - - -def _lut(image, lut): - if image.mode == "P": - # FIXME: apply to lookup table, not image data - msg = "mode P support coming soon" - raise NotImplementedError(msg) - elif image.mode in ("L", "RGB"): - if image.mode == "RGB" and len(lut) == 256: - lut = lut + lut + lut - return image.point(lut) - else: - msg = f"not supported for mode {image.mode}" - raise OSError(msg) - - -# -# actions - - -def autocontrast(image, cutoff=0, ignore=None, mask=None, preserve_tone=False): - """ - Maximize (normalize) image contrast. This function calculates a - histogram of the input image (or mask region), removes ``cutoff`` percent of the - lightest and darkest pixels from the histogram, and remaps the image - so that the darkest pixel becomes black (0), and the lightest - becomes white (255). - - :param image: The image to process. - :param cutoff: The percent to cut off from the histogram on the low and - high ends. Either a tuple of (low, high), or a single - number for both. - :param ignore: The background pixel value (use None for no background). - :param mask: Histogram used in contrast operation is computed using pixels - within the mask. If no mask is given the entire image is used - for histogram computation. - :param preserve_tone: Preserve image tone in Photoshop-like style autocontrast. - - .. versionadded:: 8.2.0 - - :return: An image. - """ - if preserve_tone: - histogram = image.convert("L").histogram(mask) - else: - histogram = image.histogram(mask) - - lut = [] - for layer in range(0, len(histogram), 256): - h = histogram[layer : layer + 256] - if ignore is not None: - # get rid of outliers - try: - h[ignore] = 0 - except TypeError: - # assume sequence - for ix in ignore: - h[ix] = 0 - if cutoff: - # cut off pixels from both ends of the histogram - if not isinstance(cutoff, tuple): - cutoff = (cutoff, cutoff) - # get number of pixels - n = 0 - for ix in range(256): - n = n + h[ix] - # remove cutoff% pixels from the low end - cut = n * cutoff[0] // 100 - for lo in range(256): - if cut > h[lo]: - cut = cut - h[lo] - h[lo] = 0 - else: - h[lo] -= cut - cut = 0 - if cut <= 0: - break - # remove cutoff% samples from the high end - cut = n * cutoff[1] // 100 - for hi in range(255, -1, -1): - if cut > h[hi]: - cut = cut - h[hi] - h[hi] = 0 - else: - h[hi] -= cut - cut = 0 - if cut <= 0: - break - # find lowest/highest samples after preprocessing - for lo in range(256): - if h[lo]: - break - for hi in range(255, -1, -1): - if h[hi]: - break - if hi <= lo: - # don't bother - lut.extend(list(range(256))) - else: - scale = 255.0 / (hi - lo) - offset = -lo * scale - for ix in range(256): - ix = int(ix * scale + offset) - if ix < 0: - ix = 0 - elif ix > 255: - ix = 255 - lut.append(ix) - return _lut(image, lut) - - -def colorize(image, black, white, mid=None, blackpoint=0, whitepoint=255, midpoint=127): - """ - Colorize grayscale image. - This function calculates a color wedge which maps all black pixels in - the source image to the first color and all white pixels to the - second color. If ``mid`` is specified, it uses three-color mapping. - The ``black`` and ``white`` arguments should be RGB tuples or color names; - optionally you can use three-color mapping by also specifying ``mid``. - Mapping positions for any of the colors can be specified - (e.g. ``blackpoint``), where these parameters are the integer - value corresponding to where the corresponding color should be mapped. - These parameters must have logical order, such that - ``blackpoint <= midpoint <= whitepoint`` (if ``mid`` is specified). - - :param image: The image to colorize. - :param black: The color to use for black input pixels. - :param white: The color to use for white input pixels. - :param mid: The color to use for midtone input pixels. - :param blackpoint: an int value [0, 255] for the black mapping. - :param whitepoint: an int value [0, 255] for the white mapping. - :param midpoint: an int value [0, 255] for the midtone mapping. - :return: An image. - """ - - # Initial asserts - assert image.mode == "L" - if mid is None: - assert 0 <= blackpoint <= whitepoint <= 255 - else: - assert 0 <= blackpoint <= midpoint <= whitepoint <= 255 - - # Define colors from arguments - black = _color(black, "RGB") - white = _color(white, "RGB") - if mid is not None: - mid = _color(mid, "RGB") - - # Empty lists for the mapping - red = [] - green = [] - blue = [] - - # Create the low-end values - for i in range(0, blackpoint): - red.append(black[0]) - green.append(black[1]) - blue.append(black[2]) - - # Create the mapping (2-color) - if mid is None: - range_map = range(0, whitepoint - blackpoint) - - for i in range_map: - red.append(black[0] + i * (white[0] - black[0]) // len(range_map)) - green.append(black[1] + i * (white[1] - black[1]) // len(range_map)) - blue.append(black[2] + i * (white[2] - black[2]) // len(range_map)) - - # Create the mapping (3-color) - else: - range_map1 = range(0, midpoint - blackpoint) - range_map2 = range(0, whitepoint - midpoint) - - for i in range_map1: - red.append(black[0] + i * (mid[0] - black[0]) // len(range_map1)) - green.append(black[1] + i * (mid[1] - black[1]) // len(range_map1)) - blue.append(black[2] + i * (mid[2] - black[2]) // len(range_map1)) - for i in range_map2: - red.append(mid[0] + i * (white[0] - mid[0]) // len(range_map2)) - green.append(mid[1] + i * (white[1] - mid[1]) // len(range_map2)) - blue.append(mid[2] + i * (white[2] - mid[2]) // len(range_map2)) - - # Create the high-end values - for i in range(0, 256 - whitepoint): - red.append(white[0]) - green.append(white[1]) - blue.append(white[2]) - - # Return converted image - image = image.convert("RGB") - return _lut(image, red + green + blue) - - -def contain(image, size, method=Image.Resampling.BICUBIC): - """ - Returns a resized version of the image, set to the maximum width and height - within the requested size, while maintaining the original aspect ratio. - - :param image: The image to resize. - :param size: The requested output size in pixels, given as a - (width, height) tuple. - :param method: Resampling method to use. Default is - :py:attr:`~PIL.Image.Resampling.BICUBIC`. - See :ref:`concept-filters`. - :return: An image. - """ - - im_ratio = image.width / image.height - dest_ratio = size[0] / size[1] - - if im_ratio != dest_ratio: - if im_ratio > dest_ratio: - new_height = round(image.height / image.width * size[0]) - if new_height != size[1]: - size = (size[0], new_height) - else: - new_width = round(image.width / image.height * size[1]) - if new_width != size[0]: - size = (new_width, size[1]) - return image.resize(size, resample=method) - - -def cover(image, size, method=Image.Resampling.BICUBIC): - """ - Returns a resized version of the image, so that the requested size is - covered, while maintaining the original aspect ratio. - - :param image: The image to resize. - :param size: The requested output size in pixels, given as a - (width, height) tuple. - :param method: Resampling method to use. Default is - :py:attr:`~PIL.Image.Resampling.BICUBIC`. - See :ref:`concept-filters`. - :return: An image. - """ - - im_ratio = image.width / image.height - dest_ratio = size[0] / size[1] - - if im_ratio != dest_ratio: - if im_ratio < dest_ratio: - new_height = round(image.height / image.width * size[0]) - if new_height != size[1]: - size = (size[0], new_height) - else: - new_width = round(image.width / image.height * size[1]) - if new_width != size[0]: - size = (new_width, size[1]) - return image.resize(size, resample=method) - - -def pad(image, size, method=Image.Resampling.BICUBIC, color=None, centering=(0.5, 0.5)): - """ - Returns a resized and padded version of the image, expanded to fill the - requested aspect ratio and size. - - :param image: The image to resize and crop. - :param size: The requested output size in pixels, given as a - (width, height) tuple. - :param method: Resampling method to use. Default is - :py:attr:`~PIL.Image.Resampling.BICUBIC`. - See :ref:`concept-filters`. - :param color: The background color of the padded image. - :param centering: Control the position of the original image within the - padded version. - - (0.5, 0.5) will keep the image centered - (0, 0) will keep the image aligned to the top left - (1, 1) will keep the image aligned to the bottom - right - :return: An image. - """ - - resized = contain(image, size, method) - if resized.size == size: - out = resized - else: - out = Image.new(image.mode, size, color) - if resized.palette: - out.putpalette(resized.getpalette()) - if resized.width != size[0]: - x = round((size[0] - resized.width) * max(0, min(centering[0], 1))) - out.paste(resized, (x, 0)) - else: - y = round((size[1] - resized.height) * max(0, min(centering[1], 1))) - out.paste(resized, (0, y)) - return out - - -def crop(image, border=0): - """ - Remove border from image. The same amount of pixels are removed - from all four sides. This function works on all image modes. - - .. seealso:: :py:meth:`~PIL.Image.Image.crop` - - :param image: The image to crop. - :param border: The number of pixels to remove. - :return: An image. - """ - left, top, right, bottom = _border(border) - return image.crop((left, top, image.size[0] - right, image.size[1] - bottom)) - - -def scale(image, factor, resample=Image.Resampling.BICUBIC): - """ - Returns a rescaled image by a specific factor given in parameter. - A factor greater than 1 expands the image, between 0 and 1 contracts the - image. - - :param image: The image to rescale. - :param factor: The expansion factor, as a float. - :param resample: Resampling method to use. Default is - :py:attr:`~PIL.Image.Resampling.BICUBIC`. - See :ref:`concept-filters`. - :returns: An :py:class:`~PIL.Image.Image` object. - """ - if factor == 1: - return image.copy() - elif factor <= 0: - msg = "the factor must be greater than 0" - raise ValueError(msg) - else: - size = (round(factor * image.width), round(factor * image.height)) - return image.resize(size, resample) - - -def deform(image, deformer, resample=Image.Resampling.BILINEAR): - """ - Deform the image. - - :param image: The image to deform. - :param deformer: A deformer object. Any object that implements a - ``getmesh`` method can be used. - :param resample: An optional resampling filter. Same values possible as - in the PIL.Image.transform function. - :return: An image. - """ - return image.transform( - image.size, Image.Transform.MESH, deformer.getmesh(image), resample - ) - - -def equalize(image, mask=None): - """ - Equalize the image histogram. This function applies a non-linear - mapping to the input image, in order to create a uniform - distribution of grayscale values in the output image. - - :param image: The image to equalize. - :param mask: An optional mask. If given, only the pixels selected by - the mask are included in the analysis. - :return: An image. - """ - if image.mode == "P": - image = image.convert("RGB") - h = image.histogram(mask) - lut = [] - for b in range(0, len(h), 256): - histo = [_f for _f in h[b : b + 256] if _f] - if len(histo) <= 1: - lut.extend(list(range(256))) - else: - step = (functools.reduce(operator.add, histo) - histo[-1]) // 255 - if not step: - lut.extend(list(range(256))) - else: - n = step // 2 - for i in range(256): - lut.append(n // step) - n = n + h[i + b] - return _lut(image, lut) - - -def expand(image, border=0, fill=0): - """ - Add border to the image - - :param image: The image to expand. - :param border: Border width, in pixels. - :param fill: Pixel fill value (a color value). Default is 0 (black). - :return: An image. - """ - left, top, right, bottom = _border(border) - width = left + image.size[0] + right - height = top + image.size[1] + bottom - color = _color(fill, image.mode) - if image.palette: - palette = ImagePalette.ImagePalette(palette=image.getpalette()) - if isinstance(color, tuple): - color = palette.getcolor(color) - else: - palette = None - out = Image.new(image.mode, (width, height), color) - if palette: - out.putpalette(palette.palette) - out.paste(image, (left, top)) - return out - - -def fit(image, size, method=Image.Resampling.BICUBIC, bleed=0.0, centering=(0.5, 0.5)): - """ - Returns a resized and cropped version of the image, cropped to the - requested aspect ratio and size. - - This function was contributed by Kevin Cazabon. - - :param image: The image to resize and crop. - :param size: The requested output size in pixels, given as a - (width, height) tuple. - :param method: Resampling method to use. Default is - :py:attr:`~PIL.Image.Resampling.BICUBIC`. - See :ref:`concept-filters`. - :param bleed: Remove a border around the outside of the image from all - four edges. The value is a decimal percentage (use 0.01 for - one percent). The default value is 0 (no border). - Cannot be greater than or equal to 0.5. - :param centering: Control the cropping position. Use (0.5, 0.5) for - center cropping (e.g. if cropping the width, take 50% off - of the left side, and therefore 50% off the right side). - (0.0, 0.0) will crop from the top left corner (i.e. if - cropping the width, take all of the crop off of the right - side, and if cropping the height, take all of it off the - bottom). (1.0, 0.0) will crop from the bottom left - corner, etc. (i.e. if cropping the width, take all of the - crop off the left side, and if cropping the height take - none from the top, and therefore all off the bottom). - :return: An image. - """ - - # by Kevin Cazabon, Feb 17/2000 - # kevin@cazabon.com - # https://www.cazabon.com - - # ensure centering is mutable - centering = list(centering) - - if not 0.0 <= centering[0] <= 1.0: - centering[0] = 0.5 - if not 0.0 <= centering[1] <= 1.0: - centering[1] = 0.5 - - if not 0.0 <= bleed < 0.5: - bleed = 0.0 - - # calculate the area to use for resizing and cropping, subtracting - # the 'bleed' around the edges - - # number of pixels to trim off on Top and Bottom, Left and Right - bleed_pixels = (bleed * image.size[0], bleed * image.size[1]) - - live_size = ( - image.size[0] - bleed_pixels[0] * 2, - image.size[1] - bleed_pixels[1] * 2, - ) - - # calculate the aspect ratio of the live_size - live_size_ratio = live_size[0] / live_size[1] - - # calculate the aspect ratio of the output image - output_ratio = size[0] / size[1] - - # figure out if the sides or top/bottom will be cropped off - if live_size_ratio == output_ratio: - # live_size is already the needed ratio - crop_width = live_size[0] - crop_height = live_size[1] - elif live_size_ratio >= output_ratio: - # live_size is wider than what's needed, crop the sides - crop_width = output_ratio * live_size[1] - crop_height = live_size[1] - else: - # live_size is taller than what's needed, crop the top and bottom - crop_width = live_size[0] - crop_height = live_size[0] / output_ratio - - # make the crop - crop_left = bleed_pixels[0] + (live_size[0] - crop_width) * centering[0] - crop_top = bleed_pixels[1] + (live_size[1] - crop_height) * centering[1] - - crop = (crop_left, crop_top, crop_left + crop_width, crop_top + crop_height) - - # resize the image and return it - return image.resize(size, method, box=crop) - - -def flip(image): - """ - Flip the image vertically (top to bottom). - - :param image: The image to flip. - :return: An image. - """ - return image.transpose(Image.Transpose.FLIP_TOP_BOTTOM) - - -def grayscale(image): - """ - Convert the image to grayscale. - - :param image: The image to convert. - :return: An image. - """ - return image.convert("L") - - -def invert(image): - """ - Invert (negate) the image. - - :param image: The image to invert. - :return: An image. - """ - lut = list(range(255, -1, -1)) - return image.point(lut) if image.mode == "1" else _lut(image, lut) - - -def mirror(image): - """ - Flip image horizontally (left to right). - - :param image: The image to mirror. - :return: An image. - """ - return image.transpose(Image.Transpose.FLIP_LEFT_RIGHT) - - -def posterize(image, bits): - """ - Reduce the number of bits for each color channel. - - :param image: The image to posterize. - :param bits: The number of bits to keep for each channel (1-8). - :return: An image. - """ - mask = ~(2 ** (8 - bits) - 1) - lut = [i & mask for i in range(256)] - return _lut(image, lut) - - -def solarize(image, threshold=128): - """ - Invert all pixel values above a threshold. - - :param image: The image to solarize. - :param threshold: All pixels above this grayscale level are inverted. - :return: An image. - """ - lut = [] - for i in range(256): - if i < threshold: - lut.append(i) - else: - lut.append(255 - i) - return _lut(image, lut) - - -def exif_transpose(image, *, in_place=False): - """ - If an image has an EXIF Orientation tag, other than 1, transpose the image - accordingly, and remove the orientation data. - - :param image: The image to transpose. - :param in_place: Boolean. Keyword-only argument. - If ``True``, the original image is modified in-place, and ``None`` is returned. - If ``False`` (default), a new :py:class:`~PIL.Image.Image` object is returned - with the transposition applied. If there is no transposition, a copy of the - image will be returned. - """ - image.load() - image_exif = image.getexif() - orientation = image_exif.get(ExifTags.Base.Orientation) - method = { - 2: Image.Transpose.FLIP_LEFT_RIGHT, - 3: Image.Transpose.ROTATE_180, - 4: Image.Transpose.FLIP_TOP_BOTTOM, - 5: Image.Transpose.TRANSPOSE, - 6: Image.Transpose.ROTATE_270, - 7: Image.Transpose.TRANSVERSE, - 8: Image.Transpose.ROTATE_90, - }.get(orientation) - if method is not None: - transposed_image = image.transpose(method) - if in_place: - image.im = transposed_image.im - image.pyaccess = None - image._size = transposed_image._size - exif_image = image if in_place else transposed_image - - exif = exif_image.getexif() - if ExifTags.Base.Orientation in exif: - del exif[ExifTags.Base.Orientation] - if "exif" in exif_image.info: - exif_image.info["exif"] = exif.tobytes() - elif "Raw profile type exif" in exif_image.info: - exif_image.info["Raw profile type exif"] = exif.tobytes().hex() - elif "XML:com.adobe.xmp" in exif_image.info: - for pattern in ( - r'tiff:Orientation="([0-9])"', - r"([0-9])", - ): - exif_image.info["XML:com.adobe.xmp"] = re.sub( - pattern, "", exif_image.info["XML:com.adobe.xmp"] - ) - if not in_place: - return transposed_image - elif not in_place: - return image.copy() diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImagePalette.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImagePalette.py deleted file mode 100644 index fbcfa30..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImagePalette.py +++ /dev/null @@ -1,262 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# image palette object -# -# History: -# 1996-03-11 fl Rewritten. -# 1997-01-03 fl Up and running. -# 1997-08-23 fl Added load hack -# 2001-04-16 fl Fixed randint shadow bug in random() -# -# Copyright (c) 1997-2001 by Secret Labs AB -# Copyright (c) 1996-1997 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import array - -from . import GimpGradientFile, GimpPaletteFile, ImageColor, PaletteFile - - -class ImagePalette: - """ - Color palette for palette mapped images - - :param mode: The mode to use for the palette. See: - :ref:`concept-modes`. Defaults to "RGB" - :param palette: An optional palette. If given, it must be a bytearray, - an array or a list of ints between 0-255. The list must consist of - all channels for one color followed by the next color (e.g. RGBRGBRGB). - Defaults to an empty palette. - """ - - def __init__(self, mode="RGB", palette=None): - self.mode = mode - self.rawmode = None # if set, palette contains raw data - self.palette = palette or bytearray() - self.dirty = None - - @property - def palette(self): - return self._palette - - @palette.setter - def palette(self, palette): - self._colors = None - self._palette = palette - - @property - def colors(self): - if self._colors is None: - mode_len = len(self.mode) - self._colors = {} - for i in range(0, len(self.palette), mode_len): - color = tuple(self.palette[i : i + mode_len]) - if color in self._colors: - continue - self._colors[color] = i // mode_len - return self._colors - - @colors.setter - def colors(self, colors): - self._colors = colors - - def copy(self): - new = ImagePalette() - - new.mode = self.mode - new.rawmode = self.rawmode - if self.palette is not None: - new.palette = self.palette[:] - new.dirty = self.dirty - - return new - - def getdata(self): - """ - Get palette contents in format suitable for the low-level - ``im.putpalette`` primitive. - - .. warning:: This method is experimental. - """ - if self.rawmode: - return self.rawmode, self.palette - return self.mode, self.tobytes() - - def tobytes(self): - """Convert palette to bytes. - - .. warning:: This method is experimental. - """ - if self.rawmode: - msg = "palette contains raw palette data" - raise ValueError(msg) - if isinstance(self.palette, bytes): - return self.palette - arr = array.array("B", self.palette) - return arr.tobytes() - - # Declare tostring as an alias for tobytes - tostring = tobytes - - def _new_color_index(self, image=None, e=None): - if not isinstance(self.palette, bytearray): - self._palette = bytearray(self.palette) - index = len(self.palette) // 3 - special_colors = () - if image: - special_colors = ( - image.info.get("background"), - image.info.get("transparency"), - ) - while index in special_colors: - index += 1 - if index >= 256: - if image: - # Search for an unused index - for i, count in reversed(list(enumerate(image.histogram()))): - if count == 0 and i not in special_colors: - index = i - break - if index >= 256: - msg = "cannot allocate more than 256 colors" - raise ValueError(msg) from e - return index - - def getcolor(self, color, image=None): - """Given an rgb tuple, allocate palette entry. - - .. warning:: This method is experimental. - """ - if self.rawmode: - msg = "palette contains raw palette data" - raise ValueError(msg) - if isinstance(color, tuple): - if self.mode == "RGB": - if len(color) == 4: - if color[3] != 255: - msg = "cannot add non-opaque RGBA color to RGB palette" - raise ValueError(msg) - color = color[:3] - elif self.mode == "RGBA": - if len(color) == 3: - color += (255,) - try: - return self.colors[color] - except KeyError as e: - # allocate new color slot - index = self._new_color_index(image, e) - self.colors[color] = index - if index * 3 < len(self.palette): - self._palette = ( - self.palette[: index * 3] - + bytes(color) - + self.palette[index * 3 + 3 :] - ) - else: - self._palette += bytes(color) - self.dirty = 1 - return index - else: - msg = f"unknown color specifier: {repr(color)}" - raise ValueError(msg) - - def save(self, fp): - """Save palette to text file. - - .. warning:: This method is experimental. - """ - if self.rawmode: - msg = "palette contains raw palette data" - raise ValueError(msg) - if isinstance(fp, str): - fp = open(fp, "w") - fp.write("# Palette\n") - fp.write(f"# Mode: {self.mode}\n") - for i in range(256): - fp.write(f"{i}") - for j in range(i * len(self.mode), (i + 1) * len(self.mode)): - try: - fp.write(f" {self.palette[j]}") - except IndexError: - fp.write(" 0") - fp.write("\n") - fp.close() - - -# -------------------------------------------------------------------- -# Internal - - -def raw(rawmode, data): - palette = ImagePalette() - palette.rawmode = rawmode - palette.palette = data - palette.dirty = 1 - return palette - - -# -------------------------------------------------------------------- -# Factories - - -def make_linear_lut(black, white): - if black == 0: - return [white * i // 255 for i in range(256)] - - msg = "unavailable when black is non-zero" - raise NotImplementedError(msg) # FIXME - - -def make_gamma_lut(exp): - return [int(((i / 255.0) ** exp) * 255.0 + 0.5) for i in range(256)] - - -def negative(mode="RGB"): - palette = list(range(256 * len(mode))) - palette.reverse() - return ImagePalette(mode, [i // len(mode) for i in palette]) - - -def random(mode="RGB"): - from random import randint - - palette = [randint(0, 255) for _ in range(256 * len(mode))] - return ImagePalette(mode, palette) - - -def sepia(white="#fff0c0"): - bands = [make_linear_lut(0, band) for band in ImageColor.getrgb(white)] - return ImagePalette("RGB", [bands[i % 3][i // 3] for i in range(256 * 3)]) - - -def wedge(mode="RGB"): - palette = list(range(256 * len(mode))) - return ImagePalette(mode, [i // len(mode) for i in palette]) - - -def load(filename): - # FIXME: supports GIMP gradients only - - with open(filename, "rb") as fp: - for paletteHandler in [ - GimpPaletteFile.GimpPaletteFile, - GimpGradientFile.GimpGradientFile, - PaletteFile.PaletteFile, - ]: - try: - fp.seek(0) - lut = paletteHandler(fp).getpalette() - if lut: - break - except (SyntaxError, ValueError): - pass - else: - msg = "cannot load palette" - raise OSError(msg) - - return lut # data, rawmode diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImagePath.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImagePath.py deleted file mode 100644 index 77e8a60..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImagePath.py +++ /dev/null @@ -1,20 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# path interface -# -# History: -# 1996-11-04 fl Created -# 2002-04-14 fl Added documentation stub class -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1996. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image - -Path = Image.core.path diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageQt.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageQt.py deleted file mode 100644 index 6377c75..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageQt.py +++ /dev/null @@ -1,197 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# a simple Qt image interface. -# -# history: -# 2006-06-03 fl: created -# 2006-06-04 fl: inherit from QImage instead of wrapping it -# 2006-06-05 fl: removed toimage helper; move string support to ImageQt -# 2013-11-13 fl: add support for Qt5 (aurelien.ballier@cyclonit.com) -# -# Copyright (c) 2006 by Secret Labs AB -# Copyright (c) 2006 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import sys -from io import BytesIO - -from . import Image -from ._util import is_path - -qt_versions = [ - ["6", "PyQt6"], - ["side6", "PySide6"], -] - -# If a version has already been imported, attempt it first -qt_versions.sort(key=lambda qt_version: qt_version[1] in sys.modules, reverse=True) -for qt_version, qt_module in qt_versions: - try: - if qt_module == "PyQt6": - from PyQt6.QtCore import QBuffer, QIODevice - from PyQt6.QtGui import QImage, QPixmap, qRgba - elif qt_module == "PySide6": - from PySide6.QtCore import QBuffer, QIODevice - from PySide6.QtGui import QImage, QPixmap, qRgba - except (ImportError, RuntimeError): - continue - qt_is_installed = True - break -else: - qt_is_installed = False - qt_version = None - - -def rgb(r, g, b, a=255): - """(Internal) Turns an RGB color into a Qt compatible color integer.""" - # use qRgb to pack the colors, and then turn the resulting long - # into a negative integer with the same bitpattern. - return qRgba(r, g, b, a) & 0xFFFFFFFF - - -def fromqimage(im): - """ - :param im: QImage or PIL ImageQt object - """ - buffer = QBuffer() - if qt_version == "6": - try: - qt_openmode = QIODevice.OpenModeFlag - except AttributeError: - qt_openmode = QIODevice.OpenMode - else: - qt_openmode = QIODevice - buffer.open(qt_openmode.ReadWrite) - # preserve alpha channel with png - # otherwise ppm is more friendly with Image.open - if im.hasAlphaChannel(): - im.save(buffer, "png") - else: - im.save(buffer, "ppm") - - b = BytesIO() - b.write(buffer.data()) - buffer.close() - b.seek(0) - - return Image.open(b) - - -def fromqpixmap(im): - return fromqimage(im) - - -def align8to32(bytes, width, mode): - """ - converts each scanline of data from 8 bit to 32 bit aligned - """ - - bits_per_pixel = {"1": 1, "L": 8, "P": 8, "I;16": 16}[mode] - - # calculate bytes per line and the extra padding if needed - bits_per_line = bits_per_pixel * width - full_bytes_per_line, remaining_bits_per_line = divmod(bits_per_line, 8) - bytes_per_line = full_bytes_per_line + (1 if remaining_bits_per_line else 0) - - extra_padding = -bytes_per_line % 4 - - # already 32 bit aligned by luck - if not extra_padding: - return bytes - - new_data = [ - bytes[i * bytes_per_line : (i + 1) * bytes_per_line] + b"\x00" * extra_padding - for i in range(len(bytes) // bytes_per_line) - ] - - return b"".join(new_data) - - -def _toqclass_helper(im): - data = None - colortable = None - exclusive_fp = False - - # handle filename, if given instead of image name - if hasattr(im, "toUtf8"): - # FIXME - is this really the best way to do this? - im = str(im.toUtf8(), "utf-8") - if is_path(im): - im = Image.open(im) - exclusive_fp = True - - qt_format = QImage.Format if qt_version == "6" else QImage - if im.mode == "1": - format = qt_format.Format_Mono - elif im.mode == "L": - format = qt_format.Format_Indexed8 - colortable = [rgb(i, i, i) for i in range(256)] - elif im.mode == "P": - format = qt_format.Format_Indexed8 - palette = im.getpalette() - colortable = [rgb(*palette[i : i + 3]) for i in range(0, len(palette), 3)] - elif im.mode == "RGB": - # Populate the 4th channel with 255 - im = im.convert("RGBA") - - data = im.tobytes("raw", "BGRA") - format = qt_format.Format_RGB32 - elif im.mode == "RGBA": - data = im.tobytes("raw", "BGRA") - format = qt_format.Format_ARGB32 - elif im.mode == "I;16" and hasattr(qt_format, "Format_Grayscale16"): # Qt 5.13+ - im = im.point(lambda i: i * 256) - - format = qt_format.Format_Grayscale16 - else: - if exclusive_fp: - im.close() - msg = f"unsupported image mode {repr(im.mode)}" - raise ValueError(msg) - - size = im.size - __data = data or align8to32(im.tobytes(), size[0], im.mode) - if exclusive_fp: - im.close() - return {"data": __data, "size": size, "format": format, "colortable": colortable} - - -if qt_is_installed: - - class ImageQt(QImage): - def __init__(self, im): - """ - An PIL image wrapper for Qt. This is a subclass of PyQt's QImage - class. - - :param im: A PIL Image object, or a file name (given either as - Python string or a PyQt string object). - """ - im_data = _toqclass_helper(im) - # must keep a reference, or Qt will crash! - # All QImage constructors that take data operate on an existing - # buffer, so this buffer has to hang on for the life of the image. - # Fixes https://github.com/python-pillow/Pillow/issues/1370 - self.__data = im_data["data"] - super().__init__( - self.__data, - im_data["size"][0], - im_data["size"][1], - im_data["format"], - ) - if im_data["colortable"]: - self.setColorTable(im_data["colortable"]) - - -def toqimage(im): - return ImageQt(im) - - -def toqpixmap(im): - qimage = toqimage(im) - return QPixmap.fromImage(qimage) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageSequence.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageSequence.py deleted file mode 100644 index 2c18502..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageSequence.py +++ /dev/null @@ -1,86 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# sequence support classes -# -# history: -# 1997-02-20 fl Created -# -# Copyright (c) 1997 by Secret Labs AB. -# Copyright (c) 1997 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# - -## -from __future__ import annotations - -from typing import Callable - -from . import Image - - -class Iterator: - """ - This class implements an iterator object that can be used to loop - over an image sequence. - - You can use the ``[]`` operator to access elements by index. This operator - will raise an :py:exc:`IndexError` if you try to access a nonexistent - frame. - - :param im: An image object. - """ - - def __init__(self, im: Image.Image): - if not hasattr(im, "seek"): - msg = "im must have seek method" - raise AttributeError(msg) - self.im = im - self.position = getattr(self.im, "_min_frame", 0) - - def __getitem__(self, ix: int) -> Image.Image: - try: - self.im.seek(ix) - return self.im - except EOFError as e: - msg = "end of sequence" - raise IndexError(msg) from e - - def __iter__(self) -> Iterator: - return self - - def __next__(self) -> Image.Image: - try: - self.im.seek(self.position) - self.position += 1 - return self.im - except EOFError as e: - msg = "end of sequence" - raise StopIteration(msg) from e - - -def all_frames( - im: Image.Image | list[Image.Image], - func: Callable[[Image.Image], Image.Image] | None = None, -) -> list[Image.Image]: - """ - Applies a given function to all frames in an image or a list of images. - The frames are returned as a list of separate images. - - :param im: An image, or a list of images. - :param func: The function to apply to all of the image frames. - :returns: A list of images. - """ - if not isinstance(im, list): - im = [im] - - ims = [] - for imSequence in im: - current = imSequence.tell() - - ims += [im_frame.copy() for im_frame in Iterator(imSequence)] - - imSequence.seek(current) - return [func(im) for im in ims] if func else ims diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageShow.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageShow.py deleted file mode 100644 index fad3e09..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageShow.py +++ /dev/null @@ -1,326 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# im.show() drivers -# -# History: -# 2008-04-06 fl Created -# -# Copyright (c) Secret Labs AB 2008. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import os -import shutil -import subprocess -import sys -from shlex import quote - -from . import Image - -_viewers = [] - - -def register(viewer, order=1): - """ - The :py:func:`register` function is used to register additional viewers:: - - from PIL import ImageShow - ImageShow.register(MyViewer()) # MyViewer will be used as a last resort - ImageShow.register(MySecondViewer(), 0) # MySecondViewer will be prioritised - ImageShow.register(ImageShow.XVViewer(), 0) # XVViewer will be prioritised - - :param viewer: The viewer to be registered. - :param order: - Zero or a negative integer to prepend this viewer to the list, - a positive integer to append it. - """ - try: - if issubclass(viewer, Viewer): - viewer = viewer() - except TypeError: - pass # raised if viewer wasn't a class - if order > 0: - _viewers.append(viewer) - else: - _viewers.insert(0, viewer) - - -def show(image, title=None, **options): - r""" - Display a given image. - - :param image: An image object. - :param title: Optional title. Not all viewers can display the title. - :param \**options: Additional viewer options. - :returns: ``True`` if a suitable viewer was found, ``False`` otherwise. - """ - for viewer in _viewers: - if viewer.show(image, title=title, **options): - return True - return False - - -class Viewer: - """Base class for viewers.""" - - # main api - - def show(self, image, **options): - """ - The main function for displaying an image. - Converts the given image to the target format and displays it. - """ - - if not ( - image.mode in ("1", "RGBA") - or (self.format == "PNG" and image.mode in ("I;16", "LA")) - ): - base = Image.getmodebase(image.mode) - if image.mode != base: - image = image.convert(base) - - return self.show_image(image, **options) - - # hook methods - - format = None - """The format to convert the image into.""" - options = {} - """Additional options used to convert the image.""" - - def get_format(self, image): - """Return format name, or ``None`` to save as PGM/PPM.""" - return self.format - - def get_command(self, file, **options): - """ - Returns the command used to display the file. - Not implemented in the base class. - """ - msg = "unavailable in base viewer" - raise NotImplementedError(msg) - - def save_image(self, image): - """Save to temporary file and return filename.""" - return image._dump(format=self.get_format(image), **self.options) - - def show_image(self, image, **options): - """Display the given image.""" - return self.show_file(self.save_image(image), **options) - - def show_file(self, path, **options): - """ - Display given file. - """ - os.system(self.get_command(path, **options)) # nosec - return 1 - - -# -------------------------------------------------------------------- - - -class WindowsViewer(Viewer): - """The default viewer on Windows is the default system application for PNG files.""" - - format = "PNG" - options = {"compress_level": 1, "save_all": True} - - def get_command(self, file, **options): - return ( - f'start "Pillow" /WAIT "{file}" ' - "&& ping -n 4 127.0.0.1 >NUL " - f'&& del /f "{file}"' - ) - - -if sys.platform == "win32": - register(WindowsViewer) - - -class MacViewer(Viewer): - """The default viewer on macOS using ``Preview.app``.""" - - format = "PNG" - options = {"compress_level": 1, "save_all": True} - - def get_command(self, file, **options): - # on darwin open returns immediately resulting in the temp - # file removal while app is opening - command = "open -a Preview.app" - command = f"({command} {quote(file)}; sleep 20; rm -f {quote(file)})&" - return command - - def show_file(self, path, **options): - """ - Display given file. - """ - subprocess.call(["open", "-a", "Preview.app", path]) - executable = sys.executable or shutil.which("python3") - if executable: - subprocess.Popen( - [ - executable, - "-c", - "import os, sys, time; time.sleep(20); os.remove(sys.argv[1])", - path, - ] - ) - return 1 - - -if sys.platform == "darwin": - register(MacViewer) - - -class UnixViewer(Viewer): - format = "PNG" - options = {"compress_level": 1, "save_all": True} - - def get_command(self, file, **options): - command = self.get_command_ex(file, **options)[0] - return f"({command} {quote(file)}" - - -class XDGViewer(UnixViewer): - """ - The freedesktop.org ``xdg-open`` command. - """ - - def get_command_ex(self, file, **options): - command = executable = "xdg-open" - return command, executable - - def show_file(self, path, **options): - """ - Display given file. - """ - subprocess.Popen(["xdg-open", path]) - return 1 - - -class DisplayViewer(UnixViewer): - """ - The ImageMagick ``display`` command. - This viewer supports the ``title`` parameter. - """ - - def get_command_ex(self, file, title=None, **options): - command = executable = "display" - if title: - command += f" -title {quote(title)}" - return command, executable - - def show_file(self, path, **options): - """ - Display given file. - """ - args = ["display"] - title = options.get("title") - if title: - args += ["-title", title] - args.append(path) - - subprocess.Popen(args) - return 1 - - -class GmDisplayViewer(UnixViewer): - """The GraphicsMagick ``gm display`` command.""" - - def get_command_ex(self, file, **options): - executable = "gm" - command = "gm display" - return command, executable - - def show_file(self, path, **options): - """ - Display given file. - """ - subprocess.Popen(["gm", "display", path]) - return 1 - - -class EogViewer(UnixViewer): - """The GNOME Image Viewer ``eog`` command.""" - - def get_command_ex(self, file, **options): - executable = "eog" - command = "eog -n" - return command, executable - - def show_file(self, path, **options): - """ - Display given file. - """ - subprocess.Popen(["eog", "-n", path]) - return 1 - - -class XVViewer(UnixViewer): - """ - The X Viewer ``xv`` command. - This viewer supports the ``title`` parameter. - """ - - def get_command_ex(self, file, title=None, **options): - # note: xv is pretty outdated. most modern systems have - # imagemagick's display command instead. - command = executable = "xv" - if title: - command += f" -name {quote(title)}" - return command, executable - - def show_file(self, path, **options): - """ - Display given file. - """ - args = ["xv"] - title = options.get("title") - if title: - args += ["-name", title] - args.append(path) - - subprocess.Popen(args) - return 1 - - -if sys.platform not in ("win32", "darwin"): # unixoids - if shutil.which("xdg-open"): - register(XDGViewer) - if shutil.which("display"): - register(DisplayViewer) - if shutil.which("gm"): - register(GmDisplayViewer) - if shutil.which("eog"): - register(EogViewer) - if shutil.which("xv"): - register(XVViewer) - - -class IPythonViewer(Viewer): - """The viewer for IPython frontends.""" - - def show_image(self, image, **options): - ipython_display(image) - return 1 - - -try: - from IPython.display import display as ipython_display -except ImportError: - pass -else: - register(IPythonViewer) - - -if __name__ == "__main__": - if len(sys.argv) < 2: - print("Syntax: python3 ImageShow.py imagefile [title]") - sys.exit() - - with Image.open(sys.argv[1]) as im: - print(show(im, *sys.argv[2:])) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageStat.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageStat.py deleted file mode 100644 index 13864e5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageStat.py +++ /dev/null @@ -1,129 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# global image statistics -# -# History: -# 1996-04-05 fl Created -# 1997-05-21 fl Added mask; added rms, var, stddev attributes -# 1997-08-05 fl Added median -# 1998-07-05 hk Fixed integer overflow error -# -# Notes: -# This class shows how to implement delayed evaluation of attributes. -# To get a certain value, simply access the corresponding attribute. -# The __getattr__ dispatcher takes care of the rest. -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1996-97. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import math - - -class Stat: - def __init__(self, image_or_list, mask=None): - try: - if mask: - self.h = image_or_list.histogram(mask) - else: - self.h = image_or_list.histogram() - except AttributeError: - self.h = image_or_list # assume it to be a histogram list - if not isinstance(self.h, list): - msg = "first argument must be image or list" - raise TypeError(msg) - self.bands = list(range(len(self.h) // 256)) - - def __getattr__(self, id): - """Calculate missing attribute""" - if id[:4] == "_get": - raise AttributeError(id) - # calculate missing attribute - v = getattr(self, "_get" + id)() - setattr(self, id, v) - return v - - def _getextrema(self): - """Get min/max values for each band in the image""" - - def minmax(histogram): - res_min, res_max = 255, 0 - for i in range(256): - if histogram[i]: - res_min = i - break - for i in range(255, -1, -1): - if histogram[i]: - res_max = i - break - return res_min, res_max - - return [minmax(self.h[i:]) for i in range(0, len(self.h), 256)] - - def _getcount(self): - """Get total number of pixels in each layer""" - return [sum(self.h[i : i + 256]) for i in range(0, len(self.h), 256)] - - def _getsum(self): - """Get sum of all pixels in each layer""" - - v = [] - for i in range(0, len(self.h), 256): - layer_sum = 0.0 - for j in range(256): - layer_sum += j * self.h[i + j] - v.append(layer_sum) - return v - - def _getsum2(self): - """Get squared sum of all pixels in each layer""" - - v = [] - for i in range(0, len(self.h), 256): - sum2 = 0.0 - for j in range(256): - sum2 += (j**2) * float(self.h[i + j]) - v.append(sum2) - return v - - def _getmean(self): - """Get average pixel level for each layer""" - return [self.sum[i] / self.count[i] for i in self.bands] - - def _getmedian(self): - """Get median pixel level for each layer""" - - v = [] - for i in self.bands: - s = 0 - half = self.count[i] // 2 - b = i * 256 - for j in range(256): - s = s + self.h[b + j] - if s > half: - break - v.append(j) - return v - - def _getrms(self): - """Get RMS for each layer""" - return [math.sqrt(self.sum2[i] / self.count[i]) for i in self.bands] - - def _getvar(self): - """Get variance for each layer""" - return [ - (self.sum2[i] - (self.sum[i] ** 2.0) / self.count[i]) / self.count[i] - for i in self.bands - ] - - def _getstddev(self): - """Get standard deviation for each layer""" - return [math.sqrt(self.var[i]) for i in self.bands] - - -Global = Stat # compatibility diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageTk.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageTk.py deleted file mode 100644 index 10b2cc6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageTk.py +++ /dev/null @@ -1,284 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# a Tk display interface -# -# History: -# 96-04-08 fl Created -# 96-09-06 fl Added getimage method -# 96-11-01 fl Rewritten, removed image attribute and crop method -# 97-05-09 fl Use PyImagingPaste method instead of image type -# 97-05-12 fl Minor tweaks to match the IFUNC95 interface -# 97-05-17 fl Support the "pilbitmap" booster patch -# 97-06-05 fl Added file= and data= argument to image constructors -# 98-03-09 fl Added width and height methods to Image classes -# 98-07-02 fl Use default mode for "P" images without palette attribute -# 98-07-02 fl Explicitly destroy Tkinter image objects -# 99-07-24 fl Support multiple Tk interpreters (from Greg Couch) -# 99-07-26 fl Automatically hook into Tkinter (if possible) -# 99-08-15 fl Hook uses _imagingtk instead of _imaging -# -# Copyright (c) 1997-1999 by Secret Labs AB -# Copyright (c) 1996-1997 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import tkinter -from io import BytesIO - -from . import Image - -# -------------------------------------------------------------------- -# Check for Tkinter interface hooks - -_pilbitmap_ok = None - - -def _pilbitmap_check(): - global _pilbitmap_ok - if _pilbitmap_ok is None: - try: - im = Image.new("1", (1, 1)) - tkinter.BitmapImage(data=f"PIL:{im.im.id}") - _pilbitmap_ok = 1 - except tkinter.TclError: - _pilbitmap_ok = 0 - return _pilbitmap_ok - - -def _get_image_from_kw(kw): - source = None - if "file" in kw: - source = kw.pop("file") - elif "data" in kw: - source = BytesIO(kw.pop("data")) - if source: - return Image.open(source) - - -def _pyimagingtkcall(command, photo, id): - tk = photo.tk - try: - tk.call(command, photo, id) - except tkinter.TclError: - # activate Tkinter hook - # may raise an error if it cannot attach to Tkinter - from . import _imagingtk - - _imagingtk.tkinit(tk.interpaddr()) - tk.call(command, photo, id) - - -# -------------------------------------------------------------------- -# PhotoImage - - -class PhotoImage: - """ - A Tkinter-compatible photo image. This can be used - everywhere Tkinter expects an image object. If the image is an RGBA - image, pixels having alpha 0 are treated as transparent. - - The constructor takes either a PIL image, or a mode and a size. - Alternatively, you can use the ``file`` or ``data`` options to initialize - the photo image object. - - :param image: Either a PIL image, or a mode string. If a mode string is - used, a size must also be given. - :param size: If the first argument is a mode string, this defines the size - of the image. - :keyword file: A filename to load the image from (using - ``Image.open(file)``). - :keyword data: An 8-bit string containing image data (as loaded from an - image file). - """ - - def __init__(self, image=None, size=None, **kw): - # Tk compatibility: file or data - if image is None: - image = _get_image_from_kw(kw) - - if hasattr(image, "mode") and hasattr(image, "size"): - # got an image instead of a mode - mode = image.mode - if mode == "P": - # palette mapped data - image.apply_transparency() - image.load() - try: - mode = image.palette.mode - except AttributeError: - mode = "RGB" # default - size = image.size - kw["width"], kw["height"] = size - else: - mode = image - image = None - - if mode not in ["1", "L", "RGB", "RGBA"]: - mode = Image.getmodebase(mode) - - self.__mode = mode - self.__size = size - self.__photo = tkinter.PhotoImage(**kw) - self.tk = self.__photo.tk - if image: - self.paste(image) - - def __del__(self): - name = self.__photo.name - self.__photo.name = None - try: - self.__photo.tk.call("image", "delete", name) - except Exception: - pass # ignore internal errors - - def __str__(self): - """ - Get the Tkinter photo image identifier. This method is automatically - called by Tkinter whenever a PhotoImage object is passed to a Tkinter - method. - - :return: A Tkinter photo image identifier (a string). - """ - return str(self.__photo) - - def width(self): - """ - Get the width of the image. - - :return: The width, in pixels. - """ - return self.__size[0] - - def height(self): - """ - Get the height of the image. - - :return: The height, in pixels. - """ - return self.__size[1] - - def paste(self, im): - """ - Paste a PIL image into the photo image. Note that this can - be very slow if the photo image is displayed. - - :param im: A PIL image. The size must match the target region. If the - mode does not match, the image is converted to the mode of - the bitmap image. - """ - # convert to blittable - im.load() - image = im.im - if image.isblock() and im.mode == self.__mode: - block = image - else: - block = image.new_block(self.__mode, im.size) - image.convert2(block, image) # convert directly between buffers - - _pyimagingtkcall("PyImagingPhoto", self.__photo, block.id) - - -# -------------------------------------------------------------------- -# BitmapImage - - -class BitmapImage: - """ - A Tkinter-compatible bitmap image. This can be used everywhere Tkinter - expects an image object. - - The given image must have mode "1". Pixels having value 0 are treated as - transparent. Options, if any, are passed on to Tkinter. The most commonly - used option is ``foreground``, which is used to specify the color for the - non-transparent parts. See the Tkinter documentation for information on - how to specify colours. - - :param image: A PIL image. - """ - - def __init__(self, image=None, **kw): - # Tk compatibility: file or data - if image is None: - image = _get_image_from_kw(kw) - - self.__mode = image.mode - self.__size = image.size - - if _pilbitmap_check(): - # fast way (requires the pilbitmap booster patch) - image.load() - kw["data"] = f"PIL:{image.im.id}" - self.__im = image # must keep a reference - else: - # slow but safe way - kw["data"] = image.tobitmap() - self.__photo = tkinter.BitmapImage(**kw) - - def __del__(self): - name = self.__photo.name - self.__photo.name = None - try: - self.__photo.tk.call("image", "delete", name) - except Exception: - pass # ignore internal errors - - def width(self): - """ - Get the width of the image. - - :return: The width, in pixels. - """ - return self.__size[0] - - def height(self): - """ - Get the height of the image. - - :return: The height, in pixels. - """ - return self.__size[1] - - def __str__(self): - """ - Get the Tkinter bitmap image identifier. This method is automatically - called by Tkinter whenever a BitmapImage object is passed to a Tkinter - method. - - :return: A Tkinter bitmap image identifier (a string). - """ - return str(self.__photo) - - -def getimage(photo): - """Copies the contents of a PhotoImage to a PIL image memory.""" - im = Image.new("RGBA", (photo.width(), photo.height())) - block = im.im - - _pyimagingtkcall("PyImagingPhotoGet", photo, block.id) - - return im - - -def _show(image, title): - """Helper for the Image.show method.""" - - class UI(tkinter.Label): - def __init__(self, master, im): - if im.mode == "1": - self.image = BitmapImage(im, foreground="white", master=master) - else: - self.image = PhotoImage(im, master=master) - super().__init__(master, image=self.image, bg="black", bd=0) - - if not tkinter._default_root: - msg = "tkinter not initialized" - raise OSError(msg) - top = tkinter.Toplevel() - if title: - top.title(title) - UI(top, image).pack() diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageTransform.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageTransform.py deleted file mode 100644 index 84c81f1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageTransform.py +++ /dev/null @@ -1,112 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# transform wrappers -# -# History: -# 2002-04-08 fl Created -# -# Copyright (c) 2002 by Secret Labs AB -# Copyright (c) 2002 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from typing import Sequence - -from . import Image - - -class Transform(Image.ImageTransformHandler): - method: Image.Transform - - def __init__(self, data: Sequence[int]) -> None: - self.data = data - - def getdata(self) -> tuple[int, Sequence[int]]: - return self.method, self.data - - def transform( - self, - size: tuple[int, int], - image: Image.Image, - **options: dict[str, str | int | tuple[int, ...] | list[int]], - ) -> Image.Image: - # can be overridden - method, data = self.getdata() - return image.transform(size, method, data, **options) - - -class AffineTransform(Transform): - """ - Define an affine image transform. - - This function takes a 6-tuple (a, b, c, d, e, f) which contain the first - two rows from an affine transform matrix. For each pixel (x, y) in the - output image, the new value is taken from a position (a x + b y + c, - d x + e y + f) in the input image, rounded to nearest pixel. - - This function can be used to scale, translate, rotate, and shear the - original image. - - See :py:meth:`~PIL.Image.Image.transform` - - :param matrix: A 6-tuple (a, b, c, d, e, f) containing the first two rows - from an affine transform matrix. - """ - - method = Image.Transform.AFFINE - - -class ExtentTransform(Transform): - """ - Define a transform to extract a subregion from an image. - - Maps a rectangle (defined by two corners) from the image to a rectangle of - the given size. The resulting image will contain data sampled from between - the corners, such that (x0, y0) in the input image will end up at (0,0) in - the output image, and (x1, y1) at size. - - This method can be used to crop, stretch, shrink, or mirror an arbitrary - rectangle in the current image. It is slightly slower than crop, but about - as fast as a corresponding resize operation. - - See :py:meth:`~PIL.Image.Image.transform` - - :param bbox: A 4-tuple (x0, y0, x1, y1) which specifies two points in the - input image's coordinate system. See :ref:`coordinate-system`. - """ - - method = Image.Transform.EXTENT - - -class QuadTransform(Transform): - """ - Define a quad image transform. - - Maps a quadrilateral (a region defined by four corners) from the image to a - rectangle of the given size. - - See :py:meth:`~PIL.Image.Image.transform` - - :param xy: An 8-tuple (x0, y0, x1, y1, x2, y2, x3, y3) which contain the - upper left, lower left, lower right, and upper right corner of the - source quadrilateral. - """ - - method = Image.Transform.QUAD - - -class MeshTransform(Transform): - """ - Define a mesh image transform. A mesh transform consists of one or more - individual quad transforms. - - See :py:meth:`~PIL.Image.Image.transform` - - :param data: A list of (bbox, quad) tuples. - """ - - method = Image.Transform.MESH diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageWin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageWin.py deleted file mode 100644 index 75910d2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImageWin.py +++ /dev/null @@ -1,231 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# a Windows DIB display interface -# -# History: -# 1996-05-20 fl Created -# 1996-09-20 fl Fixed subregion exposure -# 1997-09-21 fl Added draw primitive (for tzPrint) -# 2003-05-21 fl Added experimental Window/ImageWindow classes -# 2003-09-05 fl Added fromstring/tostring methods -# -# Copyright (c) Secret Labs AB 1997-2003. -# Copyright (c) Fredrik Lundh 1996-2003. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image - - -class HDC: - """ - Wraps an HDC integer. The resulting object can be passed to the - :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` - methods. - """ - - def __init__(self, dc): - self.dc = dc - - def __int__(self): - return self.dc - - -class HWND: - """ - Wraps an HWND integer. The resulting object can be passed to the - :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` - methods, instead of a DC. - """ - - def __init__(self, wnd): - self.wnd = wnd - - def __int__(self): - return self.wnd - - -class Dib: - """ - A Windows bitmap with the given mode and size. The mode can be one of "1", - "L", "P", or "RGB". - - If the display requires a palette, this constructor creates a suitable - palette and associates it with the image. For an "L" image, 128 graylevels - are allocated. For an "RGB" image, a 6x6x6 colour cube is used, together - with 20 graylevels. - - To make sure that palettes work properly under Windows, you must call the - ``palette`` method upon certain events from Windows. - - :param image: Either a PIL image, or a mode string. If a mode string is - used, a size must also be given. The mode can be one of "1", - "L", "P", or "RGB". - :param size: If the first argument is a mode string, this - defines the size of the image. - """ - - def __init__(self, image, size=None): - if hasattr(image, "mode") and hasattr(image, "size"): - mode = image.mode - size = image.size - else: - mode = image - image = None - if mode not in ["1", "L", "P", "RGB"]: - mode = Image.getmodebase(mode) - self.image = Image.core.display(mode, size) - self.mode = mode - self.size = size - if image: - self.paste(image) - - def expose(self, handle): - """ - Copy the bitmap contents to a device context. - - :param handle: Device context (HDC), cast to a Python integer, or an - HDC or HWND instance. In PythonWin, you can use - ``CDC.GetHandleAttrib()`` to get a suitable handle. - """ - if isinstance(handle, HWND): - dc = self.image.getdc(handle) - try: - result = self.image.expose(dc) - finally: - self.image.releasedc(handle, dc) - else: - result = self.image.expose(handle) - return result - - def draw(self, handle, dst, src=None): - """ - Same as expose, but allows you to specify where to draw the image, and - what part of it to draw. - - The destination and source areas are given as 4-tuple rectangles. If - the source is omitted, the entire image is copied. If the source and - the destination have different sizes, the image is resized as - necessary. - """ - if not src: - src = (0, 0) + self.size - if isinstance(handle, HWND): - dc = self.image.getdc(handle) - try: - result = self.image.draw(dc, dst, src) - finally: - self.image.releasedc(handle, dc) - else: - result = self.image.draw(handle, dst, src) - return result - - def query_palette(self, handle): - """ - Installs the palette associated with the image in the given device - context. - - This method should be called upon **QUERYNEWPALETTE** and - **PALETTECHANGED** events from Windows. If this method returns a - non-zero value, one or more display palette entries were changed, and - the image should be redrawn. - - :param handle: Device context (HDC), cast to a Python integer, or an - HDC or HWND instance. - :return: A true value if one or more entries were changed (this - indicates that the image should be redrawn). - """ - if isinstance(handle, HWND): - handle = self.image.getdc(handle) - try: - result = self.image.query_palette(handle) - finally: - self.image.releasedc(handle, handle) - else: - result = self.image.query_palette(handle) - return result - - def paste(self, im, box=None): - """ - Paste a PIL image into the bitmap image. - - :param im: A PIL image. The size must match the target region. - If the mode does not match, the image is converted to the - mode of the bitmap image. - :param box: A 4-tuple defining the left, upper, right, and - lower pixel coordinate. See :ref:`coordinate-system`. If - None is given instead of a tuple, all of the image is - assumed. - """ - im.load() - if self.mode != im.mode: - im = im.convert(self.mode) - if box: - self.image.paste(im.im, box) - else: - self.image.paste(im.im) - - def frombytes(self, buffer): - """ - Load display memory contents from byte data. - - :param buffer: A buffer containing display data (usually - data returned from :py:func:`~PIL.ImageWin.Dib.tobytes`) - """ - return self.image.frombytes(buffer) - - def tobytes(self): - """ - Copy display memory contents to bytes object. - - :return: A bytes object containing display data. - """ - return self.image.tobytes() - - -class Window: - """Create a Window with the given title size.""" - - def __init__(self, title="PIL", width=None, height=None): - self.hwnd = Image.core.createwindow( - title, self.__dispatcher, width or 0, height or 0 - ) - - def __dispatcher(self, action, *args): - return getattr(self, "ui_handle_" + action)(*args) - - def ui_handle_clear(self, dc, x0, y0, x1, y1): - pass - - def ui_handle_damage(self, x0, y0, x1, y1): - pass - - def ui_handle_destroy(self): - pass - - def ui_handle_repair(self, dc, x0, y0, x1, y1): - pass - - def ui_handle_resize(self, width, height): - pass - - def mainloop(self): - Image.core.eventloop() - - -class ImageWindow(Window): - """Create an image window which displays the given image.""" - - def __init__(self, image, title="PIL"): - if not isinstance(image, Dib): - image = Dib(image) - self.image = image - width, height = image.size - super().__init__(title, width=width, height=height) - - def ui_handle_repair(self, dc, x0, y0, x1, y1): - self.image.draw(dc, (x0, y0, x1, y1)) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImtImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImtImagePlugin.py deleted file mode 100644 index 7469c59..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/ImtImagePlugin.py +++ /dev/null @@ -1,101 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# IM Tools support for PIL -# -# history: -# 1996-05-27 fl Created (read 8-bit images only) -# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.2) -# -# Copyright (c) Secret Labs AB 1997-2001. -# Copyright (c) Fredrik Lundh 1996-2001. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import re - -from . import Image, ImageFile - -# -# -------------------------------------------------------------------- - -field = re.compile(rb"([a-z]*) ([^ \r\n]*)") - - -## -# Image plugin for IM Tools images. - - -class ImtImageFile(ImageFile.ImageFile): - format = "IMT" - format_description = "IM Tools" - - def _open(self): - # Quick rejection: if there's not a LF among the first - # 100 bytes, this is (probably) not a text header. - - buffer = self.fp.read(100) - if b"\n" not in buffer: - msg = "not an IM file" - raise SyntaxError(msg) - - xsize = ysize = 0 - - while True: - if buffer: - s = buffer[:1] - buffer = buffer[1:] - else: - s = self.fp.read(1) - if not s: - break - - if s == b"\x0C": - # image data begins - self.tile = [ - ( - "raw", - (0, 0) + self.size, - self.fp.tell() - len(buffer), - (self.mode, 0, 1), - ) - ] - - break - - else: - # read key/value pair - if b"\n" not in buffer: - buffer += self.fp.read(100) - lines = buffer.split(b"\n") - s += lines.pop(0) - buffer = b"\n".join(lines) - if len(s) == 1 or len(s) > 100: - break - if s[0] == ord(b"*"): - continue # comment - - m = field.match(s) - if not m: - break - k, v = m.group(1, 2) - if k == b"width": - xsize = int(v) - self._size = xsize, ysize - elif k == b"height": - ysize = int(v) - self._size = xsize, ysize - elif k == b"pixel" and v == b"n8": - self._mode = "L" - - -# -# -------------------------------------------------------------------- - -Image.register_open(ImtImageFile.format, ImtImageFile) - -# -# no extension registered (".im" is simply too common) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IptcImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IptcImagePlugin.py deleted file mode 100644 index 4096094..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/IptcImagePlugin.py +++ /dev/null @@ -1,235 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# IPTC/NAA file handling -# -# history: -# 1995-10-01 fl Created -# 1998-03-09 fl Cleaned up and added to PIL -# 2002-06-18 fl Added getiptcinfo helper -# -# Copyright (c) Secret Labs AB 1997-2002. -# Copyright (c) Fredrik Lundh 1995. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from io import BytesIO -from typing import Sequence - -from . import Image, ImageFile -from ._binary import i16be as i16 -from ._binary import i32be as i32 -from ._deprecate import deprecate - -COMPRESSION = {1: "raw", 5: "jpeg"} - - -def __getattr__(name: str) -> bytes: - if name == "PAD": - deprecate("IptcImagePlugin.PAD", 12) - return b"\0\0\0\0" - msg = f"module '{__name__}' has no attribute '{name}'" - raise AttributeError(msg) - - -# -# Helpers - - -def _i(c: bytes) -> int: - return i32((b"\0\0\0\0" + c)[-4:]) - - -def _i8(c: int | bytes) -> int: - return c if isinstance(c, int) else c[0] - - -def i(c: bytes) -> int: - """.. deprecated:: 10.2.0""" - deprecate("IptcImagePlugin.i", 12) - return _i(c) - - -def dump(c: Sequence[int | bytes]) -> None: - """.. deprecated:: 10.2.0""" - deprecate("IptcImagePlugin.dump", 12) - for i in c: - print("%02x" % _i8(i), end=" ") - print() - - -## -# Image plugin for IPTC/NAA datastreams. To read IPTC/NAA fields -# from TIFF and JPEG files, use the getiptcinfo function. - - -class IptcImageFile(ImageFile.ImageFile): - format = "IPTC" - format_description = "IPTC/NAA" - - def getint(self, key: tuple[int, int]) -> int: - return _i(self.info[key]) - - def field(self) -> tuple[tuple[int, int] | None, int]: - # - # get a IPTC field header - s = self.fp.read(5) - if not s.strip(b"\x00"): - return None, 0 - - tag = s[1], s[2] - - # syntax - if s[0] != 0x1C or tag[0] not in [1, 2, 3, 4, 5, 6, 7, 8, 9, 240]: - msg = "invalid IPTC/NAA file" - raise SyntaxError(msg) - - # field size - size = s[3] - if size > 132: - msg = "illegal field length in IPTC/NAA file" - raise OSError(msg) - elif size == 128: - size = 0 - elif size > 128: - size = _i(self.fp.read(size - 128)) - else: - size = i16(s, 3) - - return tag, size - - def _open(self) -> None: - # load descriptive fields - while True: - offset = self.fp.tell() - tag, size = self.field() - if not tag or tag == (8, 10): - break - if size: - tagdata = self.fp.read(size) - else: - tagdata = None - if tag in self.info: - if isinstance(self.info[tag], list): - self.info[tag].append(tagdata) - else: - self.info[tag] = [self.info[tag], tagdata] - else: - self.info[tag] = tagdata - - # mode - layers = self.info[(3, 60)][0] - component = self.info[(3, 60)][1] - if (3, 65) in self.info: - id = self.info[(3, 65)][0] - 1 - else: - id = 0 - if layers == 1 and not component: - self._mode = "L" - elif layers == 3 and component: - self._mode = "RGB"[id] - elif layers == 4 and component: - self._mode = "CMYK"[id] - - # size - self._size = self.getint((3, 20)), self.getint((3, 30)) - - # compression - try: - compression = COMPRESSION[self.getint((3, 120))] - except KeyError as e: - msg = "Unknown IPTC image compression" - raise OSError(msg) from e - - # tile - if tag == (8, 10): - self.tile = [("iptc", (0, 0) + self.size, offset, compression)] - - def load(self): - if len(self.tile) != 1 or self.tile[0][0] != "iptc": - return ImageFile.ImageFile.load(self) - - offset, compression = self.tile[0][2:] - - self.fp.seek(offset) - - # Copy image data to temporary file - o = BytesIO() - if compression == "raw": - # To simplify access to the extracted file, - # prepend a PPM header - o.write(b"P5\n%d %d\n255\n" % self.size) - while True: - type, size = self.field() - if type != (8, 10): - break - while size > 0: - s = self.fp.read(min(size, 8192)) - if not s: - break - o.write(s) - size -= len(s) - - with Image.open(o) as _im: - _im.load() - self.im = _im.im - - -Image.register_open(IptcImageFile.format, IptcImageFile) - -Image.register_extension(IptcImageFile.format, ".iim") - - -def getiptcinfo(im): - """ - Get IPTC information from TIFF, JPEG, or IPTC file. - - :param im: An image containing IPTC data. - :returns: A dictionary containing IPTC information, or None if - no IPTC information block was found. - """ - from . import JpegImagePlugin, TiffImagePlugin - - data = None - - if isinstance(im, IptcImageFile): - # return info dictionary right away - return im.info - - elif isinstance(im, JpegImagePlugin.JpegImageFile): - # extract the IPTC/NAA resource - photoshop = im.info.get("photoshop") - if photoshop: - data = photoshop.get(0x0404) - - elif isinstance(im, TiffImagePlugin.TiffImageFile): - # get raw data from the IPTC/NAA tag (PhotoShop tags the data - # as 4-byte integers, so we cannot use the get method...) - try: - data = im.tag.tagdata[TiffImagePlugin.IPTC_NAA_CHUNK] - except (AttributeError, KeyError): - pass - - if data is None: - return None # no properties - - # create an IptcImagePlugin object without initializing it - class FakeImage: - pass - - im = FakeImage() - im.__class__ = IptcImageFile - - # parse the IPTC information chunk - im.info = {} - im.fp = BytesIO(data) - - try: - im._open() - except (IndexError, KeyError): - pass # expected failure - - return im.info diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Jpeg2KImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Jpeg2KImagePlugin.py deleted file mode 100644 index 4b778a0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/Jpeg2KImagePlugin.py +++ /dev/null @@ -1,398 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# JPEG2000 file handling -# -# History: -# 2014-03-12 ajh Created -# 2021-06-30 rogermb Extract dpi information from the 'resc' header box -# -# Copyright (c) 2014 Coriolis Systems Limited -# Copyright (c) 2014 Alastair Houghton -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -import os -import struct - -from . import Image, ImageFile, _binary - - -class BoxReader: - """ - A small helper class to read fields stored in JPEG2000 header boxes - and to easily step into and read sub-boxes. - """ - - def __init__(self, fp, length=-1): - self.fp = fp - self.has_length = length >= 0 - self.length = length - self.remaining_in_box = -1 - - def _can_read(self, num_bytes): - if self.has_length and self.fp.tell() + num_bytes > self.length: - # Outside box: ensure we don't read past the known file length - return False - if self.remaining_in_box >= 0: - # Inside box contents: ensure read does not go past box boundaries - return num_bytes <= self.remaining_in_box - else: - return True # No length known, just read - - def _read_bytes(self, num_bytes): - if not self._can_read(num_bytes): - msg = "Not enough data in header" - raise SyntaxError(msg) - - data = self.fp.read(num_bytes) - if len(data) < num_bytes: - msg = f"Expected to read {num_bytes} bytes but only got {len(data)}." - raise OSError(msg) - - if self.remaining_in_box > 0: - self.remaining_in_box -= num_bytes - return data - - def read_fields(self, field_format): - size = struct.calcsize(field_format) - data = self._read_bytes(size) - return struct.unpack(field_format, data) - - def read_boxes(self): - size = self.remaining_in_box - data = self._read_bytes(size) - return BoxReader(io.BytesIO(data), size) - - def has_next_box(self): - if self.has_length: - return self.fp.tell() + self.remaining_in_box < self.length - else: - return True - - def next_box_type(self): - # Skip the rest of the box if it has not been read - if self.remaining_in_box > 0: - self.fp.seek(self.remaining_in_box, os.SEEK_CUR) - self.remaining_in_box = -1 - - # Read the length and type of the next box - lbox, tbox = self.read_fields(">I4s") - if lbox == 1: - lbox = self.read_fields(">Q")[0] - hlen = 16 - else: - hlen = 8 - - if lbox < hlen or not self._can_read(lbox - hlen): - msg = "Invalid header length" - raise SyntaxError(msg) - - self.remaining_in_box = lbox - hlen - return tbox - - -def _parse_codestream(fp): - """Parse the JPEG 2000 codestream to extract the size and component - count from the SIZ marker segment, returning a PIL (size, mode) tuple.""" - - hdr = fp.read(2) - lsiz = _binary.i16be(hdr) - siz = hdr + fp.read(lsiz - 2) - lsiz, rsiz, xsiz, ysiz, xosiz, yosiz, _, _, _, _, csiz = struct.unpack_from( - ">HHIIIIIIIIH", siz - ) - ssiz = [None] * csiz - xrsiz = [None] * csiz - yrsiz = [None] * csiz - for i in range(csiz): - ssiz[i], xrsiz[i], yrsiz[i] = struct.unpack_from(">BBB", siz, 36 + 3 * i) - - size = (xsiz - xosiz, ysiz - yosiz) - if csiz == 1: - if (yrsiz[0] & 0x7F) > 8: - mode = "I;16" - else: - mode = "L" - elif csiz == 2: - mode = "LA" - elif csiz == 3: - mode = "RGB" - elif csiz == 4: - mode = "RGBA" - else: - mode = None - - return size, mode - - -def _res_to_dpi(num, denom, exp): - """Convert JPEG2000's (numerator, denominator, exponent-base-10) resolution, - calculated as (num / denom) * 10^exp and stored in dots per meter, - to floating-point dots per inch.""" - if denom != 0: - return (254 * num * (10**exp)) / (10000 * denom) - - -def _parse_jp2_header(fp): - """Parse the JP2 header box to extract size, component count, - color space information, and optionally DPI information, - returning a (size, mode, mimetype, dpi) tuple.""" - - # Find the JP2 header box - reader = BoxReader(fp) - header = None - mimetype = None - while reader.has_next_box(): - tbox = reader.next_box_type() - - if tbox == b"jp2h": - header = reader.read_boxes() - break - elif tbox == b"ftyp": - if reader.read_fields(">4s")[0] == b"jpx ": - mimetype = "image/jpx" - - size = None - mode = None - bpc = None - nc = None - dpi = None # 2-tuple of DPI info, or None - - while header.has_next_box(): - tbox = header.next_box_type() - - if tbox == b"ihdr": - height, width, nc, bpc = header.read_fields(">IIHB") - size = (width, height) - if nc == 1 and (bpc & 0x7F) > 8: - mode = "I;16" - elif nc == 1: - mode = "L" - elif nc == 2: - mode = "LA" - elif nc == 3: - mode = "RGB" - elif nc == 4: - mode = "RGBA" - elif tbox == b"res ": - res = header.read_boxes() - while res.has_next_box(): - tres = res.next_box_type() - if tres == b"resc": - vrcn, vrcd, hrcn, hrcd, vrce, hrce = res.read_fields(">HHHHBB") - hres = _res_to_dpi(hrcn, hrcd, hrce) - vres = _res_to_dpi(vrcn, vrcd, vrce) - if hres is not None and vres is not None: - dpi = (hres, vres) - break - - if size is None or mode is None: - msg = "Malformed JP2 header" - raise SyntaxError(msg) - - return size, mode, mimetype, dpi - - -## -# Image plugin for JPEG2000 images. - - -class Jpeg2KImageFile(ImageFile.ImageFile): - format = "JPEG2000" - format_description = "JPEG 2000 (ISO 15444)" - - def _open(self): - sig = self.fp.read(4) - if sig == b"\xff\x4f\xff\x51": - self.codec = "j2k" - self._size, self._mode = _parse_codestream(self.fp) - else: - sig = sig + self.fp.read(8) - - if sig == b"\x00\x00\x00\x0cjP \x0d\x0a\x87\x0a": - self.codec = "jp2" - header = _parse_jp2_header(self.fp) - self._size, self._mode, self.custom_mimetype, dpi = header - if dpi is not None: - self.info["dpi"] = dpi - if self.fp.read(12).endswith(b"jp2c\xff\x4f\xff\x51"): - self._parse_comment() - else: - msg = "not a JPEG 2000 file" - raise SyntaxError(msg) - - if self.size is None or self.mode is None: - msg = "unable to determine size/mode" - raise SyntaxError(msg) - - self._reduce = 0 - self.layers = 0 - - fd = -1 - length = -1 - - try: - fd = self.fp.fileno() - length = os.fstat(fd).st_size - except Exception: - fd = -1 - try: - pos = self.fp.tell() - self.fp.seek(0, io.SEEK_END) - length = self.fp.tell() - self.fp.seek(pos) - except Exception: - length = -1 - - self.tile = [ - ( - "jpeg2k", - (0, 0) + self.size, - 0, - (self.codec, self._reduce, self.layers, fd, length), - ) - ] - - def _parse_comment(self): - hdr = self.fp.read(2) - length = _binary.i16be(hdr) - self.fp.seek(length - 2, os.SEEK_CUR) - - while True: - marker = self.fp.read(2) - if not marker: - break - typ = marker[1] - if typ in (0x90, 0xD9): - # Start of tile or end of codestream - break - hdr = self.fp.read(2) - length = _binary.i16be(hdr) - if typ == 0x64: - # Comment - self.info["comment"] = self.fp.read(length - 2)[2:] - break - else: - self.fp.seek(length - 2, os.SEEK_CUR) - - @property - def reduce(self): - # https://github.com/python-pillow/Pillow/issues/4343 found that the - # new Image 'reduce' method was shadowed by this plugin's 'reduce' - # property. This attempts to allow for both scenarios - return self._reduce or super().reduce - - @reduce.setter - def reduce(self, value): - self._reduce = value - - def load(self): - if self.tile and self._reduce: - power = 1 << self._reduce - adjust = power >> 1 - self._size = ( - int((self.size[0] + adjust) / power), - int((self.size[1] + adjust) / power), - ) - - # Update the reduce and layers settings - t = self.tile[0] - t3 = (t[3][0], self._reduce, self.layers, t[3][3], t[3][4]) - self.tile = [(t[0], (0, 0) + self.size, t[2], t3)] - - return ImageFile.ImageFile.load(self) - - -def _accept(prefix): - return ( - prefix[:4] == b"\xff\x4f\xff\x51" - or prefix[:12] == b"\x00\x00\x00\x0cjP \x0d\x0a\x87\x0a" - ) - - -# ------------------------------------------------------------ -# Save support - - -def _save(im, fp, filename): - # Get the keyword arguments - info = im.encoderinfo - - if filename.endswith(".j2k") or info.get("no_jp2", False): - kind = "j2k" - else: - kind = "jp2" - - offset = info.get("offset", None) - tile_offset = info.get("tile_offset", None) - tile_size = info.get("tile_size", None) - quality_mode = info.get("quality_mode", "rates") - quality_layers = info.get("quality_layers", None) - if quality_layers is not None and not ( - isinstance(quality_layers, (list, tuple)) - and all( - isinstance(quality_layer, (int, float)) for quality_layer in quality_layers - ) - ): - msg = "quality_layers must be a sequence of numbers" - raise ValueError(msg) - - num_resolutions = info.get("num_resolutions", 0) - cblk_size = info.get("codeblock_size", None) - precinct_size = info.get("precinct_size", None) - irreversible = info.get("irreversible", False) - progression = info.get("progression", "LRCP") - cinema_mode = info.get("cinema_mode", "no") - mct = info.get("mct", 0) - signed = info.get("signed", False) - comment = info.get("comment") - if isinstance(comment, str): - comment = comment.encode() - plt = info.get("plt", False) - - fd = -1 - if hasattr(fp, "fileno"): - try: - fd = fp.fileno() - except Exception: - fd = -1 - - im.encoderconfig = ( - offset, - tile_offset, - tile_size, - quality_mode, - quality_layers, - num_resolutions, - cblk_size, - precinct_size, - irreversible, - progression, - cinema_mode, - mct, - signed, - fd, - comment, - plt, - ) - - ImageFile._save(im, fp, [("jpeg2k", (0, 0) + im.size, 0, kind)]) - - -# ------------------------------------------------------------ -# Registry stuff - - -Image.register_open(Jpeg2KImageFile.format, Jpeg2KImageFile, _accept) -Image.register_save(Jpeg2KImageFile.format, _save) - -Image.register_extensions( - Jpeg2KImageFile.format, [".jp2", ".j2k", ".jpc", ".jpf", ".jpx", ".j2c"] -) - -Image.register_mime(Jpeg2KImageFile.format, "image/jp2") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/JpegImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/JpegImagePlugin.py deleted file mode 100644 index 81b8749..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/JpegImagePlugin.py +++ /dev/null @@ -1,868 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# JPEG (JFIF) file handling -# -# See "Digital Compression and Coding of Continuous-Tone Still Images, -# Part 1, Requirements and Guidelines" (CCITT T.81 / ISO 10918-1) -# -# History: -# 1995-09-09 fl Created -# 1995-09-13 fl Added full parser -# 1996-03-25 fl Added hack to use the IJG command line utilities -# 1996-05-05 fl Workaround Photoshop 2.5 CMYK polarity bug -# 1996-05-28 fl Added draft support, JFIF version (0.1) -# 1996-12-30 fl Added encoder options, added progression property (0.2) -# 1997-08-27 fl Save mode 1 images as BW (0.3) -# 1998-07-12 fl Added YCbCr to draft and save methods (0.4) -# 1998-10-19 fl Don't hang on files using 16-bit DQT's (0.4.1) -# 2001-04-16 fl Extract DPI settings from JFIF files (0.4.2) -# 2002-07-01 fl Skip pad bytes before markers; identify Exif files (0.4.3) -# 2003-04-25 fl Added experimental EXIF decoder (0.5) -# 2003-06-06 fl Added experimental EXIF GPSinfo decoder -# 2003-09-13 fl Extract COM markers -# 2009-09-06 fl Added icc_profile support (from Florian Hoech) -# 2009-03-06 fl Changed CMYK handling; always use Adobe polarity (0.6) -# 2009-03-08 fl Added subsampling support (from Justin Huff). -# -# Copyright (c) 1997-2003 by Secret Labs AB. -# Copyright (c) 1995-1996 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import array -import io -import math -import os -import struct -import subprocess -import sys -import tempfile -import warnings - -from . import Image, ImageFile -from ._binary import i16be as i16 -from ._binary import i32be as i32 -from ._binary import o8 -from ._binary import o16be as o16 -from .JpegPresets import presets - -# -# Parser - - -def Skip(self, marker): - n = i16(self.fp.read(2)) - 2 - ImageFile._safe_read(self.fp, n) - - -def APP(self, marker): - # - # Application marker. Store these in the APP dictionary. - # Also look for well-known application markers. - - n = i16(self.fp.read(2)) - 2 - s = ImageFile._safe_read(self.fp, n) - - app = "APP%d" % (marker & 15) - - self.app[app] = s # compatibility - self.applist.append((app, s)) - - if marker == 0xFFE0 and s[:4] == b"JFIF": - # extract JFIF information - self.info["jfif"] = version = i16(s, 5) # version - self.info["jfif_version"] = divmod(version, 256) - # extract JFIF properties - try: - jfif_unit = s[7] - jfif_density = i16(s, 8), i16(s, 10) - except Exception: - pass - else: - if jfif_unit == 1: - self.info["dpi"] = jfif_density - self.info["jfif_unit"] = jfif_unit - self.info["jfif_density"] = jfif_density - elif marker == 0xFFE1 and s[:6] == b"Exif\0\0": - # extract EXIF information - if "exif" in self.info: - self.info["exif"] += s[6:] - else: - self.info["exif"] = s - self._exif_offset = self.fp.tell() - n + 6 - elif marker == 0xFFE2 and s[:5] == b"FPXR\0": - # extract FlashPix information (incomplete) - self.info["flashpix"] = s # FIXME: value will change - elif marker == 0xFFE2 and s[:12] == b"ICC_PROFILE\0": - # Since an ICC profile can be larger than the maximum size of - # a JPEG marker (64K), we need provisions to split it into - # multiple markers. The format defined by the ICC specifies - # one or more APP2 markers containing the following data: - # Identifying string ASCII "ICC_PROFILE\0" (12 bytes) - # Marker sequence number 1, 2, etc (1 byte) - # Number of markers Total of APP2's used (1 byte) - # Profile data (remainder of APP2 data) - # Decoders should use the marker sequence numbers to - # reassemble the profile, rather than assuming that the APP2 - # markers appear in the correct sequence. - self.icclist.append(s) - elif marker == 0xFFED and s[:14] == b"Photoshop 3.0\x00": - # parse the image resource block - offset = 14 - photoshop = self.info.setdefault("photoshop", {}) - while s[offset : offset + 4] == b"8BIM": - try: - offset += 4 - # resource code - code = i16(s, offset) - offset += 2 - # resource name (usually empty) - name_len = s[offset] - # name = s[offset+1:offset+1+name_len] - offset += 1 + name_len - offset += offset & 1 # align - # resource data block - size = i32(s, offset) - offset += 4 - data = s[offset : offset + size] - if code == 0x03ED: # ResolutionInfo - data = { - "XResolution": i32(data, 0) / 65536, - "DisplayedUnitsX": i16(data, 4), - "YResolution": i32(data, 8) / 65536, - "DisplayedUnitsY": i16(data, 12), - } - photoshop[code] = data - offset += size - offset += offset & 1 # align - except struct.error: - break # insufficient data - - elif marker == 0xFFEE and s[:5] == b"Adobe": - self.info["adobe"] = i16(s, 5) - # extract Adobe custom properties - try: - adobe_transform = s[11] - except IndexError: - pass - else: - self.info["adobe_transform"] = adobe_transform - elif marker == 0xFFE2 and s[:4] == b"MPF\0": - # extract MPO information - self.info["mp"] = s[4:] - # offset is current location minus buffer size - # plus constant header size - self.info["mpoffset"] = self.fp.tell() - n + 4 - - # If DPI isn't in JPEG header, fetch from EXIF - if "dpi" not in self.info and "exif" in self.info: - try: - exif = self.getexif() - resolution_unit = exif[0x0128] - x_resolution = exif[0x011A] - try: - dpi = float(x_resolution[0]) / x_resolution[1] - except TypeError: - dpi = x_resolution - if math.isnan(dpi): - msg = "DPI is not a number" - raise ValueError(msg) - if resolution_unit == 3: # cm - # 1 dpcm = 2.54 dpi - dpi *= 2.54 - self.info["dpi"] = dpi, dpi - except ( - struct.error, - KeyError, - SyntaxError, - TypeError, - ValueError, - ZeroDivisionError, - ): - # struct.error for truncated EXIF - # KeyError for dpi not included - # SyntaxError for invalid/unreadable EXIF - # ValueError or TypeError for dpi being an invalid float - # ZeroDivisionError for invalid dpi rational value - self.info["dpi"] = 72, 72 - - -def COM(self, marker): - # - # Comment marker. Store these in the APP dictionary. - n = i16(self.fp.read(2)) - 2 - s = ImageFile._safe_read(self.fp, n) - - self.info["comment"] = s - self.app["COM"] = s # compatibility - self.applist.append(("COM", s)) - - -def SOF(self, marker): - # - # Start of frame marker. Defines the size and mode of the - # image. JPEG is colour blind, so we use some simple - # heuristics to map the number of layers to an appropriate - # mode. Note that this could be made a bit brighter, by - # looking for JFIF and Adobe APP markers. - - n = i16(self.fp.read(2)) - 2 - s = ImageFile._safe_read(self.fp, n) - self._size = i16(s, 3), i16(s, 1) - - self.bits = s[0] - if self.bits != 8: - msg = f"cannot handle {self.bits}-bit layers" - raise SyntaxError(msg) - - self.layers = s[5] - if self.layers == 1: - self._mode = "L" - elif self.layers == 3: - self._mode = "RGB" - elif self.layers == 4: - self._mode = "CMYK" - else: - msg = f"cannot handle {self.layers}-layer images" - raise SyntaxError(msg) - - if marker in [0xFFC2, 0xFFC6, 0xFFCA, 0xFFCE]: - self.info["progressive"] = self.info["progression"] = 1 - - if self.icclist: - # fixup icc profile - self.icclist.sort() # sort by sequence number - if self.icclist[0][13] == len(self.icclist): - profile = [p[14:] for p in self.icclist] - icc_profile = b"".join(profile) - else: - icc_profile = None # wrong number of fragments - self.info["icc_profile"] = icc_profile - self.icclist = [] - - for i in range(6, len(s), 3): - t = s[i : i + 3] - # 4-tuples: id, vsamp, hsamp, qtable - self.layer.append((t[0], t[1] // 16, t[1] & 15, t[2])) - - -def DQT(self, marker): - # - # Define quantization table. Note that there might be more - # than one table in each marker. - - # FIXME: The quantization tables can be used to estimate the - # compression quality. - - n = i16(self.fp.read(2)) - 2 - s = ImageFile._safe_read(self.fp, n) - while len(s): - v = s[0] - precision = 1 if (v // 16 == 0) else 2 # in bytes - qt_length = 1 + precision * 64 - if len(s) < qt_length: - msg = "bad quantization table marker" - raise SyntaxError(msg) - data = array.array("B" if precision == 1 else "H", s[1:qt_length]) - if sys.byteorder == "little" and precision > 1: - data.byteswap() # the values are always big-endian - self.quantization[v & 15] = [data[i] for i in zigzag_index] - s = s[qt_length:] - - -# -# JPEG marker table - -MARKER = { - 0xFFC0: ("SOF0", "Baseline DCT", SOF), - 0xFFC1: ("SOF1", "Extended Sequential DCT", SOF), - 0xFFC2: ("SOF2", "Progressive DCT", SOF), - 0xFFC3: ("SOF3", "Spatial lossless", SOF), - 0xFFC4: ("DHT", "Define Huffman table", Skip), - 0xFFC5: ("SOF5", "Differential sequential DCT", SOF), - 0xFFC6: ("SOF6", "Differential progressive DCT", SOF), - 0xFFC7: ("SOF7", "Differential spatial", SOF), - 0xFFC8: ("JPG", "Extension", None), - 0xFFC9: ("SOF9", "Extended sequential DCT (AC)", SOF), - 0xFFCA: ("SOF10", "Progressive DCT (AC)", SOF), - 0xFFCB: ("SOF11", "Spatial lossless DCT (AC)", SOF), - 0xFFCC: ("DAC", "Define arithmetic coding conditioning", Skip), - 0xFFCD: ("SOF13", "Differential sequential DCT (AC)", SOF), - 0xFFCE: ("SOF14", "Differential progressive DCT (AC)", SOF), - 0xFFCF: ("SOF15", "Differential spatial (AC)", SOF), - 0xFFD0: ("RST0", "Restart 0", None), - 0xFFD1: ("RST1", "Restart 1", None), - 0xFFD2: ("RST2", "Restart 2", None), - 0xFFD3: ("RST3", "Restart 3", None), - 0xFFD4: ("RST4", "Restart 4", None), - 0xFFD5: ("RST5", "Restart 5", None), - 0xFFD6: ("RST6", "Restart 6", None), - 0xFFD7: ("RST7", "Restart 7", None), - 0xFFD8: ("SOI", "Start of image", None), - 0xFFD9: ("EOI", "End of image", None), - 0xFFDA: ("SOS", "Start of scan", Skip), - 0xFFDB: ("DQT", "Define quantization table", DQT), - 0xFFDC: ("DNL", "Define number of lines", Skip), - 0xFFDD: ("DRI", "Define restart interval", Skip), - 0xFFDE: ("DHP", "Define hierarchical progression", SOF), - 0xFFDF: ("EXP", "Expand reference component", Skip), - 0xFFE0: ("APP0", "Application segment 0", APP), - 0xFFE1: ("APP1", "Application segment 1", APP), - 0xFFE2: ("APP2", "Application segment 2", APP), - 0xFFE3: ("APP3", "Application segment 3", APP), - 0xFFE4: ("APP4", "Application segment 4", APP), - 0xFFE5: ("APP5", "Application segment 5", APP), - 0xFFE6: ("APP6", "Application segment 6", APP), - 0xFFE7: ("APP7", "Application segment 7", APP), - 0xFFE8: ("APP8", "Application segment 8", APP), - 0xFFE9: ("APP9", "Application segment 9", APP), - 0xFFEA: ("APP10", "Application segment 10", APP), - 0xFFEB: ("APP11", "Application segment 11", APP), - 0xFFEC: ("APP12", "Application segment 12", APP), - 0xFFED: ("APP13", "Application segment 13", APP), - 0xFFEE: ("APP14", "Application segment 14", APP), - 0xFFEF: ("APP15", "Application segment 15", APP), - 0xFFF0: ("JPG0", "Extension 0", None), - 0xFFF1: ("JPG1", "Extension 1", None), - 0xFFF2: ("JPG2", "Extension 2", None), - 0xFFF3: ("JPG3", "Extension 3", None), - 0xFFF4: ("JPG4", "Extension 4", None), - 0xFFF5: ("JPG5", "Extension 5", None), - 0xFFF6: ("JPG6", "Extension 6", None), - 0xFFF7: ("JPG7", "Extension 7", None), - 0xFFF8: ("JPG8", "Extension 8", None), - 0xFFF9: ("JPG9", "Extension 9", None), - 0xFFFA: ("JPG10", "Extension 10", None), - 0xFFFB: ("JPG11", "Extension 11", None), - 0xFFFC: ("JPG12", "Extension 12", None), - 0xFFFD: ("JPG13", "Extension 13", None), - 0xFFFE: ("COM", "Comment", COM), -} - - -def _accept(prefix): - # Magic number was taken from https://en.wikipedia.org/wiki/JPEG - return prefix[:3] == b"\xFF\xD8\xFF" - - -## -# Image plugin for JPEG and JFIF images. - - -class JpegImageFile(ImageFile.ImageFile): - format = "JPEG" - format_description = "JPEG (ISO 10918)" - - def _open(self): - s = self.fp.read(3) - - if not _accept(s): - msg = "not a JPEG file" - raise SyntaxError(msg) - s = b"\xFF" - - # Create attributes - self.bits = self.layers = 0 - - # JPEG specifics (internal) - self.layer = [] - self.huffman_dc = {} - self.huffman_ac = {} - self.quantization = {} - self.app = {} # compatibility - self.applist = [] - self.icclist = [] - - while True: - i = s[0] - if i == 0xFF: - s = s + self.fp.read(1) - i = i16(s) - else: - # Skip non-0xFF junk - s = self.fp.read(1) - continue - - if i in MARKER: - name, description, handler = MARKER[i] - if handler is not None: - handler(self, i) - if i == 0xFFDA: # start of scan - rawmode = self.mode - if self.mode == "CMYK": - rawmode = "CMYK;I" # assume adobe conventions - self.tile = [("jpeg", (0, 0) + self.size, 0, (rawmode, ""))] - # self.__offset = self.fp.tell() - break - s = self.fp.read(1) - elif i in {0, 0xFFFF}: - # padded marker or junk; move on - s = b"\xff" - elif i == 0xFF00: # Skip extraneous data (escaped 0xFF) - s = self.fp.read(1) - else: - msg = "no marker found" - raise SyntaxError(msg) - - def load_read(self, read_bytes): - """ - internal: read more image data - For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker - so libjpeg can finish decoding - """ - s = self.fp.read(read_bytes) - - if not s and ImageFile.LOAD_TRUNCATED_IMAGES and not hasattr(self, "_ended"): - # Premature EOF. - # Pretend file is finished adding EOI marker - self._ended = True - return b"\xFF\xD9" - - return s - - def draft(self, mode, size): - if len(self.tile) != 1: - return - - # Protect from second call - if self.decoderconfig: - return - - d, e, o, a = self.tile[0] - scale = 1 - original_size = self.size - - if a[0] == "RGB" and mode in ["L", "YCbCr"]: - self._mode = mode - a = mode, "" - - if size: - scale = min(self.size[0] // size[0], self.size[1] // size[1]) - for s in [8, 4, 2, 1]: - if scale >= s: - break - e = ( - e[0], - e[1], - (e[2] - e[0] + s - 1) // s + e[0], - (e[3] - e[1] + s - 1) // s + e[1], - ) - self._size = ((self.size[0] + s - 1) // s, (self.size[1] + s - 1) // s) - scale = s - - self.tile = [(d, e, o, a)] - self.decoderconfig = (scale, 0) - - box = (0, 0, original_size[0] / scale, original_size[1] / scale) - return self.mode, box - - def load_djpeg(self): - # ALTERNATIVE: handle JPEGs via the IJG command line utilities - - f, path = tempfile.mkstemp() - os.close(f) - if os.path.exists(self.filename): - subprocess.check_call(["djpeg", "-outfile", path, self.filename]) - else: - try: - os.unlink(path) - except OSError: - pass - - msg = "Invalid Filename" - raise ValueError(msg) - - try: - with Image.open(path) as _im: - _im.load() - self.im = _im.im - finally: - try: - os.unlink(path) - except OSError: - pass - - self._mode = self.im.mode - self._size = self.im.size - - self.tile = [] - - def _getexif(self): - return _getexif(self) - - def _getmp(self): - return _getmp(self) - - def getxmp(self): - """ - Returns a dictionary containing the XMP tags. - Requires defusedxml to be installed. - - :returns: XMP tags in a dictionary. - """ - - for segment, content in self.applist: - if segment == "APP1": - marker, xmp_tags = content.split(b"\x00")[:2] - if marker == b"http://ns.adobe.com/xap/1.0/": - return self._getxmp(xmp_tags) - return {} - - -def _getexif(self): - if "exif" not in self.info: - return None - return self.getexif()._get_merged_dict() - - -def _getmp(self): - # Extract MP information. This method was inspired by the "highly - # experimental" _getexif version that's been in use for years now, - # itself based on the ImageFileDirectory class in the TIFF plugin. - - # The MP record essentially consists of a TIFF file embedded in a JPEG - # application marker. - try: - data = self.info["mp"] - except KeyError: - return None - file_contents = io.BytesIO(data) - head = file_contents.read(8) - endianness = ">" if head[:4] == b"\x4d\x4d\x00\x2a" else "<" - # process dictionary - from . import TiffImagePlugin - - try: - info = TiffImagePlugin.ImageFileDirectory_v2(head) - file_contents.seek(info.next) - info.load(file_contents) - mp = dict(info) - except Exception as e: - msg = "malformed MP Index (unreadable directory)" - raise SyntaxError(msg) from e - # it's an error not to have a number of images - try: - quant = mp[0xB001] - except KeyError as e: - msg = "malformed MP Index (no number of images)" - raise SyntaxError(msg) from e - # get MP entries - mpentries = [] - try: - rawmpentries = mp[0xB002] - for entrynum in range(0, quant): - unpackedentry = struct.unpack_from( - f"{endianness}LLLHH", rawmpentries, entrynum * 16 - ) - labels = ("Attribute", "Size", "DataOffset", "EntryNo1", "EntryNo2") - mpentry = dict(zip(labels, unpackedentry)) - mpentryattr = { - "DependentParentImageFlag": bool(mpentry["Attribute"] & (1 << 31)), - "DependentChildImageFlag": bool(mpentry["Attribute"] & (1 << 30)), - "RepresentativeImageFlag": bool(mpentry["Attribute"] & (1 << 29)), - "Reserved": (mpentry["Attribute"] & (3 << 27)) >> 27, - "ImageDataFormat": (mpentry["Attribute"] & (7 << 24)) >> 24, - "MPType": mpentry["Attribute"] & 0x00FFFFFF, - } - if mpentryattr["ImageDataFormat"] == 0: - mpentryattr["ImageDataFormat"] = "JPEG" - else: - msg = "unsupported picture format in MPO" - raise SyntaxError(msg) - mptypemap = { - 0x000000: "Undefined", - 0x010001: "Large Thumbnail (VGA Equivalent)", - 0x010002: "Large Thumbnail (Full HD Equivalent)", - 0x020001: "Multi-Frame Image (Panorama)", - 0x020002: "Multi-Frame Image: (Disparity)", - 0x020003: "Multi-Frame Image: (Multi-Angle)", - 0x030000: "Baseline MP Primary Image", - } - mpentryattr["MPType"] = mptypemap.get(mpentryattr["MPType"], "Unknown") - mpentry["Attribute"] = mpentryattr - mpentries.append(mpentry) - mp[0xB002] = mpentries - except KeyError as e: - msg = "malformed MP Index (bad MP Entry)" - raise SyntaxError(msg) from e - # Next we should try and parse the individual image unique ID list; - # we don't because I've never seen this actually used in a real MPO - # file and so can't test it. - return mp - - -# -------------------------------------------------------------------- -# stuff to save JPEG files - -RAWMODE = { - "1": "L", - "L": "L", - "RGB": "RGB", - "RGBX": "RGB", - "CMYK": "CMYK;I", # assume adobe conventions - "YCbCr": "YCbCr", -} - -# fmt: off -zigzag_index = ( - 0, 1, 5, 6, 14, 15, 27, 28, - 2, 4, 7, 13, 16, 26, 29, 42, - 3, 8, 12, 17, 25, 30, 41, 43, - 9, 11, 18, 24, 31, 40, 44, 53, - 10, 19, 23, 32, 39, 45, 52, 54, - 20, 22, 33, 38, 46, 51, 55, 60, - 21, 34, 37, 47, 50, 56, 59, 61, - 35, 36, 48, 49, 57, 58, 62, 63, -) - -samplings = { - (1, 1, 1, 1, 1, 1): 0, - (2, 1, 1, 1, 1, 1): 1, - (2, 2, 1, 1, 1, 1): 2, -} -# fmt: on - - -def get_sampling(im): - # There's no subsampling when images have only 1 layer - # (grayscale images) or when they are CMYK (4 layers), - # so set subsampling to the default value. - # - # NOTE: currently Pillow can't encode JPEG to YCCK format. - # If YCCK support is added in the future, subsampling code will have - # to be updated (here and in JpegEncode.c) to deal with 4 layers. - if not hasattr(im, "layers") or im.layers in (1, 4): - return -1 - sampling = im.layer[0][1:3] + im.layer[1][1:3] + im.layer[2][1:3] - return samplings.get(sampling, -1) - - -def _save(im, fp, filename): - if im.width == 0 or im.height == 0: - msg = "cannot write empty image as JPEG" - raise ValueError(msg) - - try: - rawmode = RAWMODE[im.mode] - except KeyError as e: - msg = f"cannot write mode {im.mode} as JPEG" - raise OSError(msg) from e - - info = im.encoderinfo - - dpi = [round(x) for x in info.get("dpi", (0, 0))] - - quality = info.get("quality", -1) - subsampling = info.get("subsampling", -1) - qtables = info.get("qtables") - - if quality == "keep": - quality = -1 - subsampling = "keep" - qtables = "keep" - elif quality in presets: - preset = presets[quality] - quality = -1 - subsampling = preset.get("subsampling", -1) - qtables = preset.get("quantization") - elif not isinstance(quality, int): - msg = "Invalid quality setting" - raise ValueError(msg) - else: - if subsampling in presets: - subsampling = presets[subsampling].get("subsampling", -1) - if isinstance(qtables, str) and qtables in presets: - qtables = presets[qtables].get("quantization") - - if subsampling == "4:4:4": - subsampling = 0 - elif subsampling == "4:2:2": - subsampling = 1 - elif subsampling == "4:2:0": - subsampling = 2 - elif subsampling == "4:1:1": - # For compatibility. Before Pillow 4.3, 4:1:1 actually meant 4:2:0. - # Set 4:2:0 if someone is still using that value. - subsampling = 2 - elif subsampling == "keep": - if im.format != "JPEG": - msg = "Cannot use 'keep' when original image is not a JPEG" - raise ValueError(msg) - subsampling = get_sampling(im) - - def validate_qtables(qtables): - if qtables is None: - return qtables - if isinstance(qtables, str): - try: - lines = [ - int(num) - for line in qtables.splitlines() - for num in line.split("#", 1)[0].split() - ] - except ValueError as e: - msg = "Invalid quantization table" - raise ValueError(msg) from e - else: - qtables = [lines[s : s + 64] for s in range(0, len(lines), 64)] - if isinstance(qtables, (tuple, list, dict)): - if isinstance(qtables, dict): - qtables = [ - qtables[key] for key in range(len(qtables)) if key in qtables - ] - elif isinstance(qtables, tuple): - qtables = list(qtables) - if not (0 < len(qtables) < 5): - msg = "None or too many quantization tables" - raise ValueError(msg) - for idx, table in enumerate(qtables): - try: - if len(table) != 64: - msg = "Invalid quantization table" - raise TypeError(msg) - table = array.array("H", table) - except TypeError as e: - msg = "Invalid quantization table" - raise ValueError(msg) from e - else: - qtables[idx] = list(table) - return qtables - - if qtables == "keep": - if im.format != "JPEG": - msg = "Cannot use 'keep' when original image is not a JPEG" - raise ValueError(msg) - qtables = getattr(im, "quantization", None) - qtables = validate_qtables(qtables) - - extra = info.get("extra", b"") - - MAX_BYTES_IN_MARKER = 65533 - icc_profile = info.get("icc_profile") - if icc_profile: - ICC_OVERHEAD_LEN = 14 - MAX_DATA_BYTES_IN_MARKER = MAX_BYTES_IN_MARKER - ICC_OVERHEAD_LEN - markers = [] - while icc_profile: - markers.append(icc_profile[:MAX_DATA_BYTES_IN_MARKER]) - icc_profile = icc_profile[MAX_DATA_BYTES_IN_MARKER:] - i = 1 - for marker in markers: - size = o16(2 + ICC_OVERHEAD_LEN + len(marker)) - extra += ( - b"\xFF\xE2" - + size - + b"ICC_PROFILE\0" - + o8(i) - + o8(len(markers)) - + marker - ) - i += 1 - - comment = info.get("comment", im.info.get("comment")) - - # "progressive" is the official name, but older documentation - # says "progression" - # FIXME: issue a warning if the wrong form is used (post-1.1.7) - progressive = info.get("progressive", False) or info.get("progression", False) - - optimize = info.get("optimize", False) - - exif = info.get("exif", b"") - if isinstance(exif, Image.Exif): - exif = exif.tobytes() - if len(exif) > MAX_BYTES_IN_MARKER: - msg = "EXIF data is too long" - raise ValueError(msg) - - # get keyword arguments - im.encoderconfig = ( - quality, - progressive, - info.get("smooth", 0), - optimize, - info.get("keep_rgb", False), - info.get("streamtype", 0), - dpi[0], - dpi[1], - subsampling, - info.get("restart_marker_blocks", 0), - info.get("restart_marker_rows", 0), - qtables, - comment, - extra, - exif, - ) - - # if we optimize, libjpeg needs a buffer big enough to hold the whole image - # in a shot. Guessing on the size, at im.size bytes. (raw pixel size is - # channels*size, this is a value that's been used in a django patch. - # https://github.com/matthewwithanm/django-imagekit/issues/50 - bufsize = 0 - if optimize or progressive: - # CMYK can be bigger - if im.mode == "CMYK": - bufsize = 4 * im.size[0] * im.size[1] - # keep sets quality to -1, but the actual value may be high. - elif quality >= 95 or quality == -1: - bufsize = 2 * im.size[0] * im.size[1] - else: - bufsize = im.size[0] * im.size[1] - if exif: - bufsize += len(exif) + 5 - if extra: - bufsize += len(extra) + 1 - else: - # The EXIF info needs to be written as one block, + APP1, + one spare byte. - # Ensure that our buffer is big enough. Same with the icc_profile block. - bufsize = max(bufsize, len(exif) + 5, len(extra) + 1) - - ImageFile._save(im, fp, [("jpeg", (0, 0) + im.size, 0, rawmode)], bufsize) - - -def _save_cjpeg(im, fp, filename): - # ALTERNATIVE: handle JPEGs via the IJG command line utilities. - tempfile = im._dump() - subprocess.check_call(["cjpeg", "-outfile", filename, tempfile]) - try: - os.unlink(tempfile) - except OSError: - pass - - -## -# Factory for making JPEG and MPO instances -def jpeg_factory(fp=None, filename=None): - im = JpegImageFile(fp, filename) - try: - mpheader = im._getmp() - if mpheader[45057] > 1: - # It's actually an MPO - from .MpoImagePlugin import MpoImageFile - - # Don't reload everything, just convert it. - im = MpoImageFile.adopt(im, mpheader) - except (TypeError, IndexError): - # It is really a JPEG - pass - except SyntaxError: - warnings.warn( - "Image appears to be a malformed MPO file, it will be " - "interpreted as a base JPEG file" - ) - return im - - -# --------------------------------------------------------------------- -# Registry stuff - -Image.register_open(JpegImageFile.format, jpeg_factory, _accept) -Image.register_save(JpegImageFile.format, _save) - -Image.register_extensions(JpegImageFile.format, [".jfif", ".jpe", ".jpg", ".jpeg"]) - -Image.register_mime(JpegImageFile.format, "image/jpeg") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/JpegPresets.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/JpegPresets.py deleted file mode 100644 index 9ecfdb2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/JpegPresets.py +++ /dev/null @@ -1,241 +0,0 @@ -""" -JPEG quality settings equivalent to the Photoshop settings. -Can be used when saving JPEG files. - -The following presets are available by default: -``web_low``, ``web_medium``, ``web_high``, ``web_very_high``, ``web_maximum``, -``low``, ``medium``, ``high``, ``maximum``. -More presets can be added to the :py:data:`presets` dict if needed. - -To apply the preset, specify:: - - quality="preset_name" - -To apply only the quantization table:: - - qtables="preset_name" - -To apply only the subsampling setting:: - - subsampling="preset_name" - -Example:: - - im.save("image_name.jpg", quality="web_high") - -Subsampling ------------ - -Subsampling is the practice of encoding images by implementing less resolution -for chroma information than for luma information. -(ref.: https://en.wikipedia.org/wiki/Chroma_subsampling) - -Possible subsampling values are 0, 1 and 2 that correspond to 4:4:4, 4:2:2 and -4:2:0. - -You can get the subsampling of a JPEG with the -:func:`.JpegImagePlugin.get_sampling` function. - -In JPEG compressed data a JPEG marker is used instead of an EXIF tag. -(ref.: https://exiv2.org/tags.html) - - -Quantization tables -------------------- - -They are values use by the DCT (Discrete cosine transform) to remove -*unnecessary* information from the image (the lossy part of the compression). -(ref.: https://en.wikipedia.org/wiki/Quantization_matrix#Quantization_matrices, -https://en.wikipedia.org/wiki/JPEG#Quantization) - -You can get the quantization tables of a JPEG with:: - - im.quantization - -This will return a dict with a number of lists. You can pass this dict -directly as the qtables argument when saving a JPEG. - -The quantization table format in presets is a list with sublists. These formats -are interchangeable. - -Libjpeg ref.: -https://web.archive.org/web/20120328125543/http://www.jpegcameras.com/libjpeg/libjpeg-3.html - -""" -from __future__ import annotations - -# fmt: off -presets = { - 'web_low': {'subsampling': 2, # "4:2:0" - 'quantization': [ - [20, 16, 25, 39, 50, 46, 62, 68, - 16, 18, 23, 38, 38, 53, 65, 68, - 25, 23, 31, 38, 53, 65, 68, 68, - 39, 38, 38, 53, 65, 68, 68, 68, - 50, 38, 53, 65, 68, 68, 68, 68, - 46, 53, 65, 68, 68, 68, 68, 68, - 62, 65, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68], - [21, 25, 32, 38, 54, 68, 68, 68, - 25, 28, 24, 38, 54, 68, 68, 68, - 32, 24, 32, 43, 66, 68, 68, 68, - 38, 38, 43, 53, 68, 68, 68, 68, - 54, 54, 66, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68] - ]}, - 'web_medium': {'subsampling': 2, # "4:2:0" - 'quantization': [ - [16, 11, 11, 16, 23, 27, 31, 30, - 11, 12, 12, 15, 20, 23, 23, 30, - 11, 12, 13, 16, 23, 26, 35, 47, - 16, 15, 16, 23, 26, 37, 47, 64, - 23, 20, 23, 26, 39, 51, 64, 64, - 27, 23, 26, 37, 51, 64, 64, 64, - 31, 23, 35, 47, 64, 64, 64, 64, - 30, 30, 47, 64, 64, 64, 64, 64], - [17, 15, 17, 21, 20, 26, 38, 48, - 15, 19, 18, 17, 20, 26, 35, 43, - 17, 18, 20, 22, 26, 30, 46, 53, - 21, 17, 22, 28, 30, 39, 53, 64, - 20, 20, 26, 30, 39, 48, 64, 64, - 26, 26, 30, 39, 48, 63, 64, 64, - 38, 35, 46, 53, 64, 64, 64, 64, - 48, 43, 53, 64, 64, 64, 64, 64] - ]}, - 'web_high': {'subsampling': 0, # "4:4:4" - 'quantization': [ - [6, 4, 4, 6, 9, 11, 12, 16, - 4, 5, 5, 6, 8, 10, 12, 12, - 4, 5, 5, 6, 10, 12, 14, 19, - 6, 6, 6, 11, 12, 15, 19, 28, - 9, 8, 10, 12, 16, 20, 27, 31, - 11, 10, 12, 15, 20, 27, 31, 31, - 12, 12, 14, 19, 27, 31, 31, 31, - 16, 12, 19, 28, 31, 31, 31, 31], - [7, 7, 13, 24, 26, 31, 31, 31, - 7, 12, 16, 21, 31, 31, 31, 31, - 13, 16, 17, 31, 31, 31, 31, 31, - 24, 21, 31, 31, 31, 31, 31, 31, - 26, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31] - ]}, - 'web_very_high': {'subsampling': 0, # "4:4:4" - 'quantization': [ - [2, 2, 2, 2, 3, 4, 5, 6, - 2, 2, 2, 2, 3, 4, 5, 6, - 2, 2, 2, 2, 4, 5, 7, 9, - 2, 2, 2, 4, 5, 7, 9, 12, - 3, 3, 4, 5, 8, 10, 12, 12, - 4, 4, 5, 7, 10, 12, 12, 12, - 5, 5, 7, 9, 12, 12, 12, 12, - 6, 6, 9, 12, 12, 12, 12, 12], - [3, 3, 5, 9, 13, 15, 15, 15, - 3, 4, 6, 11, 14, 12, 12, 12, - 5, 6, 9, 14, 12, 12, 12, 12, - 9, 11, 14, 12, 12, 12, 12, 12, - 13, 14, 12, 12, 12, 12, 12, 12, - 15, 12, 12, 12, 12, 12, 12, 12, - 15, 12, 12, 12, 12, 12, 12, 12, - 15, 12, 12, 12, 12, 12, 12, 12] - ]}, - 'web_maximum': {'subsampling': 0, # "4:4:4" - 'quantization': [ - [1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 2, 2, 3, - 1, 1, 1, 1, 2, 2, 3, 3, - 1, 1, 1, 2, 2, 3, 3, 3, - 1, 1, 2, 2, 3, 3, 3, 3], - [1, 1, 1, 2, 2, 3, 3, 3, - 1, 1, 1, 2, 3, 3, 3, 3, - 1, 1, 1, 3, 3, 3, 3, 3, - 2, 2, 3, 3, 3, 3, 3, 3, - 2, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3] - ]}, - 'low': {'subsampling': 2, # "4:2:0" - 'quantization': [ - [18, 14, 14, 21, 30, 35, 34, 17, - 14, 16, 16, 19, 26, 23, 12, 12, - 14, 16, 17, 21, 23, 12, 12, 12, - 21, 19, 21, 23, 12, 12, 12, 12, - 30, 26, 23, 12, 12, 12, 12, 12, - 35, 23, 12, 12, 12, 12, 12, 12, - 34, 12, 12, 12, 12, 12, 12, 12, - 17, 12, 12, 12, 12, 12, 12, 12], - [20, 19, 22, 27, 20, 20, 17, 17, - 19, 25, 23, 14, 14, 12, 12, 12, - 22, 23, 14, 14, 12, 12, 12, 12, - 27, 14, 14, 12, 12, 12, 12, 12, - 20, 14, 12, 12, 12, 12, 12, 12, - 20, 12, 12, 12, 12, 12, 12, 12, - 17, 12, 12, 12, 12, 12, 12, 12, - 17, 12, 12, 12, 12, 12, 12, 12] - ]}, - 'medium': {'subsampling': 2, # "4:2:0" - 'quantization': [ - [12, 8, 8, 12, 17, 21, 24, 17, - 8, 9, 9, 11, 15, 19, 12, 12, - 8, 9, 10, 12, 19, 12, 12, 12, - 12, 11, 12, 21, 12, 12, 12, 12, - 17, 15, 19, 12, 12, 12, 12, 12, - 21, 19, 12, 12, 12, 12, 12, 12, - 24, 12, 12, 12, 12, 12, 12, 12, - 17, 12, 12, 12, 12, 12, 12, 12], - [13, 11, 13, 16, 20, 20, 17, 17, - 11, 14, 14, 14, 14, 12, 12, 12, - 13, 14, 14, 14, 12, 12, 12, 12, - 16, 14, 14, 12, 12, 12, 12, 12, - 20, 14, 12, 12, 12, 12, 12, 12, - 20, 12, 12, 12, 12, 12, 12, 12, - 17, 12, 12, 12, 12, 12, 12, 12, - 17, 12, 12, 12, 12, 12, 12, 12] - ]}, - 'high': {'subsampling': 0, # "4:4:4" - 'quantization': [ - [6, 4, 4, 6, 9, 11, 12, 16, - 4, 5, 5, 6, 8, 10, 12, 12, - 4, 5, 5, 6, 10, 12, 12, 12, - 6, 6, 6, 11, 12, 12, 12, 12, - 9, 8, 10, 12, 12, 12, 12, 12, - 11, 10, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 16, 12, 12, 12, 12, 12, 12, 12], - [7, 7, 13, 24, 20, 20, 17, 17, - 7, 12, 16, 14, 14, 12, 12, 12, - 13, 16, 14, 14, 12, 12, 12, 12, - 24, 14, 14, 12, 12, 12, 12, 12, - 20, 14, 12, 12, 12, 12, 12, 12, - 20, 12, 12, 12, 12, 12, 12, 12, - 17, 12, 12, 12, 12, 12, 12, 12, - 17, 12, 12, 12, 12, 12, 12, 12] - ]}, - 'maximum': {'subsampling': 0, # "4:4:4" - 'quantization': [ - [2, 2, 2, 2, 3, 4, 5, 6, - 2, 2, 2, 2, 3, 4, 5, 6, - 2, 2, 2, 2, 4, 5, 7, 9, - 2, 2, 2, 4, 5, 7, 9, 12, - 3, 3, 4, 5, 8, 10, 12, 12, - 4, 4, 5, 7, 10, 12, 12, 12, - 5, 5, 7, 9, 12, 12, 12, 12, - 6, 6, 9, 12, 12, 12, 12, 12], - [3, 3, 5, 9, 13, 15, 15, 15, - 3, 4, 6, 10, 14, 12, 12, 12, - 5, 6, 9, 14, 12, 12, 12, 12, - 9, 10, 14, 12, 12, 12, 12, 12, - 13, 14, 12, 12, 12, 12, 12, 12, - 15, 12, 12, 12, 12, 12, 12, 12, - 15, 12, 12, 12, 12, 12, 12, 12, - 15, 12, 12, 12, 12, 12, 12, 12] - ]}, -} -# fmt: on diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/McIdasImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/McIdasImagePlugin.py deleted file mode 100644 index 9a85c0d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/McIdasImagePlugin.py +++ /dev/null @@ -1,76 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# Basic McIdas support for PIL -# -# History: -# 1997-05-05 fl Created (8-bit images only) -# 2009-03-08 fl Added 16/32-bit support. -# -# Thanks to Richard Jones and Craig Swank for specs and samples. -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1997. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import struct - -from . import Image, ImageFile - - -def _accept(s): - return s[:8] == b"\x00\x00\x00\x00\x00\x00\x00\x04" - - -## -# Image plugin for McIdas area images. - - -class McIdasImageFile(ImageFile.ImageFile): - format = "MCIDAS" - format_description = "McIdas area file" - - def _open(self): - # parse area file directory - s = self.fp.read(256) - if not _accept(s) or len(s) != 256: - msg = "not an McIdas area file" - raise SyntaxError(msg) - - self.area_descriptor_raw = s - self.area_descriptor = w = [0] + list(struct.unpack("!64i", s)) - - # get mode - if w[11] == 1: - mode = rawmode = "L" - elif w[11] == 2: - # FIXME: add memory map support - mode = "I" - rawmode = "I;16B" - elif w[11] == 4: - # FIXME: add memory map support - mode = "I" - rawmode = "I;32B" - else: - msg = "unsupported McIdas format" - raise SyntaxError(msg) - - self._mode = mode - self._size = w[10], w[9] - - offset = w[34] + w[15] - stride = w[15] + w[10] * w[11] * w[14] - - self.tile = [("raw", (0, 0) + self.size, offset, (rawmode, stride, 1))] - - -# -------------------------------------------------------------------- -# registry - -Image.register_open(McIdasImageFile.format, McIdasImageFile, _accept) - -# no default extension diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MicImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MicImagePlugin.py deleted file mode 100644 index f4529d9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MicImagePlugin.py +++ /dev/null @@ -1,107 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# Microsoft Image Composer support for PIL -# -# Notes: -# uses TiffImagePlugin.py to read the actual image streams -# -# History: -# 97-01-20 fl Created -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1997. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import olefile - -from . import Image, TiffImagePlugin - -# -# -------------------------------------------------------------------- - - -def _accept(prefix): - return prefix[:8] == olefile.MAGIC - - -## -# Image plugin for Microsoft's Image Composer file format. - - -class MicImageFile(TiffImagePlugin.TiffImageFile): - format = "MIC" - format_description = "Microsoft Image Composer" - _close_exclusive_fp_after_loading = False - - def _open(self): - # read the OLE directory and see if this is a likely - # to be a Microsoft Image Composer file - - try: - self.ole = olefile.OleFileIO(self.fp) - except OSError as e: - msg = "not an MIC file; invalid OLE file" - raise SyntaxError(msg) from e - - # find ACI subfiles with Image members (maybe not the - # best way to identify MIC files, but what the... ;-) - - self.images = [ - path - for path in self.ole.listdir() - if path[1:] and path[0][-4:] == ".ACI" and path[1] == "Image" - ] - - # if we didn't find any images, this is probably not - # an MIC file. - if not self.images: - msg = "not an MIC file; no image entries" - raise SyntaxError(msg) - - self.frame = None - self._n_frames = len(self.images) - self.is_animated = self._n_frames > 1 - - self.__fp = self.fp - self.seek(0) - - def seek(self, frame): - if not self._seek_check(frame): - return - try: - filename = self.images[frame] - except IndexError as e: - msg = "no such frame" - raise EOFError(msg) from e - - self.fp = self.ole.openstream(filename) - - TiffImagePlugin.TiffImageFile._open(self) - - self.frame = frame - - def tell(self): - return self.frame - - def close(self): - self.__fp.close() - self.ole.close() - super().close() - - def __exit__(self, *args): - self.__fp.close() - self.ole.close() - super().__exit__() - - -# -# -------------------------------------------------------------------- - -Image.register_open(MicImageFile.format, MicImageFile, _accept) - -Image.register_extension(MicImageFile.format, ".mic") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MpegImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MpegImagePlugin.py deleted file mode 100644 index f4e598c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MpegImagePlugin.py +++ /dev/null @@ -1,82 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# MPEG file handling -# -# History: -# 95-09-09 fl Created -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1995. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFile -from ._binary import i8 - -# -# Bitstream parser - - -class BitStream: - def __init__(self, fp): - self.fp = fp - self.bits = 0 - self.bitbuffer = 0 - - def next(self): - return i8(self.fp.read(1)) - - def peek(self, bits): - while self.bits < bits: - c = self.next() - if c < 0: - self.bits = 0 - continue - self.bitbuffer = (self.bitbuffer << 8) + c - self.bits += 8 - return self.bitbuffer >> (self.bits - bits) & (1 << bits) - 1 - - def skip(self, bits): - while self.bits < bits: - self.bitbuffer = (self.bitbuffer << 8) + i8(self.fp.read(1)) - self.bits += 8 - self.bits = self.bits - bits - - def read(self, bits): - v = self.peek(bits) - self.bits = self.bits - bits - return v - - -## -# Image plugin for MPEG streams. This plugin can identify a stream, -# but it cannot read it. - - -class MpegImageFile(ImageFile.ImageFile): - format = "MPEG" - format_description = "MPEG" - - def _open(self): - s = BitStream(self.fp) - - if s.read(32) != 0x1B3: - msg = "not an MPEG file" - raise SyntaxError(msg) - - self._mode = "RGB" - self._size = s.read(12), s.read(12) - - -# -------------------------------------------------------------------- -# Registry stuff - -Image.register_open(MpegImageFile.format, MpegImageFile) - -Image.register_extensions(MpegImageFile.format, [".mpg", ".mpeg"]) - -Image.register_mime(MpegImageFile.format, "video/mpeg") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MpoImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MpoImagePlugin.py deleted file mode 100644 index 199a100..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MpoImagePlugin.py +++ /dev/null @@ -1,195 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# MPO file handling -# -# See "Multi-Picture Format" (CIPA DC-007-Translation 2009, Standard of the -# Camera & Imaging Products Association) -# -# The multi-picture object combines multiple JPEG images (with a modified EXIF -# data format) into a single file. While it can theoretically be used much like -# a GIF animation, it is commonly used to represent 3D photographs and is (as -# of this writing) the most commonly used format by 3D cameras. -# -# History: -# 2014-03-13 Feneric Created -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import itertools -import os -import struct - -from . import ( - ExifTags, - Image, - ImageFile, - ImageSequence, - JpegImagePlugin, - TiffImagePlugin, -) -from ._binary import i16be as i16 -from ._binary import o32le - - -def _save(im, fp, filename): - JpegImagePlugin._save(im, fp, filename) - - -def _save_all(im, fp, filename): - append_images = im.encoderinfo.get("append_images", []) - if not append_images: - try: - animated = im.is_animated - except AttributeError: - animated = False - if not animated: - _save(im, fp, filename) - return - - mpf_offset = 28 - offsets = [] - for imSequence in itertools.chain([im], append_images): - for im_frame in ImageSequence.Iterator(imSequence): - if not offsets: - # APP2 marker - im_frame.encoderinfo["extra"] = ( - b"\xFF\xE2" + struct.pack(">H", 6 + 82) + b"MPF\0" + b" " * 82 - ) - exif = im_frame.encoderinfo.get("exif") - if isinstance(exif, Image.Exif): - exif = exif.tobytes() - im_frame.encoderinfo["exif"] = exif - if exif: - mpf_offset += 4 + len(exif) - - JpegImagePlugin._save(im_frame, fp, filename) - offsets.append(fp.tell()) - else: - im_frame.save(fp, "JPEG") - offsets.append(fp.tell() - offsets[-1]) - - ifd = TiffImagePlugin.ImageFileDirectory_v2() - ifd[0xB000] = b"0100" - ifd[0xB001] = len(offsets) - - mpentries = b"" - data_offset = 0 - for i, size in enumerate(offsets): - if i == 0: - mptype = 0x030000 # Baseline MP Primary Image - else: - mptype = 0x000000 # Undefined - mpentries += struct.pack(" 1 - self._fp = self.fp # FIXME: hack - self._fp.seek(self.__mpoffsets[0]) # get ready to read first frame - self.__frame = 0 - self.offset = 0 - # for now we can only handle reading and individual frame extraction - self.readonly = 1 - - def load_seek(self, pos): - self._fp.seek(pos) - - def seek(self, frame): - if not self._seek_check(frame): - return - self.fp = self._fp - self.offset = self.__mpoffsets[frame] - - self.fp.seek(self.offset + 2) # skip SOI marker - segment = self.fp.read(2) - if not segment: - msg = "No data found for frame" - raise ValueError(msg) - self._size = self._initial_size - if i16(segment) == 0xFFE1: # APP1 - n = i16(self.fp.read(2)) - 2 - self.info["exif"] = ImageFile._safe_read(self.fp, n) - self._reload_exif() - - mptype = self.mpinfo[0xB002][frame]["Attribute"]["MPType"] - if mptype.startswith("Large Thumbnail"): - exif = self.getexif().get_ifd(ExifTags.IFD.Exif) - if 40962 in exif and 40963 in exif: - self._size = (exif[40962], exif[40963]) - elif "exif" in self.info: - del self.info["exif"] - self._reload_exif() - - self.tile = [("jpeg", (0, 0) + self.size, self.offset, (self.mode, ""))] - self.__frame = frame - - def tell(self): - return self.__frame - - @staticmethod - def adopt(jpeg_instance, mpheader=None): - """ - Transform the instance of JpegImageFile into - an instance of MpoImageFile. - After the call, the JpegImageFile is extended - to be an MpoImageFile. - - This is essentially useful when opening a JPEG - file that reveals itself as an MPO, to avoid - double call to _open. - """ - jpeg_instance.__class__ = MpoImageFile - jpeg_instance._after_jpeg_open(mpheader) - return jpeg_instance - - -# --------------------------------------------------------------------- -# Registry stuff - -# Note that since MPO shares a factory with JPEG, we do not need to do a -# separate registration for it here. -# Image.register_open(MpoImageFile.format, -# JpegImagePlugin.jpeg_factory, _accept) -Image.register_save(MpoImageFile.format, _save) -Image.register_save_all(MpoImageFile.format, _save_all) - -Image.register_extension(MpoImageFile.format, ".mpo") - -Image.register_mime(MpoImageFile.format, "image/mpo") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MspImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MspImagePlugin.py deleted file mode 100644 index 77dac65..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/MspImagePlugin.py +++ /dev/null @@ -1,195 +0,0 @@ -# -# The Python Imaging Library. -# -# MSP file handling -# -# This is the format used by the Paint program in Windows 1 and 2. -# -# History: -# 95-09-05 fl Created -# 97-01-03 fl Read/write MSP images -# 17-02-21 es Fixed RLE interpretation -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1995-97. -# Copyright (c) Eric Soroos 2017. -# -# See the README file for information on usage and redistribution. -# -# More info on this format: https://archive.org/details/gg243631 -# Page 313: -# Figure 205. Windows Paint Version 1: "DanM" Format -# Figure 206. Windows Paint Version 2: "LinS" Format. Used in Windows V2.03 -# -# See also: https://www.fileformat.info/format/mspaint/egff.htm -from __future__ import annotations - -import io -import struct - -from . import Image, ImageFile -from ._binary import i16le as i16 -from ._binary import o16le as o16 - -# -# read MSP files - - -def _accept(prefix): - return prefix[:4] in [b"DanM", b"LinS"] - - -## -# Image plugin for Windows MSP images. This plugin supports both -# uncompressed (Windows 1.0). - - -class MspImageFile(ImageFile.ImageFile): - format = "MSP" - format_description = "Windows Paint" - - def _open(self): - # Header - s = self.fp.read(32) - if not _accept(s): - msg = "not an MSP file" - raise SyntaxError(msg) - - # Header checksum - checksum = 0 - for i in range(0, 32, 2): - checksum = checksum ^ i16(s, i) - if checksum != 0: - msg = "bad MSP checksum" - raise SyntaxError(msg) - - self._mode = "1" - self._size = i16(s, 4), i16(s, 6) - - if s[:4] == b"DanM": - self.tile = [("raw", (0, 0) + self.size, 32, ("1", 0, 1))] - else: - self.tile = [("MSP", (0, 0) + self.size, 32, None)] - - -class MspDecoder(ImageFile.PyDecoder): - # The algo for the MSP decoder is from - # https://www.fileformat.info/format/mspaint/egff.htm - # cc-by-attribution -- That page references is taken from the - # Encyclopedia of Graphics File Formats and is licensed by - # O'Reilly under the Creative Common/Attribution license - # - # For RLE encoded files, the 32byte header is followed by a scan - # line map, encoded as one 16bit word of encoded byte length per - # line. - # - # NOTE: the encoded length of the line can be 0. This was not - # handled in the previous version of this encoder, and there's no - # mention of how to handle it in the documentation. From the few - # examples I've seen, I've assumed that it is a fill of the - # background color, in this case, white. - # - # - # Pseudocode of the decoder: - # Read a BYTE value as the RunType - # If the RunType value is zero - # Read next byte as the RunCount - # Read the next byte as the RunValue - # Write the RunValue byte RunCount times - # If the RunType value is non-zero - # Use this value as the RunCount - # Read and write the next RunCount bytes literally - # - # e.g.: - # 0x00 03 ff 05 00 01 02 03 04 - # would yield the bytes: - # 0xff ff ff 00 01 02 03 04 - # - # which are then interpreted as a bit packed mode '1' image - - _pulls_fd = True - - def decode(self, buffer): - img = io.BytesIO() - blank_line = bytearray((0xFF,) * ((self.state.xsize + 7) // 8)) - try: - self.fd.seek(32) - rowmap = struct.unpack_from( - f"<{self.state.ysize}H", self.fd.read(self.state.ysize * 2) - ) - except struct.error as e: - msg = "Truncated MSP file in row map" - raise OSError(msg) from e - - for x, rowlen in enumerate(rowmap): - try: - if rowlen == 0: - img.write(blank_line) - continue - row = self.fd.read(rowlen) - if len(row) != rowlen: - msg = f"Truncated MSP file, expected {rowlen} bytes on row {x}" - raise OSError(msg) - idx = 0 - while idx < rowlen: - runtype = row[idx] - idx += 1 - if runtype == 0: - (runcount, runval) = struct.unpack_from("Bc", row, idx) - img.write(runval * runcount) - idx += 2 - else: - runcount = runtype - img.write(row[idx : idx + runcount]) - idx += runcount - - except struct.error as e: - msg = f"Corrupted MSP file in row {x}" - raise OSError(msg) from e - - self.set_as_raw(img.getvalue(), ("1", 0, 1)) - - return -1, 0 - - -Image.register_decoder("MSP", MspDecoder) - - -# -# write MSP files (uncompressed only) - - -def _save(im, fp, filename): - if im.mode != "1": - msg = f"cannot write mode {im.mode} as MSP" - raise OSError(msg) - - # create MSP header - header = [0] * 16 - - header[0], header[1] = i16(b"Da"), i16(b"nM") # version 1 - header[2], header[3] = im.size - header[4], header[5] = 1, 1 - header[6], header[7] = 1, 1 - header[8], header[9] = im.size - - checksum = 0 - for h in header: - checksum = checksum ^ h - header[12] = checksum # FIXME: is this the right field? - - # header - for h in header: - fp.write(o16(h)) - - # image body - ImageFile._save(im, fp, [("raw", (0, 0) + im.size, 32, ("1", 0, 1))]) - - -# -# registry - -Image.register_open(MspImageFile.format, MspImageFile, _accept) -Image.register_save(MspImageFile.format, _save) - -Image.register_extension(MspImageFile.format, ".msp") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PSDraw.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PSDraw.py deleted file mode 100644 index 848fc2f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PSDraw.py +++ /dev/null @@ -1,230 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# Simple PostScript graphics interface -# -# History: -# 1996-04-20 fl Created -# 1999-01-10 fl Added gsave/grestore to image method -# 2005-05-04 fl Fixed floating point issue in image (from Eric Etheridge) -# -# Copyright (c) 1997-2005 by Secret Labs AB. All rights reserved. -# Copyright (c) 1996 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import sys - -from . import EpsImagePlugin - -## -# Simple PostScript graphics interface. - - -class PSDraw: - """ - Sets up printing to the given file. If ``fp`` is omitted, - ``sys.stdout.buffer`` or ``sys.stdout`` is assumed. - """ - - def __init__(self, fp=None): - if not fp: - try: - fp = sys.stdout.buffer - except AttributeError: - fp = sys.stdout - self.fp = fp - - def begin_document(self, id=None): - """Set up printing of a document. (Write PostScript DSC header.)""" - # FIXME: incomplete - self.fp.write( - b"%!PS-Adobe-3.0\n" - b"save\n" - b"/showpage { } def\n" - b"%%EndComments\n" - b"%%BeginDocument\n" - ) - # self.fp.write(ERROR_PS) # debugging! - self.fp.write(EDROFF_PS) - self.fp.write(VDI_PS) - self.fp.write(b"%%EndProlog\n") - self.isofont = {} - - def end_document(self): - """Ends printing. (Write PostScript DSC footer.)""" - self.fp.write(b"%%EndDocument\nrestore showpage\n%%End\n") - if hasattr(self.fp, "flush"): - self.fp.flush() - - def setfont(self, font, size): - """ - Selects which font to use. - - :param font: A PostScript font name - :param size: Size in points. - """ - font = bytes(font, "UTF-8") - if font not in self.isofont: - # reencode font - self.fp.write(b"/PSDraw-%s ISOLatin1Encoding /%s E\n" % (font, font)) - self.isofont[font] = 1 - # rough - self.fp.write(b"/F0 %d /PSDraw-%s F\n" % (size, font)) - - def line(self, xy0, xy1): - """ - Draws a line between the two points. Coordinates are given in - PostScript point coordinates (72 points per inch, (0, 0) is the lower - left corner of the page). - """ - self.fp.write(b"%d %d %d %d Vl\n" % (*xy0, *xy1)) - - def rectangle(self, box): - """ - Draws a rectangle. - - :param box: A tuple of four integers, specifying left, bottom, width and - height. - """ - self.fp.write(b"%d %d M 0 %d %d Vr\n" % box) - - def text(self, xy, text): - """ - Draws text at the given position. You must use - :py:meth:`~PIL.PSDraw.PSDraw.setfont` before calling this method. - """ - text = bytes(text, "UTF-8") - text = b"\\(".join(text.split(b"(")) - text = b"\\)".join(text.split(b")")) - xy += (text,) - self.fp.write(b"%d %d M (%s) S\n" % xy) - - def image(self, box, im, dpi=None): - """Draw a PIL image, centered in the given box.""" - # default resolution depends on mode - if not dpi: - if im.mode == "1": - dpi = 200 # fax - else: - dpi = 100 # grayscale - # image size (on paper) - x = im.size[0] * 72 / dpi - y = im.size[1] * 72 / dpi - # max allowed size - xmax = float(box[2] - box[0]) - ymax = float(box[3] - box[1]) - if x > xmax: - y = y * xmax / x - x = xmax - if y > ymax: - x = x * ymax / y - y = ymax - dx = (xmax - x) / 2 + box[0] - dy = (ymax - y) / 2 + box[1] - self.fp.write(b"gsave\n%f %f translate\n" % (dx, dy)) - if (x, y) != im.size: - # EpsImagePlugin._save prints the image at (0,0,xsize,ysize) - sx = x / im.size[0] - sy = y / im.size[1] - self.fp.write(b"%f %f scale\n" % (sx, sy)) - EpsImagePlugin._save(im, self.fp, None, 0) - self.fp.write(b"\ngrestore\n") - - -# -------------------------------------------------------------------- -# PostScript driver - -# -# EDROFF.PS -- PostScript driver for Edroff 2 -# -# History: -# 94-01-25 fl: created (edroff 2.04) -# -# Copyright (c) Fredrik Lundh 1994. -# - - -EDROFF_PS = b"""\ -/S { show } bind def -/P { moveto show } bind def -/M { moveto } bind def -/X { 0 rmoveto } bind def -/Y { 0 exch rmoveto } bind def -/E { findfont - dup maxlength dict begin - { - 1 index /FID ne { def } { pop pop } ifelse - } forall - /Encoding exch def - dup /FontName exch def - currentdict end definefont pop -} bind def -/F { findfont exch scalefont dup setfont - [ exch /setfont cvx ] cvx bind def -} bind def -""" - -# -# VDI.PS -- PostScript driver for VDI meta commands -# -# History: -# 94-01-25 fl: created (edroff 2.04) -# -# Copyright (c) Fredrik Lundh 1994. -# - -VDI_PS = b"""\ -/Vm { moveto } bind def -/Va { newpath arcn stroke } bind def -/Vl { moveto lineto stroke } bind def -/Vc { newpath 0 360 arc closepath } bind def -/Vr { exch dup 0 rlineto - exch dup 0 exch rlineto - exch neg 0 rlineto - 0 exch neg rlineto - setgray fill } bind def -/Tm matrix def -/Ve { Tm currentmatrix pop - translate scale newpath 0 0 .5 0 360 arc closepath - Tm setmatrix -} bind def -/Vf { currentgray exch setgray fill setgray } bind def -""" - -# -# ERROR.PS -- Error handler -# -# History: -# 89-11-21 fl: created (pslist 1.10) -# - -ERROR_PS = b"""\ -/landscape false def -/errorBUF 200 string def -/errorNL { currentpoint 10 sub exch pop 72 exch moveto } def -errordict begin /handleerror { - initmatrix /Courier findfont 10 scalefont setfont - newpath 72 720 moveto $error begin /newerror false def - (PostScript Error) show errorNL errorNL - (Error: ) show - /errorname load errorBUF cvs show errorNL errorNL - (Command: ) show - /command load dup type /stringtype ne { errorBUF cvs } if show - errorNL errorNL - (VMstatus: ) show - vmstatus errorBUF cvs show ( bytes available, ) show - errorBUF cvs show ( bytes used at level ) show - errorBUF cvs show errorNL errorNL - (Operand stargck: ) show errorNL /ostargck load { - dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL - } forall errorNL - (Execution stargck: ) show errorNL /estargck load { - dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL - } forall - end showpage -} def end -""" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PaletteFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PaletteFile.py deleted file mode 100644 index dc31754..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PaletteFile.py +++ /dev/null @@ -1,52 +0,0 @@ -# -# Python Imaging Library -# $Id$ -# -# stuff to read simple, teragon-style palette files -# -# History: -# 97-08-23 fl Created -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1997. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from ._binary import o8 - - -class PaletteFile: - """File handler for Teragon-style palette files.""" - - rawmode = "RGB" - - def __init__(self, fp): - self.palette = [(i, i, i) for i in range(256)] - - while True: - s = fp.readline() - - if not s: - break - if s[:1] == b"#": - continue - if len(s) > 100: - msg = "bad palette file" - raise SyntaxError(msg) - - v = [int(x) for x in s.split()] - try: - [i, r, g, b] = v - except ValueError: - [i, r] = v - g = b = r - - if 0 <= i <= 255: - self.palette[i] = o8(r) + o8(g) + o8(b) - - self.palette = b"".join(self.palette) - - def getpalette(self): - return self.palette, self.rawmode diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PalmImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PalmImagePlugin.py deleted file mode 100644 index 65be7fe..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PalmImagePlugin.py +++ /dev/null @@ -1,226 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# - -## -# Image plugin for Palm pixmap images (output only). -## -from __future__ import annotations - -from . import Image, ImageFile -from ._binary import o8 -from ._binary import o16be as o16b - -# fmt: off -_Palm8BitColormapValues = ( - (255, 255, 255), (255, 204, 255), (255, 153, 255), (255, 102, 255), - (255, 51, 255), (255, 0, 255), (255, 255, 204), (255, 204, 204), - (255, 153, 204), (255, 102, 204), (255, 51, 204), (255, 0, 204), - (255, 255, 153), (255, 204, 153), (255, 153, 153), (255, 102, 153), - (255, 51, 153), (255, 0, 153), (204, 255, 255), (204, 204, 255), - (204, 153, 255), (204, 102, 255), (204, 51, 255), (204, 0, 255), - (204, 255, 204), (204, 204, 204), (204, 153, 204), (204, 102, 204), - (204, 51, 204), (204, 0, 204), (204, 255, 153), (204, 204, 153), - (204, 153, 153), (204, 102, 153), (204, 51, 153), (204, 0, 153), - (153, 255, 255), (153, 204, 255), (153, 153, 255), (153, 102, 255), - (153, 51, 255), (153, 0, 255), (153, 255, 204), (153, 204, 204), - (153, 153, 204), (153, 102, 204), (153, 51, 204), (153, 0, 204), - (153, 255, 153), (153, 204, 153), (153, 153, 153), (153, 102, 153), - (153, 51, 153), (153, 0, 153), (102, 255, 255), (102, 204, 255), - (102, 153, 255), (102, 102, 255), (102, 51, 255), (102, 0, 255), - (102, 255, 204), (102, 204, 204), (102, 153, 204), (102, 102, 204), - (102, 51, 204), (102, 0, 204), (102, 255, 153), (102, 204, 153), - (102, 153, 153), (102, 102, 153), (102, 51, 153), (102, 0, 153), - (51, 255, 255), (51, 204, 255), (51, 153, 255), (51, 102, 255), - (51, 51, 255), (51, 0, 255), (51, 255, 204), (51, 204, 204), - (51, 153, 204), (51, 102, 204), (51, 51, 204), (51, 0, 204), - (51, 255, 153), (51, 204, 153), (51, 153, 153), (51, 102, 153), - (51, 51, 153), (51, 0, 153), (0, 255, 255), (0, 204, 255), - (0, 153, 255), (0, 102, 255), (0, 51, 255), (0, 0, 255), - (0, 255, 204), (0, 204, 204), (0, 153, 204), (0, 102, 204), - (0, 51, 204), (0, 0, 204), (0, 255, 153), (0, 204, 153), - (0, 153, 153), (0, 102, 153), (0, 51, 153), (0, 0, 153), - (255, 255, 102), (255, 204, 102), (255, 153, 102), (255, 102, 102), - (255, 51, 102), (255, 0, 102), (255, 255, 51), (255, 204, 51), - (255, 153, 51), (255, 102, 51), (255, 51, 51), (255, 0, 51), - (255, 255, 0), (255, 204, 0), (255, 153, 0), (255, 102, 0), - (255, 51, 0), (255, 0, 0), (204, 255, 102), (204, 204, 102), - (204, 153, 102), (204, 102, 102), (204, 51, 102), (204, 0, 102), - (204, 255, 51), (204, 204, 51), (204, 153, 51), (204, 102, 51), - (204, 51, 51), (204, 0, 51), (204, 255, 0), (204, 204, 0), - (204, 153, 0), (204, 102, 0), (204, 51, 0), (204, 0, 0), - (153, 255, 102), (153, 204, 102), (153, 153, 102), (153, 102, 102), - (153, 51, 102), (153, 0, 102), (153, 255, 51), (153, 204, 51), - (153, 153, 51), (153, 102, 51), (153, 51, 51), (153, 0, 51), - (153, 255, 0), (153, 204, 0), (153, 153, 0), (153, 102, 0), - (153, 51, 0), (153, 0, 0), (102, 255, 102), (102, 204, 102), - (102, 153, 102), (102, 102, 102), (102, 51, 102), (102, 0, 102), - (102, 255, 51), (102, 204, 51), (102, 153, 51), (102, 102, 51), - (102, 51, 51), (102, 0, 51), (102, 255, 0), (102, 204, 0), - (102, 153, 0), (102, 102, 0), (102, 51, 0), (102, 0, 0), - (51, 255, 102), (51, 204, 102), (51, 153, 102), (51, 102, 102), - (51, 51, 102), (51, 0, 102), (51, 255, 51), (51, 204, 51), - (51, 153, 51), (51, 102, 51), (51, 51, 51), (51, 0, 51), - (51, 255, 0), (51, 204, 0), (51, 153, 0), (51, 102, 0), - (51, 51, 0), (51, 0, 0), (0, 255, 102), (0, 204, 102), - (0, 153, 102), (0, 102, 102), (0, 51, 102), (0, 0, 102), - (0, 255, 51), (0, 204, 51), (0, 153, 51), (0, 102, 51), - (0, 51, 51), (0, 0, 51), (0, 255, 0), (0, 204, 0), - (0, 153, 0), (0, 102, 0), (0, 51, 0), (17, 17, 17), - (34, 34, 34), (68, 68, 68), (85, 85, 85), (119, 119, 119), - (136, 136, 136), (170, 170, 170), (187, 187, 187), (221, 221, 221), - (238, 238, 238), (192, 192, 192), (128, 0, 0), (128, 0, 128), - (0, 128, 0), (0, 128, 128), (0, 0, 0), (0, 0, 0), - (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), - (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), - (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), - (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), - (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), - (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0)) -# fmt: on - - -# so build a prototype image to be used for palette resampling -def build_prototype_image(): - image = Image.new("L", (1, len(_Palm8BitColormapValues))) - image.putdata(list(range(len(_Palm8BitColormapValues)))) - palettedata = () - for colormapValue in _Palm8BitColormapValues: - palettedata += colormapValue - palettedata += (0, 0, 0) * (256 - len(_Palm8BitColormapValues)) - image.putpalette(palettedata) - return image - - -Palm8BitColormapImage = build_prototype_image() - -# OK, we now have in Palm8BitColormapImage, -# a "P"-mode image with the right palette -# -# -------------------------------------------------------------------- - -_FLAGS = {"custom-colormap": 0x4000, "is-compressed": 0x8000, "has-transparent": 0x2000} - -_COMPRESSION_TYPES = {"none": 0xFF, "rle": 0x01, "scanline": 0x00} - - -# -# -------------------------------------------------------------------- - -## -# (Internal) Image save plugin for the Palm format. - - -def _save(im, fp, filename): - if im.mode == "P": - # we assume this is a color Palm image with the standard colormap, - # unless the "info" dict has a "custom-colormap" field - - rawmode = "P" - bpp = 8 - version = 1 - - elif im.mode == "L": - if im.encoderinfo.get("bpp") in (1, 2, 4): - # this is 8-bit grayscale, so we shift it to get the high-order bits, - # and invert it because - # Palm does grayscale from white (0) to black (1) - bpp = im.encoderinfo["bpp"] - im = im.point( - lambda x, shift=8 - bpp, maxval=(1 << bpp) - 1: maxval - (x >> shift) - ) - elif im.info.get("bpp") in (1, 2, 4): - # here we assume that even though the inherent mode is 8-bit grayscale, - # only the lower bpp bits are significant. - # We invert them to match the Palm. - bpp = im.info["bpp"] - im = im.point(lambda x, maxval=(1 << bpp) - 1: maxval - (x & maxval)) - else: - msg = f"cannot write mode {im.mode} as Palm" - raise OSError(msg) - - # we ignore the palette here - im.mode = "P" - rawmode = "P;" + str(bpp) - version = 1 - - elif im.mode == "1": - # monochrome -- write it inverted, as is the Palm standard - rawmode = "1;I" - bpp = 1 - version = 0 - - else: - msg = f"cannot write mode {im.mode} as Palm" - raise OSError(msg) - - # - # make sure image data is available - im.load() - - # write header - - cols = im.size[0] - rows = im.size[1] - - rowbytes = int((cols + (16 // bpp - 1)) / (16 // bpp)) * 2 - transparent_index = 0 - compression_type = _COMPRESSION_TYPES["none"] - - flags = 0 - if im.mode == "P" and "custom-colormap" in im.info: - flags = flags & _FLAGS["custom-colormap"] - colormapsize = 4 * 256 + 2 - colormapmode = im.palette.mode - colormap = im.getdata().getpalette() - else: - colormapsize = 0 - - if "offset" in im.info: - offset = (rowbytes * rows + 16 + 3 + colormapsize) // 4 - else: - offset = 0 - - fp.write(o16b(cols) + o16b(rows) + o16b(rowbytes) + o16b(flags)) - fp.write(o8(bpp)) - fp.write(o8(version)) - fp.write(o16b(offset)) - fp.write(o8(transparent_index)) - fp.write(o8(compression_type)) - fp.write(o16b(0)) # reserved by Palm - - # now write colormap if necessary - - if colormapsize > 0: - fp.write(o16b(256)) - for i in range(256): - fp.write(o8(i)) - if colormapmode == "RGB": - fp.write( - o8(colormap[3 * i]) - + o8(colormap[3 * i + 1]) - + o8(colormap[3 * i + 2]) - ) - elif colormapmode == "RGBA": - fp.write( - o8(colormap[4 * i]) - + o8(colormap[4 * i + 1]) - + o8(colormap[4 * i + 2]) - ) - - # now convert data to raw form - ImageFile._save(im, fp, [("raw", (0, 0) + im.size, 0, (rawmode, rowbytes, 1))]) - - if hasattr(fp, "flush"): - fp.flush() - - -# -# -------------------------------------------------------------------- - -Image.register_save("Palm", _save) - -Image.register_extension("Palm", ".palm") - -Image.register_mime("Palm", "image/palm") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcdImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcdImagePlugin.py deleted file mode 100644 index a0515b3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcdImagePlugin.py +++ /dev/null @@ -1,62 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# PCD file handling -# -# History: -# 96-05-10 fl Created -# 96-05-27 fl Added draft mode (128x192, 256x384) -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1996. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFile - -## -# Image plugin for PhotoCD images. This plugin only reads the 768x512 -# image from the file; higher resolutions are encoded in a proprietary -# encoding. - - -class PcdImageFile(ImageFile.ImageFile): - format = "PCD" - format_description = "Kodak PhotoCD" - - def _open(self): - # rough - self.fp.seek(2048) - s = self.fp.read(2048) - - if s[:4] != b"PCD_": - msg = "not a PCD file" - raise SyntaxError(msg) - - orientation = s[1538] & 3 - self.tile_post_rotate = None - if orientation == 1: - self.tile_post_rotate = 90 - elif orientation == 3: - self.tile_post_rotate = -90 - - self._mode = "RGB" - self._size = 768, 512 # FIXME: not correct for rotated images! - self.tile = [("pcd", (0, 0) + self.size, 96 * 2048, None)] - - def load_end(self): - if self.tile_post_rotate: - # Handle rotated PCDs - self.im = self.im.rotate(self.tile_post_rotate) - self._size = self.im.size - - -# -# registry - -Image.register_open(PcdImageFile.format, PcdImageFile) - -Image.register_extension(PcdImageFile.format, ".pcd") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcfFontFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcfFontFile.py deleted file mode 100644 index 0d1968b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcfFontFile.py +++ /dev/null @@ -1,254 +0,0 @@ -# -# THIS IS WORK IN PROGRESS -# -# The Python Imaging Library -# $Id$ -# -# portable compiled font file parser -# -# history: -# 1997-08-19 fl created -# 2003-09-13 fl fixed loading of unicode fonts -# -# Copyright (c) 1997-2003 by Secret Labs AB. -# Copyright (c) 1997-2003 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -from typing import BinaryIO, Callable - -from . import FontFile, Image -from ._binary import i8 -from ._binary import i16be as b16 -from ._binary import i16le as l16 -from ._binary import i32be as b32 -from ._binary import i32le as l32 - -# -------------------------------------------------------------------- -# declarations - -PCF_MAGIC = 0x70636601 # "\x01fcp" - -PCF_PROPERTIES = 1 << 0 -PCF_ACCELERATORS = 1 << 1 -PCF_METRICS = 1 << 2 -PCF_BITMAPS = 1 << 3 -PCF_INK_METRICS = 1 << 4 -PCF_BDF_ENCODINGS = 1 << 5 -PCF_SWIDTHS = 1 << 6 -PCF_GLYPH_NAMES = 1 << 7 -PCF_BDF_ACCELERATORS = 1 << 8 - -BYTES_PER_ROW: list[Callable[[int], int]] = [ - lambda bits: ((bits + 7) >> 3), - lambda bits: ((bits + 15) >> 3) & ~1, - lambda bits: ((bits + 31) >> 3) & ~3, - lambda bits: ((bits + 63) >> 3) & ~7, -] - - -def sz(s: bytes, o: int) -> bytes: - return s[o : s.index(b"\0", o)] - - -class PcfFontFile(FontFile.FontFile): - """Font file plugin for the X11 PCF format.""" - - name = "name" - - def __init__(self, fp: BinaryIO, charset_encoding: str = "iso8859-1"): - self.charset_encoding = charset_encoding - - magic = l32(fp.read(4)) - if magic != PCF_MAGIC: - msg = "not a PCF file" - raise SyntaxError(msg) - - super().__init__() - - count = l32(fp.read(4)) - self.toc = {} - for i in range(count): - type = l32(fp.read(4)) - self.toc[type] = l32(fp.read(4)), l32(fp.read(4)), l32(fp.read(4)) - - self.fp = fp - - self.info = self._load_properties() - - metrics = self._load_metrics() - bitmaps = self._load_bitmaps(metrics) - encoding = self._load_encoding() - - # - # create glyph structure - - for ch, ix in enumerate(encoding): - if ix is not None: - ( - xsize, - ysize, - left, - right, - width, - ascent, - descent, - attributes, - ) = metrics[ix] - self.glyph[ch] = ( - (width, 0), - (left, descent - ysize, xsize + left, descent), - (0, 0, xsize, ysize), - bitmaps[ix], - ) - - def _getformat( - self, tag: int - ) -> tuple[BinaryIO, int, Callable[[bytes], int], Callable[[bytes], int]]: - format, size, offset = self.toc[tag] - - fp = self.fp - fp.seek(offset) - - format = l32(fp.read(4)) - - if format & 4: - i16, i32 = b16, b32 - else: - i16, i32 = l16, l32 - - return fp, format, i16, i32 - - def _load_properties(self) -> dict[bytes, bytes | int]: - # - # font properties - - properties = {} - - fp, format, i16, i32 = self._getformat(PCF_PROPERTIES) - - nprops = i32(fp.read(4)) - - # read property description - p = [(i32(fp.read(4)), i8(fp.read(1)), i32(fp.read(4))) for _ in range(nprops)] - - if nprops & 3: - fp.seek(4 - (nprops & 3), io.SEEK_CUR) # pad - - data = fp.read(i32(fp.read(4))) - - for k, s, v in p: - property_value: bytes | int = sz(data, v) if s else v - properties[sz(data, k)] = property_value - - return properties - - def _load_metrics(self) -> list[tuple[int, int, int, int, int, int, int, int]]: - # - # font metrics - - metrics: list[tuple[int, int, int, int, int, int, int, int]] = [] - - fp, format, i16, i32 = self._getformat(PCF_METRICS) - - append = metrics.append - - if (format & 0xFF00) == 0x100: - # "compressed" metrics - for i in range(i16(fp.read(2))): - left = i8(fp.read(1)) - 128 - right = i8(fp.read(1)) - 128 - width = i8(fp.read(1)) - 128 - ascent = i8(fp.read(1)) - 128 - descent = i8(fp.read(1)) - 128 - xsize = right - left - ysize = ascent + descent - append((xsize, ysize, left, right, width, ascent, descent, 0)) - - else: - # "jumbo" metrics - for i in range(i32(fp.read(4))): - left = i16(fp.read(2)) - right = i16(fp.read(2)) - width = i16(fp.read(2)) - ascent = i16(fp.read(2)) - descent = i16(fp.read(2)) - attributes = i16(fp.read(2)) - xsize = right - left - ysize = ascent + descent - append((xsize, ysize, left, right, width, ascent, descent, attributes)) - - return metrics - - def _load_bitmaps( - self, metrics: list[tuple[int, int, int, int, int, int, int, int]] - ) -> list[Image.Image]: - # - # bitmap data - - fp, format, i16, i32 = self._getformat(PCF_BITMAPS) - - nbitmaps = i32(fp.read(4)) - - if nbitmaps != len(metrics): - msg = "Wrong number of bitmaps" - raise OSError(msg) - - offsets = [i32(fp.read(4)) for _ in range(nbitmaps)] - - bitmap_sizes = [i32(fp.read(4)) for _ in range(4)] - - # byteorder = format & 4 # non-zero => MSB - bitorder = format & 8 # non-zero => MSB - padindex = format & 3 - - bitmapsize = bitmap_sizes[padindex] - offsets.append(bitmapsize) - - data = fp.read(bitmapsize) - - pad = BYTES_PER_ROW[padindex] - mode = "1;R" - if bitorder: - mode = "1" - - bitmaps = [] - for i in range(nbitmaps): - xsize, ysize = metrics[i][:2] - b, e = offsets[i : i + 2] - bitmaps.append( - Image.frombytes("1", (xsize, ysize), data[b:e], "raw", mode, pad(xsize)) - ) - - return bitmaps - - def _load_encoding(self) -> list[int | None]: - fp, format, i16, i32 = self._getformat(PCF_BDF_ENCODINGS) - - first_col, last_col = i16(fp.read(2)), i16(fp.read(2)) - first_row, last_row = i16(fp.read(2)), i16(fp.read(2)) - - i16(fp.read(2)) # default - - nencoding = (last_col - first_col + 1) * (last_row - first_row + 1) - - # map character code to bitmap index - encoding: list[int | None] = [None] * min(256, nencoding) - - encoding_offsets = [i16(fp.read(2)) for _ in range(nencoding)] - - for i in range(first_col, len(encoding)): - try: - encoding_offset = encoding_offsets[ - ord(bytearray([i]).decode(self.charset_encoding)) - ] - if encoding_offset != 0xFFFF: - encoding[i] = encoding_offset - except UnicodeDecodeError: - # character is not supported in selected encoding - pass - - return encoding diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcxImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcxImagePlugin.py deleted file mode 100644 index 98ecefd..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PcxImagePlugin.py +++ /dev/null @@ -1,222 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# PCX file handling -# -# This format was originally used by ZSoft's popular PaintBrush -# program for the IBM PC. It is also supported by many MS-DOS and -# Windows applications, including the Windows PaintBrush program in -# Windows 3. -# -# history: -# 1995-09-01 fl Created -# 1996-05-20 fl Fixed RGB support -# 1997-01-03 fl Fixed 2-bit and 4-bit support -# 1999-02-03 fl Fixed 8-bit support (broken in 1.0b1) -# 1999-02-07 fl Added write support -# 2002-06-09 fl Made 2-bit and 4-bit support a bit more robust -# 2002-07-30 fl Seek from to current position, not beginning of file -# 2003-06-03 fl Extract DPI settings (info["dpi"]) -# -# Copyright (c) 1997-2003 by Secret Labs AB. -# Copyright (c) 1995-2003 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -import logging - -from . import Image, ImageFile, ImagePalette -from ._binary import i16le as i16 -from ._binary import o8 -from ._binary import o16le as o16 - -logger = logging.getLogger(__name__) - - -def _accept(prefix): - return prefix[0] == 10 and prefix[1] in [0, 2, 3, 5] - - -## -# Image plugin for Paintbrush images. - - -class PcxImageFile(ImageFile.ImageFile): - format = "PCX" - format_description = "Paintbrush" - - def _open(self): - # header - s = self.fp.read(128) - if not _accept(s): - msg = "not a PCX file" - raise SyntaxError(msg) - - # image - bbox = i16(s, 4), i16(s, 6), i16(s, 8) + 1, i16(s, 10) + 1 - if bbox[2] <= bbox[0] or bbox[3] <= bbox[1]: - msg = "bad PCX image size" - raise SyntaxError(msg) - logger.debug("BBox: %s %s %s %s", *bbox) - - # format - version = s[1] - bits = s[3] - planes = s[65] - provided_stride = i16(s, 66) - logger.debug( - "PCX version %s, bits %s, planes %s, stride %s", - version, - bits, - planes, - provided_stride, - ) - - self.info["dpi"] = i16(s, 12), i16(s, 14) - - if bits == 1 and planes == 1: - mode = rawmode = "1" - - elif bits == 1 and planes in (2, 4): - mode = "P" - rawmode = "P;%dL" % planes - self.palette = ImagePalette.raw("RGB", s[16:64]) - - elif version == 5 and bits == 8 and planes == 1: - mode = rawmode = "L" - # FIXME: hey, this doesn't work with the incremental loader !!! - self.fp.seek(-769, io.SEEK_END) - s = self.fp.read(769) - if len(s) == 769 and s[0] == 12: - # check if the palette is linear grayscale - for i in range(256): - if s[i * 3 + 1 : i * 3 + 4] != o8(i) * 3: - mode = rawmode = "P" - break - if mode == "P": - self.palette = ImagePalette.raw("RGB", s[1:]) - self.fp.seek(128) - - elif version == 5 and bits == 8 and planes == 3: - mode = "RGB" - rawmode = "RGB;L" - - else: - msg = "unknown PCX mode" - raise OSError(msg) - - self._mode = mode - self._size = bbox[2] - bbox[0], bbox[3] - bbox[1] - - # Don't trust the passed in stride. - # Calculate the approximate position for ourselves. - # CVE-2020-35653 - stride = (self._size[0] * bits + 7) // 8 - - # While the specification states that this must be even, - # not all images follow this - if provided_stride != stride: - stride += stride % 2 - - bbox = (0, 0) + self.size - logger.debug("size: %sx%s", *self.size) - - self.tile = [("pcx", bbox, self.fp.tell(), (rawmode, planes * stride))] - - -# -------------------------------------------------------------------- -# save PCX files - - -SAVE = { - # mode: (version, bits, planes, raw mode) - "1": (2, 1, 1, "1"), - "L": (5, 8, 1, "L"), - "P": (5, 8, 1, "P"), - "RGB": (5, 8, 3, "RGB;L"), -} - - -def _save(im, fp, filename): - try: - version, bits, planes, rawmode = SAVE[im.mode] - except KeyError as e: - msg = f"Cannot save {im.mode} images as PCX" - raise ValueError(msg) from e - - # bytes per plane - stride = (im.size[0] * bits + 7) // 8 - # stride should be even - stride += stride % 2 - # Stride needs to be kept in sync with the PcxEncode.c version. - # Ideally it should be passed in in the state, but the bytes value - # gets overwritten. - - logger.debug( - "PcxImagePlugin._save: xwidth: %d, bits: %d, stride: %d", - im.size[0], - bits, - stride, - ) - - # under windows, we could determine the current screen size with - # "Image.core.display_mode()[1]", but I think that's overkill... - - screen = im.size - - dpi = 100, 100 - - # PCX header - fp.write( - o8(10) - + o8(version) - + o8(1) - + o8(bits) - + o16(0) - + o16(0) - + o16(im.size[0] - 1) - + o16(im.size[1] - 1) - + o16(dpi[0]) - + o16(dpi[1]) - + b"\0" * 24 - + b"\xFF" * 24 - + b"\0" - + o8(planes) - + o16(stride) - + o16(1) - + o16(screen[0]) - + o16(screen[1]) - + b"\0" * 54 - ) - - assert fp.tell() == 128 - - ImageFile._save(im, fp, [("pcx", (0, 0) + im.size, 0, (rawmode, bits * planes))]) - - if im.mode == "P": - # colour palette - fp.write(o8(12)) - palette = im.im.getpalette("RGB", "RGB") - palette += b"\x00" * (768 - len(palette)) - fp.write(palette) # 768 bytes - elif im.mode == "L": - # grayscale palette - fp.write(o8(12)) - for i in range(256): - fp.write(o8(i) * 3) - - -# -------------------------------------------------------------------- -# registry - - -Image.register_open(PcxImageFile.format, PcxImageFile, _accept) -Image.register_save(PcxImageFile.format, _save) - -Image.register_extension(PcxImageFile.format, ".pcx") - -Image.register_mime(PcxImageFile.format, "image/x-pcx") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PdfImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PdfImagePlugin.py deleted file mode 100644 index 3506aad..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PdfImagePlugin.py +++ /dev/null @@ -1,303 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# PDF (Acrobat) file handling -# -# History: -# 1996-07-16 fl Created -# 1997-01-18 fl Fixed header -# 2004-02-21 fl Fixes for 1/L/CMYK images, etc. -# 2004-02-24 fl Fixes for 1 and P images. -# -# Copyright (c) 1997-2004 by Secret Labs AB. All rights reserved. -# Copyright (c) 1996-1997 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# - -## -# Image plugin for PDF images (output only). -## -from __future__ import annotations - -import io -import math -import os -import time - -from . import Image, ImageFile, ImageSequence, PdfParser, __version__, features - -# -# -------------------------------------------------------------------- - -# object ids: -# 1. catalogue -# 2. pages -# 3. image -# 4. page -# 5. page contents - - -def _save_all(im, fp, filename): - _save(im, fp, filename, save_all=True) - - -## -# (Internal) Image save plugin for the PDF format. - - -def _write_image(im, filename, existing_pdf, image_refs): - # FIXME: Should replace ASCIIHexDecode with RunLengthDecode - # (packbits) or LZWDecode (tiff/lzw compression). Note that - # PDF 1.2 also supports Flatedecode (zip compression). - - params = None - decode = None - - # - # Get image characteristics - - width, height = im.size - - dict_obj = {"BitsPerComponent": 8} - if im.mode == "1": - if features.check("libtiff"): - filter = "CCITTFaxDecode" - dict_obj["BitsPerComponent"] = 1 - params = PdfParser.PdfArray( - [ - PdfParser.PdfDict( - { - "K": -1, - "BlackIs1": True, - "Columns": width, - "Rows": height, - } - ) - ] - ) - else: - filter = "DCTDecode" - dict_obj["ColorSpace"] = PdfParser.PdfName("DeviceGray") - procset = "ImageB" # grayscale - elif im.mode == "L": - filter = "DCTDecode" - # params = f"<< /Predictor 15 /Columns {width-2} >>" - dict_obj["ColorSpace"] = PdfParser.PdfName("DeviceGray") - procset = "ImageB" # grayscale - elif im.mode == "LA": - filter = "JPXDecode" - # params = f"<< /Predictor 15 /Columns {width-2} >>" - procset = "ImageB" # grayscale - dict_obj["SMaskInData"] = 1 - elif im.mode == "P": - filter = "ASCIIHexDecode" - palette = im.getpalette() - dict_obj["ColorSpace"] = [ - PdfParser.PdfName("Indexed"), - PdfParser.PdfName("DeviceRGB"), - len(palette) // 3 - 1, - PdfParser.PdfBinary(palette), - ] - procset = "ImageI" # indexed color - - if "transparency" in im.info: - smask = im.convert("LA").getchannel("A") - smask.encoderinfo = {} - - image_ref = _write_image(smask, filename, existing_pdf, image_refs)[0] - dict_obj["SMask"] = image_ref - elif im.mode == "RGB": - filter = "DCTDecode" - dict_obj["ColorSpace"] = PdfParser.PdfName("DeviceRGB") - procset = "ImageC" # color images - elif im.mode == "RGBA": - filter = "JPXDecode" - procset = "ImageC" # color images - dict_obj["SMaskInData"] = 1 - elif im.mode == "CMYK": - filter = "DCTDecode" - dict_obj["ColorSpace"] = PdfParser.PdfName("DeviceCMYK") - procset = "ImageC" # color images - decode = [1, 0, 1, 0, 1, 0, 1, 0] - else: - msg = f"cannot save mode {im.mode}" - raise ValueError(msg) - - # - # image - - op = io.BytesIO() - - if filter == "ASCIIHexDecode": - ImageFile._save(im, op, [("hex", (0, 0) + im.size, 0, im.mode)]) - elif filter == "CCITTFaxDecode": - im.save( - op, - "TIFF", - compression="group4", - # use a single strip - strip_size=math.ceil(width / 8) * height, - ) - elif filter == "DCTDecode": - Image.SAVE["JPEG"](im, op, filename) - elif filter == "JPXDecode": - del dict_obj["BitsPerComponent"] - Image.SAVE["JPEG2000"](im, op, filename) - else: - msg = f"unsupported PDF filter ({filter})" - raise ValueError(msg) - - stream = op.getvalue() - if filter == "CCITTFaxDecode": - stream = stream[8:] - filter = PdfParser.PdfArray([PdfParser.PdfName(filter)]) - else: - filter = PdfParser.PdfName(filter) - - image_ref = image_refs.pop(0) - existing_pdf.write_obj( - image_ref, - stream=stream, - Type=PdfParser.PdfName("XObject"), - Subtype=PdfParser.PdfName("Image"), - Width=width, # * 72.0 / x_resolution, - Height=height, # * 72.0 / y_resolution, - Filter=filter, - Decode=decode, - DecodeParms=params, - **dict_obj, - ) - - return image_ref, procset - - -def _save(im, fp, filename, save_all=False): - is_appending = im.encoderinfo.get("append", False) - if is_appending: - existing_pdf = PdfParser.PdfParser(f=fp, filename=filename, mode="r+b") - else: - existing_pdf = PdfParser.PdfParser(f=fp, filename=filename, mode="w+b") - - dpi = im.encoderinfo.get("dpi") - if dpi: - x_resolution = dpi[0] - y_resolution = dpi[1] - else: - x_resolution = y_resolution = im.encoderinfo.get("resolution", 72.0) - - info = { - "title": None - if is_appending - else os.path.splitext(os.path.basename(filename))[0], - "author": None, - "subject": None, - "keywords": None, - "creator": None, - "producer": None, - "creationDate": None if is_appending else time.gmtime(), - "modDate": None if is_appending else time.gmtime(), - } - for k, default in info.items(): - v = im.encoderinfo.get(k) if k in im.encoderinfo else default - if v: - existing_pdf.info[k[0].upper() + k[1:]] = v - - # - # make sure image data is available - im.load() - - existing_pdf.start_writing() - existing_pdf.write_header() - existing_pdf.write_comment(f"created by Pillow {__version__} PDF driver") - - # - # pages - ims = [im] - if save_all: - append_images = im.encoderinfo.get("append_images", []) - for append_im in append_images: - append_im.encoderinfo = im.encoderinfo.copy() - ims.append(append_im) - number_of_pages = 0 - image_refs = [] - page_refs = [] - contents_refs = [] - for im in ims: - im_number_of_pages = 1 - if save_all: - try: - im_number_of_pages = im.n_frames - except AttributeError: - # Image format does not have n_frames. - # It is a single frame image - pass - number_of_pages += im_number_of_pages - for i in range(im_number_of_pages): - image_refs.append(existing_pdf.next_object_id(0)) - if im.mode == "P" and "transparency" in im.info: - image_refs.append(existing_pdf.next_object_id(0)) - - page_refs.append(existing_pdf.next_object_id(0)) - contents_refs.append(existing_pdf.next_object_id(0)) - existing_pdf.pages.append(page_refs[-1]) - - # - # catalog and list of pages - existing_pdf.write_catalog() - - page_number = 0 - for im_sequence in ims: - im_pages = ImageSequence.Iterator(im_sequence) if save_all else [im_sequence] - for im in im_pages: - image_ref, procset = _write_image(im, filename, existing_pdf, image_refs) - - # - # page - - existing_pdf.write_page( - page_refs[page_number], - Resources=PdfParser.PdfDict( - ProcSet=[PdfParser.PdfName("PDF"), PdfParser.PdfName(procset)], - XObject=PdfParser.PdfDict(image=image_ref), - ), - MediaBox=[ - 0, - 0, - im.width * 72.0 / x_resolution, - im.height * 72.0 / y_resolution, - ], - Contents=contents_refs[page_number], - ) - - # - # page contents - - page_contents = b"q %f 0 0 %f 0 0 cm /image Do Q\n" % ( - im.width * 72.0 / x_resolution, - im.height * 72.0 / y_resolution, - ) - - existing_pdf.write_obj(contents_refs[page_number], stream=page_contents) - - page_number += 1 - - # - # trailer - existing_pdf.write_xref_and_trailer() - if hasattr(fp, "flush"): - fp.flush() - existing_pdf.close() - - -# -# -------------------------------------------------------------------- - - -Image.register_save("PDF", _save) -Image.register_save_all("PDF", _save_all) - -Image.register_extension("PDF", ".pdf") - -Image.register_mime("PDF", "application/pdf") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PdfParser.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PdfParser.py deleted file mode 100644 index 0144600..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PdfParser.py +++ /dev/null @@ -1,998 +0,0 @@ -from __future__ import annotations - -import calendar -import codecs -import collections -import mmap -import os -import re -import time -import zlib - - -# see 7.9.2.2 Text String Type on page 86 and D.3 PDFDocEncoding Character Set -# on page 656 -def encode_text(s): - return codecs.BOM_UTF16_BE + s.encode("utf_16_be") - - -PDFDocEncoding = { - 0x16: "\u0017", - 0x18: "\u02D8", - 0x19: "\u02C7", - 0x1A: "\u02C6", - 0x1B: "\u02D9", - 0x1C: "\u02DD", - 0x1D: "\u02DB", - 0x1E: "\u02DA", - 0x1F: "\u02DC", - 0x80: "\u2022", - 0x81: "\u2020", - 0x82: "\u2021", - 0x83: "\u2026", - 0x84: "\u2014", - 0x85: "\u2013", - 0x86: "\u0192", - 0x87: "\u2044", - 0x88: "\u2039", - 0x89: "\u203A", - 0x8A: "\u2212", - 0x8B: "\u2030", - 0x8C: "\u201E", - 0x8D: "\u201C", - 0x8E: "\u201D", - 0x8F: "\u2018", - 0x90: "\u2019", - 0x91: "\u201A", - 0x92: "\u2122", - 0x93: "\uFB01", - 0x94: "\uFB02", - 0x95: "\u0141", - 0x96: "\u0152", - 0x97: "\u0160", - 0x98: "\u0178", - 0x99: "\u017D", - 0x9A: "\u0131", - 0x9B: "\u0142", - 0x9C: "\u0153", - 0x9D: "\u0161", - 0x9E: "\u017E", - 0xA0: "\u20AC", -} - - -def decode_text(b): - if b[: len(codecs.BOM_UTF16_BE)] == codecs.BOM_UTF16_BE: - return b[len(codecs.BOM_UTF16_BE) :].decode("utf_16_be") - else: - return "".join(PDFDocEncoding.get(byte, chr(byte)) for byte in b) - - -class PdfFormatError(RuntimeError): - """An error that probably indicates a syntactic or semantic error in the - PDF file structure""" - - pass - - -def check_format_condition(condition, error_message): - if not condition: - raise PdfFormatError(error_message) - - -class IndirectReference( - collections.namedtuple("IndirectReferenceTuple", ["object_id", "generation"]) -): - def __str__(self): - return f"{self.object_id} {self.generation} R" - - def __bytes__(self): - return self.__str__().encode("us-ascii") - - def __eq__(self, other): - return ( - other.__class__ is self.__class__ - and other.object_id == self.object_id - and other.generation == self.generation - ) - - def __ne__(self, other): - return not (self == other) - - def __hash__(self): - return hash((self.object_id, self.generation)) - - -class IndirectObjectDef(IndirectReference): - def __str__(self): - return f"{self.object_id} {self.generation} obj" - - -class XrefTable: - def __init__(self): - self.existing_entries = {} # object ID => (offset, generation) - self.new_entries = {} # object ID => (offset, generation) - self.deleted_entries = {0: 65536} # object ID => generation - self.reading_finished = False - - def __setitem__(self, key, value): - if self.reading_finished: - self.new_entries[key] = value - else: - self.existing_entries[key] = value - if key in self.deleted_entries: - del self.deleted_entries[key] - - def __getitem__(self, key): - try: - return self.new_entries[key] - except KeyError: - return self.existing_entries[key] - - def __delitem__(self, key): - if key in self.new_entries: - generation = self.new_entries[key][1] + 1 - del self.new_entries[key] - self.deleted_entries[key] = generation - elif key in self.existing_entries: - generation = self.existing_entries[key][1] + 1 - self.deleted_entries[key] = generation - elif key in self.deleted_entries: - generation = self.deleted_entries[key] - else: - msg = ( - "object ID " + str(key) + " cannot be deleted because it doesn't exist" - ) - raise IndexError(msg) - - def __contains__(self, key): - return key in self.existing_entries or key in self.new_entries - - def __len__(self): - return len( - set(self.existing_entries.keys()) - | set(self.new_entries.keys()) - | set(self.deleted_entries.keys()) - ) - - def keys(self): - return ( - set(self.existing_entries.keys()) - set(self.deleted_entries.keys()) - ) | set(self.new_entries.keys()) - - def write(self, f): - keys = sorted(set(self.new_entries.keys()) | set(self.deleted_entries.keys())) - deleted_keys = sorted(set(self.deleted_entries.keys())) - startxref = f.tell() - f.write(b"xref\n") - while keys: - # find a contiguous sequence of object IDs - prev = None - for index, key in enumerate(keys): - if prev is None or prev + 1 == key: - prev = key - else: - contiguous_keys = keys[:index] - keys = keys[index:] - break - else: - contiguous_keys = keys - keys = None - f.write(b"%d %d\n" % (contiguous_keys[0], len(contiguous_keys))) - for object_id in contiguous_keys: - if object_id in self.new_entries: - f.write(b"%010d %05d n \n" % self.new_entries[object_id]) - else: - this_deleted_object_id = deleted_keys.pop(0) - check_format_condition( - object_id == this_deleted_object_id, - f"expected the next deleted object ID to be {object_id}, " - f"instead found {this_deleted_object_id}", - ) - try: - next_in_linked_list = deleted_keys[0] - except IndexError: - next_in_linked_list = 0 - f.write( - b"%010d %05d f \n" - % (next_in_linked_list, self.deleted_entries[object_id]) - ) - return startxref - - -class PdfName: - def __init__(self, name): - if isinstance(name, PdfName): - self.name = name.name - elif isinstance(name, bytes): - self.name = name - else: - self.name = name.encode("us-ascii") - - def name_as_str(self): - return self.name.decode("us-ascii") - - def __eq__(self, other): - return ( - isinstance(other, PdfName) and other.name == self.name - ) or other == self.name - - def __hash__(self): - return hash(self.name) - - def __repr__(self): - return f"PdfName({repr(self.name)})" - - @classmethod - def from_pdf_stream(cls, data): - return cls(PdfParser.interpret_name(data)) - - allowed_chars = set(range(33, 127)) - {ord(c) for c in "#%/()<>[]{}"} - - def __bytes__(self): - result = bytearray(b"/") - for b in self.name: - if b in self.allowed_chars: - result.append(b) - else: - result.extend(b"#%02X" % b) - return bytes(result) - - -class PdfArray(list): - def __bytes__(self): - return b"[ " + b" ".join(pdf_repr(x) for x in self) + b" ]" - - -class PdfDict(collections.UserDict): - def __setattr__(self, key, value): - if key == "data": - collections.UserDict.__setattr__(self, key, value) - else: - self[key.encode("us-ascii")] = value - - def __getattr__(self, key): - try: - value = self[key.encode("us-ascii")] - except KeyError as e: - raise AttributeError(key) from e - if isinstance(value, bytes): - value = decode_text(value) - if key.endswith("Date"): - if value.startswith("D:"): - value = value[2:] - - relationship = "Z" - if len(value) > 17: - relationship = value[14] - offset = int(value[15:17]) * 60 - if len(value) > 20: - offset += int(value[18:20]) - - format = "%Y%m%d%H%M%S"[: len(value) - 2] - value = time.strptime(value[: len(format) + 2], format) - if relationship in ["+", "-"]: - offset *= 60 - if relationship == "+": - offset *= -1 - value = time.gmtime(calendar.timegm(value) + offset) - return value - - def __bytes__(self): - out = bytearray(b"<<") - for key, value in self.items(): - if value is None: - continue - value = pdf_repr(value) - out.extend(b"\n") - out.extend(bytes(PdfName(key))) - out.extend(b" ") - out.extend(value) - out.extend(b"\n>>") - return bytes(out) - - -class PdfBinary: - def __init__(self, data): - self.data = data - - def __bytes__(self): - return b"<%s>" % b"".join(b"%02X" % b for b in self.data) - - -class PdfStream: - def __init__(self, dictionary, buf): - self.dictionary = dictionary - self.buf = buf - - def decode(self): - try: - filter = self.dictionary.Filter - except AttributeError: - return self.buf - if filter == b"FlateDecode": - try: - expected_length = self.dictionary.DL - except AttributeError: - expected_length = self.dictionary.Length - return zlib.decompress(self.buf, bufsize=int(expected_length)) - else: - msg = f"stream filter {repr(self.dictionary.Filter)} unknown/unsupported" - raise NotImplementedError(msg) - - -def pdf_repr(x): - if x is True: - return b"true" - elif x is False: - return b"false" - elif x is None: - return b"null" - elif isinstance(x, (PdfName, PdfDict, PdfArray, PdfBinary)): - return bytes(x) - elif isinstance(x, (int, float)): - return str(x).encode("us-ascii") - elif isinstance(x, time.struct_time): - return b"(D:" + time.strftime("%Y%m%d%H%M%SZ", x).encode("us-ascii") + b")" - elif isinstance(x, dict): - return bytes(PdfDict(x)) - elif isinstance(x, list): - return bytes(PdfArray(x)) - elif isinstance(x, str): - return pdf_repr(encode_text(x)) - elif isinstance(x, bytes): - # XXX escape more chars? handle binary garbage - x = x.replace(b"\\", b"\\\\") - x = x.replace(b"(", b"\\(") - x = x.replace(b")", b"\\)") - return b"(" + x + b")" - else: - return bytes(x) - - -class PdfParser: - """Based on - https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf - Supports PDF up to 1.4 - """ - - def __init__(self, filename=None, f=None, buf=None, start_offset=0, mode="rb"): - if buf and f: - msg = "specify buf or f or filename, but not both buf and f" - raise RuntimeError(msg) - self.filename = filename - self.buf = buf - self.f = f - self.start_offset = start_offset - self.should_close_buf = False - self.should_close_file = False - if filename is not None and f is None: - self.f = f = open(filename, mode) - self.should_close_file = True - if f is not None: - self.buf = buf = self.get_buf_from_file(f) - self.should_close_buf = True - if not filename and hasattr(f, "name"): - self.filename = f.name - self.cached_objects = {} - if buf: - self.read_pdf_info() - else: - self.file_size_total = self.file_size_this = 0 - self.root = PdfDict() - self.root_ref = None - self.info = PdfDict() - self.info_ref = None - self.page_tree_root = {} - self.pages = [] - self.orig_pages = [] - self.pages_ref = None - self.last_xref_section_offset = None - self.trailer_dict = {} - self.xref_table = XrefTable() - self.xref_table.reading_finished = True - if f: - self.seek_end() - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_value, traceback): - self.close() - return False # do not suppress exceptions - - def start_writing(self): - self.close_buf() - self.seek_end() - - def close_buf(self): - try: - self.buf.close() - except AttributeError: - pass - self.buf = None - - def close(self): - if self.should_close_buf: - self.close_buf() - if self.f is not None and self.should_close_file: - self.f.close() - self.f = None - - def seek_end(self): - self.f.seek(0, os.SEEK_END) - - def write_header(self): - self.f.write(b"%PDF-1.4\n") - - def write_comment(self, s): - self.f.write(f"% {s}\n".encode()) - - def write_catalog(self): - self.del_root() - self.root_ref = self.next_object_id(self.f.tell()) - self.pages_ref = self.next_object_id(0) - self.rewrite_pages() - self.write_obj(self.root_ref, Type=PdfName(b"Catalog"), Pages=self.pages_ref) - self.write_obj( - self.pages_ref, - Type=PdfName(b"Pages"), - Count=len(self.pages), - Kids=self.pages, - ) - return self.root_ref - - def rewrite_pages(self): - pages_tree_nodes_to_delete = [] - for i, page_ref in enumerate(self.orig_pages): - page_info = self.cached_objects[page_ref] - del self.xref_table[page_ref.object_id] - pages_tree_nodes_to_delete.append(page_info[PdfName(b"Parent")]) - if page_ref not in self.pages: - # the page has been deleted - continue - # make dict keys into strings for passing to write_page - stringified_page_info = {} - for key, value in page_info.items(): - # key should be a PdfName - stringified_page_info[key.name_as_str()] = value - stringified_page_info["Parent"] = self.pages_ref - new_page_ref = self.write_page(None, **stringified_page_info) - for j, cur_page_ref in enumerate(self.pages): - if cur_page_ref == page_ref: - # replace the page reference with the new one - self.pages[j] = new_page_ref - # delete redundant Pages tree nodes from xref table - for pages_tree_node_ref in pages_tree_nodes_to_delete: - while pages_tree_node_ref: - pages_tree_node = self.cached_objects[pages_tree_node_ref] - if pages_tree_node_ref.object_id in self.xref_table: - del self.xref_table[pages_tree_node_ref.object_id] - pages_tree_node_ref = pages_tree_node.get(b"Parent", None) - self.orig_pages = [] - - def write_xref_and_trailer(self, new_root_ref=None): - if new_root_ref: - self.del_root() - self.root_ref = new_root_ref - if self.info: - self.info_ref = self.write_obj(None, self.info) - start_xref = self.xref_table.write(self.f) - num_entries = len(self.xref_table) - trailer_dict = {b"Root": self.root_ref, b"Size": num_entries} - if self.last_xref_section_offset is not None: - trailer_dict[b"Prev"] = self.last_xref_section_offset - if self.info: - trailer_dict[b"Info"] = self.info_ref - self.last_xref_section_offset = start_xref - self.f.write( - b"trailer\n" - + bytes(PdfDict(trailer_dict)) - + b"\nstartxref\n%d\n%%%%EOF" % start_xref - ) - - def write_page(self, ref, *objs, **dict_obj): - if isinstance(ref, int): - ref = self.pages[ref] - if "Type" not in dict_obj: - dict_obj["Type"] = PdfName(b"Page") - if "Parent" not in dict_obj: - dict_obj["Parent"] = self.pages_ref - return self.write_obj(ref, *objs, **dict_obj) - - def write_obj(self, ref, *objs, **dict_obj): - f = self.f - if ref is None: - ref = self.next_object_id(f.tell()) - else: - self.xref_table[ref.object_id] = (f.tell(), ref.generation) - f.write(bytes(IndirectObjectDef(*ref))) - stream = dict_obj.pop("stream", None) - if stream is not None: - dict_obj["Length"] = len(stream) - if dict_obj: - f.write(pdf_repr(dict_obj)) - for obj in objs: - f.write(pdf_repr(obj)) - if stream is not None: - f.write(b"stream\n") - f.write(stream) - f.write(b"\nendstream\n") - f.write(b"endobj\n") - return ref - - def del_root(self): - if self.root_ref is None: - return - del self.xref_table[self.root_ref.object_id] - del self.xref_table[self.root[b"Pages"].object_id] - - @staticmethod - def get_buf_from_file(f): - if hasattr(f, "getbuffer"): - return f.getbuffer() - elif hasattr(f, "getvalue"): - return f.getvalue() - else: - try: - return mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) - except ValueError: # cannot mmap an empty file - return b"" - - def read_pdf_info(self): - self.file_size_total = len(self.buf) - self.file_size_this = self.file_size_total - self.start_offset - self.read_trailer() - self.root_ref = self.trailer_dict[b"Root"] - self.info_ref = self.trailer_dict.get(b"Info", None) - self.root = PdfDict(self.read_indirect(self.root_ref)) - if self.info_ref is None: - self.info = PdfDict() - else: - self.info = PdfDict(self.read_indirect(self.info_ref)) - check_format_condition(b"Type" in self.root, "/Type missing in Root") - check_format_condition( - self.root[b"Type"] == b"Catalog", "/Type in Root is not /Catalog" - ) - check_format_condition(b"Pages" in self.root, "/Pages missing in Root") - check_format_condition( - isinstance(self.root[b"Pages"], IndirectReference), - "/Pages in Root is not an indirect reference", - ) - self.pages_ref = self.root[b"Pages"] - self.page_tree_root = self.read_indirect(self.pages_ref) - self.pages = self.linearize_page_tree(self.page_tree_root) - # save the original list of page references - # in case the user modifies, adds or deletes some pages - # and we need to rewrite the pages and their list - self.orig_pages = self.pages[:] - - def next_object_id(self, offset=None): - try: - # TODO: support reuse of deleted objects - reference = IndirectReference(max(self.xref_table.keys()) + 1, 0) - except ValueError: - reference = IndirectReference(1, 0) - if offset is not None: - self.xref_table[reference.object_id] = (offset, 0) - return reference - - delimiter = rb"[][()<>{}/%]" - delimiter_or_ws = rb"[][()<>{}/%\000\011\012\014\015\040]" - whitespace = rb"[\000\011\012\014\015\040]" - whitespace_or_hex = rb"[\000\011\012\014\015\0400-9a-fA-F]" - whitespace_optional = whitespace + b"*" - whitespace_mandatory = whitespace + b"+" - # No "\012" aka "\n" or "\015" aka "\r": - whitespace_optional_no_nl = rb"[\000\011\014\040]*" - newline_only = rb"[\r\n]+" - newline = whitespace_optional_no_nl + newline_only + whitespace_optional_no_nl - re_trailer_end = re.compile( - whitespace_mandatory - + rb"trailer" - + whitespace_optional - + rb"<<(.*>>)" - + newline - + rb"startxref" - + newline - + rb"([0-9]+)" - + newline - + rb"%%EOF" - + whitespace_optional - + rb"$", - re.DOTALL, - ) - re_trailer_prev = re.compile( - whitespace_optional - + rb"trailer" - + whitespace_optional - + rb"<<(.*?>>)" - + newline - + rb"startxref" - + newline - + rb"([0-9]+)" - + newline - + rb"%%EOF" - + whitespace_optional, - re.DOTALL, - ) - - def read_trailer(self): - search_start_offset = len(self.buf) - 16384 - if search_start_offset < self.start_offset: - search_start_offset = self.start_offset - m = self.re_trailer_end.search(self.buf, search_start_offset) - check_format_condition(m, "trailer end not found") - # make sure we found the LAST trailer - last_match = m - while m: - last_match = m - m = self.re_trailer_end.search(self.buf, m.start() + 16) - if not m: - m = last_match - trailer_data = m.group(1) - self.last_xref_section_offset = int(m.group(2)) - self.trailer_dict = self.interpret_trailer(trailer_data) - self.xref_table = XrefTable() - self.read_xref_table(xref_section_offset=self.last_xref_section_offset) - if b"Prev" in self.trailer_dict: - self.read_prev_trailer(self.trailer_dict[b"Prev"]) - - def read_prev_trailer(self, xref_section_offset): - trailer_offset = self.read_xref_table(xref_section_offset=xref_section_offset) - m = self.re_trailer_prev.search( - self.buf[trailer_offset : trailer_offset + 16384] - ) - check_format_condition(m, "previous trailer not found") - trailer_data = m.group(1) - check_format_condition( - int(m.group(2)) == xref_section_offset, - "xref section offset in previous trailer doesn't match what was expected", - ) - trailer_dict = self.interpret_trailer(trailer_data) - if b"Prev" in trailer_dict: - self.read_prev_trailer(trailer_dict[b"Prev"]) - - re_whitespace_optional = re.compile(whitespace_optional) - re_name = re.compile( - whitespace_optional - + rb"/([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=" - + delimiter_or_ws - + rb")" - ) - re_dict_start = re.compile(whitespace_optional + rb"<<") - re_dict_end = re.compile(whitespace_optional + rb">>" + whitespace_optional) - - @classmethod - def interpret_trailer(cls, trailer_data): - trailer = {} - offset = 0 - while True: - m = cls.re_name.match(trailer_data, offset) - if not m: - m = cls.re_dict_end.match(trailer_data, offset) - check_format_condition( - m and m.end() == len(trailer_data), - "name not found in trailer, remaining data: " - + repr(trailer_data[offset:]), - ) - break - key = cls.interpret_name(m.group(1)) - value, offset = cls.get_value(trailer_data, m.end()) - trailer[key] = value - check_format_condition( - b"Size" in trailer and isinstance(trailer[b"Size"], int), - "/Size not in trailer or not an integer", - ) - check_format_condition( - b"Root" in trailer and isinstance(trailer[b"Root"], IndirectReference), - "/Root not in trailer or not an indirect reference", - ) - return trailer - - re_hashes_in_name = re.compile(rb"([^#]*)(#([0-9a-fA-F]{2}))?") - - @classmethod - def interpret_name(cls, raw, as_text=False): - name = b"" - for m in cls.re_hashes_in_name.finditer(raw): - if m.group(3): - name += m.group(1) + bytearray.fromhex(m.group(3).decode("us-ascii")) - else: - name += m.group(1) - if as_text: - return name.decode("utf-8") - else: - return bytes(name) - - re_null = re.compile(whitespace_optional + rb"null(?=" + delimiter_or_ws + rb")") - re_true = re.compile(whitespace_optional + rb"true(?=" + delimiter_or_ws + rb")") - re_false = re.compile(whitespace_optional + rb"false(?=" + delimiter_or_ws + rb")") - re_int = re.compile( - whitespace_optional + rb"([-+]?[0-9]+)(?=" + delimiter_or_ws + rb")" - ) - re_real = re.compile( - whitespace_optional - + rb"([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=" - + delimiter_or_ws - + rb")" - ) - re_array_start = re.compile(whitespace_optional + rb"\[") - re_array_end = re.compile(whitespace_optional + rb"]") - re_string_hex = re.compile( - whitespace_optional + rb"<(" + whitespace_or_hex + rb"*)>" - ) - re_string_lit = re.compile(whitespace_optional + rb"\(") - re_indirect_reference = re.compile( - whitespace_optional - + rb"([-+]?[0-9]+)" - + whitespace_mandatory - + rb"([-+]?[0-9]+)" - + whitespace_mandatory - + rb"R(?=" - + delimiter_or_ws - + rb")" - ) - re_indirect_def_start = re.compile( - whitespace_optional - + rb"([-+]?[0-9]+)" - + whitespace_mandatory - + rb"([-+]?[0-9]+)" - + whitespace_mandatory - + rb"obj(?=" - + delimiter_or_ws - + rb")" - ) - re_indirect_def_end = re.compile( - whitespace_optional + rb"endobj(?=" + delimiter_or_ws + rb")" - ) - re_comment = re.compile( - rb"(" + whitespace_optional + rb"%[^\r\n]*" + newline + rb")*" - ) - re_stream_start = re.compile(whitespace_optional + rb"stream\r?\n") - re_stream_end = re.compile( - whitespace_optional + rb"endstream(?=" + delimiter_or_ws + rb")" - ) - - @classmethod - def get_value(cls, data, offset, expect_indirect=None, max_nesting=-1): - if max_nesting == 0: - return None, None - m = cls.re_comment.match(data, offset) - if m: - offset = m.end() - m = cls.re_indirect_def_start.match(data, offset) - if m: - check_format_condition( - int(m.group(1)) > 0, - "indirect object definition: object ID must be greater than 0", - ) - check_format_condition( - int(m.group(2)) >= 0, - "indirect object definition: generation must be non-negative", - ) - check_format_condition( - expect_indirect is None - or expect_indirect - == IndirectReference(int(m.group(1)), int(m.group(2))), - "indirect object definition different than expected", - ) - object, offset = cls.get_value(data, m.end(), max_nesting=max_nesting - 1) - if offset is None: - return object, None - m = cls.re_indirect_def_end.match(data, offset) - check_format_condition(m, "indirect object definition end not found") - return object, m.end() - check_format_condition( - not expect_indirect, "indirect object definition not found" - ) - m = cls.re_indirect_reference.match(data, offset) - if m: - check_format_condition( - int(m.group(1)) > 0, - "indirect object reference: object ID must be greater than 0", - ) - check_format_condition( - int(m.group(2)) >= 0, - "indirect object reference: generation must be non-negative", - ) - return IndirectReference(int(m.group(1)), int(m.group(2))), m.end() - m = cls.re_dict_start.match(data, offset) - if m: - offset = m.end() - result = {} - m = cls.re_dict_end.match(data, offset) - while not m: - key, offset = cls.get_value(data, offset, max_nesting=max_nesting - 1) - if offset is None: - return result, None - value, offset = cls.get_value(data, offset, max_nesting=max_nesting - 1) - result[key] = value - if offset is None: - return result, None - m = cls.re_dict_end.match(data, offset) - offset = m.end() - m = cls.re_stream_start.match(data, offset) - if m: - try: - stream_len = int(result[b"Length"]) - except (TypeError, KeyError, ValueError) as e: - msg = "bad or missing Length in stream dict (%r)" % result.get( - b"Length", None - ) - raise PdfFormatError(msg) from e - stream_data = data[m.end() : m.end() + stream_len] - m = cls.re_stream_end.match(data, m.end() + stream_len) - check_format_condition(m, "stream end not found") - offset = m.end() - result = PdfStream(PdfDict(result), stream_data) - else: - result = PdfDict(result) - return result, offset - m = cls.re_array_start.match(data, offset) - if m: - offset = m.end() - result = [] - m = cls.re_array_end.match(data, offset) - while not m: - value, offset = cls.get_value(data, offset, max_nesting=max_nesting - 1) - result.append(value) - if offset is None: - return result, None - m = cls.re_array_end.match(data, offset) - return result, m.end() - m = cls.re_null.match(data, offset) - if m: - return None, m.end() - m = cls.re_true.match(data, offset) - if m: - return True, m.end() - m = cls.re_false.match(data, offset) - if m: - return False, m.end() - m = cls.re_name.match(data, offset) - if m: - return PdfName(cls.interpret_name(m.group(1))), m.end() - m = cls.re_int.match(data, offset) - if m: - return int(m.group(1)), m.end() - m = cls.re_real.match(data, offset) - if m: - # XXX Decimal instead of float??? - return float(m.group(1)), m.end() - m = cls.re_string_hex.match(data, offset) - if m: - # filter out whitespace - hex_string = bytearray( - b for b in m.group(1) if b in b"0123456789abcdefABCDEF" - ) - if len(hex_string) % 2 == 1: - # append a 0 if the length is not even - yes, at the end - hex_string.append(ord(b"0")) - return bytearray.fromhex(hex_string.decode("us-ascii")), m.end() - m = cls.re_string_lit.match(data, offset) - if m: - return cls.get_literal_string(data, m.end()) - # return None, offset # fallback (only for debugging) - msg = "unrecognized object: " + repr(data[offset : offset + 32]) - raise PdfFormatError(msg) - - re_lit_str_token = re.compile( - rb"(\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))" - ) - escaped_chars = { - b"n": b"\n", - b"r": b"\r", - b"t": b"\t", - b"b": b"\b", - b"f": b"\f", - b"(": b"(", - b")": b")", - b"\\": b"\\", - ord(b"n"): b"\n", - ord(b"r"): b"\r", - ord(b"t"): b"\t", - ord(b"b"): b"\b", - ord(b"f"): b"\f", - ord(b"("): b"(", - ord(b")"): b")", - ord(b"\\"): b"\\", - } - - @classmethod - def get_literal_string(cls, data, offset): - nesting_depth = 0 - result = bytearray() - for m in cls.re_lit_str_token.finditer(data, offset): - result.extend(data[offset : m.start()]) - if m.group(1): - result.extend(cls.escaped_chars[m.group(1)[1]]) - elif m.group(2): - result.append(int(m.group(2)[1:], 8)) - elif m.group(3): - pass - elif m.group(5): - result.extend(b"\n") - elif m.group(6): - result.extend(b"(") - nesting_depth += 1 - elif m.group(7): - if nesting_depth == 0: - return bytes(result), m.end() - result.extend(b")") - nesting_depth -= 1 - offset = m.end() - msg = "unfinished literal string" - raise PdfFormatError(msg) - - re_xref_section_start = re.compile(whitespace_optional + rb"xref" + newline) - re_xref_subsection_start = re.compile( - whitespace_optional - + rb"([0-9]+)" - + whitespace_mandatory - + rb"([0-9]+)" - + whitespace_optional - + newline_only - ) - re_xref_entry = re.compile(rb"([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)") - - def read_xref_table(self, xref_section_offset): - subsection_found = False - m = self.re_xref_section_start.match( - self.buf, xref_section_offset + self.start_offset - ) - check_format_condition(m, "xref section start not found") - offset = m.end() - while True: - m = self.re_xref_subsection_start.match(self.buf, offset) - if not m: - check_format_condition( - subsection_found, "xref subsection start not found" - ) - break - subsection_found = True - offset = m.end() - first_object = int(m.group(1)) - num_objects = int(m.group(2)) - for i in range(first_object, first_object + num_objects): - m = self.re_xref_entry.match(self.buf, offset) - check_format_condition(m, "xref entry not found") - offset = m.end() - is_free = m.group(3) == b"f" - if not is_free: - generation = int(m.group(2)) - new_entry = (int(m.group(1)), generation) - if i not in self.xref_table: - self.xref_table[i] = new_entry - return offset - - def read_indirect(self, ref, max_nesting=-1): - offset, generation = self.xref_table[ref[0]] - check_format_condition( - generation == ref[1], - f"expected to find generation {ref[1]} for object ID {ref[0]} in xref " - f"table, instead found generation {generation} at offset {offset}", - ) - value = self.get_value( - self.buf, - offset + self.start_offset, - expect_indirect=IndirectReference(*ref), - max_nesting=max_nesting, - )[0] - self.cached_objects[ref] = value - return value - - def linearize_page_tree(self, node=None): - if node is None: - node = self.page_tree_root - check_format_condition( - node[b"Type"] == b"Pages", "/Type of page tree node is not /Pages" - ) - pages = [] - for kid in node[b"Kids"]: - kid_object = self.read_indirect(kid) - if kid_object[b"Type"] == b"Page": - pages.append(kid) - else: - pages.extend(self.linearize_page_tree(node=kid_object)) - return pages diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PixarImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PixarImagePlugin.py deleted file mode 100644 index af866fe..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PixarImagePlugin.py +++ /dev/null @@ -1,70 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# PIXAR raster support for PIL -# -# history: -# 97-01-29 fl Created -# -# notes: -# This is incomplete; it is based on a few samples created with -# Photoshop 2.5 and 3.0, and a summary description provided by -# Greg Coats . Hopefully, "L" and -# "RGBA" support will be added in future versions. -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1997. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFile -from ._binary import i16le as i16 - -# -# helpers - - -def _accept(prefix): - return prefix[:4] == b"\200\350\000\000" - - -## -# Image plugin for PIXAR raster images. - - -class PixarImageFile(ImageFile.ImageFile): - format = "PIXAR" - format_description = "PIXAR raster image" - - def _open(self): - # assuming a 4-byte magic label - s = self.fp.read(4) - if not _accept(s): - msg = "not a PIXAR file" - raise SyntaxError(msg) - - # read rest of header - s = s + self.fp.read(508) - - self._size = i16(s, 418), i16(s, 416) - - # get channel/depth descriptions - mode = i16(s, 424), i16(s, 426) - - if mode == (14, 2): - self._mode = "RGB" - # FIXME: to be continued... - - # create tile descriptor (assuming "dumped") - self.tile = [("raw", (0, 0) + self.size, 1024, (self.mode, 0, 1))] - - -# -# -------------------------------------------------------------------- - -Image.register_open(PixarImageFile.format, PixarImageFile, _accept) - -Image.register_extension(PixarImageFile.format, ".pxr") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PngImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PngImagePlugin.py deleted file mode 100644 index e4ed938..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PngImagePlugin.py +++ /dev/null @@ -1,1460 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# PNG support code -# -# See "PNG (Portable Network Graphics) Specification, version 1.0; -# W3C Recommendation", 1996-10-01, Thomas Boutell (ed.). -# -# history: -# 1996-05-06 fl Created (couldn't resist it) -# 1996-12-14 fl Upgraded, added read and verify support (0.2) -# 1996-12-15 fl Separate PNG stream parser -# 1996-12-29 fl Added write support, added getchunks -# 1996-12-30 fl Eliminated circular references in decoder (0.3) -# 1998-07-12 fl Read/write 16-bit images as mode I (0.4) -# 2001-02-08 fl Added transparency support (from Zircon) (0.5) -# 2001-04-16 fl Don't close data source in "open" method (0.6) -# 2004-02-24 fl Don't even pretend to support interlaced files (0.7) -# 2004-08-31 fl Do basic sanity check on chunk identifiers (0.8) -# 2004-09-20 fl Added PngInfo chunk container -# 2004-12-18 fl Added DPI read support (based on code by Niki Spahiev) -# 2008-08-13 fl Added tRNS support for RGB images -# 2009-03-06 fl Support for preserving ICC profiles (by Florian Hoech) -# 2009-03-08 fl Added zTXT support (from Lowell Alleman) -# 2009-03-29 fl Read interlaced PNG files (from Conrado Porto Lopes Gouvua) -# -# Copyright (c) 1997-2009 by Secret Labs AB -# Copyright (c) 1996 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import itertools -import logging -import re -import struct -import warnings -import zlib -from enum import IntEnum - -from . import Image, ImageChops, ImageFile, ImagePalette, ImageSequence -from ._binary import i16be as i16 -from ._binary import i32be as i32 -from ._binary import o8 -from ._binary import o16be as o16 -from ._binary import o32be as o32 - -logger = logging.getLogger(__name__) - -is_cid = re.compile(rb"\w\w\w\w").match - - -_MAGIC = b"\211PNG\r\n\032\n" - - -_MODES = { - # supported bits/color combinations, and corresponding modes/rawmodes - # Grayscale - (1, 0): ("1", "1"), - (2, 0): ("L", "L;2"), - (4, 0): ("L", "L;4"), - (8, 0): ("L", "L"), - (16, 0): ("I", "I;16B"), - # Truecolour - (8, 2): ("RGB", "RGB"), - (16, 2): ("RGB", "RGB;16B"), - # Indexed-colour - (1, 3): ("P", "P;1"), - (2, 3): ("P", "P;2"), - (4, 3): ("P", "P;4"), - (8, 3): ("P", "P"), - # Grayscale with alpha - (8, 4): ("LA", "LA"), - (16, 4): ("RGBA", "LA;16B"), # LA;16B->LA not yet available - # Truecolour with alpha - (8, 6): ("RGBA", "RGBA"), - (16, 6): ("RGBA", "RGBA;16B"), -} - - -_simple_palette = re.compile(b"^\xff*\x00\xff*$") - -MAX_TEXT_CHUNK = ImageFile.SAFEBLOCK -""" -Maximum decompressed size for a iTXt or zTXt chunk. -Eliminates decompression bombs where compressed chunks can expand 1000x. -See :ref:`Text in PNG File Format`. -""" -MAX_TEXT_MEMORY = 64 * MAX_TEXT_CHUNK -""" -Set the maximum total text chunk size. -See :ref:`Text in PNG File Format`. -""" - - -# APNG frame disposal modes -class Disposal(IntEnum): - OP_NONE = 0 - """ - No disposal is done on this frame before rendering the next frame. - See :ref:`Saving APNG sequences`. - """ - OP_BACKGROUND = 1 - """ - This frame’s modified region is cleared to fully transparent black before rendering - the next frame. - See :ref:`Saving APNG sequences`. - """ - OP_PREVIOUS = 2 - """ - This frame’s modified region is reverted to the previous frame’s contents before - rendering the next frame. - See :ref:`Saving APNG sequences`. - """ - - -# APNG frame blend modes -class Blend(IntEnum): - OP_SOURCE = 0 - """ - All color components of this frame, including alpha, overwrite the previous output - image contents. - See :ref:`Saving APNG sequences`. - """ - OP_OVER = 1 - """ - This frame should be alpha composited with the previous output image contents. - See :ref:`Saving APNG sequences`. - """ - - -def _safe_zlib_decompress(s): - dobj = zlib.decompressobj() - plaintext = dobj.decompress(s, MAX_TEXT_CHUNK) - if dobj.unconsumed_tail: - msg = "Decompressed Data Too Large" - raise ValueError(msg) - return plaintext - - -def _crc32(data, seed=0): - return zlib.crc32(data, seed) & 0xFFFFFFFF - - -# -------------------------------------------------------------------- -# Support classes. Suitable for PNG and related formats like MNG etc. - - -class ChunkStream: - def __init__(self, fp): - self.fp = fp - self.queue = [] - - def read(self): - """Fetch a new chunk. Returns header information.""" - cid = None - - if self.queue: - cid, pos, length = self.queue.pop() - self.fp.seek(pos) - else: - s = self.fp.read(8) - cid = s[4:] - pos = self.fp.tell() - length = i32(s) - - if not is_cid(cid): - if not ImageFile.LOAD_TRUNCATED_IMAGES: - msg = f"broken PNG file (chunk {repr(cid)})" - raise SyntaxError(msg) - - return cid, pos, length - - def __enter__(self): - return self - - def __exit__(self, *args): - self.close() - - def close(self): - self.queue = self.fp = None - - def push(self, cid, pos, length): - self.queue.append((cid, pos, length)) - - def call(self, cid, pos, length): - """Call the appropriate chunk handler""" - - logger.debug("STREAM %r %s %s", cid, pos, length) - return getattr(self, "chunk_" + cid.decode("ascii"))(pos, length) - - def crc(self, cid, data): - """Read and verify checksum""" - - # Skip CRC checks for ancillary chunks if allowed to load truncated - # images - # 5th byte of first char is 1 [specs, section 5.4] - if ImageFile.LOAD_TRUNCATED_IMAGES and (cid[0] >> 5 & 1): - self.crc_skip(cid, data) - return - - try: - crc1 = _crc32(data, _crc32(cid)) - crc2 = i32(self.fp.read(4)) - if crc1 != crc2: - msg = f"broken PNG file (bad header checksum in {repr(cid)})" - raise SyntaxError(msg) - except struct.error as e: - msg = f"broken PNG file (incomplete checksum in {repr(cid)})" - raise SyntaxError(msg) from e - - def crc_skip(self, cid, data): - """Read checksum""" - - self.fp.read(4) - - def verify(self, endchunk=b"IEND"): - # Simple approach; just calculate checksum for all remaining - # blocks. Must be called directly after open. - - cids = [] - - while True: - try: - cid, pos, length = self.read() - except struct.error as e: - msg = "truncated PNG file" - raise OSError(msg) from e - - if cid == endchunk: - break - self.crc(cid, ImageFile._safe_read(self.fp, length)) - cids.append(cid) - - return cids - - -class iTXt(str): - """ - Subclass of string to allow iTXt chunks to look like strings while - keeping their extra information - - """ - - @staticmethod - def __new__(cls, text, lang=None, tkey=None): - """ - :param cls: the class to use when creating the instance - :param text: value for this key - :param lang: language code - :param tkey: UTF-8 version of the key name - """ - - self = str.__new__(cls, text) - self.lang = lang - self.tkey = tkey - return self - - -class PngInfo: - """ - PNG chunk container (for use with save(pnginfo=)) - - """ - - def __init__(self): - self.chunks = [] - - def add(self, cid, data, after_idat=False): - """Appends an arbitrary chunk. Use with caution. - - :param cid: a byte string, 4 bytes long. - :param data: a byte string of the encoded data - :param after_idat: for use with private chunks. Whether the chunk - should be written after IDAT - - """ - - chunk = [cid, data] - if after_idat: - chunk.append(True) - self.chunks.append(tuple(chunk)) - - def add_itxt(self, key, value, lang="", tkey="", zip=False): - """Appends an iTXt chunk. - - :param key: latin-1 encodable text key name - :param value: value for this key - :param lang: language code - :param tkey: UTF-8 version of the key name - :param zip: compression flag - - """ - - if not isinstance(key, bytes): - key = key.encode("latin-1", "strict") - if not isinstance(value, bytes): - value = value.encode("utf-8", "strict") - if not isinstance(lang, bytes): - lang = lang.encode("utf-8", "strict") - if not isinstance(tkey, bytes): - tkey = tkey.encode("utf-8", "strict") - - if zip: - self.add( - b"iTXt", - key + b"\0\x01\0" + lang + b"\0" + tkey + b"\0" + zlib.compress(value), - ) - else: - self.add(b"iTXt", key + b"\0\0\0" + lang + b"\0" + tkey + b"\0" + value) - - def add_text(self, key, value, zip=False): - """Appends a text chunk. - - :param key: latin-1 encodable text key name - :param value: value for this key, text or an - :py:class:`PIL.PngImagePlugin.iTXt` instance - :param zip: compression flag - - """ - if isinstance(value, iTXt): - return self.add_itxt(key, value, value.lang, value.tkey, zip=zip) - - # The tEXt chunk stores latin-1 text - if not isinstance(value, bytes): - try: - value = value.encode("latin-1", "strict") - except UnicodeError: - return self.add_itxt(key, value, zip=zip) - - if not isinstance(key, bytes): - key = key.encode("latin-1", "strict") - - if zip: - self.add(b"zTXt", key + b"\0\0" + zlib.compress(value)) - else: - self.add(b"tEXt", key + b"\0" + value) - - -# -------------------------------------------------------------------- -# PNG image stream (IHDR/IEND) - - -class PngStream(ChunkStream): - def __init__(self, fp): - super().__init__(fp) - - # local copies of Image attributes - self.im_info = {} - self.im_text = {} - self.im_size = (0, 0) - self.im_mode = None - self.im_tile = None - self.im_palette = None - self.im_custom_mimetype = None - self.im_n_frames = None - self._seq_num = None - self.rewind_state = None - - self.text_memory = 0 - - def check_text_memory(self, chunklen): - self.text_memory += chunklen - if self.text_memory > MAX_TEXT_MEMORY: - msg = ( - "Too much memory used in text chunks: " - f"{self.text_memory}>MAX_TEXT_MEMORY" - ) - raise ValueError(msg) - - def save_rewind(self): - self.rewind_state = { - "info": self.im_info.copy(), - "tile": self.im_tile, - "seq_num": self._seq_num, - } - - def rewind(self): - self.im_info = self.rewind_state["info"] - self.im_tile = self.rewind_state["tile"] - self._seq_num = self.rewind_state["seq_num"] - - def chunk_iCCP(self, pos, length): - # ICC profile - s = ImageFile._safe_read(self.fp, length) - # according to PNG spec, the iCCP chunk contains: - # Profile name 1-79 bytes (character string) - # Null separator 1 byte (null character) - # Compression method 1 byte (0) - # Compressed profile n bytes (zlib with deflate compression) - i = s.find(b"\0") - logger.debug("iCCP profile name %r", s[:i]) - logger.debug("Compression method %s", s[i]) - comp_method = s[i] - if comp_method != 0: - msg = f"Unknown compression method {comp_method} in iCCP chunk" - raise SyntaxError(msg) - try: - icc_profile = _safe_zlib_decompress(s[i + 2 :]) - except ValueError: - if ImageFile.LOAD_TRUNCATED_IMAGES: - icc_profile = None - else: - raise - except zlib.error: - icc_profile = None # FIXME - self.im_info["icc_profile"] = icc_profile - return s - - def chunk_IHDR(self, pos, length): - # image header - s = ImageFile._safe_read(self.fp, length) - if length < 13: - if ImageFile.LOAD_TRUNCATED_IMAGES: - return s - msg = "Truncated IHDR chunk" - raise ValueError(msg) - self.im_size = i32(s, 0), i32(s, 4) - try: - self.im_mode, self.im_rawmode = _MODES[(s[8], s[9])] - except Exception: - pass - if s[12]: - self.im_info["interlace"] = 1 - if s[11]: - msg = "unknown filter category" - raise SyntaxError(msg) - return s - - def chunk_IDAT(self, pos, length): - # image data - if "bbox" in self.im_info: - tile = [("zip", self.im_info["bbox"], pos, self.im_rawmode)] - else: - if self.im_n_frames is not None: - self.im_info["default_image"] = True - tile = [("zip", (0, 0) + self.im_size, pos, self.im_rawmode)] - self.im_tile = tile - self.im_idat = length - msg = "image data found" - raise EOFError(msg) - - def chunk_IEND(self, pos, length): - msg = "end of PNG image" - raise EOFError(msg) - - def chunk_PLTE(self, pos, length): - # palette - s = ImageFile._safe_read(self.fp, length) - if self.im_mode == "P": - self.im_palette = "RGB", s - return s - - def chunk_tRNS(self, pos, length): - # transparency - s = ImageFile._safe_read(self.fp, length) - if self.im_mode == "P": - if _simple_palette.match(s): - # tRNS contains only one full-transparent entry, - # other entries are full opaque - i = s.find(b"\0") - if i >= 0: - self.im_info["transparency"] = i - else: - # otherwise, we have a byte string with one alpha value - # for each palette entry - self.im_info["transparency"] = s - elif self.im_mode in ("1", "L", "I"): - self.im_info["transparency"] = i16(s) - elif self.im_mode == "RGB": - self.im_info["transparency"] = i16(s), i16(s, 2), i16(s, 4) - return s - - def chunk_gAMA(self, pos, length): - # gamma setting - s = ImageFile._safe_read(self.fp, length) - self.im_info["gamma"] = i32(s) / 100000.0 - return s - - def chunk_cHRM(self, pos, length): - # chromaticity, 8 unsigned ints, actual value is scaled by 100,000 - # WP x,y, Red x,y, Green x,y Blue x,y - - s = ImageFile._safe_read(self.fp, length) - raw_vals = struct.unpack(">%dI" % (len(s) // 4), s) - self.im_info["chromaticity"] = tuple(elt / 100000.0 for elt in raw_vals) - return s - - def chunk_sRGB(self, pos, length): - # srgb rendering intent, 1 byte - # 0 perceptual - # 1 relative colorimetric - # 2 saturation - # 3 absolute colorimetric - - s = ImageFile._safe_read(self.fp, length) - if length < 1: - if ImageFile.LOAD_TRUNCATED_IMAGES: - return s - msg = "Truncated sRGB chunk" - raise ValueError(msg) - self.im_info["srgb"] = s[0] - return s - - def chunk_pHYs(self, pos, length): - # pixels per unit - s = ImageFile._safe_read(self.fp, length) - if length < 9: - if ImageFile.LOAD_TRUNCATED_IMAGES: - return s - msg = "Truncated pHYs chunk" - raise ValueError(msg) - px, py = i32(s, 0), i32(s, 4) - unit = s[8] - if unit == 1: # meter - dpi = px * 0.0254, py * 0.0254 - self.im_info["dpi"] = dpi - elif unit == 0: - self.im_info["aspect"] = px, py - return s - - def chunk_tEXt(self, pos, length): - # text - s = ImageFile._safe_read(self.fp, length) - try: - k, v = s.split(b"\0", 1) - except ValueError: - # fallback for broken tEXt tags - k = s - v = b"" - if k: - k = k.decode("latin-1", "strict") - v_str = v.decode("latin-1", "replace") - - self.im_info[k] = v if k == "exif" else v_str - self.im_text[k] = v_str - self.check_text_memory(len(v_str)) - - return s - - def chunk_zTXt(self, pos, length): - # compressed text - s = ImageFile._safe_read(self.fp, length) - try: - k, v = s.split(b"\0", 1) - except ValueError: - k = s - v = b"" - if v: - comp_method = v[0] - else: - comp_method = 0 - if comp_method != 0: - msg = f"Unknown compression method {comp_method} in zTXt chunk" - raise SyntaxError(msg) - try: - v = _safe_zlib_decompress(v[1:]) - except ValueError: - if ImageFile.LOAD_TRUNCATED_IMAGES: - v = b"" - else: - raise - except zlib.error: - v = b"" - - if k: - k = k.decode("latin-1", "strict") - v = v.decode("latin-1", "replace") - - self.im_info[k] = self.im_text[k] = v - self.check_text_memory(len(v)) - - return s - - def chunk_iTXt(self, pos, length): - # international text - r = s = ImageFile._safe_read(self.fp, length) - try: - k, r = r.split(b"\0", 1) - except ValueError: - return s - if len(r) < 2: - return s - cf, cm, r = r[0], r[1], r[2:] - try: - lang, tk, v = r.split(b"\0", 2) - except ValueError: - return s - if cf != 0: - if cm == 0: - try: - v = _safe_zlib_decompress(v) - except ValueError: - if ImageFile.LOAD_TRUNCATED_IMAGES: - return s - else: - raise - except zlib.error: - return s - else: - return s - try: - k = k.decode("latin-1", "strict") - lang = lang.decode("utf-8", "strict") - tk = tk.decode("utf-8", "strict") - v = v.decode("utf-8", "strict") - except UnicodeError: - return s - - self.im_info[k] = self.im_text[k] = iTXt(v, lang, tk) - self.check_text_memory(len(v)) - - return s - - def chunk_eXIf(self, pos, length): - s = ImageFile._safe_read(self.fp, length) - self.im_info["exif"] = b"Exif\x00\x00" + s - return s - - # APNG chunks - def chunk_acTL(self, pos, length): - s = ImageFile._safe_read(self.fp, length) - if length < 8: - if ImageFile.LOAD_TRUNCATED_IMAGES: - return s - msg = "APNG contains truncated acTL chunk" - raise ValueError(msg) - if self.im_n_frames is not None: - self.im_n_frames = None - warnings.warn("Invalid APNG, will use default PNG image if possible") - return s - n_frames = i32(s) - if n_frames == 0 or n_frames > 0x80000000: - warnings.warn("Invalid APNG, will use default PNG image if possible") - return s - self.im_n_frames = n_frames - self.im_info["loop"] = i32(s, 4) - self.im_custom_mimetype = "image/apng" - return s - - def chunk_fcTL(self, pos, length): - s = ImageFile._safe_read(self.fp, length) - if length < 26: - if ImageFile.LOAD_TRUNCATED_IMAGES: - return s - msg = "APNG contains truncated fcTL chunk" - raise ValueError(msg) - seq = i32(s) - if (self._seq_num is None and seq != 0) or ( - self._seq_num is not None and self._seq_num != seq - 1 - ): - msg = "APNG contains frame sequence errors" - raise SyntaxError(msg) - self._seq_num = seq - width, height = i32(s, 4), i32(s, 8) - px, py = i32(s, 12), i32(s, 16) - im_w, im_h = self.im_size - if px + width > im_w or py + height > im_h: - msg = "APNG contains invalid frames" - raise SyntaxError(msg) - self.im_info["bbox"] = (px, py, px + width, py + height) - delay_num, delay_den = i16(s, 20), i16(s, 22) - if delay_den == 0: - delay_den = 100 - self.im_info["duration"] = float(delay_num) / float(delay_den) * 1000 - self.im_info["disposal"] = s[24] - self.im_info["blend"] = s[25] - return s - - def chunk_fdAT(self, pos, length): - if length < 4: - if ImageFile.LOAD_TRUNCATED_IMAGES: - s = ImageFile._safe_read(self.fp, length) - return s - msg = "APNG contains truncated fDAT chunk" - raise ValueError(msg) - s = ImageFile._safe_read(self.fp, 4) - seq = i32(s) - if self._seq_num != seq - 1: - msg = "APNG contains frame sequence errors" - raise SyntaxError(msg) - self._seq_num = seq - return self.chunk_IDAT(pos + 4, length - 4) - - -# -------------------------------------------------------------------- -# PNG reader - - -def _accept(prefix): - return prefix[:8] == _MAGIC - - -## -# Image plugin for PNG images. - - -class PngImageFile(ImageFile.ImageFile): - format = "PNG" - format_description = "Portable network graphics" - - def _open(self): - if not _accept(self.fp.read(8)): - msg = "not a PNG file" - raise SyntaxError(msg) - self._fp = self.fp - self.__frame = 0 - - # - # Parse headers up to the first IDAT or fDAT chunk - - self.private_chunks = [] - self.png = PngStream(self.fp) - - while True: - # - # get next chunk - - cid, pos, length = self.png.read() - - try: - s = self.png.call(cid, pos, length) - except EOFError: - break - except AttributeError: - logger.debug("%r %s %s (unknown)", cid, pos, length) - s = ImageFile._safe_read(self.fp, length) - if cid[1:2].islower(): - self.private_chunks.append((cid, s)) - - self.png.crc(cid, s) - - # - # Copy relevant attributes from the PngStream. An alternative - # would be to let the PngStream class modify these attributes - # directly, but that introduces circular references which are - # difficult to break if things go wrong in the decoder... - # (believe me, I've tried ;-) - - self._mode = self.png.im_mode - self._size = self.png.im_size - self.info = self.png.im_info - self._text = None - self.tile = self.png.im_tile - self.custom_mimetype = self.png.im_custom_mimetype - self.n_frames = self.png.im_n_frames or 1 - self.default_image = self.info.get("default_image", False) - - if self.png.im_palette: - rawmode, data = self.png.im_palette - self.palette = ImagePalette.raw(rawmode, data) - - if cid == b"fdAT": - self.__prepare_idat = length - 4 - else: - self.__prepare_idat = length # used by load_prepare() - - if self.png.im_n_frames is not None: - self._close_exclusive_fp_after_loading = False - self.png.save_rewind() - self.__rewind_idat = self.__prepare_idat - self.__rewind = self._fp.tell() - if self.default_image: - # IDAT chunk contains default image and not first animation frame - self.n_frames += 1 - self._seek(0) - self.is_animated = self.n_frames > 1 - - @property - def text(self): - # experimental - if self._text is None: - # iTxt, tEXt and zTXt chunks may appear at the end of the file - # So load the file to ensure that they are read - if self.is_animated: - frame = self.__frame - # for APNG, seek to the final frame before loading - self.seek(self.n_frames - 1) - self.load() - if self.is_animated: - self.seek(frame) - return self._text - - def verify(self): - """Verify PNG file""" - - if self.fp is None: - msg = "verify must be called directly after open" - raise RuntimeError(msg) - - # back up to beginning of IDAT block - self.fp.seek(self.tile[0][2] - 8) - - self.png.verify() - self.png.close() - - if self._exclusive_fp: - self.fp.close() - self.fp = None - - def seek(self, frame): - if not self._seek_check(frame): - return - if frame < self.__frame: - self._seek(0, True) - - last_frame = self.__frame - for f in range(self.__frame + 1, frame + 1): - try: - self._seek(f) - except EOFError as e: - self.seek(last_frame) - msg = "no more images in APNG file" - raise EOFError(msg) from e - - def _seek(self, frame, rewind=False): - if frame == 0: - if rewind: - self._fp.seek(self.__rewind) - self.png.rewind() - self.__prepare_idat = self.__rewind_idat - self.im = None - if self.pyaccess: - self.pyaccess = None - self.info = self.png.im_info - self.tile = self.png.im_tile - self.fp = self._fp - self._prev_im = None - self.dispose = None - self.default_image = self.info.get("default_image", False) - self.dispose_op = self.info.get("disposal") - self.blend_op = self.info.get("blend") - self.dispose_extent = self.info.get("bbox") - self.__frame = 0 - else: - if frame != self.__frame + 1: - msg = f"cannot seek to frame {frame}" - raise ValueError(msg) - - # ensure previous frame was loaded - self.load() - - if self.dispose: - self.im.paste(self.dispose, self.dispose_extent) - self._prev_im = self.im.copy() - - self.fp = self._fp - - # advance to the next frame - if self.__prepare_idat: - ImageFile._safe_read(self.fp, self.__prepare_idat) - self.__prepare_idat = 0 - frame_start = False - while True: - self.fp.read(4) # CRC - - try: - cid, pos, length = self.png.read() - except (struct.error, SyntaxError): - break - - if cid == b"IEND": - msg = "No more images in APNG file" - raise EOFError(msg) - if cid == b"fcTL": - if frame_start: - # there must be at least one fdAT chunk between fcTL chunks - msg = "APNG missing frame data" - raise SyntaxError(msg) - frame_start = True - - try: - self.png.call(cid, pos, length) - except UnicodeDecodeError: - break - except EOFError: - if cid == b"fdAT": - length -= 4 - if frame_start: - self.__prepare_idat = length - break - ImageFile._safe_read(self.fp, length) - except AttributeError: - logger.debug("%r %s %s (unknown)", cid, pos, length) - ImageFile._safe_read(self.fp, length) - - self.__frame = frame - self.tile = self.png.im_tile - self.dispose_op = self.info.get("disposal") - self.blend_op = self.info.get("blend") - self.dispose_extent = self.info.get("bbox") - - if not self.tile: - msg = "image not found in APNG frame" - raise EOFError(msg) - - # setup frame disposal (actual disposal done when needed in the next _seek()) - if self._prev_im is None and self.dispose_op == Disposal.OP_PREVIOUS: - self.dispose_op = Disposal.OP_BACKGROUND - - if self.dispose_op == Disposal.OP_PREVIOUS: - self.dispose = self._prev_im.copy() - self.dispose = self._crop(self.dispose, self.dispose_extent) - elif self.dispose_op == Disposal.OP_BACKGROUND: - self.dispose = Image.core.fill(self.mode, self.size) - self.dispose = self._crop(self.dispose, self.dispose_extent) - else: - self.dispose = None - - def tell(self): - return self.__frame - - def load_prepare(self): - """internal: prepare to read PNG file""" - - if self.info.get("interlace"): - self.decoderconfig = self.decoderconfig + (1,) - - self.__idat = self.__prepare_idat # used by load_read() - ImageFile.ImageFile.load_prepare(self) - - def load_read(self, read_bytes): - """internal: read more image data""" - - while self.__idat == 0: - # end of chunk, skip forward to next one - - self.fp.read(4) # CRC - - cid, pos, length = self.png.read() - - if cid not in [b"IDAT", b"DDAT", b"fdAT"]: - self.png.push(cid, pos, length) - return b"" - - if cid == b"fdAT": - try: - self.png.call(cid, pos, length) - except EOFError: - pass - self.__idat = length - 4 # sequence_num has already been read - else: - self.__idat = length # empty chunks are allowed - - # read more data from this chunk - if read_bytes <= 0: - read_bytes = self.__idat - else: - read_bytes = min(read_bytes, self.__idat) - - self.__idat = self.__idat - read_bytes - - return self.fp.read(read_bytes) - - def load_end(self): - """internal: finished reading image data""" - if self.__idat != 0: - self.fp.read(self.__idat) - while True: - self.fp.read(4) # CRC - - try: - cid, pos, length = self.png.read() - except (struct.error, SyntaxError): - break - - if cid == b"IEND": - break - elif cid == b"fcTL" and self.is_animated: - # start of the next frame, stop reading - self.__prepare_idat = 0 - self.png.push(cid, pos, length) - break - - try: - self.png.call(cid, pos, length) - except UnicodeDecodeError: - break - except EOFError: - if cid == b"fdAT": - length -= 4 - ImageFile._safe_read(self.fp, length) - except AttributeError: - logger.debug("%r %s %s (unknown)", cid, pos, length) - s = ImageFile._safe_read(self.fp, length) - if cid[1:2].islower(): - self.private_chunks.append((cid, s, True)) - self._text = self.png.im_text - if not self.is_animated: - self.png.close() - self.png = None - else: - if self._prev_im and self.blend_op == Blend.OP_OVER: - updated = self._crop(self.im, self.dispose_extent) - if self.im.mode == "RGB" and "transparency" in self.info: - mask = updated.convert_transparent( - "RGBA", self.info["transparency"] - ) - else: - mask = updated.convert("RGBA") - self._prev_im.paste(updated, self.dispose_extent, mask) - self.im = self._prev_im - if self.pyaccess: - self.pyaccess = None - - def _getexif(self): - if "exif" not in self.info: - self.load() - if "exif" not in self.info and "Raw profile type exif" not in self.info: - return None - return self.getexif()._get_merged_dict() - - def getexif(self): - if "exif" not in self.info: - self.load() - - return super().getexif() - - def getxmp(self): - """ - Returns a dictionary containing the XMP tags. - Requires defusedxml to be installed. - - :returns: XMP tags in a dictionary. - """ - return ( - self._getxmp(self.info["XML:com.adobe.xmp"]) - if "XML:com.adobe.xmp" in self.info - else {} - ) - - -# -------------------------------------------------------------------- -# PNG writer - -_OUTMODES = { - # supported PIL modes, and corresponding rawmodes/bits/color combinations - "1": ("1", b"\x01\x00"), - "L;1": ("L;1", b"\x01\x00"), - "L;2": ("L;2", b"\x02\x00"), - "L;4": ("L;4", b"\x04\x00"), - "L": ("L", b"\x08\x00"), - "LA": ("LA", b"\x08\x04"), - "I": ("I;16B", b"\x10\x00"), - "I;16": ("I;16B", b"\x10\x00"), - "I;16B": ("I;16B", b"\x10\x00"), - "P;1": ("P;1", b"\x01\x03"), - "P;2": ("P;2", b"\x02\x03"), - "P;4": ("P;4", b"\x04\x03"), - "P": ("P", b"\x08\x03"), - "RGB": ("RGB", b"\x08\x02"), - "RGBA": ("RGBA", b"\x08\x06"), -} - - -def putchunk(fp, cid, *data): - """Write a PNG chunk (including CRC field)""" - - data = b"".join(data) - - fp.write(o32(len(data)) + cid) - fp.write(data) - crc = _crc32(data, _crc32(cid)) - fp.write(o32(crc)) - - -class _idat: - # wrap output from the encoder in IDAT chunks - - def __init__(self, fp, chunk): - self.fp = fp - self.chunk = chunk - - def write(self, data): - self.chunk(self.fp, b"IDAT", data) - - -class _fdat: - # wrap encoder output in fdAT chunks - - def __init__(self, fp, chunk, seq_num): - self.fp = fp - self.chunk = chunk - self.seq_num = seq_num - - def write(self, data): - self.chunk(self.fp, b"fdAT", o32(self.seq_num), data) - self.seq_num += 1 - - -def _write_multiple_frames(im, fp, chunk, rawmode, default_image, append_images): - duration = im.encoderinfo.get("duration", im.info.get("duration", 0)) - loop = im.encoderinfo.get("loop", im.info.get("loop", 0)) - disposal = im.encoderinfo.get("disposal", im.info.get("disposal", Disposal.OP_NONE)) - blend = im.encoderinfo.get("blend", im.info.get("blend", Blend.OP_SOURCE)) - - if default_image: - chain = itertools.chain(append_images) - else: - chain = itertools.chain([im], append_images) - - im_frames = [] - frame_count = 0 - for im_seq in chain: - for im_frame in ImageSequence.Iterator(im_seq): - if im_frame.mode == rawmode: - im_frame = im_frame.copy() - else: - im_frame = im_frame.convert(rawmode) - encoderinfo = im.encoderinfo.copy() - if isinstance(duration, (list, tuple)): - encoderinfo["duration"] = duration[frame_count] - if isinstance(disposal, (list, tuple)): - encoderinfo["disposal"] = disposal[frame_count] - if isinstance(blend, (list, tuple)): - encoderinfo["blend"] = blend[frame_count] - frame_count += 1 - - if im_frames: - previous = im_frames[-1] - prev_disposal = previous["encoderinfo"].get("disposal") - prev_blend = previous["encoderinfo"].get("blend") - if prev_disposal == Disposal.OP_PREVIOUS and len(im_frames) < 2: - prev_disposal = Disposal.OP_BACKGROUND - - if prev_disposal == Disposal.OP_BACKGROUND: - base_im = previous["im"].copy() - dispose = Image.core.fill("RGBA", im.size, (0, 0, 0, 0)) - bbox = previous["bbox"] - if bbox: - dispose = dispose.crop(bbox) - else: - bbox = (0, 0) + im.size - base_im.paste(dispose, bbox) - elif prev_disposal == Disposal.OP_PREVIOUS: - base_im = im_frames[-2]["im"] - else: - base_im = previous["im"] - delta = ImageChops.subtract_modulo( - im_frame.convert("RGBA"), base_im.convert("RGBA") - ) - bbox = delta.getbbox(alpha_only=False) - if ( - not bbox - and prev_disposal == encoderinfo.get("disposal") - and prev_blend == encoderinfo.get("blend") - ): - previous["encoderinfo"]["duration"] += encoderinfo.get( - "duration", duration - ) - continue - else: - bbox = None - if "duration" not in encoderinfo: - encoderinfo["duration"] = duration - im_frames.append({"im": im_frame, "bbox": bbox, "encoderinfo": encoderinfo}) - - if len(im_frames) == 1 and not default_image: - return im_frames[0]["im"] - - # animation control - chunk( - fp, - b"acTL", - o32(len(im_frames)), # 0: num_frames - o32(loop), # 4: num_plays - ) - - # default image IDAT (if it exists) - if default_image: - if im.mode != rawmode: - im = im.convert(rawmode) - ImageFile._save(im, _idat(fp, chunk), [("zip", (0, 0) + im.size, 0, rawmode)]) - - seq_num = 0 - for frame, frame_data in enumerate(im_frames): - im_frame = frame_data["im"] - if not frame_data["bbox"]: - bbox = (0, 0) + im_frame.size - else: - bbox = frame_data["bbox"] - im_frame = im_frame.crop(bbox) - size = im_frame.size - encoderinfo = frame_data["encoderinfo"] - frame_duration = int(round(encoderinfo["duration"])) - frame_disposal = encoderinfo.get("disposal", disposal) - frame_blend = encoderinfo.get("blend", blend) - # frame control - chunk( - fp, - b"fcTL", - o32(seq_num), # sequence_number - o32(size[0]), # width - o32(size[1]), # height - o32(bbox[0]), # x_offset - o32(bbox[1]), # y_offset - o16(frame_duration), # delay_numerator - o16(1000), # delay_denominator - o8(frame_disposal), # dispose_op - o8(frame_blend), # blend_op - ) - seq_num += 1 - # frame data - if frame == 0 and not default_image: - # first frame must be in IDAT chunks for backwards compatibility - ImageFile._save( - im_frame, - _idat(fp, chunk), - [("zip", (0, 0) + im_frame.size, 0, rawmode)], - ) - else: - fdat_chunks = _fdat(fp, chunk, seq_num) - ImageFile._save( - im_frame, - fdat_chunks, - [("zip", (0, 0) + im_frame.size, 0, rawmode)], - ) - seq_num = fdat_chunks.seq_num - - -def _save_all(im, fp, filename): - _save(im, fp, filename, save_all=True) - - -def _save(im, fp, filename, chunk=putchunk, save_all=False): - # save an image to disk (called by the save method) - - if save_all: - default_image = im.encoderinfo.get( - "default_image", im.info.get("default_image") - ) - modes = set() - append_images = im.encoderinfo.get("append_images", []) - for im_seq in itertools.chain([im], append_images): - for im_frame in ImageSequence.Iterator(im_seq): - modes.add(im_frame.mode) - for mode in ("RGBA", "RGB", "P"): - if mode in modes: - break - else: - mode = modes.pop() - else: - mode = im.mode - - if mode == "P": - # - # attempt to minimize storage requirements for palette images - if "bits" in im.encoderinfo: - # number of bits specified by user - colors = min(1 << im.encoderinfo["bits"], 256) - else: - # check palette contents - if im.palette: - colors = max(min(len(im.palette.getdata()[1]) // 3, 256), 1) - else: - colors = 256 - - if colors <= 16: - if colors <= 2: - bits = 1 - elif colors <= 4: - bits = 2 - else: - bits = 4 - mode = f"{mode};{bits}" - - # encoder options - im.encoderconfig = ( - im.encoderinfo.get("optimize", False), - im.encoderinfo.get("compress_level", -1), - im.encoderinfo.get("compress_type", -1), - im.encoderinfo.get("dictionary", b""), - ) - - # get the corresponding PNG mode - try: - rawmode, mode = _OUTMODES[mode] - except KeyError as e: - msg = f"cannot write mode {mode} as PNG" - raise OSError(msg) from e - - # - # write minimal PNG file - - fp.write(_MAGIC) - - chunk( - fp, - b"IHDR", - o32(im.size[0]), # 0: size - o32(im.size[1]), - mode, # 8: depth/type - b"\0", # 10: compression - b"\0", # 11: filter category - b"\0", # 12: interlace flag - ) - - chunks = [b"cHRM", b"gAMA", b"sBIT", b"sRGB", b"tIME"] - - icc = im.encoderinfo.get("icc_profile", im.info.get("icc_profile")) - if icc: - # ICC profile - # according to PNG spec, the iCCP chunk contains: - # Profile name 1-79 bytes (character string) - # Null separator 1 byte (null character) - # Compression method 1 byte (0) - # Compressed profile n bytes (zlib with deflate compression) - name = b"ICC Profile" - data = name + b"\0\0" + zlib.compress(icc) - chunk(fp, b"iCCP", data) - - # You must either have sRGB or iCCP. - # Disallow sRGB chunks when an iCCP-chunk has been emitted. - chunks.remove(b"sRGB") - - info = im.encoderinfo.get("pnginfo") - if info: - chunks_multiple_allowed = [b"sPLT", b"iTXt", b"tEXt", b"zTXt"] - for info_chunk in info.chunks: - cid, data = info_chunk[:2] - if cid in chunks: - chunks.remove(cid) - chunk(fp, cid, data) - elif cid in chunks_multiple_allowed: - chunk(fp, cid, data) - elif cid[1:2].islower(): - # Private chunk - after_idat = info_chunk[2:3] - if not after_idat: - chunk(fp, cid, data) - - if im.mode == "P": - palette_byte_number = colors * 3 - palette_bytes = im.im.getpalette("RGB")[:palette_byte_number] - while len(palette_bytes) < palette_byte_number: - palette_bytes += b"\0" - chunk(fp, b"PLTE", palette_bytes) - - transparency = im.encoderinfo.get("transparency", im.info.get("transparency", None)) - - if transparency or transparency == 0: - if im.mode == "P": - # limit to actual palette size - alpha_bytes = colors - if isinstance(transparency, bytes): - chunk(fp, b"tRNS", transparency[:alpha_bytes]) - else: - transparency = max(0, min(255, transparency)) - alpha = b"\xFF" * transparency + b"\0" - chunk(fp, b"tRNS", alpha[:alpha_bytes]) - elif im.mode in ("1", "L", "I"): - transparency = max(0, min(65535, transparency)) - chunk(fp, b"tRNS", o16(transparency)) - elif im.mode == "RGB": - red, green, blue = transparency - chunk(fp, b"tRNS", o16(red) + o16(green) + o16(blue)) - else: - if "transparency" in im.encoderinfo: - # don't bother with transparency if it's an RGBA - # and it's in the info dict. It's probably just stale. - msg = "cannot use transparency for this mode" - raise OSError(msg) - else: - if im.mode == "P" and im.im.getpalettemode() == "RGBA": - alpha = im.im.getpalette("RGBA", "A") - alpha_bytes = colors - chunk(fp, b"tRNS", alpha[:alpha_bytes]) - - dpi = im.encoderinfo.get("dpi") - if dpi: - chunk( - fp, - b"pHYs", - o32(int(dpi[0] / 0.0254 + 0.5)), - o32(int(dpi[1] / 0.0254 + 0.5)), - b"\x01", - ) - - if info: - chunks = [b"bKGD", b"hIST"] - for info_chunk in info.chunks: - cid, data = info_chunk[:2] - if cid in chunks: - chunks.remove(cid) - chunk(fp, cid, data) - - exif = im.encoderinfo.get("exif") - if exif: - if isinstance(exif, Image.Exif): - exif = exif.tobytes(8) - if exif.startswith(b"Exif\x00\x00"): - exif = exif[6:] - chunk(fp, b"eXIf", exif) - - if save_all: - im = _write_multiple_frames( - im, fp, chunk, rawmode, default_image, append_images - ) - if im: - ImageFile._save(im, _idat(fp, chunk), [("zip", (0, 0) + im.size, 0, rawmode)]) - - if info: - for info_chunk in info.chunks: - cid, data = info_chunk[:2] - if cid[1:2].islower(): - # Private chunk - after_idat = info_chunk[2:3] - if after_idat: - chunk(fp, cid, data) - - chunk(fp, b"IEND", b"") - - if hasattr(fp, "flush"): - fp.flush() - - -# -------------------------------------------------------------------- -# PNG chunk converter - - -def getchunks(im, **params): - """Return a list of PNG chunks representing this image.""" - - class collector: - data = [] - - def write(self, data): - pass - - def append(self, chunk): - self.data.append(chunk) - - def append(fp, cid, *data): - data = b"".join(data) - crc = o32(_crc32(data, _crc32(cid))) - fp.append((cid, data, crc)) - - fp = collector() - - try: - im.encoderinfo = params - _save(im, fp, None, append) - finally: - del im.encoderinfo - - return fp.data - - -# -------------------------------------------------------------------- -# Registry - -Image.register_open(PngImageFile.format, PngImageFile, _accept) -Image.register_save(PngImageFile.format, _save) -Image.register_save_all(PngImageFile.format, _save_all) - -Image.register_extensions(PngImageFile.format, [".png", ".apng"]) - -Image.register_mime(PngImageFile.format, "image/png") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PpmImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PpmImagePlugin.py deleted file mode 100644 index 25dbfa5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PpmImagePlugin.py +++ /dev/null @@ -1,344 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# PPM support for PIL -# -# History: -# 96-03-24 fl Created -# 98-03-06 fl Write RGBA images (as RGB, that is) -# -# Copyright (c) Secret Labs AB 1997-98. -# Copyright (c) Fredrik Lundh 1996. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFile -from ._binary import i16be as i16 -from ._binary import o8 -from ._binary import o32le as o32 - -# -# -------------------------------------------------------------------- - -b_whitespace = b"\x20\x09\x0a\x0b\x0c\x0d" - -MODES = { - # standard - b"P1": "1", - b"P2": "L", - b"P3": "RGB", - b"P4": "1", - b"P5": "L", - b"P6": "RGB", - # extensions - b"P0CMYK": "CMYK", - # PIL extensions (for test purposes only) - b"PyP": "P", - b"PyRGBA": "RGBA", - b"PyCMYK": "CMYK", -} - - -def _accept(prefix): - return prefix[0:1] == b"P" and prefix[1] in b"0123456y" - - -## -# Image plugin for PBM, PGM, and PPM images. - - -class PpmImageFile(ImageFile.ImageFile): - format = "PPM" - format_description = "Pbmplus image" - - def _read_magic(self): - magic = b"" - # read until whitespace or longest available magic number - for _ in range(6): - c = self.fp.read(1) - if not c or c in b_whitespace: - break - magic += c - return magic - - def _read_token(self): - token = b"" - while len(token) <= 10: # read until next whitespace or limit of 10 characters - c = self.fp.read(1) - if not c: - break - elif c in b_whitespace: # token ended - if not token: - # skip whitespace at start - continue - break - elif c == b"#": - # ignores rest of the line; stops at CR, LF or EOF - while self.fp.read(1) not in b"\r\n": - pass - continue - token += c - if not token: - # Token was not even 1 byte - msg = "Reached EOF while reading header" - raise ValueError(msg) - elif len(token) > 10: - msg = f"Token too long in file header: {token.decode()}" - raise ValueError(msg) - return token - - def _open(self): - magic_number = self._read_magic() - try: - mode = MODES[magic_number] - except KeyError: - msg = "not a PPM file" - raise SyntaxError(msg) - - if magic_number in (b"P1", b"P4"): - self.custom_mimetype = "image/x-portable-bitmap" - elif magic_number in (b"P2", b"P5"): - self.custom_mimetype = "image/x-portable-graymap" - elif magic_number in (b"P3", b"P6"): - self.custom_mimetype = "image/x-portable-pixmap" - - maxval = None - decoder_name = "raw" - if magic_number in (b"P1", b"P2", b"P3"): - decoder_name = "ppm_plain" - for ix in range(3): - token = int(self._read_token()) - if ix == 0: # token is the x size - xsize = token - elif ix == 1: # token is the y size - ysize = token - if mode == "1": - self._mode = "1" - rawmode = "1;I" - break - else: - self._mode = rawmode = mode - elif ix == 2: # token is maxval - maxval = token - if not 0 < maxval < 65536: - msg = "maxval must be greater than 0 and less than 65536" - raise ValueError(msg) - if maxval > 255 and mode == "L": - self._mode = "I" - - if decoder_name != "ppm_plain": - # If maxval matches a bit depth, use the raw decoder directly - if maxval == 65535 and mode == "L": - rawmode = "I;16B" - elif maxval != 255: - decoder_name = "ppm" - - args = (rawmode, 0, 1) if decoder_name == "raw" else (rawmode, maxval) - self._size = xsize, ysize - self.tile = [(decoder_name, (0, 0, xsize, ysize), self.fp.tell(), args)] - - -# -# -------------------------------------------------------------------- - - -class PpmPlainDecoder(ImageFile.PyDecoder): - _pulls_fd = True - - def _read_block(self): - return self.fd.read(ImageFile.SAFEBLOCK) - - def _find_comment_end(self, block, start=0): - a = block.find(b"\n", start) - b = block.find(b"\r", start) - return min(a, b) if a * b > 0 else max(a, b) # lowest nonnegative index (or -1) - - def _ignore_comments(self, block): - if self._comment_spans: - # Finish current comment - while block: - comment_end = self._find_comment_end(block) - if comment_end != -1: - # Comment ends in this block - # Delete tail of comment - block = block[comment_end + 1 :] - break - else: - # Comment spans whole block - # So read the next block, looking for the end - block = self._read_block() - - # Search for any further comments - self._comment_spans = False - while True: - comment_start = block.find(b"#") - if comment_start == -1: - # No comment found - break - comment_end = self._find_comment_end(block, comment_start) - if comment_end != -1: - # Comment ends in this block - # Delete comment - block = block[:comment_start] + block[comment_end + 1 :] - else: - # Comment continues to next block(s) - block = block[:comment_start] - self._comment_spans = True - break - return block - - def _decode_bitonal(self): - """ - This is a separate method because in the plain PBM format, all data tokens are - exactly one byte, so the inter-token whitespace is optional. - """ - data = bytearray() - total_bytes = self.state.xsize * self.state.ysize - - while len(data) != total_bytes: - block = self._read_block() # read next block - if not block: - # eof - break - - block = self._ignore_comments(block) - - tokens = b"".join(block.split()) - for token in tokens: - if token not in (48, 49): - msg = b"Invalid token for this mode: %s" % bytes([token]) - raise ValueError(msg) - data = (data + tokens)[:total_bytes] - invert = bytes.maketrans(b"01", b"\xFF\x00") - return data.translate(invert) - - def _decode_blocks(self, maxval): - data = bytearray() - max_len = 10 - out_byte_count = 4 if self.mode == "I" else 1 - out_max = 65535 if self.mode == "I" else 255 - bands = Image.getmodebands(self.mode) - total_bytes = self.state.xsize * self.state.ysize * bands * out_byte_count - - half_token = False - while len(data) != total_bytes: - block = self._read_block() # read next block - if not block: - if half_token: - block = bytearray(b" ") # flush half_token - else: - # eof - break - - block = self._ignore_comments(block) - - if half_token: - block = half_token + block # stitch half_token to new block - half_token = False - - tokens = block.split() - - if block and not block[-1:].isspace(): # block might split token - half_token = tokens.pop() # save half token for later - if len(half_token) > max_len: # prevent buildup of half_token - msg = ( - b"Token too long found in data: %s" % half_token[: max_len + 1] - ) - raise ValueError(msg) - - for token in tokens: - if len(token) > max_len: - msg = b"Token too long found in data: %s" % token[: max_len + 1] - raise ValueError(msg) - value = int(token) - if value > maxval: - msg = f"Channel value too large for this mode: {value}" - raise ValueError(msg) - value = round(value / maxval * out_max) - data += o32(value) if self.mode == "I" else o8(value) - if len(data) == total_bytes: # finished! - break - return data - - def decode(self, buffer): - self._comment_spans = False - if self.mode == "1": - data = self._decode_bitonal() - rawmode = "1;8" - else: - maxval = self.args[-1] - data = self._decode_blocks(maxval) - rawmode = "I;32" if self.mode == "I" else self.mode - self.set_as_raw(bytes(data), rawmode) - return -1, 0 - - -class PpmDecoder(ImageFile.PyDecoder): - _pulls_fd = True - - def decode(self, buffer): - data = bytearray() - maxval = self.args[-1] - in_byte_count = 1 if maxval < 256 else 2 - out_byte_count = 4 if self.mode == "I" else 1 - out_max = 65535 if self.mode == "I" else 255 - bands = Image.getmodebands(self.mode) - while len(data) < self.state.xsize * self.state.ysize * bands * out_byte_count: - pixels = self.fd.read(in_byte_count * bands) - if len(pixels) < in_byte_count * bands: - # eof - break - for b in range(bands): - value = ( - pixels[b] if in_byte_count == 1 else i16(pixels, b * in_byte_count) - ) - value = min(out_max, round(value / maxval * out_max)) - data += o32(value) if self.mode == "I" else o8(value) - rawmode = "I;32" if self.mode == "I" else self.mode - self.set_as_raw(bytes(data), rawmode) - return -1, 0 - - -# -# -------------------------------------------------------------------- - - -def _save(im, fp, filename): - if im.mode == "1": - rawmode, head = "1;I", b"P4" - elif im.mode == "L": - rawmode, head = "L", b"P5" - elif im.mode == "I": - rawmode, head = "I;16B", b"P5" - elif im.mode in ("RGB", "RGBA"): - rawmode, head = "RGB", b"P6" - else: - msg = f"cannot write mode {im.mode} as PPM" - raise OSError(msg) - fp.write(head + b"\n%d %d\n" % im.size) - if head == b"P6": - fp.write(b"255\n") - elif head == b"P5": - if rawmode == "L": - fp.write(b"255\n") - else: - fp.write(b"65535\n") - ImageFile._save(im, fp, [("raw", (0, 0) + im.size, 0, (rawmode, 0, 1))]) - - -# -# -------------------------------------------------------------------- - - -Image.register_open(PpmImageFile.format, PpmImageFile, _accept) -Image.register_save(PpmImageFile.format, _save) - -Image.register_decoder("ppm", PpmDecoder) -Image.register_decoder("ppm_plain", PpmPlainDecoder) - -Image.register_extensions(PpmImageFile.format, [".pbm", ".pgm", ".ppm", ".pnm"]) - -Image.register_mime(PpmImageFile.format, "image/x-portable-anymap") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PsdImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PsdImagePlugin.py deleted file mode 100644 index 5cff564..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PsdImagePlugin.py +++ /dev/null @@ -1,307 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# Adobe PSD 2.5/3.0 file handling -# -# History: -# 1995-09-01 fl Created -# 1997-01-03 fl Read most PSD images -# 1997-01-18 fl Fixed P and CMYK support -# 2001-10-21 fl Added seek/tell support (for layers) -# -# Copyright (c) 1997-2001 by Secret Labs AB. -# Copyright (c) 1995-2001 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io - -from . import Image, ImageFile, ImagePalette -from ._binary import i8 -from ._binary import i16be as i16 -from ._binary import i32be as i32 -from ._binary import si16be as si16 - -MODES = { - # (photoshop mode, bits) -> (pil mode, required channels) - (0, 1): ("1", 1), - (0, 8): ("L", 1), - (1, 8): ("L", 1), - (2, 8): ("P", 1), - (3, 8): ("RGB", 3), - (4, 8): ("CMYK", 4), - (7, 8): ("L", 1), # FIXME: multilayer - (8, 8): ("L", 1), # duotone - (9, 8): ("LAB", 3), -} - - -# --------------------------------------------------------------------. -# read PSD images - - -def _accept(prefix): - return prefix[:4] == b"8BPS" - - -## -# Image plugin for Photoshop images. - - -class PsdImageFile(ImageFile.ImageFile): - format = "PSD" - format_description = "Adobe Photoshop" - _close_exclusive_fp_after_loading = False - - def _open(self): - read = self.fp.read - - # - # header - - s = read(26) - if not _accept(s) or i16(s, 4) != 1: - msg = "not a PSD file" - raise SyntaxError(msg) - - psd_bits = i16(s, 22) - psd_channels = i16(s, 12) - psd_mode = i16(s, 24) - - mode, channels = MODES[(psd_mode, psd_bits)] - - if channels > psd_channels: - msg = "not enough channels" - raise OSError(msg) - if mode == "RGB" and psd_channels == 4: - mode = "RGBA" - channels = 4 - - self._mode = mode - self._size = i32(s, 18), i32(s, 14) - - # - # color mode data - - size = i32(read(4)) - if size: - data = read(size) - if mode == "P" and size == 768: - self.palette = ImagePalette.raw("RGB;L", data) - - # - # image resources - - self.resources = [] - - size = i32(read(4)) - if size: - # load resources - end = self.fp.tell() + size - while self.fp.tell() < end: - read(4) # signature - id = i16(read(2)) - name = read(i8(read(1))) - if not (len(name) & 1): - read(1) # padding - data = read(i32(read(4))) - if len(data) & 1: - read(1) # padding - self.resources.append((id, name, data)) - if id == 1039: # ICC profile - self.info["icc_profile"] = data - - # - # layer and mask information - - self.layers = [] - - size = i32(read(4)) - if size: - end = self.fp.tell() + size - size = i32(read(4)) - if size: - _layer_data = io.BytesIO(ImageFile._safe_read(self.fp, size)) - self.layers = _layerinfo(_layer_data, size) - self.fp.seek(end) - self.n_frames = len(self.layers) - self.is_animated = self.n_frames > 1 - - # - # image descriptor - - self.tile = _maketile(self.fp, mode, (0, 0) + self.size, channels) - - # keep the file open - self._fp = self.fp - self.frame = 1 - self._min_frame = 1 - - def seek(self, layer): - if not self._seek_check(layer): - return - - # seek to given layer (1..max) - try: - name, mode, bbox, tile = self.layers[layer - 1] - self._mode = mode - self.tile = tile - self.frame = layer - self.fp = self._fp - return name, bbox - except IndexError as e: - msg = "no such layer" - raise EOFError(msg) from e - - def tell(self): - # return layer number (0=image, 1..max=layers) - return self.frame - - -def _layerinfo(fp, ct_bytes): - # read layerinfo block - layers = [] - - def read(size): - return ImageFile._safe_read(fp, size) - - ct = si16(read(2)) - - # sanity check - if ct_bytes < (abs(ct) * 20): - msg = "Layer block too short for number of layers requested" - raise SyntaxError(msg) - - for _ in range(abs(ct)): - # bounding box - y0 = i32(read(4)) - x0 = i32(read(4)) - y1 = i32(read(4)) - x1 = i32(read(4)) - - # image info - mode = [] - ct_types = i16(read(2)) - types = list(range(ct_types)) - if len(types) > 4: - fp.seek(len(types) * 6 + 12, io.SEEK_CUR) - size = i32(read(4)) - fp.seek(size, io.SEEK_CUR) - continue - - for _ in types: - type = i16(read(2)) - - if type == 65535: - m = "A" - else: - m = "RGBA"[type] - - mode.append(m) - read(4) # size - - # figure out the image mode - mode.sort() - if mode == ["R"]: - mode = "L" - elif mode == ["B", "G", "R"]: - mode = "RGB" - elif mode == ["A", "B", "G", "R"]: - mode = "RGBA" - else: - mode = None # unknown - - # skip over blend flags and extra information - read(12) # filler - name = "" - size = i32(read(4)) # length of the extra data field - if size: - data_end = fp.tell() + size - - length = i32(read(4)) - if length: - fp.seek(length - 16, io.SEEK_CUR) - - length = i32(read(4)) - if length: - fp.seek(length, io.SEEK_CUR) - - length = i8(read(1)) - if length: - # Don't know the proper encoding, - # Latin-1 should be a good guess - name = read(length).decode("latin-1", "replace") - - fp.seek(data_end) - layers.append((name, mode, (x0, y0, x1, y1))) - - # get tiles - for i, (name, mode, bbox) in enumerate(layers): - tile = [] - for m in mode: - t = _maketile(fp, m, bbox, 1) - if t: - tile.extend(t) - layers[i] = name, mode, bbox, tile - - return layers - - -def _maketile(file, mode, bbox, channels): - tile = None - read = file.read - - compression = i16(read(2)) - - xsize = bbox[2] - bbox[0] - ysize = bbox[3] - bbox[1] - - offset = file.tell() - - if compression == 0: - # - # raw compression - tile = [] - for channel in range(channels): - layer = mode[channel] - if mode == "CMYK": - layer += ";I" - tile.append(("raw", bbox, offset, layer)) - offset = offset + xsize * ysize - - elif compression == 1: - # - # packbits compression - i = 0 - tile = [] - bytecount = read(channels * ysize * 2) - offset = file.tell() - for channel in range(channels): - layer = mode[channel] - if mode == "CMYK": - layer += ";I" - tile.append(("packbits", bbox, offset, layer)) - for y in range(ysize): - offset = offset + i16(bytecount, i) - i += 2 - - file.seek(offset) - - if offset & 1: - read(1) # padding - - return tile - - -# -------------------------------------------------------------------- -# registry - - -Image.register_open(PsdImageFile.format, PsdImageFile, _accept) - -Image.register_extension(PsdImageFile.format, ".psd") - -Image.register_mime(PsdImageFile.format, "image/vnd.adobe.photoshop") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PyAccess.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PyAccess.py deleted file mode 100644 index 07bb712..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/PyAccess.py +++ /dev/null @@ -1,364 +0,0 @@ -# -# The Python Imaging Library -# Pillow fork -# -# Python implementation of the PixelAccess Object -# -# Copyright (c) 1997-2009 by Secret Labs AB. All rights reserved. -# Copyright (c) 1995-2009 by Fredrik Lundh. -# Copyright (c) 2013 Eric Soroos -# -# See the README file for information on usage and redistribution -# - -# Notes: -# -# * Implements the pixel access object following Access.c -# * Taking only the tuple form, which is used from python. -# * Fill.c uses the integer form, but it's still going to use the old -# Access.c implementation. -# -from __future__ import annotations - -import logging -import sys - -from ._deprecate import deprecate - -try: - from cffi import FFI - - defs = """ - struct Pixel_RGBA { - unsigned char r,g,b,a; - }; - struct Pixel_I16 { - unsigned char l,r; - }; - """ - ffi = FFI() - ffi.cdef(defs) -except ImportError as ex: - # Allow error import for doc purposes, but error out when accessing - # anything in core. - from ._util import DeferredError - - FFI = ffi = DeferredError.new(ex) - -logger = logging.getLogger(__name__) - - -class PyAccess: - def __init__(self, img, readonly=False): - deprecate("PyAccess", 11) - vals = dict(img.im.unsafe_ptrs) - self.readonly = readonly - self.image8 = ffi.cast("unsigned char **", vals["image8"]) - self.image32 = ffi.cast("int **", vals["image32"]) - self.image = ffi.cast("unsigned char **", vals["image"]) - self.xsize, self.ysize = img.im.size - self._img = img - - # Keep pointer to im object to prevent dereferencing. - self._im = img.im - if self._im.mode in ("P", "PA"): - self._palette = img.palette - - # Debugging is polluting test traces, only useful here - # when hacking on PyAccess - # logger.debug("%s", vals) - self._post_init() - - def _post_init(self): - pass - - def __setitem__(self, xy, color): - """ - Modifies the pixel at x,y. The color is given as a single - numerical value for single band images, and a tuple for - multi-band images - - :param xy: The pixel coordinate, given as (x, y). See - :ref:`coordinate-system`. - :param color: The pixel value. - """ - if self.readonly: - msg = "Attempt to putpixel a read only image" - raise ValueError(msg) - (x, y) = xy - if x < 0: - x = self.xsize + x - if y < 0: - y = self.ysize + y - (x, y) = self.check_xy((x, y)) - - if ( - self._im.mode in ("P", "PA") - and isinstance(color, (list, tuple)) - and len(color) in [3, 4] - ): - # RGB or RGBA value for a P or PA image - if self._im.mode == "PA": - alpha = color[3] if len(color) == 4 else 255 - color = color[:3] - color = self._palette.getcolor(color, self._img) - if self._im.mode == "PA": - color = (color, alpha) - - return self.set_pixel(x, y, color) - - def __getitem__(self, xy): - """ - Returns the pixel at x,y. The pixel is returned as a single - value for single band images or a tuple for multiple band - images - - :param xy: The pixel coordinate, given as (x, y). See - :ref:`coordinate-system`. - :returns: a pixel value for single band images, a tuple of - pixel values for multiband images. - """ - (x, y) = xy - if x < 0: - x = self.xsize + x - if y < 0: - y = self.ysize + y - (x, y) = self.check_xy((x, y)) - return self.get_pixel(x, y) - - putpixel = __setitem__ - getpixel = __getitem__ - - def check_xy(self, xy): - (x, y) = xy - if not (0 <= x < self.xsize and 0 <= y < self.ysize): - msg = "pixel location out of range" - raise ValueError(msg) - return xy - - -class _PyAccess32_2(PyAccess): - """PA, LA, stored in first and last bytes of a 32 bit word""" - - def _post_init(self, *args, **kwargs): - self.pixels = ffi.cast("struct Pixel_RGBA **", self.image32) - - def get_pixel(self, x, y): - pixel = self.pixels[y][x] - return pixel.r, pixel.a - - def set_pixel(self, x, y, color): - pixel = self.pixels[y][x] - # tuple - pixel.r = min(color[0], 255) - pixel.a = min(color[1], 255) - - -class _PyAccess32_3(PyAccess): - """RGB and friends, stored in the first three bytes of a 32 bit word""" - - def _post_init(self, *args, **kwargs): - self.pixels = ffi.cast("struct Pixel_RGBA **", self.image32) - - def get_pixel(self, x, y): - pixel = self.pixels[y][x] - return pixel.r, pixel.g, pixel.b - - def set_pixel(self, x, y, color): - pixel = self.pixels[y][x] - # tuple - pixel.r = min(color[0], 255) - pixel.g = min(color[1], 255) - pixel.b = min(color[2], 255) - pixel.a = 255 - - -class _PyAccess32_4(PyAccess): - """RGBA etc, all 4 bytes of a 32 bit word""" - - def _post_init(self, *args, **kwargs): - self.pixels = ffi.cast("struct Pixel_RGBA **", self.image32) - - def get_pixel(self, x, y): - pixel = self.pixels[y][x] - return pixel.r, pixel.g, pixel.b, pixel.a - - def set_pixel(self, x, y, color): - pixel = self.pixels[y][x] - # tuple - pixel.r = min(color[0], 255) - pixel.g = min(color[1], 255) - pixel.b = min(color[2], 255) - pixel.a = min(color[3], 255) - - -class _PyAccess8(PyAccess): - """1, L, P, 8 bit images stored as uint8""" - - def _post_init(self, *args, **kwargs): - self.pixels = self.image8 - - def get_pixel(self, x, y): - return self.pixels[y][x] - - def set_pixel(self, x, y, color): - try: - # integer - self.pixels[y][x] = min(color, 255) - except TypeError: - # tuple - self.pixels[y][x] = min(color[0], 255) - - -class _PyAccessI16_N(PyAccess): - """I;16 access, native bitendian without conversion""" - - def _post_init(self, *args, **kwargs): - self.pixels = ffi.cast("unsigned short **", self.image) - - def get_pixel(self, x, y): - return self.pixels[y][x] - - def set_pixel(self, x, y, color): - try: - # integer - self.pixels[y][x] = min(color, 65535) - except TypeError: - # tuple - self.pixels[y][x] = min(color[0], 65535) - - -class _PyAccessI16_L(PyAccess): - """I;16L access, with conversion""" - - def _post_init(self, *args, **kwargs): - self.pixels = ffi.cast("struct Pixel_I16 **", self.image) - - def get_pixel(self, x, y): - pixel = self.pixels[y][x] - return pixel.l + pixel.r * 256 - - def set_pixel(self, x, y, color): - pixel = self.pixels[y][x] - try: - color = min(color, 65535) - except TypeError: - color = min(color[0], 65535) - - pixel.l = color & 0xFF - pixel.r = color >> 8 - - -class _PyAccessI16_B(PyAccess): - """I;16B access, with conversion""" - - def _post_init(self, *args, **kwargs): - self.pixels = ffi.cast("struct Pixel_I16 **", self.image) - - def get_pixel(self, x, y): - pixel = self.pixels[y][x] - return pixel.l * 256 + pixel.r - - def set_pixel(self, x, y, color): - pixel = self.pixels[y][x] - try: - color = min(color, 65535) - except Exception: - color = min(color[0], 65535) - - pixel.l = color >> 8 - pixel.r = color & 0xFF - - -class _PyAccessI32_N(PyAccess): - """Signed Int32 access, native endian""" - - def _post_init(self, *args, **kwargs): - self.pixels = self.image32 - - def get_pixel(self, x, y): - return self.pixels[y][x] - - def set_pixel(self, x, y, color): - self.pixels[y][x] = color - - -class _PyAccessI32_Swap(PyAccess): - """I;32L/B access, with byteswapping conversion""" - - def _post_init(self, *args, **kwargs): - self.pixels = self.image32 - - def reverse(self, i): - orig = ffi.new("int *", i) - chars = ffi.cast("unsigned char *", orig) - chars[0], chars[1], chars[2], chars[3] = chars[3], chars[2], chars[1], chars[0] - return ffi.cast("int *", chars)[0] - - def get_pixel(self, x, y): - return self.reverse(self.pixels[y][x]) - - def set_pixel(self, x, y, color): - self.pixels[y][x] = self.reverse(color) - - -class _PyAccessF(PyAccess): - """32 bit float access""" - - def _post_init(self, *args, **kwargs): - self.pixels = ffi.cast("float **", self.image32) - - def get_pixel(self, x, y): - return self.pixels[y][x] - - def set_pixel(self, x, y, color): - try: - # not a tuple - self.pixels[y][x] = color - except TypeError: - # tuple - self.pixels[y][x] = color[0] - - -mode_map = { - "1": _PyAccess8, - "L": _PyAccess8, - "P": _PyAccess8, - "I;16N": _PyAccessI16_N, - "LA": _PyAccess32_2, - "La": _PyAccess32_2, - "PA": _PyAccess32_2, - "RGB": _PyAccess32_3, - "LAB": _PyAccess32_3, - "HSV": _PyAccess32_3, - "YCbCr": _PyAccess32_3, - "RGBA": _PyAccess32_4, - "RGBa": _PyAccess32_4, - "RGBX": _PyAccess32_4, - "CMYK": _PyAccess32_4, - "F": _PyAccessF, - "I": _PyAccessI32_N, -} - -if sys.byteorder == "little": - mode_map["I;16"] = _PyAccessI16_N - mode_map["I;16L"] = _PyAccessI16_N - mode_map["I;16B"] = _PyAccessI16_B - - mode_map["I;32L"] = _PyAccessI32_N - mode_map["I;32B"] = _PyAccessI32_Swap -else: - mode_map["I;16"] = _PyAccessI16_L - mode_map["I;16L"] = _PyAccessI16_L - mode_map["I;16B"] = _PyAccessI16_N - - mode_map["I;32L"] = _PyAccessI32_Swap - mode_map["I;32B"] = _PyAccessI32_N - - -def new(img, readonly=False): - access_type = mode_map.get(img.mode, None) - if not access_type: - logger.debug("PyAccess Not Implemented: %s", img.mode) - return None - return access_type(img, readonly) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/QoiImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/QoiImagePlugin.py deleted file mode 100644 index a7b9d4a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/QoiImagePlugin.py +++ /dev/null @@ -1,106 +0,0 @@ -# -# The Python Imaging Library. -# -# QOI support for PIL -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import os - -from . import Image, ImageFile -from ._binary import i32be as i32 -from ._binary import o8 - - -def _accept(prefix): - return prefix[:4] == b"qoif" - - -class QoiImageFile(ImageFile.ImageFile): - format = "QOI" - format_description = "Quite OK Image" - - def _open(self): - if not _accept(self.fp.read(4)): - msg = "not a QOI file" - raise SyntaxError(msg) - - self._size = tuple(i32(self.fp.read(4)) for i in range(2)) - - channels = self.fp.read(1)[0] - self._mode = "RGB" if channels == 3 else "RGBA" - - self.fp.seek(1, os.SEEK_CUR) # colorspace - self.tile = [("qoi", (0, 0) + self._size, self.fp.tell(), None)] - - -class QoiDecoder(ImageFile.PyDecoder): - _pulls_fd = True - - def _add_to_previous_pixels(self, value): - self._previous_pixel = value - - r, g, b, a = value - hash_value = (r * 3 + g * 5 + b * 7 + a * 11) % 64 - self._previously_seen_pixels[hash_value] = value - - def decode(self, buffer): - self._previously_seen_pixels = {} - self._previous_pixel = None - self._add_to_previous_pixels(b"".join(o8(i) for i in (0, 0, 0, 255))) - - data = bytearray() - bands = Image.getmodebands(self.mode) - while len(data) < self.state.xsize * self.state.ysize * bands: - byte = self.fd.read(1)[0] - if byte == 0b11111110: # QOI_OP_RGB - value = self.fd.read(3) + self._previous_pixel[3:] - elif byte == 0b11111111: # QOI_OP_RGBA - value = self.fd.read(4) - else: - op = byte >> 6 - if op == 0: # QOI_OP_INDEX - op_index = byte & 0b00111111 - value = self._previously_seen_pixels.get(op_index, (0, 0, 0, 0)) - elif op == 1: # QOI_OP_DIFF - value = ( - (self._previous_pixel[0] + ((byte & 0b00110000) >> 4) - 2) - % 256, - (self._previous_pixel[1] + ((byte & 0b00001100) >> 2) - 2) - % 256, - (self._previous_pixel[2] + (byte & 0b00000011) - 2) % 256, - ) - value += (self._previous_pixel[3],) - elif op == 2: # QOI_OP_LUMA - second_byte = self.fd.read(1)[0] - diff_green = (byte & 0b00111111) - 32 - diff_red = ((second_byte & 0b11110000) >> 4) - 8 - diff_blue = (second_byte & 0b00001111) - 8 - - value = tuple( - (self._previous_pixel[i] + diff_green + diff) % 256 - for i, diff in enumerate((diff_red, 0, diff_blue)) - ) - value += (self._previous_pixel[3],) - elif op == 3: # QOI_OP_RUN - run_length = (byte & 0b00111111) + 1 - value = self._previous_pixel - if bands == 3: - value = value[:3] - data += value * run_length - continue - value = b"".join(o8(i) for i in value) - self._add_to_previous_pixels(value) - - if bands == 3: - value = value[:3] - data += value - self.set_as_raw(bytes(data)) - return -1, 0 - - -Image.register_open(QoiImageFile.format, QoiImageFile, _accept) -Image.register_decoder("qoi", QoiDecoder) -Image.register_extension(QoiImageFile.format, ".qoi") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SgiImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SgiImagePlugin.py deleted file mode 100644 index f9a10f6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SgiImagePlugin.py +++ /dev/null @@ -1,231 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# SGI image file handling -# -# See "The SGI Image File Format (Draft version 0.97)", Paul Haeberli. -# -# -# -# History: -# 2017-22-07 mb Add RLE decompression -# 2016-16-10 mb Add save method without compression -# 1995-09-10 fl Created -# -# Copyright (c) 2016 by Mickael Bonfill. -# Copyright (c) 2008 by Karsten Hiddemann. -# Copyright (c) 1997 by Secret Labs AB. -# Copyright (c) 1995 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import os -import struct - -from . import Image, ImageFile -from ._binary import i16be as i16 -from ._binary import o8 - - -def _accept(prefix): - return len(prefix) >= 2 and i16(prefix) == 474 - - -MODES = { - (1, 1, 1): "L", - (1, 2, 1): "L", - (2, 1, 1): "L;16B", - (2, 2, 1): "L;16B", - (1, 3, 3): "RGB", - (2, 3, 3): "RGB;16B", - (1, 3, 4): "RGBA", - (2, 3, 4): "RGBA;16B", -} - - -## -# Image plugin for SGI images. -class SgiImageFile(ImageFile.ImageFile): - format = "SGI" - format_description = "SGI Image File Format" - - def _open(self): - # HEAD - headlen = 512 - s = self.fp.read(headlen) - - if not _accept(s): - msg = "Not an SGI image file" - raise ValueError(msg) - - # compression : verbatim or RLE - compression = s[2] - - # bpc : 1 or 2 bytes (8bits or 16bits) - bpc = s[3] - - # dimension : 1, 2 or 3 (depending on xsize, ysize and zsize) - dimension = i16(s, 4) - - # xsize : width - xsize = i16(s, 6) - - # ysize : height - ysize = i16(s, 8) - - # zsize : channels count - zsize = i16(s, 10) - - # layout - layout = bpc, dimension, zsize - - # determine mode from bits/zsize - rawmode = "" - try: - rawmode = MODES[layout] - except KeyError: - pass - - if rawmode == "": - msg = "Unsupported SGI image mode" - raise ValueError(msg) - - self._size = xsize, ysize - self._mode = rawmode.split(";")[0] - if self.mode == "RGB": - self.custom_mimetype = "image/rgb" - - # orientation -1 : scanlines begins at the bottom-left corner - orientation = -1 - - # decoder info - if compression == 0: - pagesize = xsize * ysize * bpc - if bpc == 2: - self.tile = [ - ("SGI16", (0, 0) + self.size, headlen, (self.mode, 0, orientation)) - ] - else: - self.tile = [] - offset = headlen - for layer in self.mode: - self.tile.append( - ("raw", (0, 0) + self.size, offset, (layer, 0, orientation)) - ) - offset += pagesize - elif compression == 1: - self.tile = [ - ("sgi_rle", (0, 0) + self.size, headlen, (rawmode, orientation, bpc)) - ] - - -def _save(im, fp, filename): - if im.mode not in {"RGB", "RGBA", "L"}: - msg = "Unsupported SGI image mode" - raise ValueError(msg) - - # Get the keyword arguments - info = im.encoderinfo - - # Byte-per-pixel precision, 1 = 8bits per pixel - bpc = info.get("bpc", 1) - - if bpc not in (1, 2): - msg = "Unsupported number of bytes per pixel" - raise ValueError(msg) - - # Flip the image, since the origin of SGI file is the bottom-left corner - orientation = -1 - # Define the file as SGI File Format - magic_number = 474 - # Run-Length Encoding Compression - Unsupported at this time - rle = 0 - - # Number of dimensions (x,y,z) - dim = 3 - # X Dimension = width / Y Dimension = height - x, y = im.size - if im.mode == "L" and y == 1: - dim = 1 - elif im.mode == "L": - dim = 2 - # Z Dimension: Number of channels - z = len(im.mode) - - if dim in {1, 2}: - z = 1 - - # assert we've got the right number of bands. - if len(im.getbands()) != z: - msg = f"incorrect number of bands in SGI write: {z} vs {len(im.getbands())}" - raise ValueError(msg) - - # Minimum Byte value - pinmin = 0 - # Maximum Byte value (255 = 8bits per pixel) - pinmax = 255 - # Image name (79 characters max, truncated below in write) - img_name = os.path.splitext(os.path.basename(filename))[0] - img_name = img_name.encode("ascii", "ignore") - # Standard representation of pixel in the file - colormap = 0 - fp.write(struct.pack(">h", magic_number)) - fp.write(o8(rle)) - fp.write(o8(bpc)) - fp.write(struct.pack(">H", dim)) - fp.write(struct.pack(">H", x)) - fp.write(struct.pack(">H", y)) - fp.write(struct.pack(">H", z)) - fp.write(struct.pack(">l", pinmin)) - fp.write(struct.pack(">l", pinmax)) - fp.write(struct.pack("4s", b"")) # dummy - fp.write(struct.pack("79s", img_name)) # truncates to 79 chars - fp.write(struct.pack("s", b"")) # force null byte after img_name - fp.write(struct.pack(">l", colormap)) - fp.write(struct.pack("404s", b"")) # dummy - - rawmode = "L" - if bpc == 2: - rawmode = "L;16B" - - for channel in im.split(): - fp.write(channel.tobytes("raw", rawmode, 0, orientation)) - - if hasattr(fp, "flush"): - fp.flush() - - -class SGI16Decoder(ImageFile.PyDecoder): - _pulls_fd = True - - def decode(self, buffer): - rawmode, stride, orientation = self.args - pagesize = self.state.xsize * self.state.ysize - zsize = len(self.mode) - self.fd.seek(512) - - for band in range(zsize): - channel = Image.new("L", (self.state.xsize, self.state.ysize)) - channel.frombytes( - self.fd.read(2 * pagesize), "raw", "L;16B", stride, orientation - ) - self.im.putband(channel.im, band) - - return -1, 0 - - -# -# registry - - -Image.register_decoder("SGI16", SGI16Decoder) -Image.register_open(SgiImageFile.format, SgiImageFile, _accept) -Image.register_save(SgiImageFile.format, _save) -Image.register_mime(SgiImageFile.format, "image/sgi") - -Image.register_extensions(SgiImageFile.format, [".bw", ".rgb", ".rgba", ".sgi"]) - -# End of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SpiderImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SpiderImagePlugin.py deleted file mode 100644 index 86582fb..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SpiderImagePlugin.py +++ /dev/null @@ -1,318 +0,0 @@ -# -# The Python Imaging Library. -# -# SPIDER image file handling -# -# History: -# 2004-08-02 Created BB -# 2006-03-02 added save method -# 2006-03-13 added support for stack images -# -# Copyright (c) 2004 by Health Research Inc. (HRI) RENSSELAER, NY 12144. -# Copyright (c) 2004 by William Baxter. -# Copyright (c) 2004 by Secret Labs AB. -# Copyright (c) 2004 by Fredrik Lundh. -# - -## -# Image plugin for the Spider image format. This format is used -# by the SPIDER software, in processing image data from electron -# microscopy and tomography. -## - -# -# SpiderImagePlugin.py -# -# The Spider image format is used by SPIDER software, in processing -# image data from electron microscopy and tomography. -# -# Spider home page: -# https://spider.wadsworth.org/spider_doc/spider/docs/spider.html -# -# Details about the Spider image format: -# https://spider.wadsworth.org/spider_doc/spider/docs/image_doc.html -# -from __future__ import annotations - -import os -import struct -import sys - -from . import Image, ImageFile - - -def isInt(f): - try: - i = int(f) - if f - i == 0: - return 1 - else: - return 0 - except (ValueError, OverflowError): - return 0 - - -iforms = [1, 3, -11, -12, -21, -22] - - -# There is no magic number to identify Spider files, so just check a -# series of header locations to see if they have reasonable values. -# Returns no. of bytes in the header, if it is a valid Spider header, -# otherwise returns 0 - - -def isSpiderHeader(t): - h = (99,) + t # add 1 value so can use spider header index start=1 - # header values 1,2,5,12,13,22,23 should be integers - for i in [1, 2, 5, 12, 13, 22, 23]: - if not isInt(h[i]): - return 0 - # check iform - iform = int(h[5]) - if iform not in iforms: - return 0 - # check other header values - labrec = int(h[13]) # no. records in file header - labbyt = int(h[22]) # total no. of bytes in header - lenbyt = int(h[23]) # record length in bytes - if labbyt != (labrec * lenbyt): - return 0 - # looks like a valid header - return labbyt - - -def isSpiderImage(filename): - with open(filename, "rb") as fp: - f = fp.read(92) # read 23 * 4 bytes - t = struct.unpack(">23f", f) # try big-endian first - hdrlen = isSpiderHeader(t) - if hdrlen == 0: - t = struct.unpack("<23f", f) # little-endian - hdrlen = isSpiderHeader(t) - return hdrlen - - -class SpiderImageFile(ImageFile.ImageFile): - format = "SPIDER" - format_description = "Spider 2D image" - _close_exclusive_fp_after_loading = False - - def _open(self): - # check header - n = 27 * 4 # read 27 float values - f = self.fp.read(n) - - try: - self.bigendian = 1 - t = struct.unpack(">27f", f) # try big-endian first - hdrlen = isSpiderHeader(t) - if hdrlen == 0: - self.bigendian = 0 - t = struct.unpack("<27f", f) # little-endian - hdrlen = isSpiderHeader(t) - if hdrlen == 0: - msg = "not a valid Spider file" - raise SyntaxError(msg) - except struct.error as e: - msg = "not a valid Spider file" - raise SyntaxError(msg) from e - - h = (99,) + t # add 1 value : spider header index starts at 1 - iform = int(h[5]) - if iform != 1: - msg = "not a Spider 2D image" - raise SyntaxError(msg) - - self._size = int(h[12]), int(h[2]) # size in pixels (width, height) - self.istack = int(h[24]) - self.imgnumber = int(h[27]) - - if self.istack == 0 and self.imgnumber == 0: - # stk=0, img=0: a regular 2D image - offset = hdrlen - self._nimages = 1 - elif self.istack > 0 and self.imgnumber == 0: - # stk>0, img=0: Opening the stack for the first time - self.imgbytes = int(h[12]) * int(h[2]) * 4 - self.hdrlen = hdrlen - self._nimages = int(h[26]) - # Point to the first image in the stack - offset = hdrlen * 2 - self.imgnumber = 1 - elif self.istack == 0 and self.imgnumber > 0: - # stk=0, img>0: an image within the stack - offset = hdrlen + self.stkoffset - self.istack = 2 # So Image knows it's still a stack - else: - msg = "inconsistent stack header values" - raise SyntaxError(msg) - - if self.bigendian: - self.rawmode = "F;32BF" - else: - self.rawmode = "F;32F" - self._mode = "F" - - self.tile = [("raw", (0, 0) + self.size, offset, (self.rawmode, 0, 1))] - self._fp = self.fp # FIXME: hack - - @property - def n_frames(self): - return self._nimages - - @property - def is_animated(self): - return self._nimages > 1 - - # 1st image index is zero (although SPIDER imgnumber starts at 1) - def tell(self): - if self.imgnumber < 1: - return 0 - else: - return self.imgnumber - 1 - - def seek(self, frame): - if self.istack == 0: - msg = "attempt to seek in a non-stack file" - raise EOFError(msg) - if not self._seek_check(frame): - return - self.stkoffset = self.hdrlen + frame * (self.hdrlen + self.imgbytes) - self.fp = self._fp - self.fp.seek(self.stkoffset) - self._open() - - # returns a byte image after rescaling to 0..255 - def convert2byte(self, depth=255): - (minimum, maximum) = self.getextrema() - m = 1 - if maximum != minimum: - m = depth / (maximum - minimum) - b = -m * minimum - return self.point(lambda i, m=m, b=b: i * m + b).convert("L") - - # returns a ImageTk.PhotoImage object, after rescaling to 0..255 - def tkPhotoImage(self): - from . import ImageTk - - return ImageTk.PhotoImage(self.convert2byte(), palette=256) - - -# -------------------------------------------------------------------- -# Image series - - -# given a list of filenames, return a list of images -def loadImageSeries(filelist=None): - """create a list of :py:class:`~PIL.Image.Image` objects for use in a montage""" - if filelist is None or len(filelist) < 1: - return - - imglist = [] - for img in filelist: - if not os.path.exists(img): - print(f"unable to find {img}") - continue - try: - with Image.open(img) as im: - im = im.convert2byte() - except Exception: - if not isSpiderImage(img): - print(img + " is not a Spider image file") - continue - im.info["filename"] = img - imglist.append(im) - return imglist - - -# -------------------------------------------------------------------- -# For saving images in Spider format - - -def makeSpiderHeader(im): - nsam, nrow = im.size - lenbyt = nsam * 4 # There are labrec records in the header - labrec = int(1024 / lenbyt) - if 1024 % lenbyt != 0: - labrec += 1 - labbyt = labrec * lenbyt - nvalues = int(labbyt / 4) - if nvalues < 23: - return [] - - hdr = [0.0] * nvalues - - # NB these are Fortran indices - hdr[1] = 1.0 # nslice (=1 for an image) - hdr[2] = float(nrow) # number of rows per slice - hdr[3] = float(nrow) # number of records in the image - hdr[5] = 1.0 # iform for 2D image - hdr[12] = float(nsam) # number of pixels per line - hdr[13] = float(labrec) # number of records in file header - hdr[22] = float(labbyt) # total number of bytes in header - hdr[23] = float(lenbyt) # record length in bytes - - # adjust for Fortran indexing - hdr = hdr[1:] - hdr.append(0.0) - # pack binary data into a string - return [struct.pack("f", v) for v in hdr] - - -def _save(im, fp, filename): - if im.mode[0] != "F": - im = im.convert("F") - - hdr = makeSpiderHeader(im) - if len(hdr) < 256: - msg = "Error creating Spider header" - raise OSError(msg) - - # write the SPIDER header - fp.writelines(hdr) - - rawmode = "F;32NF" # 32-bit native floating point - ImageFile._save(im, fp, [("raw", (0, 0) + im.size, 0, (rawmode, 0, 1))]) - - -def _save_spider(im, fp, filename): - # get the filename extension and register it with Image - ext = os.path.splitext(filename)[1] - Image.register_extension(SpiderImageFile.format, ext) - _save(im, fp, filename) - - -# -------------------------------------------------------------------- - - -Image.register_open(SpiderImageFile.format, SpiderImageFile) -Image.register_save(SpiderImageFile.format, _save_spider) - -if __name__ == "__main__": - if len(sys.argv) < 2: - print("Syntax: python3 SpiderImagePlugin.py [infile] [outfile]") - sys.exit() - - filename = sys.argv[1] - if not isSpiderImage(filename): - print("input image must be in Spider format") - sys.exit() - - with Image.open(filename) as im: - print("image: " + str(im)) - print("format: " + str(im.format)) - print("size: " + str(im.size)) - print("mode: " + str(im.mode)) - print("max, min: ", end=" ") - print(im.getextrema()) - - if len(sys.argv) > 2: - outfile = sys.argv[2] - - # perform some image operation - im = im.transpose(Image.Transpose.FLIP_LEFT_RIGHT) - print( - f"saving a flipped version of {os.path.basename(filename)} " - f"as {outfile} " - ) - im.save(outfile, SpiderImageFile.format) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SunImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SunImagePlugin.py deleted file mode 100644 index 11ce3df..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/SunImagePlugin.py +++ /dev/null @@ -1,139 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# Sun image file handling -# -# History: -# 1995-09-10 fl Created -# 1996-05-28 fl Fixed 32-bit alignment -# 1998-12-29 fl Import ImagePalette module -# 2001-12-18 fl Fixed palette loading (from Jean-Claude Rimbault) -# -# Copyright (c) 1997-2001 by Secret Labs AB -# Copyright (c) 1995-1996 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -from . import Image, ImageFile, ImagePalette -from ._binary import i32be as i32 - - -def _accept(prefix): - return len(prefix) >= 4 and i32(prefix) == 0x59A66A95 - - -## -# Image plugin for Sun raster files. - - -class SunImageFile(ImageFile.ImageFile): - format = "SUN" - format_description = "Sun Raster File" - - def _open(self): - # The Sun Raster file header is 32 bytes in length - # and has the following format: - - # typedef struct _SunRaster - # { - # DWORD MagicNumber; /* Magic (identification) number */ - # DWORD Width; /* Width of image in pixels */ - # DWORD Height; /* Height of image in pixels */ - # DWORD Depth; /* Number of bits per pixel */ - # DWORD Length; /* Size of image data in bytes */ - # DWORD Type; /* Type of raster file */ - # DWORD ColorMapType; /* Type of color map */ - # DWORD ColorMapLength; /* Size of the color map in bytes */ - # } SUNRASTER; - - # HEAD - s = self.fp.read(32) - if not _accept(s): - msg = "not an SUN raster file" - raise SyntaxError(msg) - - offset = 32 - - self._size = i32(s, 4), i32(s, 8) - - depth = i32(s, 12) - # data_length = i32(s, 16) # unreliable, ignore. - file_type = i32(s, 20) - palette_type = i32(s, 24) # 0: None, 1: RGB, 2: Raw/arbitrary - palette_length = i32(s, 28) - - if depth == 1: - self._mode, rawmode = "1", "1;I" - elif depth == 4: - self._mode, rawmode = "L", "L;4" - elif depth == 8: - self._mode = rawmode = "L" - elif depth == 24: - if file_type == 3: - self._mode, rawmode = "RGB", "RGB" - else: - self._mode, rawmode = "RGB", "BGR" - elif depth == 32: - if file_type == 3: - self._mode, rawmode = "RGB", "RGBX" - else: - self._mode, rawmode = "RGB", "BGRX" - else: - msg = "Unsupported Mode/Bit Depth" - raise SyntaxError(msg) - - if palette_length: - if palette_length > 1024: - msg = "Unsupported Color Palette Length" - raise SyntaxError(msg) - - if palette_type != 1: - msg = "Unsupported Palette Type" - raise SyntaxError(msg) - - offset = offset + palette_length - self.palette = ImagePalette.raw("RGB;L", self.fp.read(palette_length)) - if self.mode == "L": - self._mode = "P" - rawmode = rawmode.replace("L", "P") - - # 16 bit boundaries on stride - stride = ((self.size[0] * depth + 15) // 16) * 2 - - # file type: Type is the version (or flavor) of the bitmap - # file. The following values are typically found in the Type - # field: - # 0000h Old - # 0001h Standard - # 0002h Byte-encoded - # 0003h RGB format - # 0004h TIFF format - # 0005h IFF format - # FFFFh Experimental - - # Old and standard are the same, except for the length tag. - # byte-encoded is run-length-encoded - # RGB looks similar to standard, but RGB byte order - # TIFF and IFF mean that they were converted from T/IFF - # Experimental means that it's something else. - # (https://www.fileformat.info/format/sunraster/egff.htm) - - if file_type in (0, 1, 3, 4, 5): - self.tile = [("raw", (0, 0) + self.size, offset, (rawmode, stride))] - elif file_type == 2: - self.tile = [("sun_rle", (0, 0) + self.size, offset, rawmode)] - else: - msg = "Unsupported Sun Raster file type" - raise SyntaxError(msg) - - -# -# registry - - -Image.register_open(SunImageFile.format, SunImageFile, _accept) - -Image.register_extension(SunImageFile.format, ".ras") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TarIO.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TarIO.py deleted file mode 100644 index 7470663..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TarIO.py +++ /dev/null @@ -1,73 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# read files from within a tar file -# -# History: -# 95-06-18 fl Created -# 96-05-28 fl Open files in binary mode -# -# Copyright (c) Secret Labs AB 1997. -# Copyright (c) Fredrik Lundh 1995-96. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -from types import TracebackType - -from . import ContainerIO - - -class TarIO(ContainerIO.ContainerIO[bytes]): - """A file object that provides read access to a given member of a TAR file.""" - - def __init__(self, tarfile: str, file: str) -> None: - """ - Create file object. - - :param tarfile: Name of TAR file. - :param file: Name of member file. - """ - self.fh = open(tarfile, "rb") - - while True: - s = self.fh.read(512) - if len(s) != 512: - msg = "unexpected end of tar file" - raise OSError(msg) - - name = s[:100].decode("utf-8") - i = name.find("\0") - if i == 0: - msg = "cannot find subfile" - raise OSError(msg) - if i > 0: - name = name[:i] - - size = int(s[124:135], 8) - - if file == name: - break - - self.fh.seek((size + 511) & (~511), io.SEEK_CUR) - - # Open region - super().__init__(self.fh, self.fh.tell(), size) - - # Context manager support - def __enter__(self) -> TarIO: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.close() - - def close(self) -> None: - self.fh.close() diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TgaImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TgaImagePlugin.py deleted file mode 100644 index 65c7484..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TgaImagePlugin.py +++ /dev/null @@ -1,255 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# TGA file handling -# -# History: -# 95-09-01 fl created (reads 24-bit files only) -# 97-01-04 fl support more TGA versions, including compressed images -# 98-07-04 fl fixed orientation and alpha layer bugs -# 98-09-11 fl fixed orientation for runlength decoder -# -# Copyright (c) Secret Labs AB 1997-98. -# Copyright (c) Fredrik Lundh 1995-97. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import warnings - -from . import Image, ImageFile, ImagePalette -from ._binary import i16le as i16 -from ._binary import o8 -from ._binary import o16le as o16 - -# -# -------------------------------------------------------------------- -# Read RGA file - - -MODES = { - # map imagetype/depth to rawmode - (1, 8): "P", - (3, 1): "1", - (3, 8): "L", - (3, 16): "LA", - (2, 16): "BGR;5", - (2, 24): "BGR", - (2, 32): "BGRA", -} - - -## -# Image plugin for Targa files. - - -class TgaImageFile(ImageFile.ImageFile): - format = "TGA" - format_description = "Targa" - - def _open(self): - # process header - s = self.fp.read(18) - - id_len = s[0] - - colormaptype = s[1] - imagetype = s[2] - - depth = s[16] - - flags = s[17] - - self._size = i16(s, 12), i16(s, 14) - - # validate header fields - if ( - colormaptype not in (0, 1) - or self.size[0] <= 0 - or self.size[1] <= 0 - or depth not in (1, 8, 16, 24, 32) - ): - msg = "not a TGA file" - raise SyntaxError(msg) - - # image mode - if imagetype in (3, 11): - self._mode = "L" - if depth == 1: - self._mode = "1" # ??? - elif depth == 16: - self._mode = "LA" - elif imagetype in (1, 9): - self._mode = "P" - elif imagetype in (2, 10): - self._mode = "RGB" - if depth == 32: - self._mode = "RGBA" - else: - msg = "unknown TGA mode" - raise SyntaxError(msg) - - # orientation - orientation = flags & 0x30 - self._flip_horizontally = orientation in [0x10, 0x30] - if orientation in [0x20, 0x30]: - orientation = 1 - elif orientation in [0, 0x10]: - orientation = -1 - else: - msg = "unknown TGA orientation" - raise SyntaxError(msg) - - self.info["orientation"] = orientation - - if imagetype & 8: - self.info["compression"] = "tga_rle" - - if id_len: - self.info["id_section"] = self.fp.read(id_len) - - if colormaptype: - # read palette - start, size, mapdepth = i16(s, 3), i16(s, 5), s[7] - if mapdepth == 16: - self.palette = ImagePalette.raw( - "BGR;15", b"\0" * 2 * start + self.fp.read(2 * size) - ) - elif mapdepth == 24: - self.palette = ImagePalette.raw( - "BGR", b"\0" * 3 * start + self.fp.read(3 * size) - ) - elif mapdepth == 32: - self.palette = ImagePalette.raw( - "BGRA", b"\0" * 4 * start + self.fp.read(4 * size) - ) - - # setup tile descriptor - try: - rawmode = MODES[(imagetype & 7, depth)] - if imagetype & 8: - # compressed - self.tile = [ - ( - "tga_rle", - (0, 0) + self.size, - self.fp.tell(), - (rawmode, orientation, depth), - ) - ] - else: - self.tile = [ - ( - "raw", - (0, 0) + self.size, - self.fp.tell(), - (rawmode, 0, orientation), - ) - ] - except KeyError: - pass # cannot decode - - def load_end(self): - if self._flip_horizontally: - self.im = self.im.transpose(Image.Transpose.FLIP_LEFT_RIGHT) - - -# -# -------------------------------------------------------------------- -# Write TGA file - - -SAVE = { - "1": ("1", 1, 0, 3), - "L": ("L", 8, 0, 3), - "LA": ("LA", 16, 0, 3), - "P": ("P", 8, 1, 1), - "RGB": ("BGR", 24, 0, 2), - "RGBA": ("BGRA", 32, 0, 2), -} - - -def _save(im, fp, filename): - try: - rawmode, bits, colormaptype, imagetype = SAVE[im.mode] - except KeyError as e: - msg = f"cannot write mode {im.mode} as TGA" - raise OSError(msg) from e - - if "rle" in im.encoderinfo: - rle = im.encoderinfo["rle"] - else: - compression = im.encoderinfo.get("compression", im.info.get("compression")) - rle = compression == "tga_rle" - if rle: - imagetype += 8 - - id_section = im.encoderinfo.get("id_section", im.info.get("id_section", "")) - id_len = len(id_section) - if id_len > 255: - id_len = 255 - id_section = id_section[:255] - warnings.warn("id_section has been trimmed to 255 characters") - - if colormaptype: - palette = im.im.getpalette("RGB", "BGR") - colormaplength, colormapentry = len(palette) // 3, 24 - else: - colormaplength, colormapentry = 0, 0 - - if im.mode in ("LA", "RGBA"): - flags = 8 - else: - flags = 0 - - orientation = im.encoderinfo.get("orientation", im.info.get("orientation", -1)) - if orientation > 0: - flags = flags | 0x20 - - fp.write( - o8(id_len) - + o8(colormaptype) - + o8(imagetype) - + o16(0) # colormapfirst - + o16(colormaplength) - + o8(colormapentry) - + o16(0) - + o16(0) - + o16(im.size[0]) - + o16(im.size[1]) - + o8(bits) - + o8(flags) - ) - - if id_section: - fp.write(id_section) - - if colormaptype: - fp.write(palette) - - if rle: - ImageFile._save( - im, fp, [("tga_rle", (0, 0) + im.size, 0, (rawmode, orientation))] - ) - else: - ImageFile._save( - im, fp, [("raw", (0, 0) + im.size, 0, (rawmode, 0, orientation))] - ) - - # write targa version 2 footer - fp.write(b"\000" * 8 + b"TRUEVISION-XFILE." + b"\000") - - -# -# -------------------------------------------------------------------- -# Registry - - -Image.register_open(TgaImageFile.format, TgaImageFile) -Image.register_save(TgaImageFile.format, _save) - -Image.register_extensions(TgaImageFile.format, [".tga", ".icb", ".vda", ".vst"]) - -Image.register_mime(TgaImageFile.format, "image/x-tga") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TiffImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TiffImagePlugin.py deleted file mode 100644 index e20d4d5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TiffImagePlugin.py +++ /dev/null @@ -1,2159 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# TIFF file handling -# -# TIFF is a flexible, if somewhat aged, image file format originally -# defined by Aldus. Although TIFF supports a wide variety of pixel -# layouts and compression methods, the name doesn't really stand for -# "thousands of incompatible file formats," it just feels that way. -# -# To read TIFF data from a stream, the stream must be seekable. For -# progressive decoding, make sure to use TIFF files where the tag -# directory is placed first in the file. -# -# History: -# 1995-09-01 fl Created -# 1996-05-04 fl Handle JPEGTABLES tag -# 1996-05-18 fl Fixed COLORMAP support -# 1997-01-05 fl Fixed PREDICTOR support -# 1997-08-27 fl Added support for rational tags (from Perry Stoll) -# 1998-01-10 fl Fixed seek/tell (from Jan Blom) -# 1998-07-15 fl Use private names for internal variables -# 1999-06-13 fl Rewritten for PIL 1.0 (1.0) -# 2000-10-11 fl Additional fixes for Python 2.0 (1.1) -# 2001-04-17 fl Fixed rewind support (seek to frame 0) (1.2) -# 2001-05-12 fl Added write support for more tags (from Greg Couch) (1.3) -# 2001-12-18 fl Added workaround for broken Matrox library -# 2002-01-18 fl Don't mess up if photometric tag is missing (D. Alan Stewart) -# 2003-05-19 fl Check FILLORDER tag -# 2003-09-26 fl Added RGBa support -# 2004-02-24 fl Added DPI support; fixed rational write support -# 2005-02-07 fl Added workaround for broken Corel Draw 10 files -# 2006-01-09 fl Added support for float/double tags (from Russell Nelson) -# -# Copyright (c) 1997-2006 by Secret Labs AB. All rights reserved. -# Copyright (c) 1995-1997 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import io -import itertools -import logging -import math -import os -import struct -import warnings -from collections.abc import MutableMapping -from fractions import Fraction -from numbers import Number, Rational - -from . import ExifTags, Image, ImageFile, ImageOps, ImagePalette, TiffTags -from ._binary import i16be as i16 -from ._binary import i32be as i32 -from ._binary import o8 -from .TiffTags import TYPES - -logger = logging.getLogger(__name__) - -# Set these to true to force use of libtiff for reading or writing. -READ_LIBTIFF = False -WRITE_LIBTIFF = False -IFD_LEGACY_API = True -STRIP_SIZE = 65536 - -II = b"II" # little-endian (Intel style) -MM = b"MM" # big-endian (Motorola style) - -# -# -------------------------------------------------------------------- -# Read TIFF files - -# a few tag names, just to make the code below a bit more readable -IMAGEWIDTH = 256 -IMAGELENGTH = 257 -BITSPERSAMPLE = 258 -COMPRESSION = 259 -PHOTOMETRIC_INTERPRETATION = 262 -FILLORDER = 266 -IMAGEDESCRIPTION = 270 -STRIPOFFSETS = 273 -SAMPLESPERPIXEL = 277 -ROWSPERSTRIP = 278 -STRIPBYTECOUNTS = 279 -X_RESOLUTION = 282 -Y_RESOLUTION = 283 -PLANAR_CONFIGURATION = 284 -RESOLUTION_UNIT = 296 -TRANSFERFUNCTION = 301 -SOFTWARE = 305 -DATE_TIME = 306 -ARTIST = 315 -PREDICTOR = 317 -COLORMAP = 320 -TILEWIDTH = 322 -TILELENGTH = 323 -TILEOFFSETS = 324 -TILEBYTECOUNTS = 325 -SUBIFD = 330 -EXTRASAMPLES = 338 -SAMPLEFORMAT = 339 -JPEGTABLES = 347 -YCBCRSUBSAMPLING = 530 -REFERENCEBLACKWHITE = 532 -COPYRIGHT = 33432 -IPTC_NAA_CHUNK = 33723 # newsphoto properties -PHOTOSHOP_CHUNK = 34377 # photoshop properties -ICCPROFILE = 34675 -EXIFIFD = 34665 -XMP = 700 -JPEGQUALITY = 65537 # pseudo-tag by libtiff - -# https://github.com/imagej/ImageJA/blob/master/src/main/java/ij/io/TiffDecoder.java -IMAGEJ_META_DATA_BYTE_COUNTS = 50838 -IMAGEJ_META_DATA = 50839 - -COMPRESSION_INFO = { - # Compression => pil compression name - 1: "raw", - 2: "tiff_ccitt", - 3: "group3", - 4: "group4", - 5: "tiff_lzw", - 6: "tiff_jpeg", # obsolete - 7: "jpeg", - 8: "tiff_adobe_deflate", - 32771: "tiff_raw_16", # 16-bit padding - 32773: "packbits", - 32809: "tiff_thunderscan", - 32946: "tiff_deflate", - 34676: "tiff_sgilog", - 34677: "tiff_sgilog24", - 34925: "lzma", - 50000: "zstd", - 50001: "webp", -} - -COMPRESSION_INFO_REV = {v: k for k, v in COMPRESSION_INFO.items()} - -OPEN_INFO = { - # (ByteOrder, PhotoInterpretation, SampleFormat, FillOrder, BitsPerSample, - # ExtraSamples) => mode, rawmode - (II, 0, (1,), 1, (1,), ()): ("1", "1;I"), - (MM, 0, (1,), 1, (1,), ()): ("1", "1;I"), - (II, 0, (1,), 2, (1,), ()): ("1", "1;IR"), - (MM, 0, (1,), 2, (1,), ()): ("1", "1;IR"), - (II, 1, (1,), 1, (1,), ()): ("1", "1"), - (MM, 1, (1,), 1, (1,), ()): ("1", "1"), - (II, 1, (1,), 2, (1,), ()): ("1", "1;R"), - (MM, 1, (1,), 2, (1,), ()): ("1", "1;R"), - (II, 0, (1,), 1, (2,), ()): ("L", "L;2I"), - (MM, 0, (1,), 1, (2,), ()): ("L", "L;2I"), - (II, 0, (1,), 2, (2,), ()): ("L", "L;2IR"), - (MM, 0, (1,), 2, (2,), ()): ("L", "L;2IR"), - (II, 1, (1,), 1, (2,), ()): ("L", "L;2"), - (MM, 1, (1,), 1, (2,), ()): ("L", "L;2"), - (II, 1, (1,), 2, (2,), ()): ("L", "L;2R"), - (MM, 1, (1,), 2, (2,), ()): ("L", "L;2R"), - (II, 0, (1,), 1, (4,), ()): ("L", "L;4I"), - (MM, 0, (1,), 1, (4,), ()): ("L", "L;4I"), - (II, 0, (1,), 2, (4,), ()): ("L", "L;4IR"), - (MM, 0, (1,), 2, (4,), ()): ("L", "L;4IR"), - (II, 1, (1,), 1, (4,), ()): ("L", "L;4"), - (MM, 1, (1,), 1, (4,), ()): ("L", "L;4"), - (II, 1, (1,), 2, (4,), ()): ("L", "L;4R"), - (MM, 1, (1,), 2, (4,), ()): ("L", "L;4R"), - (II, 0, (1,), 1, (8,), ()): ("L", "L;I"), - (MM, 0, (1,), 1, (8,), ()): ("L", "L;I"), - (II, 0, (1,), 2, (8,), ()): ("L", "L;IR"), - (MM, 0, (1,), 2, (8,), ()): ("L", "L;IR"), - (II, 1, (1,), 1, (8,), ()): ("L", "L"), - (MM, 1, (1,), 1, (8,), ()): ("L", "L"), - (II, 1, (2,), 1, (8,), ()): ("L", "L"), - (MM, 1, (2,), 1, (8,), ()): ("L", "L"), - (II, 1, (1,), 2, (8,), ()): ("L", "L;R"), - (MM, 1, (1,), 2, (8,), ()): ("L", "L;R"), - (II, 1, (1,), 1, (12,), ()): ("I;16", "I;12"), - (II, 0, (1,), 1, (16,), ()): ("I;16", "I;16"), - (II, 1, (1,), 1, (16,), ()): ("I;16", "I;16"), - (MM, 1, (1,), 1, (16,), ()): ("I;16B", "I;16B"), - (II, 1, (1,), 2, (16,), ()): ("I;16", "I;16R"), - (II, 1, (2,), 1, (16,), ()): ("I", "I;16S"), - (MM, 1, (2,), 1, (16,), ()): ("I", "I;16BS"), - (II, 0, (3,), 1, (32,), ()): ("F", "F;32F"), - (MM, 0, (3,), 1, (32,), ()): ("F", "F;32BF"), - (II, 1, (1,), 1, (32,), ()): ("I", "I;32N"), - (II, 1, (2,), 1, (32,), ()): ("I", "I;32S"), - (MM, 1, (2,), 1, (32,), ()): ("I", "I;32BS"), - (II, 1, (3,), 1, (32,), ()): ("F", "F;32F"), - (MM, 1, (3,), 1, (32,), ()): ("F", "F;32BF"), - (II, 1, (1,), 1, (8, 8), (2,)): ("LA", "LA"), - (MM, 1, (1,), 1, (8, 8), (2,)): ("LA", "LA"), - (II, 2, (1,), 1, (8, 8, 8), ()): ("RGB", "RGB"), - (MM, 2, (1,), 1, (8, 8, 8), ()): ("RGB", "RGB"), - (II, 2, (1,), 2, (8, 8, 8), ()): ("RGB", "RGB;R"), - (MM, 2, (1,), 2, (8, 8, 8), ()): ("RGB", "RGB;R"), - (II, 2, (1,), 1, (8, 8, 8, 8), ()): ("RGBA", "RGBA"), # missing ExtraSamples - (MM, 2, (1,), 1, (8, 8, 8, 8), ()): ("RGBA", "RGBA"), # missing ExtraSamples - (II, 2, (1,), 1, (8, 8, 8, 8), (0,)): ("RGBX", "RGBX"), - (MM, 2, (1,), 1, (8, 8, 8, 8), (0,)): ("RGBX", "RGBX"), - (II, 2, (1,), 1, (8, 8, 8, 8, 8), (0, 0)): ("RGBX", "RGBXX"), - (MM, 2, (1,), 1, (8, 8, 8, 8, 8), (0, 0)): ("RGBX", "RGBXX"), - (II, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0, 0)): ("RGBX", "RGBXXX"), - (MM, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0, 0)): ("RGBX", "RGBXXX"), - (II, 2, (1,), 1, (8, 8, 8, 8), (1,)): ("RGBA", "RGBa"), - (MM, 2, (1,), 1, (8, 8, 8, 8), (1,)): ("RGBA", "RGBa"), - (II, 2, (1,), 1, (8, 8, 8, 8, 8), (1, 0)): ("RGBA", "RGBaX"), - (MM, 2, (1,), 1, (8, 8, 8, 8, 8), (1, 0)): ("RGBA", "RGBaX"), - (II, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (1, 0, 0)): ("RGBA", "RGBaXX"), - (MM, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (1, 0, 0)): ("RGBA", "RGBaXX"), - (II, 2, (1,), 1, (8, 8, 8, 8), (2,)): ("RGBA", "RGBA"), - (MM, 2, (1,), 1, (8, 8, 8, 8), (2,)): ("RGBA", "RGBA"), - (II, 2, (1,), 1, (8, 8, 8, 8, 8), (2, 0)): ("RGBA", "RGBAX"), - (MM, 2, (1,), 1, (8, 8, 8, 8, 8), (2, 0)): ("RGBA", "RGBAX"), - (II, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (2, 0, 0)): ("RGBA", "RGBAXX"), - (MM, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (2, 0, 0)): ("RGBA", "RGBAXX"), - (II, 2, (1,), 1, (8, 8, 8, 8), (999,)): ("RGBA", "RGBA"), # Corel Draw 10 - (MM, 2, (1,), 1, (8, 8, 8, 8), (999,)): ("RGBA", "RGBA"), # Corel Draw 10 - (II, 2, (1,), 1, (16, 16, 16), ()): ("RGB", "RGB;16L"), - (MM, 2, (1,), 1, (16, 16, 16), ()): ("RGB", "RGB;16B"), - (II, 2, (1,), 1, (16, 16, 16, 16), ()): ("RGBA", "RGBA;16L"), - (MM, 2, (1,), 1, (16, 16, 16, 16), ()): ("RGBA", "RGBA;16B"), - (II, 2, (1,), 1, (16, 16, 16, 16), (0,)): ("RGBX", "RGBX;16L"), - (MM, 2, (1,), 1, (16, 16, 16, 16), (0,)): ("RGBX", "RGBX;16B"), - (II, 2, (1,), 1, (16, 16, 16, 16), (1,)): ("RGBA", "RGBa;16L"), - (MM, 2, (1,), 1, (16, 16, 16, 16), (1,)): ("RGBA", "RGBa;16B"), - (II, 2, (1,), 1, (16, 16, 16, 16), (2,)): ("RGBA", "RGBA;16L"), - (MM, 2, (1,), 1, (16, 16, 16, 16), (2,)): ("RGBA", "RGBA;16B"), - (II, 3, (1,), 1, (1,), ()): ("P", "P;1"), - (MM, 3, (1,), 1, (1,), ()): ("P", "P;1"), - (II, 3, (1,), 2, (1,), ()): ("P", "P;1R"), - (MM, 3, (1,), 2, (1,), ()): ("P", "P;1R"), - (II, 3, (1,), 1, (2,), ()): ("P", "P;2"), - (MM, 3, (1,), 1, (2,), ()): ("P", "P;2"), - (II, 3, (1,), 2, (2,), ()): ("P", "P;2R"), - (MM, 3, (1,), 2, (2,), ()): ("P", "P;2R"), - (II, 3, (1,), 1, (4,), ()): ("P", "P;4"), - (MM, 3, (1,), 1, (4,), ()): ("P", "P;4"), - (II, 3, (1,), 2, (4,), ()): ("P", "P;4R"), - (MM, 3, (1,), 2, (4,), ()): ("P", "P;4R"), - (II, 3, (1,), 1, (8,), ()): ("P", "P"), - (MM, 3, (1,), 1, (8,), ()): ("P", "P"), - (II, 3, (1,), 1, (8, 8), (2,)): ("PA", "PA"), - (MM, 3, (1,), 1, (8, 8), (2,)): ("PA", "PA"), - (II, 3, (1,), 2, (8,), ()): ("P", "P;R"), - (MM, 3, (1,), 2, (8,), ()): ("P", "P;R"), - (II, 5, (1,), 1, (8, 8, 8, 8), ()): ("CMYK", "CMYK"), - (MM, 5, (1,), 1, (8, 8, 8, 8), ()): ("CMYK", "CMYK"), - (II, 5, (1,), 1, (8, 8, 8, 8, 8), (0,)): ("CMYK", "CMYKX"), - (MM, 5, (1,), 1, (8, 8, 8, 8, 8), (0,)): ("CMYK", "CMYKX"), - (II, 5, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0)): ("CMYK", "CMYKXX"), - (MM, 5, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0)): ("CMYK", "CMYKXX"), - (II, 5, (1,), 1, (16, 16, 16, 16), ()): ("CMYK", "CMYK;16L"), - (II, 6, (1,), 1, (8,), ()): ("L", "L"), - (MM, 6, (1,), 1, (8,), ()): ("L", "L"), - # JPEG compressed images handled by LibTiff and auto-converted to RGBX - # Minimal Baseline TIFF requires YCbCr images to have 3 SamplesPerPixel - (II, 6, (1,), 1, (8, 8, 8), ()): ("RGB", "RGBX"), - (MM, 6, (1,), 1, (8, 8, 8), ()): ("RGB", "RGBX"), - (II, 8, (1,), 1, (8, 8, 8), ()): ("LAB", "LAB"), - (MM, 8, (1,), 1, (8, 8, 8), ()): ("LAB", "LAB"), -} - -MAX_SAMPLESPERPIXEL = max(len(key_tp[4]) for key_tp in OPEN_INFO) - -PREFIXES = [ - b"MM\x00\x2A", # Valid TIFF header with big-endian byte order - b"II\x2A\x00", # Valid TIFF header with little-endian byte order - b"MM\x2A\x00", # Invalid TIFF header, assume big-endian - b"II\x00\x2A", # Invalid TIFF header, assume little-endian - b"MM\x00\x2B", # BigTIFF with big-endian byte order - b"II\x2B\x00", # BigTIFF with little-endian byte order -] - - -def _accept(prefix): - return prefix[:4] in PREFIXES - - -def _limit_rational(val, max_val): - inv = abs(val) > 1 - n_d = IFDRational(1 / val if inv else val).limit_rational(max_val) - return n_d[::-1] if inv else n_d - - -def _limit_signed_rational(val, max_val, min_val): - frac = Fraction(val) - n_d = frac.numerator, frac.denominator - - if min(n_d) < min_val: - n_d = _limit_rational(val, abs(min_val)) - - if max(n_d) > max_val: - val = Fraction(*n_d) - n_d = _limit_rational(val, max_val) - - return n_d - - -## -# Wrapper for TIFF IFDs. - -_load_dispatch = {} -_write_dispatch = {} - - -class IFDRational(Rational): - """Implements a rational class where 0/0 is a legal value to match - the in the wild use of exif rationals. - - e.g., DigitalZoomRatio - 0.00/0.00 indicates that no digital zoom was used - """ - - """ If the denominator is 0, store this as a float('nan'), otherwise store - as a fractions.Fraction(). Delegate as appropriate - - """ - - __slots__ = ("_numerator", "_denominator", "_val") - - def __init__(self, value, denominator=1): - """ - :param value: either an integer numerator, a - float/rational/other number, or an IFDRational - :param denominator: Optional integer denominator - """ - if isinstance(value, IFDRational): - self._numerator = value.numerator - self._denominator = value.denominator - self._val = value._val - return - - if isinstance(value, Fraction): - self._numerator = value.numerator - self._denominator = value.denominator - else: - self._numerator = value - self._denominator = denominator - - if denominator == 0: - self._val = float("nan") - elif denominator == 1: - self._val = Fraction(value) - else: - self._val = Fraction(value, denominator) - - @property - def numerator(self): - return self._numerator - - @property - def denominator(self): - return self._denominator - - def limit_rational(self, max_denominator): - """ - - :param max_denominator: Integer, the maximum denominator value - :returns: Tuple of (numerator, denominator) - """ - - if self.denominator == 0: - return self.numerator, self.denominator - - f = self._val.limit_denominator(max_denominator) - return f.numerator, f.denominator - - def __repr__(self): - return str(float(self._val)) - - def __hash__(self): - return self._val.__hash__() - - def __eq__(self, other): - val = self._val - if isinstance(other, IFDRational): - other = other._val - if isinstance(other, float): - val = float(val) - return val == other - - def __getstate__(self): - return [self._val, self._numerator, self._denominator] - - def __setstate__(self, state): - IFDRational.__init__(self, 0) - _val, _numerator, _denominator = state - self._val = _val - self._numerator = _numerator - self._denominator = _denominator - - def _delegate(op): - def delegate(self, *args): - return getattr(self._val, op)(*args) - - return delegate - - """ a = ['add','radd', 'sub', 'rsub', 'mul', 'rmul', - 'truediv', 'rtruediv', 'floordiv', 'rfloordiv', - 'mod','rmod', 'pow','rpow', 'pos', 'neg', - 'abs', 'trunc', 'lt', 'gt', 'le', 'ge', 'bool', - 'ceil', 'floor', 'round'] - print("\n".join("__%s__ = _delegate('__%s__')" % (s,s) for s in a)) - """ - - __add__ = _delegate("__add__") - __radd__ = _delegate("__radd__") - __sub__ = _delegate("__sub__") - __rsub__ = _delegate("__rsub__") - __mul__ = _delegate("__mul__") - __rmul__ = _delegate("__rmul__") - __truediv__ = _delegate("__truediv__") - __rtruediv__ = _delegate("__rtruediv__") - __floordiv__ = _delegate("__floordiv__") - __rfloordiv__ = _delegate("__rfloordiv__") - __mod__ = _delegate("__mod__") - __rmod__ = _delegate("__rmod__") - __pow__ = _delegate("__pow__") - __rpow__ = _delegate("__rpow__") - __pos__ = _delegate("__pos__") - __neg__ = _delegate("__neg__") - __abs__ = _delegate("__abs__") - __trunc__ = _delegate("__trunc__") - __lt__ = _delegate("__lt__") - __gt__ = _delegate("__gt__") - __le__ = _delegate("__le__") - __ge__ = _delegate("__ge__") - __bool__ = _delegate("__bool__") - __ceil__ = _delegate("__ceil__") - __floor__ = _delegate("__floor__") - __round__ = _delegate("__round__") - # Python >= 3.11 - if hasattr(Fraction, "__int__"): - __int__ = _delegate("__int__") - - -class ImageFileDirectory_v2(MutableMapping): - """This class represents a TIFF tag directory. To speed things up, we - don't decode tags unless they're asked for. - - Exposes a dictionary interface of the tags in the directory:: - - ifd = ImageFileDirectory_v2() - ifd[key] = 'Some Data' - ifd.tagtype[key] = TiffTags.ASCII - print(ifd[key]) - 'Some Data' - - Individual values are returned as the strings or numbers, sequences are - returned as tuples of the values. - - The tiff metadata type of each item is stored in a dictionary of - tag types in - :attr:`~PIL.TiffImagePlugin.ImageFileDirectory_v2.tagtype`. The types - are read from a tiff file, guessed from the type added, or added - manually. - - Data Structures: - - * ``self.tagtype = {}`` - - * Key: numerical TIFF tag number - * Value: integer corresponding to the data type from - :py:data:`.TiffTags.TYPES` - - .. versionadded:: 3.0.0 - - 'Internal' data structures: - - * ``self._tags_v2 = {}`` - - * Key: numerical TIFF tag number - * Value: decoded data, as tuple for multiple values - - * ``self._tagdata = {}`` - - * Key: numerical TIFF tag number - * Value: undecoded byte string from file - - * ``self._tags_v1 = {}`` - - * Key: numerical TIFF tag number - * Value: decoded data in the v1 format - - Tags will be found in the private attributes ``self._tagdata``, and in - ``self._tags_v2`` once decoded. - - ``self.legacy_api`` is a value for internal use, and shouldn't be changed - from outside code. In cooperation with - :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`, if ``legacy_api`` - is true, then decoded tags will be populated into both ``_tags_v1`` and - ``_tags_v2``. ``_tags_v2`` will be used if this IFD is used in the TIFF - save routine. Tags should be read from ``_tags_v1`` if - ``legacy_api == true``. - - """ - - def __init__(self, ifh=b"II\052\0\0\0\0\0", prefix=None, group=None): - """Initialize an ImageFileDirectory. - - To construct an ImageFileDirectory from a real file, pass the 8-byte - magic header to the constructor. To only set the endianness, pass it - as the 'prefix' keyword argument. - - :param ifh: One of the accepted magic headers (cf. PREFIXES); also sets - endianness. - :param prefix: Override the endianness of the file. - """ - if not _accept(ifh): - msg = f"not a TIFF file (header {repr(ifh)} not valid)" - raise SyntaxError(msg) - self._prefix = prefix if prefix is not None else ifh[:2] - if self._prefix == MM: - self._endian = ">" - elif self._prefix == II: - self._endian = "<" - else: - msg = "not a TIFF IFD" - raise SyntaxError(msg) - self._bigtiff = ifh[2] == 43 - self.group = group - self.tagtype = {} - """ Dictionary of tag types """ - self.reset() - (self.next,) = ( - self._unpack("Q", ifh[8:]) if self._bigtiff else self._unpack("L", ifh[4:]) - ) - self._legacy_api = False - - prefix = property(lambda self: self._prefix) - offset = property(lambda self: self._offset) - legacy_api = property(lambda self: self._legacy_api) - - @legacy_api.setter - def legacy_api(self, value): - msg = "Not allowing setting of legacy api" - raise Exception(msg) - - def reset(self): - self._tags_v1 = {} # will remain empty if legacy_api is false - self._tags_v2 = {} # main tag storage - self._tagdata = {} - self.tagtype = {} # added 2008-06-05 by Florian Hoech - self._next = None - self._offset = None - - def __str__(self): - return str(dict(self)) - - def named(self): - """ - :returns: dict of name|key: value - - Returns the complete tag dictionary, with named tags where possible. - """ - return { - TiffTags.lookup(code, self.group).name: value - for code, value in self.items() - } - - def __len__(self): - return len(set(self._tagdata) | set(self._tags_v2)) - - def __getitem__(self, tag): - if tag not in self._tags_v2: # unpack on the fly - data = self._tagdata[tag] - typ = self.tagtype[tag] - size, handler = self._load_dispatch[typ] - self[tag] = handler(self, data, self.legacy_api) # check type - val = self._tags_v2[tag] - if self.legacy_api and not isinstance(val, (tuple, bytes)): - val = (val,) - return val - - def __contains__(self, tag): - return tag in self._tags_v2 or tag in self._tagdata - - def __setitem__(self, tag, value): - self._setitem(tag, value, self.legacy_api) - - def _setitem(self, tag, value, legacy_api): - basetypes = (Number, bytes, str) - - info = TiffTags.lookup(tag, self.group) - values = [value] if isinstance(value, basetypes) else value - - if tag not in self.tagtype: - if info.type: - self.tagtype[tag] = info.type - else: - self.tagtype[tag] = TiffTags.UNDEFINED - if all(isinstance(v, IFDRational) for v in values): - self.tagtype[tag] = ( - TiffTags.RATIONAL - if all(v >= 0 for v in values) - else TiffTags.SIGNED_RATIONAL - ) - elif all(isinstance(v, int) for v in values): - if all(0 <= v < 2**16 for v in values): - self.tagtype[tag] = TiffTags.SHORT - elif all(-(2**15) < v < 2**15 for v in values): - self.tagtype[tag] = TiffTags.SIGNED_SHORT - else: - self.tagtype[tag] = ( - TiffTags.LONG - if all(v >= 0 for v in values) - else TiffTags.SIGNED_LONG - ) - elif all(isinstance(v, float) for v in values): - self.tagtype[tag] = TiffTags.DOUBLE - elif all(isinstance(v, str) for v in values): - self.tagtype[tag] = TiffTags.ASCII - elif all(isinstance(v, bytes) for v in values): - self.tagtype[tag] = TiffTags.BYTE - - if self.tagtype[tag] == TiffTags.UNDEFINED: - values = [ - v.encode("ascii", "replace") if isinstance(v, str) else v - for v in values - ] - elif self.tagtype[tag] == TiffTags.RATIONAL: - values = [float(v) if isinstance(v, int) else v for v in values] - - is_ifd = self.tagtype[tag] == TiffTags.LONG and isinstance(values, dict) - if not is_ifd: - values = tuple(info.cvt_enum(value) for value in values) - - dest = self._tags_v1 if legacy_api else self._tags_v2 - - # Three branches: - # Spec'd length == 1, Actual length 1, store as element - # Spec'd length == 1, Actual > 1, Warn and truncate. Formerly barfed. - # No Spec, Actual length 1, Formerly (<4.2) returned a 1 element tuple. - # Don't mess with the legacy api, since it's frozen. - if not is_ifd and ( - (info.length == 1) - or self.tagtype[tag] == TiffTags.BYTE - or (info.length is None and len(values) == 1 and not legacy_api) - ): - # Don't mess with the legacy api, since it's frozen. - if legacy_api and self.tagtype[tag] in [ - TiffTags.RATIONAL, - TiffTags.SIGNED_RATIONAL, - ]: # rationals - values = (values,) - try: - (dest[tag],) = values - except ValueError: - # We've got a builtin tag with 1 expected entry - warnings.warn( - f"Metadata Warning, tag {tag} had too many entries: " - f"{len(values)}, expected 1" - ) - dest[tag] = values[0] - - else: - # Spec'd length > 1 or undefined - # Unspec'd, and length > 1 - dest[tag] = values - - def __delitem__(self, tag): - self._tags_v2.pop(tag, None) - self._tags_v1.pop(tag, None) - self._tagdata.pop(tag, None) - - def __iter__(self): - return iter(set(self._tagdata) | set(self._tags_v2)) - - def _unpack(self, fmt, data): - return struct.unpack(self._endian + fmt, data) - - def _pack(self, fmt, *values): - return struct.pack(self._endian + fmt, *values) - - def _register_loader(idx, size): - def decorator(func): - from .TiffTags import TYPES - - if func.__name__.startswith("load_"): - TYPES[idx] = func.__name__[5:].replace("_", " ") - _load_dispatch[idx] = size, func # noqa: F821 - return func - - return decorator - - def _register_writer(idx): - def decorator(func): - _write_dispatch[idx] = func # noqa: F821 - return func - - return decorator - - def _register_basic(idx_fmt_name): - from .TiffTags import TYPES - - idx, fmt, name = idx_fmt_name - TYPES[idx] = name - size = struct.calcsize("=" + fmt) - _load_dispatch[idx] = ( # noqa: F821 - size, - lambda self, data, legacy_api=True: ( - self._unpack(f"{len(data) // size}{fmt}", data) - ), - ) - _write_dispatch[idx] = lambda self, *values: ( # noqa: F821 - b"".join(self._pack(fmt, value) for value in values) - ) - - list( - map( - _register_basic, - [ - (TiffTags.SHORT, "H", "short"), - (TiffTags.LONG, "L", "long"), - (TiffTags.SIGNED_BYTE, "b", "signed byte"), - (TiffTags.SIGNED_SHORT, "h", "signed short"), - (TiffTags.SIGNED_LONG, "l", "signed long"), - (TiffTags.FLOAT, "f", "float"), - (TiffTags.DOUBLE, "d", "double"), - (TiffTags.IFD, "L", "long"), - (TiffTags.LONG8, "Q", "long8"), - ], - ) - ) - - @_register_loader(1, 1) # Basic type, except for the legacy API. - def load_byte(self, data, legacy_api=True): - return data - - @_register_writer(1) # Basic type, except for the legacy API. - def write_byte(self, data): - if isinstance(data, IFDRational): - data = int(data) - if isinstance(data, int): - data = bytes((data,)) - return data - - @_register_loader(2, 1) - def load_string(self, data, legacy_api=True): - if data.endswith(b"\0"): - data = data[:-1] - return data.decode("latin-1", "replace") - - @_register_writer(2) - def write_string(self, value): - # remerge of https://github.com/python-pillow/Pillow/pull/1416 - if isinstance(value, int): - value = str(value) - if not isinstance(value, bytes): - value = value.encode("ascii", "replace") - return value + b"\0" - - @_register_loader(5, 8) - def load_rational(self, data, legacy_api=True): - vals = self._unpack(f"{len(data) // 4}L", data) - - def combine(a, b): - return (a, b) if legacy_api else IFDRational(a, b) - - return tuple(combine(num, denom) for num, denom in zip(vals[::2], vals[1::2])) - - @_register_writer(5) - def write_rational(self, *values): - return b"".join( - self._pack("2L", *_limit_rational(frac, 2**32 - 1)) for frac in values - ) - - @_register_loader(7, 1) - def load_undefined(self, data, legacy_api=True): - return data - - @_register_writer(7) - def write_undefined(self, value): - if isinstance(value, int): - value = str(value).encode("ascii", "replace") - return value - - @_register_loader(10, 8) - def load_signed_rational(self, data, legacy_api=True): - vals = self._unpack(f"{len(data) // 4}l", data) - - def combine(a, b): - return (a, b) if legacy_api else IFDRational(a, b) - - return tuple(combine(num, denom) for num, denom in zip(vals[::2], vals[1::2])) - - @_register_writer(10) - def write_signed_rational(self, *values): - return b"".join( - self._pack("2l", *_limit_signed_rational(frac, 2**31 - 1, -(2**31))) - for frac in values - ) - - def _ensure_read(self, fp, size): - ret = fp.read(size) - if len(ret) != size: - msg = ( - "Corrupt EXIF data. " - f"Expecting to read {size} bytes but only got {len(ret)}. " - ) - raise OSError(msg) - return ret - - def load(self, fp): - self.reset() - self._offset = fp.tell() - - try: - tag_count = ( - self._unpack("Q", self._ensure_read(fp, 8)) - if self._bigtiff - else self._unpack("H", self._ensure_read(fp, 2)) - )[0] - for i in range(tag_count): - tag, typ, count, data = ( - self._unpack("HHQ8s", self._ensure_read(fp, 20)) - if self._bigtiff - else self._unpack("HHL4s", self._ensure_read(fp, 12)) - ) - - tagname = TiffTags.lookup(tag, self.group).name - typname = TYPES.get(typ, "unknown") - msg = f"tag: {tagname} ({tag}) - type: {typname} ({typ})" - - try: - unit_size, handler = self._load_dispatch[typ] - except KeyError: - logger.debug("%s - unsupported type %s", msg, typ) - continue # ignore unsupported type - size = count * unit_size - if size > (8 if self._bigtiff else 4): - here = fp.tell() - (offset,) = self._unpack("Q" if self._bigtiff else "L", data) - msg += f" Tag Location: {here} - Data Location: {offset}" - fp.seek(offset) - data = ImageFile._safe_read(fp, size) - fp.seek(here) - else: - data = data[:size] - - if len(data) != size: - warnings.warn( - "Possibly corrupt EXIF data. " - f"Expecting to read {size} bytes but only got {len(data)}." - f" Skipping tag {tag}" - ) - logger.debug(msg) - continue - - if not data: - logger.debug(msg) - continue - - self._tagdata[tag] = data - self.tagtype[tag] = typ - - msg += " - value: " + ( - "" % size if size > 32 else repr(data) - ) - logger.debug(msg) - - (self.next,) = ( - self._unpack("Q", self._ensure_read(fp, 8)) - if self._bigtiff - else self._unpack("L", self._ensure_read(fp, 4)) - ) - except OSError as msg: - warnings.warn(str(msg)) - return - - def tobytes(self, offset=0): - # FIXME What about tagdata? - result = self._pack("H", len(self._tags_v2)) - - entries = [] - offset = offset + len(result) + len(self._tags_v2) * 12 + 4 - stripoffsets = None - - # pass 1: convert tags to binary format - # always write tags in ascending order - for tag, value in sorted(self._tags_v2.items()): - if tag == STRIPOFFSETS: - stripoffsets = len(entries) - typ = self.tagtype.get(tag) - logger.debug("Tag %s, Type: %s, Value: %s", tag, typ, repr(value)) - is_ifd = typ == TiffTags.LONG and isinstance(value, dict) - if is_ifd: - if self._endian == "<": - ifh = b"II\x2A\x00\x08\x00\x00\x00" - else: - ifh = b"MM\x00\x2A\x00\x00\x00\x08" - ifd = ImageFileDirectory_v2(ifh, group=tag) - values = self._tags_v2[tag] - for ifd_tag, ifd_value in values.items(): - ifd[ifd_tag] = ifd_value - data = ifd.tobytes(offset) - else: - values = value if isinstance(value, tuple) else (value,) - data = self._write_dispatch[typ](self, *values) - - tagname = TiffTags.lookup(tag, self.group).name - typname = "ifd" if is_ifd else TYPES.get(typ, "unknown") - msg = f"save: {tagname} ({tag}) - type: {typname} ({typ})" - msg += " - value: " + ( - "" % len(data) if len(data) >= 16 else str(values) - ) - logger.debug(msg) - - # count is sum of lengths for string and arbitrary data - if is_ifd: - count = 1 - elif typ in [TiffTags.BYTE, TiffTags.ASCII, TiffTags.UNDEFINED]: - count = len(data) - else: - count = len(values) - # figure out if data fits into the entry - if len(data) <= 4: - entries.append((tag, typ, count, data.ljust(4, b"\0"), b"")) - else: - entries.append((tag, typ, count, self._pack("L", offset), data)) - offset += (len(data) + 1) // 2 * 2 # pad to word - - # update strip offset data to point beyond auxiliary data - if stripoffsets is not None: - tag, typ, count, value, data = entries[stripoffsets] - if data: - msg = "multistrip support not yet implemented" - raise NotImplementedError(msg) - value = self._pack("L", self._unpack("L", value)[0] + offset) - entries[stripoffsets] = tag, typ, count, value, data - - # pass 2: write entries to file - for tag, typ, count, value, data in entries: - logger.debug("%s %s %s %s %s", tag, typ, count, repr(value), repr(data)) - result += self._pack("HHL4s", tag, typ, count, value) - - # -- overwrite here for multi-page -- - result += b"\0\0\0\0" # end of entries - - # pass 3: write auxiliary data to file - for tag, typ, count, value, data in entries: - result += data - if len(data) & 1: - result += b"\0" - - return result - - def save(self, fp): - if fp.tell() == 0: # skip TIFF header on subsequent pages - # tiff header -- PIL always starts the first IFD at offset 8 - fp.write(self._prefix + self._pack("HL", 42, 8)) - - offset = fp.tell() - result = self.tobytes(offset) - fp.write(result) - return offset + len(result) - - -ImageFileDirectory_v2._load_dispatch = _load_dispatch -ImageFileDirectory_v2._write_dispatch = _write_dispatch -for idx, name in TYPES.items(): - name = name.replace(" ", "_") - setattr(ImageFileDirectory_v2, "load_" + name, _load_dispatch[idx][1]) - setattr(ImageFileDirectory_v2, "write_" + name, _write_dispatch[idx]) -del _load_dispatch, _write_dispatch, idx, name - - -# Legacy ImageFileDirectory support. -class ImageFileDirectory_v1(ImageFileDirectory_v2): - """This class represents the **legacy** interface to a TIFF tag directory. - - Exposes a dictionary interface of the tags in the directory:: - - ifd = ImageFileDirectory_v1() - ifd[key] = 'Some Data' - ifd.tagtype[key] = TiffTags.ASCII - print(ifd[key]) - ('Some Data',) - - Also contains a dictionary of tag types as read from the tiff image file, - :attr:`~PIL.TiffImagePlugin.ImageFileDirectory_v1.tagtype`. - - Values are returned as a tuple. - - .. deprecated:: 3.0.0 - """ - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self._legacy_api = True - - tags = property(lambda self: self._tags_v1) - tagdata = property(lambda self: self._tagdata) - - # defined in ImageFileDirectory_v2 - tagtype: dict - """Dictionary of tag types""" - - @classmethod - def from_v2(cls, original): - """Returns an - :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1` - instance with the same data as is contained in the original - :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2` - instance. - - :returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1` - - """ - - ifd = cls(prefix=original.prefix) - ifd._tagdata = original._tagdata - ifd.tagtype = original.tagtype - ifd.next = original.next # an indicator for multipage tiffs - return ifd - - def to_v2(self): - """Returns an - :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2` - instance with the same data as is contained in the original - :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1` - instance. - - :returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2` - - """ - - ifd = ImageFileDirectory_v2(prefix=self.prefix) - ifd._tagdata = dict(self._tagdata) - ifd.tagtype = dict(self.tagtype) - ifd._tags_v2 = dict(self._tags_v2) - return ifd - - def __contains__(self, tag): - return tag in self._tags_v1 or tag in self._tagdata - - def __len__(self): - return len(set(self._tagdata) | set(self._tags_v1)) - - def __iter__(self): - return iter(set(self._tagdata) | set(self._tags_v1)) - - def __setitem__(self, tag, value): - for legacy_api in (False, True): - self._setitem(tag, value, legacy_api) - - def __getitem__(self, tag): - if tag not in self._tags_v1: # unpack on the fly - data = self._tagdata[tag] - typ = self.tagtype[tag] - size, handler = self._load_dispatch[typ] - for legacy in (False, True): - self._setitem(tag, handler(self, data, legacy), legacy) - val = self._tags_v1[tag] - if not isinstance(val, (tuple, bytes)): - val = (val,) - return val - - -# undone -- switch this pointer when IFD_LEGACY_API == False -ImageFileDirectory = ImageFileDirectory_v1 - - -## -# Image plugin for TIFF files. - - -class TiffImageFile(ImageFile.ImageFile): - format = "TIFF" - format_description = "Adobe TIFF" - _close_exclusive_fp_after_loading = False - - def __init__(self, fp=None, filename=None): - self.tag_v2 = None - """ Image file directory (tag dictionary) """ - - self.tag = None - """ Legacy tag entries """ - - super().__init__(fp, filename) - - def _open(self): - """Open the first image in a TIFF file""" - - # Header - ifh = self.fp.read(8) - if ifh[2] == 43: - ifh += self.fp.read(8) - - self.tag_v2 = ImageFileDirectory_v2(ifh) - - # legacy IFD entries will be filled in later - self.ifd = None - - # setup frame pointers - self.__first = self.__next = self.tag_v2.next - self.__frame = -1 - self._fp = self.fp - self._frame_pos = [] - self._n_frames = None - - logger.debug("*** TiffImageFile._open ***") - logger.debug("- __first: %s", self.__first) - logger.debug("- ifh: %s", repr(ifh)) # Use repr to avoid str(bytes) - - # and load the first frame - self._seek(0) - - @property - def n_frames(self): - if self._n_frames is None: - current = self.tell() - self._seek(len(self._frame_pos)) - while self._n_frames is None: - self._seek(self.tell() + 1) - self.seek(current) - return self._n_frames - - def seek(self, frame): - """Select a given frame as current image""" - if not self._seek_check(frame): - return - self._seek(frame) - # Create a new core image object on second and - # subsequent frames in the image. Image may be - # different size/mode. - Image._decompression_bomb_check(self.size) - self.im = Image.core.new(self.mode, self.size) - - def _seek(self, frame): - self.fp = self._fp - - # reset buffered io handle in case fp - # was passed to libtiff, invalidating the buffer - self.fp.tell() - - while len(self._frame_pos) <= frame: - if not self.__next: - msg = "no more images in TIFF file" - raise EOFError(msg) - logger.debug( - "Seeking to frame %s, on frame %s, __next %s, location: %s", - frame, - self.__frame, - self.__next, - self.fp.tell(), - ) - self.fp.seek(self.__next) - self._frame_pos.append(self.__next) - logger.debug("Loading tags, location: %s", self.fp.tell()) - self.tag_v2.load(self.fp) - if self.tag_v2.next in self._frame_pos: - # This IFD has already been processed - # Declare this to be the end of the image - self.__next = 0 - else: - self.__next = self.tag_v2.next - if self.__next == 0: - self._n_frames = frame + 1 - if len(self._frame_pos) == 1: - self.is_animated = self.__next != 0 - self.__frame += 1 - self.fp.seek(self._frame_pos[frame]) - self.tag_v2.load(self.fp) - self._reload_exif() - # fill the legacy tag/ifd entries - self.tag = self.ifd = ImageFileDirectory_v1.from_v2(self.tag_v2) - self.__frame = frame - self._setup() - - def tell(self): - """Return the current frame number""" - return self.__frame - - def getxmp(self): - """ - Returns a dictionary containing the XMP tags. - Requires defusedxml to be installed. - - :returns: XMP tags in a dictionary. - """ - return self._getxmp(self.tag_v2[XMP]) if XMP in self.tag_v2 else {} - - def get_photoshop_blocks(self): - """ - Returns a dictionary of Photoshop "Image Resource Blocks". - The keys are the image resource ID. For more information, see - https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_pgfId-1037727 - - :returns: Photoshop "Image Resource Blocks" in a dictionary. - """ - blocks = {} - val = self.tag_v2.get(ExifTags.Base.ImageResources) - if val: - while val[:4] == b"8BIM": - id = i16(val[4:6]) - n = math.ceil((val[6] + 1) / 2) * 2 - size = i32(val[6 + n : 10 + n]) - data = val[10 + n : 10 + n + size] - blocks[id] = {"data": data} - - val = val[math.ceil((10 + n + size) / 2) * 2 :] - return blocks - - def load(self): - if self.tile and self.use_load_libtiff: - return self._load_libtiff() - return super().load() - - def load_end(self): - # allow closing if we're on the first frame, there's no next - # This is the ImageFile.load path only, libtiff specific below. - if not self.is_animated: - self._close_exclusive_fp_after_loading = True - - # reset buffered io handle in case fp - # was passed to libtiff, invalidating the buffer - self.fp.tell() - - # load IFD data from fp before it is closed - exif = self.getexif() - for key in TiffTags.TAGS_V2_GROUPS: - if key not in exif: - continue - exif.get_ifd(key) - - ImageOps.exif_transpose(self, in_place=True) - if ExifTags.Base.Orientation in self.tag_v2: - del self.tag_v2[ExifTags.Base.Orientation] - - def _load_libtiff(self): - """Overload method triggered when we detect a compressed tiff - Calls out to libtiff""" - - Image.Image.load(self) - - self.load_prepare() - - if not len(self.tile) == 1: - msg = "Not exactly one tile" - raise OSError(msg) - - # (self._compression, (extents tuple), - # 0, (rawmode, self._compression, fp)) - extents = self.tile[0][1] - args = list(self.tile[0][3]) - - # To be nice on memory footprint, if there's a - # file descriptor, use that instead of reading - # into a string in python. - try: - fp = hasattr(self.fp, "fileno") and self.fp.fileno() - # flush the file descriptor, prevents error on pypy 2.4+ - # should also eliminate the need for fp.tell - # in _seek - if hasattr(self.fp, "flush"): - self.fp.flush() - except OSError: - # io.BytesIO have a fileno, but returns an OSError if - # it doesn't use a file descriptor. - fp = False - - if fp: - args[2] = fp - - decoder = Image._getdecoder( - self.mode, "libtiff", tuple(args), self.decoderconfig - ) - try: - decoder.setimage(self.im, extents) - except ValueError as e: - msg = "Couldn't set the image" - raise OSError(msg) from e - - close_self_fp = self._exclusive_fp and not self.is_animated - if hasattr(self.fp, "getvalue"): - # We've got a stringio like thing passed in. Yay for all in memory. - # The decoder needs the entire file in one shot, so there's not - # a lot we can do here other than give it the entire file. - # unless we could do something like get the address of the - # underlying string for stringio. - # - # Rearranging for supporting byteio items, since they have a fileno - # that returns an OSError if there's no underlying fp. Easier to - # deal with here by reordering. - logger.debug("have getvalue. just sending in a string from getvalue") - n, err = decoder.decode(self.fp.getvalue()) - elif fp: - # we've got a actual file on disk, pass in the fp. - logger.debug("have fileno, calling fileno version of the decoder.") - if not close_self_fp: - self.fp.seek(0) - # 4 bytes, otherwise the trace might error out - n, err = decoder.decode(b"fpfp") - else: - # we have something else. - logger.debug("don't have fileno or getvalue. just reading") - self.fp.seek(0) - # UNDONE -- so much for that buffer size thing. - n, err = decoder.decode(self.fp.read()) - - self.tile = [] - self.readonly = 0 - - self.load_end() - - if close_self_fp: - self.fp.close() - self.fp = None # might be shared - - if err < 0: - raise OSError(err) - - return Image.Image.load(self) - - def _setup(self): - """Setup this image object based on current tags""" - - if 0xBC01 in self.tag_v2: - msg = "Windows Media Photo files not yet supported" - raise OSError(msg) - - # extract relevant tags - self._compression = COMPRESSION_INFO[self.tag_v2.get(COMPRESSION, 1)] - self._planar_configuration = self.tag_v2.get(PLANAR_CONFIGURATION, 1) - - # photometric is a required tag, but not everyone is reading - # the specification - photo = self.tag_v2.get(PHOTOMETRIC_INTERPRETATION, 0) - - # old style jpeg compression images most certainly are YCbCr - if self._compression == "tiff_jpeg": - photo = 6 - - fillorder = self.tag_v2.get(FILLORDER, 1) - - logger.debug("*** Summary ***") - logger.debug("- compression: %s", self._compression) - logger.debug("- photometric_interpretation: %s", photo) - logger.debug("- planar_configuration: %s", self._planar_configuration) - logger.debug("- fill_order: %s", fillorder) - logger.debug("- YCbCr subsampling: %s", self.tag.get(YCBCRSUBSAMPLING)) - - # size - xsize = int(self.tag_v2.get(IMAGEWIDTH)) - ysize = int(self.tag_v2.get(IMAGELENGTH)) - self._size = xsize, ysize - - logger.debug("- size: %s", self.size) - - sample_format = self.tag_v2.get(SAMPLEFORMAT, (1,)) - if len(sample_format) > 1 and max(sample_format) == min(sample_format) == 1: - # SAMPLEFORMAT is properly per band, so an RGB image will - # be (1,1,1). But, we don't support per band pixel types, - # and anything more than one band is a uint8. So, just - # take the first element. Revisit this if adding support - # for more exotic images. - sample_format = (1,) - - bps_tuple = self.tag_v2.get(BITSPERSAMPLE, (1,)) - extra_tuple = self.tag_v2.get(EXTRASAMPLES, ()) - if photo in (2, 6, 8): # RGB, YCbCr, LAB - bps_count = 3 - elif photo == 5: # CMYK - bps_count = 4 - else: - bps_count = 1 - bps_count += len(extra_tuple) - bps_actual_count = len(bps_tuple) - samples_per_pixel = self.tag_v2.get( - SAMPLESPERPIXEL, - 3 if self._compression == "tiff_jpeg" and photo in (2, 6) else 1, - ) - - if samples_per_pixel > MAX_SAMPLESPERPIXEL: - # DOS check, samples_per_pixel can be a Long, and we extend the tuple below - logger.error( - "More samples per pixel than can be decoded: %s", samples_per_pixel - ) - msg = "Invalid value for samples per pixel" - raise SyntaxError(msg) - - if samples_per_pixel < bps_actual_count: - # If a file has more values in bps_tuple than expected, - # remove the excess. - bps_tuple = bps_tuple[:samples_per_pixel] - elif samples_per_pixel > bps_actual_count and bps_actual_count == 1: - # If a file has only one value in bps_tuple, when it should have more, - # presume it is the same number of bits for all of the samples. - bps_tuple = bps_tuple * samples_per_pixel - - if len(bps_tuple) != samples_per_pixel: - msg = "unknown data organization" - raise SyntaxError(msg) - - # mode: check photometric interpretation and bits per pixel - key = ( - self.tag_v2.prefix, - photo, - sample_format, - fillorder, - bps_tuple, - extra_tuple, - ) - logger.debug("format key: %s", key) - try: - self._mode, rawmode = OPEN_INFO[key] - except KeyError as e: - logger.debug("- unsupported format") - msg = "unknown pixel mode" - raise SyntaxError(msg) from e - - logger.debug("- raw mode: %s", rawmode) - logger.debug("- pil mode: %s", self.mode) - - self.info["compression"] = self._compression - - xres = self.tag_v2.get(X_RESOLUTION, 1) - yres = self.tag_v2.get(Y_RESOLUTION, 1) - - if xres and yres: - resunit = self.tag_v2.get(RESOLUTION_UNIT) - if resunit == 2: # dots per inch - self.info["dpi"] = (xres, yres) - elif resunit == 3: # dots per centimeter. convert to dpi - self.info["dpi"] = (xres * 2.54, yres * 2.54) - elif resunit is None: # used to default to 1, but now 2) - self.info["dpi"] = (xres, yres) - # For backward compatibility, - # we also preserve the old behavior - self.info["resolution"] = xres, yres - else: # No absolute unit of measurement - self.info["resolution"] = xres, yres - - # build tile descriptors - x = y = layer = 0 - self.tile = [] - self.use_load_libtiff = READ_LIBTIFF or self._compression != "raw" - if self.use_load_libtiff: - # Decoder expects entire file as one tile. - # There's a buffer size limit in load (64k) - # so large g4 images will fail if we use that - # function. - # - # Setup the one tile for the whole image, then - # use the _load_libtiff function. - - # libtiff handles the fillmode for us, so 1;IR should - # actually be 1;I. Including the R double reverses the - # bits, so stripes of the image are reversed. See - # https://github.com/python-pillow/Pillow/issues/279 - if fillorder == 2: - # Replace fillorder with fillorder=1 - key = key[:3] + (1,) + key[4:] - logger.debug("format key: %s", key) - # this should always work, since all the - # fillorder==2 modes have a corresponding - # fillorder=1 mode - self._mode, rawmode = OPEN_INFO[key] - # libtiff always returns the bytes in native order. - # we're expecting image byte order. So, if the rawmode - # contains I;16, we need to convert from native to image - # byte order. - if rawmode == "I;16": - rawmode = "I;16N" - if ";16B" in rawmode: - rawmode = rawmode.replace(";16B", ";16N") - if ";16L" in rawmode: - rawmode = rawmode.replace(";16L", ";16N") - - # YCbCr images with new jpeg compression with pixels in one plane - # unpacked straight into RGB values - if ( - photo == 6 - and self._compression == "jpeg" - and self._planar_configuration == 1 - ): - rawmode = "RGB" - - # Offset in the tile tuple is 0, we go from 0,0 to - # w,h, and we only do this once -- eds - a = (rawmode, self._compression, False, self.tag_v2.offset) - self.tile.append(("libtiff", (0, 0, xsize, ysize), 0, a)) - - elif STRIPOFFSETS in self.tag_v2 or TILEOFFSETS in self.tag_v2: - # striped image - if STRIPOFFSETS in self.tag_v2: - offsets = self.tag_v2[STRIPOFFSETS] - h = self.tag_v2.get(ROWSPERSTRIP, ysize) - w = self.size[0] - else: - # tiled image - offsets = self.tag_v2[TILEOFFSETS] - w = self.tag_v2.get(TILEWIDTH) - h = self.tag_v2.get(TILELENGTH) - - for offset in offsets: - if x + w > xsize: - stride = w * sum(bps_tuple) / 8 # bytes per line - else: - stride = 0 - - tile_rawmode = rawmode - if self._planar_configuration == 2: - # each band on it's own layer - tile_rawmode = rawmode[layer] - # adjust stride width accordingly - stride /= bps_count - - a = (tile_rawmode, int(stride), 1) - self.tile.append( - ( - self._compression, - (x, y, min(x + w, xsize), min(y + h, ysize)), - offset, - a, - ) - ) - x = x + w - if x >= self.size[0]: - x, y = 0, y + h - if y >= self.size[1]: - x = y = 0 - layer += 1 - else: - logger.debug("- unsupported data organization") - msg = "unknown data organization" - raise SyntaxError(msg) - - # Fix up info. - if ICCPROFILE in self.tag_v2: - self.info["icc_profile"] = self.tag_v2[ICCPROFILE] - - # fixup palette descriptor - - if self.mode in ["P", "PA"]: - palette = [o8(b // 256) for b in self.tag_v2[COLORMAP]] - self.palette = ImagePalette.raw("RGB;L", b"".join(palette)) - - -# -# -------------------------------------------------------------------- -# Write TIFF files - -# little endian is default except for image modes with -# explicit big endian byte-order - -SAVE_INFO = { - # mode => rawmode, byteorder, photometrics, - # sampleformat, bitspersample, extra - "1": ("1", II, 1, 1, (1,), None), - "L": ("L", II, 1, 1, (8,), None), - "LA": ("LA", II, 1, 1, (8, 8), 2), - "P": ("P", II, 3, 1, (8,), None), - "PA": ("PA", II, 3, 1, (8, 8), 2), - "I": ("I;32S", II, 1, 2, (32,), None), - "I;16": ("I;16", II, 1, 1, (16,), None), - "I;16S": ("I;16S", II, 1, 2, (16,), None), - "F": ("F;32F", II, 1, 3, (32,), None), - "RGB": ("RGB", II, 2, 1, (8, 8, 8), None), - "RGBX": ("RGBX", II, 2, 1, (8, 8, 8, 8), 0), - "RGBA": ("RGBA", II, 2, 1, (8, 8, 8, 8), 2), - "CMYK": ("CMYK", II, 5, 1, (8, 8, 8, 8), None), - "YCbCr": ("YCbCr", II, 6, 1, (8, 8, 8), None), - "LAB": ("LAB", II, 8, 1, (8, 8, 8), None), - "I;32BS": ("I;32BS", MM, 1, 2, (32,), None), - "I;16B": ("I;16B", MM, 1, 1, (16,), None), - "I;16BS": ("I;16BS", MM, 1, 2, (16,), None), - "F;32BF": ("F;32BF", MM, 1, 3, (32,), None), -} - - -def _save(im, fp, filename): - try: - rawmode, prefix, photo, format, bits, extra = SAVE_INFO[im.mode] - except KeyError as e: - msg = f"cannot write mode {im.mode} as TIFF" - raise OSError(msg) from e - - ifd = ImageFileDirectory_v2(prefix=prefix) - - encoderinfo = im.encoderinfo - encoderconfig = im.encoderconfig - try: - compression = encoderinfo["compression"] - except KeyError: - compression = im.info.get("compression") - if isinstance(compression, int): - # compression value may be from BMP. Ignore it - compression = None - if compression is None: - compression = "raw" - elif compression == "tiff_jpeg": - # OJPEG is obsolete, so use new-style JPEG compression instead - compression = "jpeg" - elif compression == "tiff_deflate": - compression = "tiff_adobe_deflate" - - libtiff = WRITE_LIBTIFF or compression != "raw" - - # required for color libtiff images - ifd[PLANAR_CONFIGURATION] = 1 - - ifd[IMAGEWIDTH] = im.size[0] - ifd[IMAGELENGTH] = im.size[1] - - # write any arbitrary tags passed in as an ImageFileDirectory - if "tiffinfo" in encoderinfo: - info = encoderinfo["tiffinfo"] - elif "exif" in encoderinfo: - info = encoderinfo["exif"] - if isinstance(info, bytes): - exif = Image.Exif() - exif.load(info) - info = exif - else: - info = {} - logger.debug("Tiffinfo Keys: %s", list(info)) - if isinstance(info, ImageFileDirectory_v1): - info = info.to_v2() - for key in info: - if isinstance(info, Image.Exif) and key in TiffTags.TAGS_V2_GROUPS: - ifd[key] = info.get_ifd(key) - else: - ifd[key] = info.get(key) - try: - ifd.tagtype[key] = info.tagtype[key] - except Exception: - pass # might not be an IFD. Might not have populated type - - # additions written by Greg Couch, gregc@cgl.ucsf.edu - # inspired by image-sig posting from Kevin Cazabon, kcazabon@home.com - if hasattr(im, "tag_v2"): - # preserve tags from original TIFF image file - for key in ( - RESOLUTION_UNIT, - X_RESOLUTION, - Y_RESOLUTION, - IPTC_NAA_CHUNK, - PHOTOSHOP_CHUNK, - XMP, - ): - if key in im.tag_v2: - ifd[key] = im.tag_v2[key] - ifd.tagtype[key] = im.tag_v2.tagtype[key] - - # preserve ICC profile (should also work when saving other formats - # which support profiles as TIFF) -- 2008-06-06 Florian Hoech - icc = encoderinfo.get("icc_profile", im.info.get("icc_profile")) - if icc: - ifd[ICCPROFILE] = icc - - for key, name in [ - (IMAGEDESCRIPTION, "description"), - (X_RESOLUTION, "resolution"), - (Y_RESOLUTION, "resolution"), - (X_RESOLUTION, "x_resolution"), - (Y_RESOLUTION, "y_resolution"), - (RESOLUTION_UNIT, "resolution_unit"), - (SOFTWARE, "software"), - (DATE_TIME, "date_time"), - (ARTIST, "artist"), - (COPYRIGHT, "copyright"), - ]: - if name in encoderinfo: - ifd[key] = encoderinfo[name] - - dpi = encoderinfo.get("dpi") - if dpi: - ifd[RESOLUTION_UNIT] = 2 - ifd[X_RESOLUTION] = dpi[0] - ifd[Y_RESOLUTION] = dpi[1] - - if bits != (1,): - ifd[BITSPERSAMPLE] = bits - if len(bits) != 1: - ifd[SAMPLESPERPIXEL] = len(bits) - if extra is not None: - ifd[EXTRASAMPLES] = extra - if format != 1: - ifd[SAMPLEFORMAT] = format - - if PHOTOMETRIC_INTERPRETATION not in ifd: - ifd[PHOTOMETRIC_INTERPRETATION] = photo - elif im.mode in ("1", "L") and ifd[PHOTOMETRIC_INTERPRETATION] == 0: - if im.mode == "1": - inverted_im = im.copy() - px = inverted_im.load() - for y in range(inverted_im.height): - for x in range(inverted_im.width): - px[x, y] = 0 if px[x, y] == 255 else 255 - im = inverted_im - else: - im = ImageOps.invert(im) - - if im.mode in ["P", "PA"]: - lut = im.im.getpalette("RGB", "RGB;L") - colormap = [] - colors = len(lut) // 3 - for i in range(3): - colormap += [v * 256 for v in lut[colors * i : colors * (i + 1)]] - colormap += [0] * (256 - colors) - ifd[COLORMAP] = colormap - # data orientation - w, h = ifd[IMAGEWIDTH], ifd[IMAGELENGTH] - stride = len(bits) * ((w * bits[0] + 7) // 8) - if ROWSPERSTRIP not in ifd: - # aim for given strip size (64 KB by default) when using libtiff writer - if libtiff: - im_strip_size = encoderinfo.get("strip_size", STRIP_SIZE) - rows_per_strip = 1 if stride == 0 else min(im_strip_size // stride, h) - # JPEG encoder expects multiple of 8 rows - if compression == "jpeg": - rows_per_strip = min(((rows_per_strip + 7) // 8) * 8, h) - else: - rows_per_strip = h - if rows_per_strip == 0: - rows_per_strip = 1 - ifd[ROWSPERSTRIP] = rows_per_strip - strip_byte_counts = 1 if stride == 0 else stride * ifd[ROWSPERSTRIP] - strips_per_image = (h + ifd[ROWSPERSTRIP] - 1) // ifd[ROWSPERSTRIP] - if strip_byte_counts >= 2**16: - ifd.tagtype[STRIPBYTECOUNTS] = TiffTags.LONG - ifd[STRIPBYTECOUNTS] = (strip_byte_counts,) * (strips_per_image - 1) + ( - stride * h - strip_byte_counts * (strips_per_image - 1), - ) - ifd[STRIPOFFSETS] = tuple( - range(0, strip_byte_counts * strips_per_image, strip_byte_counts) - ) # this is adjusted by IFD writer - # no compression by default: - ifd[COMPRESSION] = COMPRESSION_INFO_REV.get(compression, 1) - - if im.mode == "YCbCr": - for tag, value in { - YCBCRSUBSAMPLING: (1, 1), - REFERENCEBLACKWHITE: (0, 255, 128, 255, 128, 255), - }.items(): - ifd.setdefault(tag, value) - - blocklist = [TILEWIDTH, TILELENGTH, TILEOFFSETS, TILEBYTECOUNTS] - if libtiff: - if "quality" in encoderinfo: - quality = encoderinfo["quality"] - if not isinstance(quality, int) or quality < 0 or quality > 100: - msg = "Invalid quality setting" - raise ValueError(msg) - if compression != "jpeg": - msg = "quality setting only supported for 'jpeg' compression" - raise ValueError(msg) - ifd[JPEGQUALITY] = quality - - logger.debug("Saving using libtiff encoder") - logger.debug("Items: %s", sorted(ifd.items())) - _fp = 0 - if hasattr(fp, "fileno"): - try: - fp.seek(0) - _fp = os.dup(fp.fileno()) - except io.UnsupportedOperation: - pass - - # optional types for non core tags - types = {} - # STRIPOFFSETS and STRIPBYTECOUNTS are added by the library - # based on the data in the strip. - # The other tags expect arrays with a certain length (fixed or depending on - # BITSPERSAMPLE, etc), passing arrays with a different length will result in - # segfaults. Block these tags until we add extra validation. - # SUBIFD may also cause a segfault. - blocklist += [ - REFERENCEBLACKWHITE, - STRIPBYTECOUNTS, - STRIPOFFSETS, - TRANSFERFUNCTION, - SUBIFD, - ] - - # bits per sample is a single short in the tiff directory, not a list. - atts = {BITSPERSAMPLE: bits[0]} - # Merge the ones that we have with (optional) more bits from - # the original file, e.g x,y resolution so that we can - # save(load('')) == original file. - legacy_ifd = {} - if hasattr(im, "tag"): - legacy_ifd = im.tag.to_v2() - - # SAMPLEFORMAT is determined by the image format and should not be copied - # from legacy_ifd. - supplied_tags = {**getattr(im, "tag_v2", {}), **legacy_ifd} - if SAMPLEFORMAT in supplied_tags: - del supplied_tags[SAMPLEFORMAT] - - for tag, value in itertools.chain(ifd.items(), supplied_tags.items()): - # Libtiff can only process certain core items without adding - # them to the custom dictionary. - # Custom items are supported for int, float, unicode, string and byte - # values. Other types and tuples require a tagtype. - if tag not in TiffTags.LIBTIFF_CORE: - if not getattr(Image.core, "libtiff_support_custom_tags", False): - continue - - if tag in ifd.tagtype: - types[tag] = ifd.tagtype[tag] - elif not (isinstance(value, (int, float, str, bytes))): - continue - else: - type = TiffTags.lookup(tag).type - if type: - types[tag] = type - if tag not in atts and tag not in blocklist: - if isinstance(value, str): - atts[tag] = value.encode("ascii", "replace") + b"\0" - elif isinstance(value, IFDRational): - atts[tag] = float(value) - else: - atts[tag] = value - - if SAMPLEFORMAT in atts and len(atts[SAMPLEFORMAT]) == 1: - atts[SAMPLEFORMAT] = atts[SAMPLEFORMAT][0] - - logger.debug("Converted items: %s", sorted(atts.items())) - - # libtiff always expects the bytes in native order. - # we're storing image byte order. So, if the rawmode - # contains I;16, we need to convert from native to image - # byte order. - if im.mode in ("I;16B", "I;16"): - rawmode = "I;16N" - - # Pass tags as sorted list so that the tags are set in a fixed order. - # This is required by libtiff for some tags. For example, the JPEGQUALITY - # pseudo tag requires that the COMPRESS tag was already set. - tags = list(atts.items()) - tags.sort() - a = (rawmode, compression, _fp, filename, tags, types) - e = Image._getencoder(im.mode, "libtiff", a, encoderconfig) - e.setimage(im.im, (0, 0) + im.size) - while True: - # undone, change to self.decodermaxblock: - errcode, data = e.encode(16 * 1024)[1:] - if not _fp: - fp.write(data) - if errcode: - break - if _fp: - try: - os.close(_fp) - except OSError: - pass - if errcode < 0: - msg = f"encoder error {errcode} when writing image file" - raise OSError(msg) - - else: - for tag in blocklist: - del ifd[tag] - offset = ifd.save(fp) - - ImageFile._save( - im, fp, [("raw", (0, 0) + im.size, offset, (rawmode, stride, 1))] - ) - - # -- helper for multi-page save -- - if "_debug_multipage" in encoderinfo: - # just to access o32 and o16 (using correct byte order) - im._debug_multipage = ifd - - -class AppendingTiffWriter: - fieldSizes = [ - 0, # None - 1, # byte - 1, # ascii - 2, # short - 4, # long - 8, # rational - 1, # sbyte - 1, # undefined - 2, # sshort - 4, # slong - 8, # srational - 4, # float - 8, # double - 4, # ifd - 2, # unicode - 4, # complex - 8, # long8 - ] - - Tags = { - 273, # StripOffsets - 288, # FreeOffsets - 324, # TileOffsets - 519, # JPEGQTables - 520, # JPEGDCTables - 521, # JPEGACTables - } - - def __init__(self, fn, new=False): - if hasattr(fn, "read"): - self.f = fn - self.close_fp = False - else: - self.name = fn - self.close_fp = True - try: - self.f = open(fn, "w+b" if new else "r+b") - except OSError: - self.f = open(fn, "w+b") - self.beginning = self.f.tell() - self.setup() - - def setup(self): - # Reset everything. - self.f.seek(self.beginning, os.SEEK_SET) - - self.whereToWriteNewIFDOffset = None - self.offsetOfNewPage = 0 - - self.IIMM = iimm = self.f.read(4) - if not iimm: - # empty file - first page - self.isFirst = True - return - - self.isFirst = False - if iimm == b"II\x2a\x00": - self.setEndian("<") - elif iimm == b"MM\x00\x2a": - self.setEndian(">") - else: - msg = "Invalid TIFF file header" - raise RuntimeError(msg) - - self.skipIFDs() - self.goToEnd() - - def finalize(self): - if self.isFirst: - return - - # fix offsets - self.f.seek(self.offsetOfNewPage) - - iimm = self.f.read(4) - if not iimm: - # Make it easy to finish a frame without committing to a new one. - return - - if iimm != self.IIMM: - msg = "IIMM of new page doesn't match IIMM of first page" - raise RuntimeError(msg) - - ifd_offset = self.readLong() - ifd_offset += self.offsetOfNewPage - self.f.seek(self.whereToWriteNewIFDOffset) - self.writeLong(ifd_offset) - self.f.seek(ifd_offset) - self.fixIFD() - - def newFrame(self): - # Call this to finish a frame. - self.finalize() - self.setup() - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_value, traceback): - if self.close_fp: - self.close() - return False - - def tell(self): - return self.f.tell() - self.offsetOfNewPage - - def seek(self, offset, whence=io.SEEK_SET): - if whence == os.SEEK_SET: - offset += self.offsetOfNewPage - - self.f.seek(offset, whence) - return self.tell() - - def goToEnd(self): - self.f.seek(0, os.SEEK_END) - pos = self.f.tell() - - # pad to 16 byte boundary - pad_bytes = 16 - pos % 16 - if 0 < pad_bytes < 16: - self.f.write(bytes(pad_bytes)) - self.offsetOfNewPage = self.f.tell() - - def setEndian(self, endian): - self.endian = endian - self.longFmt = self.endian + "L" - self.shortFmt = self.endian + "H" - self.tagFormat = self.endian + "HHL" - - def skipIFDs(self): - while True: - ifd_offset = self.readLong() - if ifd_offset == 0: - self.whereToWriteNewIFDOffset = self.f.tell() - 4 - break - - self.f.seek(ifd_offset) - num_tags = self.readShort() - self.f.seek(num_tags * 12, os.SEEK_CUR) - - def write(self, data): - return self.f.write(data) - - def readShort(self): - (value,) = struct.unpack(self.shortFmt, self.f.read(2)) - return value - - def readLong(self): - (value,) = struct.unpack(self.longFmt, self.f.read(4)) - return value - - def rewriteLastShortToLong(self, value): - self.f.seek(-2, os.SEEK_CUR) - bytes_written = self.f.write(struct.pack(self.longFmt, value)) - if bytes_written is not None and bytes_written != 4: - msg = f"wrote only {bytes_written} bytes but wanted 4" - raise RuntimeError(msg) - - def rewriteLastShort(self, value): - self.f.seek(-2, os.SEEK_CUR) - bytes_written = self.f.write(struct.pack(self.shortFmt, value)) - if bytes_written is not None and bytes_written != 2: - msg = f"wrote only {bytes_written} bytes but wanted 2" - raise RuntimeError(msg) - - def rewriteLastLong(self, value): - self.f.seek(-4, os.SEEK_CUR) - bytes_written = self.f.write(struct.pack(self.longFmt, value)) - if bytes_written is not None and bytes_written != 4: - msg = f"wrote only {bytes_written} bytes but wanted 4" - raise RuntimeError(msg) - - def writeShort(self, value): - bytes_written = self.f.write(struct.pack(self.shortFmt, value)) - if bytes_written is not None and bytes_written != 2: - msg = f"wrote only {bytes_written} bytes but wanted 2" - raise RuntimeError(msg) - - def writeLong(self, value): - bytes_written = self.f.write(struct.pack(self.longFmt, value)) - if bytes_written is not None and bytes_written != 4: - msg = f"wrote only {bytes_written} bytes but wanted 4" - raise RuntimeError(msg) - - def close(self): - self.finalize() - self.f.close() - - def fixIFD(self): - num_tags = self.readShort() - - for i in range(num_tags): - tag, field_type, count = struct.unpack(self.tagFormat, self.f.read(8)) - - field_size = self.fieldSizes[field_type] - total_size = field_size * count - is_local = total_size <= 4 - if not is_local: - offset = self.readLong() - offset += self.offsetOfNewPage - self.rewriteLastLong(offset) - - if tag in self.Tags: - cur_pos = self.f.tell() - - if is_local: - self.fixOffsets( - count, isShort=(field_size == 2), isLong=(field_size == 4) - ) - self.f.seek(cur_pos + 4) - else: - self.f.seek(offset) - self.fixOffsets( - count, isShort=(field_size == 2), isLong=(field_size == 4) - ) - self.f.seek(cur_pos) - - offset = cur_pos = None - - elif is_local: - # skip the locally stored value that is not an offset - self.f.seek(4, os.SEEK_CUR) - - def fixOffsets(self, count, isShort=False, isLong=False): - if not isShort and not isLong: - msg = "offset is neither short nor long" - raise RuntimeError(msg) - - for i in range(count): - offset = self.readShort() if isShort else self.readLong() - offset += self.offsetOfNewPage - if isShort and offset >= 65536: - # offset is now too large - we must convert shorts to longs - if count != 1: - msg = "not implemented" - raise RuntimeError(msg) # XXX TODO - - # simple case - the offset is just one and therefore it is - # local (not referenced with another offset) - self.rewriteLastShortToLong(offset) - self.f.seek(-10, os.SEEK_CUR) - self.writeShort(TiffTags.LONG) # rewrite the type to LONG - self.f.seek(8, os.SEEK_CUR) - elif isShort: - self.rewriteLastShort(offset) - else: - self.rewriteLastLong(offset) - - -def _save_all(im, fp, filename): - encoderinfo = im.encoderinfo.copy() - encoderconfig = im.encoderconfig - append_images = list(encoderinfo.get("append_images", [])) - if not hasattr(im, "n_frames") and not append_images: - return _save(im, fp, filename) - - cur_idx = im.tell() - try: - with AppendingTiffWriter(fp) as tf: - for ims in [im] + append_images: - ims.encoderinfo = encoderinfo - ims.encoderconfig = encoderconfig - if not hasattr(ims, "n_frames"): - nfr = 1 - else: - nfr = ims.n_frames - - for idx in range(nfr): - ims.seek(idx) - ims.load() - _save(ims, tf, filename) - tf.newFrame() - finally: - im.seek(cur_idx) - - -# -# -------------------------------------------------------------------- -# Register - -Image.register_open(TiffImageFile.format, TiffImageFile, _accept) -Image.register_save(TiffImageFile.format, _save) -Image.register_save_all(TiffImageFile.format, _save_all) - -Image.register_extensions(TiffImageFile.format, [".tif", ".tiff"]) - -Image.register_mime(TiffImageFile.format, "image/tiff") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TiffTags.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TiffTags.py deleted file mode 100644 index 88ff2f4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/TiffTags.py +++ /dev/null @@ -1,545 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# TIFF tags -# -# This module provides clear-text names for various well-known -# TIFF tags. the TIFF codec works just fine without it. -# -# Copyright (c) Secret Labs AB 1999. -# -# See the README file for information on usage and redistribution. -# - -## -# This module provides constants and clear-text names for various -# well-known TIFF tags. -## -from __future__ import annotations - -from collections import namedtuple - - -class TagInfo(namedtuple("_TagInfo", "value name type length enum")): - __slots__ = [] - - def __new__(cls, value=None, name="unknown", type=None, length=None, enum=None): - return super().__new__(cls, value, name, type, length, enum or {}) - - def cvt_enum(self, value): - # Using get will call hash(value), which can be expensive - # for some types (e.g. Fraction). Since self.enum is rarely - # used, it's usually better to test it first. - return self.enum.get(value, value) if self.enum else value - - -def lookup(tag, group=None): - """ - :param tag: Integer tag number - :param group: Which :py:data:`~PIL.TiffTags.TAGS_V2_GROUPS` to look in - - .. versionadded:: 8.3.0 - - :returns: Taginfo namedtuple, From the ``TAGS_V2`` info if possible, - otherwise just populating the value and name from ``TAGS``. - If the tag is not recognized, "unknown" is returned for the name - - """ - - if group is not None: - info = TAGS_V2_GROUPS[group].get(tag) if group in TAGS_V2_GROUPS else None - else: - info = TAGS_V2.get(tag) - return info or TagInfo(tag, TAGS.get(tag, "unknown")) - - -## -# Map tag numbers to tag info. -# -# id: (Name, Type, Length[, enum_values]) -# -# The length here differs from the length in the tiff spec. For -# numbers, the tiff spec is for the number of fields returned. We -# agree here. For string-like types, the tiff spec uses the length of -# field in bytes. In Pillow, we are using the number of expected -# fields, in general 1 for string-like types. - - -BYTE = 1 -ASCII = 2 -SHORT = 3 -LONG = 4 -RATIONAL = 5 -SIGNED_BYTE = 6 -UNDEFINED = 7 -SIGNED_SHORT = 8 -SIGNED_LONG = 9 -SIGNED_RATIONAL = 10 -FLOAT = 11 -DOUBLE = 12 -IFD = 13 -LONG8 = 16 - -TAGS_V2 = { - 254: ("NewSubfileType", LONG, 1), - 255: ("SubfileType", SHORT, 1), - 256: ("ImageWidth", LONG, 1), - 257: ("ImageLength", LONG, 1), - 258: ("BitsPerSample", SHORT, 0), - 259: ( - "Compression", - SHORT, - 1, - { - "Uncompressed": 1, - "CCITT 1d": 2, - "Group 3 Fax": 3, - "Group 4 Fax": 4, - "LZW": 5, - "JPEG": 6, - "PackBits": 32773, - }, - ), - 262: ( - "PhotometricInterpretation", - SHORT, - 1, - { - "WhiteIsZero": 0, - "BlackIsZero": 1, - "RGB": 2, - "RGB Palette": 3, - "Transparency Mask": 4, - "CMYK": 5, - "YCbCr": 6, - "CieLAB": 8, - "CFA": 32803, # TIFF/EP, Adobe DNG - "LinearRaw": 32892, # Adobe DNG - }, - ), - 263: ("Threshholding", SHORT, 1), - 264: ("CellWidth", SHORT, 1), - 265: ("CellLength", SHORT, 1), - 266: ("FillOrder", SHORT, 1), - 269: ("DocumentName", ASCII, 1), - 270: ("ImageDescription", ASCII, 1), - 271: ("Make", ASCII, 1), - 272: ("Model", ASCII, 1), - 273: ("StripOffsets", LONG, 0), - 274: ("Orientation", SHORT, 1), - 277: ("SamplesPerPixel", SHORT, 1), - 278: ("RowsPerStrip", LONG, 1), - 279: ("StripByteCounts", LONG, 0), - 280: ("MinSampleValue", SHORT, 0), - 281: ("MaxSampleValue", SHORT, 0), - 282: ("XResolution", RATIONAL, 1), - 283: ("YResolution", RATIONAL, 1), - 284: ("PlanarConfiguration", SHORT, 1, {"Contiguous": 1, "Separate": 2}), - 285: ("PageName", ASCII, 1), - 286: ("XPosition", RATIONAL, 1), - 287: ("YPosition", RATIONAL, 1), - 288: ("FreeOffsets", LONG, 1), - 289: ("FreeByteCounts", LONG, 1), - 290: ("GrayResponseUnit", SHORT, 1), - 291: ("GrayResponseCurve", SHORT, 0), - 292: ("T4Options", LONG, 1), - 293: ("T6Options", LONG, 1), - 296: ("ResolutionUnit", SHORT, 1, {"none": 1, "inch": 2, "cm": 3}), - 297: ("PageNumber", SHORT, 2), - 301: ("TransferFunction", SHORT, 0), - 305: ("Software", ASCII, 1), - 306: ("DateTime", ASCII, 1), - 315: ("Artist", ASCII, 1), - 316: ("HostComputer", ASCII, 1), - 317: ("Predictor", SHORT, 1, {"none": 1, "Horizontal Differencing": 2}), - 318: ("WhitePoint", RATIONAL, 2), - 319: ("PrimaryChromaticities", RATIONAL, 6), - 320: ("ColorMap", SHORT, 0), - 321: ("HalftoneHints", SHORT, 2), - 322: ("TileWidth", LONG, 1), - 323: ("TileLength", LONG, 1), - 324: ("TileOffsets", LONG, 0), - 325: ("TileByteCounts", LONG, 0), - 330: ("SubIFDs", LONG, 0), - 332: ("InkSet", SHORT, 1), - 333: ("InkNames", ASCII, 1), - 334: ("NumberOfInks", SHORT, 1), - 336: ("DotRange", SHORT, 0), - 337: ("TargetPrinter", ASCII, 1), - 338: ("ExtraSamples", SHORT, 0), - 339: ("SampleFormat", SHORT, 0), - 340: ("SMinSampleValue", DOUBLE, 0), - 341: ("SMaxSampleValue", DOUBLE, 0), - 342: ("TransferRange", SHORT, 6), - 347: ("JPEGTables", UNDEFINED, 1), - # obsolete JPEG tags - 512: ("JPEGProc", SHORT, 1), - 513: ("JPEGInterchangeFormat", LONG, 1), - 514: ("JPEGInterchangeFormatLength", LONG, 1), - 515: ("JPEGRestartInterval", SHORT, 1), - 517: ("JPEGLosslessPredictors", SHORT, 0), - 518: ("JPEGPointTransforms", SHORT, 0), - 519: ("JPEGQTables", LONG, 0), - 520: ("JPEGDCTables", LONG, 0), - 521: ("JPEGACTables", LONG, 0), - 529: ("YCbCrCoefficients", RATIONAL, 3), - 530: ("YCbCrSubSampling", SHORT, 2), - 531: ("YCbCrPositioning", SHORT, 1), - 532: ("ReferenceBlackWhite", RATIONAL, 6), - 700: ("XMP", BYTE, 0), - 33432: ("Copyright", ASCII, 1), - 33723: ("IptcNaaInfo", UNDEFINED, 1), - 34377: ("PhotoshopInfo", BYTE, 0), - # FIXME add more tags here - 34665: ("ExifIFD", LONG, 1), - 34675: ("ICCProfile", UNDEFINED, 1), - 34853: ("GPSInfoIFD", LONG, 1), - 36864: ("ExifVersion", UNDEFINED, 1), - 37724: ("ImageSourceData", UNDEFINED, 1), - 40965: ("InteroperabilityIFD", LONG, 1), - 41730: ("CFAPattern", UNDEFINED, 1), - # MPInfo - 45056: ("MPFVersion", UNDEFINED, 1), - 45057: ("NumberOfImages", LONG, 1), - 45058: ("MPEntry", UNDEFINED, 1), - 45059: ("ImageUIDList", UNDEFINED, 0), # UNDONE, check - 45060: ("TotalFrames", LONG, 1), - 45313: ("MPIndividualNum", LONG, 1), - 45569: ("PanOrientation", LONG, 1), - 45570: ("PanOverlap_H", RATIONAL, 1), - 45571: ("PanOverlap_V", RATIONAL, 1), - 45572: ("BaseViewpointNum", LONG, 1), - 45573: ("ConvergenceAngle", SIGNED_RATIONAL, 1), - 45574: ("BaselineLength", RATIONAL, 1), - 45575: ("VerticalDivergence", SIGNED_RATIONAL, 1), - 45576: ("AxisDistance_X", SIGNED_RATIONAL, 1), - 45577: ("AxisDistance_Y", SIGNED_RATIONAL, 1), - 45578: ("AxisDistance_Z", SIGNED_RATIONAL, 1), - 45579: ("YawAngle", SIGNED_RATIONAL, 1), - 45580: ("PitchAngle", SIGNED_RATIONAL, 1), - 45581: ("RollAngle", SIGNED_RATIONAL, 1), - 40960: ("FlashPixVersion", UNDEFINED, 1), - 50741: ("MakerNoteSafety", SHORT, 1, {"Unsafe": 0, "Safe": 1}), - 50780: ("BestQualityScale", RATIONAL, 1), - 50838: ("ImageJMetaDataByteCounts", LONG, 0), # Can be more than one - 50839: ("ImageJMetaData", UNDEFINED, 1), # see Issue #2006 -} -TAGS_V2_GROUPS = { - # ExifIFD - 34665: { - 36864: ("ExifVersion", UNDEFINED, 1), - 40960: ("FlashPixVersion", UNDEFINED, 1), - 40965: ("InteroperabilityIFD", LONG, 1), - 41730: ("CFAPattern", UNDEFINED, 1), - }, - # GPSInfoIFD - 34853: { - 0: ("GPSVersionID", BYTE, 4), - 1: ("GPSLatitudeRef", ASCII, 2), - 2: ("GPSLatitude", RATIONAL, 3), - 3: ("GPSLongitudeRef", ASCII, 2), - 4: ("GPSLongitude", RATIONAL, 3), - 5: ("GPSAltitudeRef", BYTE, 1), - 6: ("GPSAltitude", RATIONAL, 1), - 7: ("GPSTimeStamp", RATIONAL, 3), - 8: ("GPSSatellites", ASCII, 0), - 9: ("GPSStatus", ASCII, 2), - 10: ("GPSMeasureMode", ASCII, 2), - 11: ("GPSDOP", RATIONAL, 1), - 12: ("GPSSpeedRef", ASCII, 2), - 13: ("GPSSpeed", RATIONAL, 1), - 14: ("GPSTrackRef", ASCII, 2), - 15: ("GPSTrack", RATIONAL, 1), - 16: ("GPSImgDirectionRef", ASCII, 2), - 17: ("GPSImgDirection", RATIONAL, 1), - 18: ("GPSMapDatum", ASCII, 0), - 19: ("GPSDestLatitudeRef", ASCII, 2), - 20: ("GPSDestLatitude", RATIONAL, 3), - 21: ("GPSDestLongitudeRef", ASCII, 2), - 22: ("GPSDestLongitude", RATIONAL, 3), - 23: ("GPSDestBearingRef", ASCII, 2), - 24: ("GPSDestBearing", RATIONAL, 1), - 25: ("GPSDestDistanceRef", ASCII, 2), - 26: ("GPSDestDistance", RATIONAL, 1), - 27: ("GPSProcessingMethod", UNDEFINED, 0), - 28: ("GPSAreaInformation", UNDEFINED, 0), - 29: ("GPSDateStamp", ASCII, 11), - 30: ("GPSDifferential", SHORT, 1), - }, - # InteroperabilityIFD - 40965: {1: ("InteropIndex", ASCII, 1), 2: ("InteropVersion", UNDEFINED, 1)}, -} - -# Legacy Tags structure -# these tags aren't included above, but were in the previous versions -TAGS = { - 347: "JPEGTables", - 700: "XMP", - # Additional Exif Info - 32932: "Wang Annotation", - 33434: "ExposureTime", - 33437: "FNumber", - 33445: "MD FileTag", - 33446: "MD ScalePixel", - 33447: "MD ColorTable", - 33448: "MD LabName", - 33449: "MD SampleInfo", - 33450: "MD PrepDate", - 33451: "MD PrepTime", - 33452: "MD FileUnits", - 33550: "ModelPixelScaleTag", - 33723: "IptcNaaInfo", - 33918: "INGR Packet Data Tag", - 33919: "INGR Flag Registers", - 33920: "IrasB Transformation Matrix", - 33922: "ModelTiepointTag", - 34264: "ModelTransformationTag", - 34377: "PhotoshopInfo", - 34735: "GeoKeyDirectoryTag", - 34736: "GeoDoubleParamsTag", - 34737: "GeoAsciiParamsTag", - 34850: "ExposureProgram", - 34852: "SpectralSensitivity", - 34855: "ISOSpeedRatings", - 34856: "OECF", - 34864: "SensitivityType", - 34865: "StandardOutputSensitivity", - 34866: "RecommendedExposureIndex", - 34867: "ISOSpeed", - 34868: "ISOSpeedLatitudeyyy", - 34869: "ISOSpeedLatitudezzz", - 34908: "HylaFAX FaxRecvParams", - 34909: "HylaFAX FaxSubAddress", - 34910: "HylaFAX FaxRecvTime", - 36864: "ExifVersion", - 36867: "DateTimeOriginal", - 36868: "DateTimeDigitized", - 37121: "ComponentsConfiguration", - 37122: "CompressedBitsPerPixel", - 37724: "ImageSourceData", - 37377: "ShutterSpeedValue", - 37378: "ApertureValue", - 37379: "BrightnessValue", - 37380: "ExposureBiasValue", - 37381: "MaxApertureValue", - 37382: "SubjectDistance", - 37383: "MeteringMode", - 37384: "LightSource", - 37385: "Flash", - 37386: "FocalLength", - 37396: "SubjectArea", - 37500: "MakerNote", - 37510: "UserComment", - 37520: "SubSec", - 37521: "SubSecTimeOriginal", - 37522: "SubsecTimeDigitized", - 40960: "FlashPixVersion", - 40961: "ColorSpace", - 40962: "PixelXDimension", - 40963: "PixelYDimension", - 40964: "RelatedSoundFile", - 40965: "InteroperabilityIFD", - 41483: "FlashEnergy", - 41484: "SpatialFrequencyResponse", - 41486: "FocalPlaneXResolution", - 41487: "FocalPlaneYResolution", - 41488: "FocalPlaneResolutionUnit", - 41492: "SubjectLocation", - 41493: "ExposureIndex", - 41495: "SensingMethod", - 41728: "FileSource", - 41729: "SceneType", - 41730: "CFAPattern", - 41985: "CustomRendered", - 41986: "ExposureMode", - 41987: "WhiteBalance", - 41988: "DigitalZoomRatio", - 41989: "FocalLengthIn35mmFilm", - 41990: "SceneCaptureType", - 41991: "GainControl", - 41992: "Contrast", - 41993: "Saturation", - 41994: "Sharpness", - 41995: "DeviceSettingDescription", - 41996: "SubjectDistanceRange", - 42016: "ImageUniqueID", - 42032: "CameraOwnerName", - 42033: "BodySerialNumber", - 42034: "LensSpecification", - 42035: "LensMake", - 42036: "LensModel", - 42037: "LensSerialNumber", - 42112: "GDAL_METADATA", - 42113: "GDAL_NODATA", - 42240: "Gamma", - 50215: "Oce Scanjob Description", - 50216: "Oce Application Selector", - 50217: "Oce Identification Number", - 50218: "Oce ImageLogic Characteristics", - # Adobe DNG - 50706: "DNGVersion", - 50707: "DNGBackwardVersion", - 50708: "UniqueCameraModel", - 50709: "LocalizedCameraModel", - 50710: "CFAPlaneColor", - 50711: "CFALayout", - 50712: "LinearizationTable", - 50713: "BlackLevelRepeatDim", - 50714: "BlackLevel", - 50715: "BlackLevelDeltaH", - 50716: "BlackLevelDeltaV", - 50717: "WhiteLevel", - 50718: "DefaultScale", - 50719: "DefaultCropOrigin", - 50720: "DefaultCropSize", - 50721: "ColorMatrix1", - 50722: "ColorMatrix2", - 50723: "CameraCalibration1", - 50724: "CameraCalibration2", - 50725: "ReductionMatrix1", - 50726: "ReductionMatrix2", - 50727: "AnalogBalance", - 50728: "AsShotNeutral", - 50729: "AsShotWhiteXY", - 50730: "BaselineExposure", - 50731: "BaselineNoise", - 50732: "BaselineSharpness", - 50733: "BayerGreenSplit", - 50734: "LinearResponseLimit", - 50735: "CameraSerialNumber", - 50736: "LensInfo", - 50737: "ChromaBlurRadius", - 50738: "AntiAliasStrength", - 50740: "DNGPrivateData", - 50778: "CalibrationIlluminant1", - 50779: "CalibrationIlluminant2", - 50784: "Alias Layer Metadata", -} - - -def _populate(): - for k, v in TAGS_V2.items(): - # Populate legacy structure. - TAGS[k] = v[0] - if len(v) == 4: - for sk, sv in v[3].items(): - TAGS[(k, sv)] = sk - - TAGS_V2[k] = TagInfo(k, *v) - - for tags in TAGS_V2_GROUPS.values(): - for k, v in tags.items(): - tags[k] = TagInfo(k, *v) - - -_populate() -## -# Map type numbers to type names -- defined in ImageFileDirectory. - -TYPES = {} - -# -# These tags are handled by default in libtiff, without -# adding to the custom dictionary. From tif_dir.c, searching for -# case TIFFTAG in the _TIFFVSetField function: -# Line: item. -# 148: case TIFFTAG_SUBFILETYPE: -# 151: case TIFFTAG_IMAGEWIDTH: -# 154: case TIFFTAG_IMAGELENGTH: -# 157: case TIFFTAG_BITSPERSAMPLE: -# 181: case TIFFTAG_COMPRESSION: -# 202: case TIFFTAG_PHOTOMETRIC: -# 205: case TIFFTAG_THRESHHOLDING: -# 208: case TIFFTAG_FILLORDER: -# 214: case TIFFTAG_ORIENTATION: -# 221: case TIFFTAG_SAMPLESPERPIXEL: -# 228: case TIFFTAG_ROWSPERSTRIP: -# 238: case TIFFTAG_MINSAMPLEVALUE: -# 241: case TIFFTAG_MAXSAMPLEVALUE: -# 244: case TIFFTAG_SMINSAMPLEVALUE: -# 247: case TIFFTAG_SMAXSAMPLEVALUE: -# 250: case TIFFTAG_XRESOLUTION: -# 256: case TIFFTAG_YRESOLUTION: -# 262: case TIFFTAG_PLANARCONFIG: -# 268: case TIFFTAG_XPOSITION: -# 271: case TIFFTAG_YPOSITION: -# 274: case TIFFTAG_RESOLUTIONUNIT: -# 280: case TIFFTAG_PAGENUMBER: -# 284: case TIFFTAG_HALFTONEHINTS: -# 288: case TIFFTAG_COLORMAP: -# 294: case TIFFTAG_EXTRASAMPLES: -# 298: case TIFFTAG_MATTEING: -# 305: case TIFFTAG_TILEWIDTH: -# 316: case TIFFTAG_TILELENGTH: -# 327: case TIFFTAG_TILEDEPTH: -# 333: case TIFFTAG_DATATYPE: -# 344: case TIFFTAG_SAMPLEFORMAT: -# 361: case TIFFTAG_IMAGEDEPTH: -# 364: case TIFFTAG_SUBIFD: -# 376: case TIFFTAG_YCBCRPOSITIONING: -# 379: case TIFFTAG_YCBCRSUBSAMPLING: -# 383: case TIFFTAG_TRANSFERFUNCTION: -# 389: case TIFFTAG_REFERENCEBLACKWHITE: -# 393: case TIFFTAG_INKNAMES: - -# Following pseudo-tags are also handled by default in libtiff: -# TIFFTAG_JPEGQUALITY 65537 - -# some of these are not in our TAGS_V2 dict and were included from tiff.h - -# This list also exists in encode.c -LIBTIFF_CORE = { - 255, - 256, - 257, - 258, - 259, - 262, - 263, - 266, - 274, - 277, - 278, - 280, - 281, - 340, - 341, - 282, - 283, - 284, - 286, - 287, - 296, - 297, - 321, - 320, - 338, - 32995, - 322, - 323, - 32998, - 32996, - 339, - 32997, - 330, - 531, - 530, - 301, - 532, - 333, - # as above - 269, # this has been in our tests forever, and works - 65537, -} - -LIBTIFF_CORE.remove(255) # We don't have support for subfiletypes -LIBTIFF_CORE.remove(322) # We don't have support for writing tiled images with libtiff -LIBTIFF_CORE.remove(323) # Tiled images -LIBTIFF_CORE.remove(333) # Ink Names either - -# Note to advanced users: There may be combinations of these -# parameters and values that when added properly, will work and -# produce valid tiff images that may work in your application. -# It is safe to add and remove tags from this set from Pillow's point -# of view so long as you test against libtiff. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WalImageFile.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WalImageFile.py deleted file mode 100644 index c5bf3e0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WalImageFile.py +++ /dev/null @@ -1,124 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# WAL file handling -# -# History: -# 2003-04-23 fl created -# -# Copyright (c) 2003 by Fredrik Lundh. -# -# See the README file for information on usage and redistribution. -# - -""" -This reader is based on the specification available from: -https://www.flipcode.com/archives/Quake_2_BSP_File_Format.shtml -and has been tested with a few sample files found using google. - -.. note:: - This format cannot be automatically recognized, so the reader - is not registered for use with :py:func:`PIL.Image.open()`. - To open a WAL file, use the :py:func:`PIL.WalImageFile.open()` function instead. -""" -from __future__ import annotations - -from . import Image, ImageFile -from ._binary import i32le as i32 - - -class WalImageFile(ImageFile.ImageFile): - format = "WAL" - format_description = "Quake2 Texture" - - def _open(self): - self._mode = "P" - - # read header fields - header = self.fp.read(32 + 24 + 32 + 12) - self._size = i32(header, 32), i32(header, 36) - Image._decompression_bomb_check(self.size) - - # load pixel data - offset = i32(header, 40) - self.fp.seek(offset) - - # strings are null-terminated - self.info["name"] = header[:32].split(b"\0", 1)[0] - next_name = header[56 : 56 + 32].split(b"\0", 1)[0] - if next_name: - self.info["next_name"] = next_name - - def load(self): - if not self.im: - self.im = Image.core.new(self.mode, self.size) - self.frombytes(self.fp.read(self.size[0] * self.size[1])) - self.putpalette(quake2palette) - return Image.Image.load(self) - - -def open(filename): - """ - Load texture from a Quake2 WAL texture file. - - By default, a Quake2 standard palette is attached to the texture. - To override the palette, use the :py:func:`PIL.Image.Image.putpalette()` method. - - :param filename: WAL file name, or an opened file handle. - :returns: An image instance. - """ - return WalImageFile(filename) - - -quake2palette = ( - # default palette taken from piffo 0.93 by Hans Häggström - b"\x01\x01\x01\x0b\x0b\x0b\x12\x12\x12\x17\x17\x17\x1b\x1b\x1b\x1e" - b"\x1e\x1e\x22\x22\x22\x26\x26\x26\x29\x29\x29\x2c\x2c\x2c\x2f\x2f" - b"\x2f\x32\x32\x32\x35\x35\x35\x37\x37\x37\x3a\x3a\x3a\x3c\x3c\x3c" - b"\x24\x1e\x13\x22\x1c\x12\x20\x1b\x12\x1f\x1a\x10\x1d\x19\x10\x1b" - b"\x17\x0f\x1a\x16\x0f\x18\x14\x0d\x17\x13\x0d\x16\x12\x0d\x14\x10" - b"\x0b\x13\x0f\x0b\x10\x0d\x0a\x0f\x0b\x0a\x0d\x0b\x07\x0b\x0a\x07" - b"\x23\x23\x26\x22\x22\x25\x22\x20\x23\x21\x1f\x22\x20\x1e\x20\x1f" - b"\x1d\x1e\x1d\x1b\x1c\x1b\x1a\x1a\x1a\x19\x19\x18\x17\x17\x17\x16" - b"\x16\x14\x14\x14\x13\x13\x13\x10\x10\x10\x0f\x0f\x0f\x0d\x0d\x0d" - b"\x2d\x28\x20\x29\x24\x1c\x27\x22\x1a\x25\x1f\x17\x38\x2e\x1e\x31" - b"\x29\x1a\x2c\x25\x17\x26\x20\x14\x3c\x30\x14\x37\x2c\x13\x33\x28" - b"\x12\x2d\x24\x10\x28\x1f\x0f\x22\x1a\x0b\x1b\x14\x0a\x13\x0f\x07" - b"\x31\x1a\x16\x30\x17\x13\x2e\x16\x10\x2c\x14\x0d\x2a\x12\x0b\x27" - b"\x0f\x0a\x25\x0f\x07\x21\x0d\x01\x1e\x0b\x01\x1c\x0b\x01\x1a\x0b" - b"\x01\x18\x0a\x01\x16\x0a\x01\x13\x0a\x01\x10\x07\x01\x0d\x07\x01" - b"\x29\x23\x1e\x27\x21\x1c\x26\x20\x1b\x25\x1f\x1a\x23\x1d\x19\x21" - b"\x1c\x18\x20\x1b\x17\x1e\x19\x16\x1c\x18\x14\x1b\x17\x13\x19\x14" - b"\x10\x17\x13\x0f\x14\x10\x0d\x12\x0f\x0b\x0f\x0b\x0a\x0b\x0a\x07" - b"\x26\x1a\x0f\x23\x19\x0f\x20\x17\x0f\x1c\x16\x0f\x19\x13\x0d\x14" - b"\x10\x0b\x10\x0d\x0a\x0b\x0a\x07\x33\x22\x1f\x35\x29\x26\x37\x2f" - b"\x2d\x39\x35\x34\x37\x39\x3a\x33\x37\x39\x30\x34\x36\x2b\x31\x34" - b"\x27\x2e\x31\x22\x2b\x2f\x1d\x28\x2c\x17\x25\x2a\x0f\x20\x26\x0d" - b"\x1e\x25\x0b\x1c\x22\x0a\x1b\x20\x07\x19\x1e\x07\x17\x1b\x07\x14" - b"\x18\x01\x12\x16\x01\x0f\x12\x01\x0b\x0d\x01\x07\x0a\x01\x01\x01" - b"\x2c\x21\x21\x2a\x1f\x1f\x29\x1d\x1d\x27\x1c\x1c\x26\x1a\x1a\x24" - b"\x18\x18\x22\x17\x17\x21\x16\x16\x1e\x13\x13\x1b\x12\x12\x18\x10" - b"\x10\x16\x0d\x0d\x12\x0b\x0b\x0d\x0a\x0a\x0a\x07\x07\x01\x01\x01" - b"\x2e\x30\x29\x2d\x2e\x27\x2b\x2c\x26\x2a\x2a\x24\x28\x29\x23\x27" - b"\x27\x21\x26\x26\x1f\x24\x24\x1d\x22\x22\x1c\x1f\x1f\x1a\x1c\x1c" - b"\x18\x19\x19\x16\x17\x17\x13\x13\x13\x10\x0f\x0f\x0d\x0b\x0b\x0a" - b"\x30\x1e\x1b\x2d\x1c\x19\x2c\x1a\x17\x2a\x19\x14\x28\x17\x13\x26" - b"\x16\x10\x24\x13\x0f\x21\x12\x0d\x1f\x10\x0b\x1c\x0f\x0a\x19\x0d" - b"\x0a\x16\x0b\x07\x12\x0a\x07\x0f\x07\x01\x0a\x01\x01\x01\x01\x01" - b"\x28\x29\x38\x26\x27\x36\x25\x26\x34\x24\x24\x31\x22\x22\x2f\x20" - b"\x21\x2d\x1e\x1f\x2a\x1d\x1d\x27\x1b\x1b\x25\x19\x19\x21\x17\x17" - b"\x1e\x14\x14\x1b\x13\x12\x17\x10\x0f\x13\x0d\x0b\x0f\x0a\x07\x07" - b"\x2f\x32\x29\x2d\x30\x26\x2b\x2e\x24\x29\x2c\x21\x27\x2a\x1e\x25" - b"\x28\x1c\x23\x26\x1a\x21\x25\x18\x1e\x22\x14\x1b\x1f\x10\x19\x1c" - b"\x0d\x17\x1a\x0a\x13\x17\x07\x10\x13\x01\x0d\x0f\x01\x0a\x0b\x01" - b"\x01\x3f\x01\x13\x3c\x0b\x1b\x39\x10\x20\x35\x14\x23\x31\x17\x23" - b"\x2d\x18\x23\x29\x18\x3f\x3f\x3f\x3f\x3f\x39\x3f\x3f\x31\x3f\x3f" - b"\x2a\x3f\x3f\x20\x3f\x3f\x14\x3f\x3c\x12\x3f\x39\x0f\x3f\x35\x0b" - b"\x3f\x32\x07\x3f\x2d\x01\x3d\x2a\x01\x3b\x26\x01\x39\x21\x01\x37" - b"\x1d\x01\x34\x1a\x01\x32\x16\x01\x2f\x12\x01\x2d\x0f\x01\x2a\x0b" - b"\x01\x27\x07\x01\x23\x01\x01\x1d\x01\x01\x17\x01\x01\x10\x01\x01" - b"\x3d\x01\x01\x19\x19\x3f\x3f\x01\x01\x01\x01\x3f\x16\x16\x13\x10" - b"\x10\x0f\x0d\x0d\x0b\x3c\x2e\x2a\x36\x27\x20\x30\x21\x18\x29\x1b" - b"\x10\x3c\x39\x37\x37\x32\x2f\x31\x2c\x28\x2b\x26\x21\x30\x22\x20" -) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WebPImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WebPImagePlugin.py deleted file mode 100644 index 5955620..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WebPImagePlugin.py +++ /dev/null @@ -1,366 +0,0 @@ -from __future__ import annotations - -from io import BytesIO - -from . import Image, ImageFile - -try: - from . import _webp - - SUPPORTED = True -except ImportError: - SUPPORTED = False - - -_VALID_WEBP_MODES = {"RGBX": True, "RGBA": True, "RGB": True} - -_VALID_WEBP_LEGACY_MODES = {"RGB": True, "RGBA": True} - -_VP8_MODES_BY_IDENTIFIER = { - b"VP8 ": "RGB", - b"VP8X": "RGBA", - b"VP8L": "RGBA", # lossless -} - - -def _accept(prefix): - is_riff_file_format = prefix[:4] == b"RIFF" - is_webp_file = prefix[8:12] == b"WEBP" - is_valid_vp8_mode = prefix[12:16] in _VP8_MODES_BY_IDENTIFIER - - if is_riff_file_format and is_webp_file and is_valid_vp8_mode: - if not SUPPORTED: - return ( - "image file could not be identified because WEBP support not installed" - ) - return True - - -class WebPImageFile(ImageFile.ImageFile): - format = "WEBP" - format_description = "WebP image" - __loaded = 0 - __logical_frame = 0 - - def _open(self): - if not _webp.HAVE_WEBPANIM: - # Legacy mode - data, width, height, self._mode, icc_profile, exif = _webp.WebPDecode( - self.fp.read() - ) - if icc_profile: - self.info["icc_profile"] = icc_profile - if exif: - self.info["exif"] = exif - self._size = width, height - self.fp = BytesIO(data) - self.tile = [("raw", (0, 0) + self.size, 0, self.mode)] - self.n_frames = 1 - self.is_animated = False - return - - # Use the newer AnimDecoder API to parse the (possibly) animated file, - # and access muxed chunks like ICC/EXIF/XMP. - self._decoder = _webp.WebPAnimDecoder(self.fp.read()) - - # Get info from decoder - width, height, loop_count, bgcolor, frame_count, mode = self._decoder.get_info() - self._size = width, height - self.info["loop"] = loop_count - bg_a, bg_r, bg_g, bg_b = ( - (bgcolor >> 24) & 0xFF, - (bgcolor >> 16) & 0xFF, - (bgcolor >> 8) & 0xFF, - bgcolor & 0xFF, - ) - self.info["background"] = (bg_r, bg_g, bg_b, bg_a) - self.n_frames = frame_count - self.is_animated = self.n_frames > 1 - self._mode = "RGB" if mode == "RGBX" else mode - self.rawmode = mode - self.tile = [] - - # Attempt to read ICC / EXIF / XMP chunks from file - icc_profile = self._decoder.get_chunk("ICCP") - exif = self._decoder.get_chunk("EXIF") - xmp = self._decoder.get_chunk("XMP ") - if icc_profile: - self.info["icc_profile"] = icc_profile - if exif: - self.info["exif"] = exif - if xmp: - self.info["xmp"] = xmp - - # Initialize seek state - self._reset(reset=False) - - def _getexif(self): - if "exif" not in self.info: - return None - return self.getexif()._get_merged_dict() - - def getxmp(self): - """ - Returns a dictionary containing the XMP tags. - Requires defusedxml to be installed. - - :returns: XMP tags in a dictionary. - """ - return self._getxmp(self.info["xmp"]) if "xmp" in self.info else {} - - def seek(self, frame): - if not self._seek_check(frame): - return - - # Set logical frame to requested position - self.__logical_frame = frame - - def _reset(self, reset=True): - if reset: - self._decoder.reset() - self.__physical_frame = 0 - self.__loaded = -1 - self.__timestamp = 0 - - def _get_next(self): - # Get next frame - ret = self._decoder.get_next() - self.__physical_frame += 1 - - # Check if an error occurred - if ret is None: - self._reset() # Reset just to be safe - self.seek(0) - msg = "failed to decode next frame in WebP file" - raise EOFError(msg) - - # Compute duration - data, timestamp = ret - duration = timestamp - self.__timestamp - self.__timestamp = timestamp - - # libwebp gives frame end, adjust to start of frame - timestamp -= duration - return data, timestamp, duration - - def _seek(self, frame): - if self.__physical_frame == frame: - return # Nothing to do - if frame < self.__physical_frame: - self._reset() # Rewind to beginning - while self.__physical_frame < frame: - self._get_next() # Advance to the requested frame - - def load(self): - if _webp.HAVE_WEBPANIM: - if self.__loaded != self.__logical_frame: - self._seek(self.__logical_frame) - - # We need to load the image data for this frame - data, timestamp, duration = self._get_next() - self.info["timestamp"] = timestamp - self.info["duration"] = duration - self.__loaded = self.__logical_frame - - # Set tile - if self.fp and self._exclusive_fp: - self.fp.close() - self.fp = BytesIO(data) - self.tile = [("raw", (0, 0) + self.size, 0, self.rawmode)] - - return super().load() - - def load_seek(self, pos): - pass - - def tell(self): - if not _webp.HAVE_WEBPANIM: - return super().tell() - - return self.__logical_frame - - -def _save_all(im, fp, filename): - encoderinfo = im.encoderinfo.copy() - append_images = list(encoderinfo.get("append_images", [])) - - # If total frame count is 1, then save using the legacy API, which - # will preserve non-alpha modes - total = 0 - for ims in [im] + append_images: - total += getattr(ims, "n_frames", 1) - if total == 1: - _save(im, fp, filename) - return - - background = (0, 0, 0, 0) - if "background" in encoderinfo: - background = encoderinfo["background"] - elif "background" in im.info: - background = im.info["background"] - if isinstance(background, int): - # GifImagePlugin stores a global color table index in - # info["background"]. So it must be converted to an RGBA value - palette = im.getpalette() - if palette: - r, g, b = palette[background * 3 : (background + 1) * 3] - background = (r, g, b, 255) - else: - background = (background, background, background, 255) - - duration = im.encoderinfo.get("duration", im.info.get("duration", 0)) - loop = im.encoderinfo.get("loop", 0) - minimize_size = im.encoderinfo.get("minimize_size", False) - kmin = im.encoderinfo.get("kmin", None) - kmax = im.encoderinfo.get("kmax", None) - allow_mixed = im.encoderinfo.get("allow_mixed", False) - verbose = False - lossless = im.encoderinfo.get("lossless", False) - quality = im.encoderinfo.get("quality", 80) - method = im.encoderinfo.get("method", 0) - icc_profile = im.encoderinfo.get("icc_profile") or "" - exif = im.encoderinfo.get("exif", "") - if isinstance(exif, Image.Exif): - exif = exif.tobytes() - xmp = im.encoderinfo.get("xmp", "") - if allow_mixed: - lossless = False - - # Sensible keyframe defaults are from gif2webp.c script - if kmin is None: - kmin = 9 if lossless else 3 - if kmax is None: - kmax = 17 if lossless else 5 - - # Validate background color - if ( - not isinstance(background, (list, tuple)) - or len(background) != 4 - or not all(0 <= v < 256 for v in background) - ): - msg = f"Background color is not an RGBA tuple clamped to (0-255): {background}" - raise OSError(msg) - - # Convert to packed uint - bg_r, bg_g, bg_b, bg_a = background - background = (bg_a << 24) | (bg_r << 16) | (bg_g << 8) | (bg_b << 0) - - # Setup the WebP animation encoder - enc = _webp.WebPAnimEncoder( - im.size[0], - im.size[1], - background, - loop, - minimize_size, - kmin, - kmax, - allow_mixed, - verbose, - ) - - # Add each frame - frame_idx = 0 - timestamp = 0 - cur_idx = im.tell() - try: - for ims in [im] + append_images: - # Get # of frames in this image - nfr = getattr(ims, "n_frames", 1) - - for idx in range(nfr): - ims.seek(idx) - ims.load() - - # Make sure image mode is supported - frame = ims - rawmode = ims.mode - if ims.mode not in _VALID_WEBP_MODES: - alpha = ( - "A" in ims.mode - or "a" in ims.mode - or (ims.mode == "P" and "A" in ims.im.getpalettemode()) - ) - rawmode = "RGBA" if alpha else "RGB" - frame = ims.convert(rawmode) - - if rawmode == "RGB": - # For faster conversion, use RGBX - rawmode = "RGBX" - - # Append the frame to the animation encoder - enc.add( - frame.tobytes("raw", rawmode), - round(timestamp), - frame.size[0], - frame.size[1], - rawmode, - lossless, - quality, - method, - ) - - # Update timestamp and frame index - if isinstance(duration, (list, tuple)): - timestamp += duration[frame_idx] - else: - timestamp += duration - frame_idx += 1 - - finally: - im.seek(cur_idx) - - # Force encoder to flush frames - enc.add(None, round(timestamp), 0, 0, "", lossless, quality, 0) - - # Get the final output from the encoder - data = enc.assemble(icc_profile, exif, xmp) - if data is None: - msg = "cannot write file as WebP (encoder returned None)" - raise OSError(msg) - - fp.write(data) - - -def _save(im, fp, filename): - lossless = im.encoderinfo.get("lossless", False) - quality = im.encoderinfo.get("quality", 80) - icc_profile = im.encoderinfo.get("icc_profile") or "" - exif = im.encoderinfo.get("exif", b"") - if isinstance(exif, Image.Exif): - exif = exif.tobytes() - if exif.startswith(b"Exif\x00\x00"): - exif = exif[6:] - xmp = im.encoderinfo.get("xmp", "") - method = im.encoderinfo.get("method", 4) - exact = 1 if im.encoderinfo.get("exact") else 0 - - if im.mode not in _VALID_WEBP_LEGACY_MODES: - im = im.convert("RGBA" if im.has_transparency_data else "RGB") - - data = _webp.WebPEncode( - im.tobytes(), - im.size[0], - im.size[1], - lossless, - float(quality), - im.mode, - icc_profile, - method, - exact, - exif, - xmp, - ) - if data is None: - msg = "cannot write file as WebP (encoder returned None)" - raise OSError(msg) - - fp.write(data) - - -Image.register_open(WebPImageFile.format, WebPImageFile, _accept) -if SUPPORTED: - Image.register_save(WebPImageFile.format, _save) - if _webp.HAVE_WEBPANIM: - Image.register_save_all(WebPImageFile.format, _save_all) - Image.register_extension(WebPImageFile.format, ".webp") - Image.register_mime(WebPImageFile.format, "image/webp") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WmfImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WmfImagePlugin.py deleted file mode 100644 index b5b8c69..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/WmfImagePlugin.py +++ /dev/null @@ -1,179 +0,0 @@ -# -# The Python Imaging Library -# $Id$ -# -# WMF stub codec -# -# history: -# 1996-12-14 fl Created -# 2004-02-22 fl Turned into a stub driver -# 2004-02-23 fl Added EMF support -# -# Copyright (c) Secret Labs AB 1997-2004. All rights reserved. -# Copyright (c) Fredrik Lundh 1996. -# -# See the README file for information on usage and redistribution. -# -# WMF/EMF reference documentation: -# https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/[MS-WMF].pdf -# http://wvware.sourceforge.net/caolan/index.html -# http://wvware.sourceforge.net/caolan/ora-wmf.html -from __future__ import annotations - -from . import Image, ImageFile -from ._binary import i16le as word -from ._binary import si16le as short -from ._binary import si32le as _long - -_handler = None - - -def register_handler(handler): - """ - Install application-specific WMF image handler. - - :param handler: Handler object. - """ - global _handler - _handler = handler - - -if hasattr(Image.core, "drawwmf"): - # install default handler (windows only) - - class WmfHandler: - def open(self, im): - im._mode = "RGB" - self.bbox = im.info["wmf_bbox"] - - def load(self, im): - im.fp.seek(0) # rewind - return Image.frombytes( - "RGB", - im.size, - Image.core.drawwmf(im.fp.read(), im.size, self.bbox), - "raw", - "BGR", - (im.size[0] * 3 + 3) & -4, - -1, - ) - - register_handler(WmfHandler()) - -# -# -------------------------------------------------------------------- -# Read WMF file - - -def _accept(prefix): - return ( - prefix[:6] == b"\xd7\xcd\xc6\x9a\x00\x00" or prefix[:4] == b"\x01\x00\x00\x00" - ) - - -## -# Image plugin for Windows metafiles. - - -class WmfStubImageFile(ImageFile.StubImageFile): - format = "WMF" - format_description = "Windows Metafile" - - def _open(self): - self._inch = None - - # check placable header - s = self.fp.read(80) - - if s[:6] == b"\xd7\xcd\xc6\x9a\x00\x00": - # placeable windows metafile - - # get units per inch - self._inch = word(s, 14) - - # get bounding box - x0 = short(s, 6) - y0 = short(s, 8) - x1 = short(s, 10) - y1 = short(s, 12) - - # normalize size to 72 dots per inch - self.info["dpi"] = 72 - size = ( - (x1 - x0) * self.info["dpi"] // self._inch, - (y1 - y0) * self.info["dpi"] // self._inch, - ) - - self.info["wmf_bbox"] = x0, y0, x1, y1 - - # sanity check (standard metafile header) - if s[22:26] != b"\x01\x00\t\x00": - msg = "Unsupported WMF file format" - raise SyntaxError(msg) - - elif s[:4] == b"\x01\x00\x00\x00" and s[40:44] == b" EMF": - # enhanced metafile - - # get bounding box - x0 = _long(s, 8) - y0 = _long(s, 12) - x1 = _long(s, 16) - y1 = _long(s, 20) - - # get frame (in 0.01 millimeter units) - frame = _long(s, 24), _long(s, 28), _long(s, 32), _long(s, 36) - - size = x1 - x0, y1 - y0 - - # calculate dots per inch from bbox and frame - xdpi = 2540.0 * (x1 - y0) / (frame[2] - frame[0]) - ydpi = 2540.0 * (y1 - y0) / (frame[3] - frame[1]) - - self.info["wmf_bbox"] = x0, y0, x1, y1 - - if xdpi == ydpi: - self.info["dpi"] = xdpi - else: - self.info["dpi"] = xdpi, ydpi - - else: - msg = "Unsupported file format" - raise SyntaxError(msg) - - self._mode = "RGB" - self._size = size - - loader = self._load() - if loader: - loader.open(self) - - def _load(self): - return _handler - - def load(self, dpi=None): - if dpi is not None and self._inch is not None: - self.info["dpi"] = dpi - x0, y0, x1, y1 = self.info["wmf_bbox"] - self._size = ( - (x1 - x0) * self.info["dpi"] // self._inch, - (y1 - y0) * self.info["dpi"] // self._inch, - ) - return super().load() - - -def _save(im, fp, filename): - if _handler is None or not hasattr(_handler, "save"): - msg = "WMF save handler not installed" - raise OSError(msg) - _handler.save(im, fp, filename) - - -# -# -------------------------------------------------------------------- -# Registry stuff - - -Image.register_open(WmfStubImageFile.format, WmfStubImageFile, _accept) -Image.register_save(WmfStubImageFile.format, _save) - -Image.register_extensions(WmfStubImageFile.format, [".wmf", ".emf"]) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XVThumbImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XVThumbImagePlugin.py deleted file mode 100644 index 47ba1c5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XVThumbImagePlugin.py +++ /dev/null @@ -1,79 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# XV Thumbnail file handler by Charles E. "Gene" Cash -# (gcash@magicnet.net) -# -# see xvcolor.c and xvbrowse.c in the sources to John Bradley's XV, -# available from ftp://ftp.cis.upenn.edu/pub/xv/ -# -# history: -# 98-08-15 cec created (b/w only) -# 98-12-09 cec added color palette -# 98-12-28 fl added to PIL (with only a few very minor modifications) -# -# To do: -# FIXME: make save work (this requires quantization support) -# -from __future__ import annotations - -from . import Image, ImageFile, ImagePalette -from ._binary import o8 - -_MAGIC = b"P7 332" - -# standard color palette for thumbnails (RGB332) -PALETTE = b"" -for r in range(8): - for g in range(8): - for b in range(4): - PALETTE = PALETTE + ( - o8((r * 255) // 7) + o8((g * 255) // 7) + o8((b * 255) // 3) - ) - - -def _accept(prefix): - return prefix[:6] == _MAGIC - - -## -# Image plugin for XV thumbnail images. - - -class XVThumbImageFile(ImageFile.ImageFile): - format = "XVThumb" - format_description = "XV thumbnail image" - - def _open(self): - # check magic - if not _accept(self.fp.read(6)): - msg = "not an XV thumbnail file" - raise SyntaxError(msg) - - # Skip to beginning of next line - self.fp.readline() - - # skip info comments - while True: - s = self.fp.readline() - if not s: - msg = "Unexpected EOF reading XV thumbnail file" - raise SyntaxError(msg) - if s[0] != 35: # ie. when not a comment: '#' - break - - # parse header line (already read) - s = s.strip().split() - - self._mode = "P" - self._size = int(s[0]), int(s[1]) - - self.palette = ImagePalette.raw("RGB", PALETTE) - - self.tile = [("raw", (0, 0) + self.size, self.fp.tell(), (self.mode, 0, 1))] - - -# -------------------------------------------------------------------- - -Image.register_open(XVThumbImageFile.format, XVThumbImageFile, _accept) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XbmImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XbmImagePlugin.py deleted file mode 100644 index 566acbf..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XbmImagePlugin.py +++ /dev/null @@ -1,95 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# XBM File handling -# -# History: -# 1995-09-08 fl Created -# 1996-11-01 fl Added save support -# 1997-07-07 fl Made header parser more tolerant -# 1997-07-22 fl Fixed yet another parser bug -# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.4) -# 2001-05-13 fl Added hotspot handling (based on code from Bernhard Herzog) -# 2004-02-24 fl Allow some whitespace before first #define -# -# Copyright (c) 1997-2004 by Secret Labs AB -# Copyright (c) 1996-1997 by Fredrik Lundh -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import re - -from . import Image, ImageFile - -# XBM header -xbm_head = re.compile( - rb"\s*#define[ \t]+.*_width[ \t]+(?P[0-9]+)[\r\n]+" - b"#define[ \t]+.*_height[ \t]+(?P[0-9]+)[\r\n]+" - b"(?P" - b"#define[ \t]+[^_]*_x_hot[ \t]+(?P[0-9]+)[\r\n]+" - b"#define[ \t]+[^_]*_y_hot[ \t]+(?P[0-9]+)[\r\n]+" - b")?" - rb"[\000-\377]*_bits\[]" -) - - -def _accept(prefix): - return prefix.lstrip()[:7] == b"#define" - - -## -# Image plugin for X11 bitmaps. - - -class XbmImageFile(ImageFile.ImageFile): - format = "XBM" - format_description = "X11 Bitmap" - - def _open(self): - m = xbm_head.match(self.fp.read(512)) - - if not m: - msg = "not a XBM file" - raise SyntaxError(msg) - - xsize = int(m.group("width")) - ysize = int(m.group("height")) - - if m.group("hotspot"): - self.info["hotspot"] = (int(m.group("xhot")), int(m.group("yhot"))) - - self._mode = "1" - self._size = xsize, ysize - - self.tile = [("xbm", (0, 0) + self.size, m.end(), None)] - - -def _save(im, fp, filename): - if im.mode != "1": - msg = f"cannot write mode {im.mode} as XBM" - raise OSError(msg) - - fp.write(f"#define im_width {im.size[0]}\n".encode("ascii")) - fp.write(f"#define im_height {im.size[1]}\n".encode("ascii")) - - hotspot = im.encoderinfo.get("hotspot") - if hotspot: - fp.write(f"#define im_x_hot {hotspot[0]}\n".encode("ascii")) - fp.write(f"#define im_y_hot {hotspot[1]}\n".encode("ascii")) - - fp.write(b"static char im_bits[] = {\n") - - ImageFile._save(im, fp, [("xbm", (0, 0) + im.size, 0, None)]) - - fp.write(b"};\n") - - -Image.register_open(XbmImageFile.format, XbmImageFile, _accept) -Image.register_save(XbmImageFile.format, _save) - -Image.register_extension(XbmImageFile.format, ".xbm") - -Image.register_mime(XbmImageFile.format, "image/xbm") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XpmImagePlugin.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XpmImagePlugin.py deleted file mode 100644 index bf73c9b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/XpmImagePlugin.py +++ /dev/null @@ -1,128 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# XPM File handling -# -# History: -# 1996-12-29 fl Created -# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.7) -# -# Copyright (c) Secret Labs AB 1997-2001. -# Copyright (c) Fredrik Lundh 1996-2001. -# -# See the README file for information on usage and redistribution. -# -from __future__ import annotations - -import re - -from . import Image, ImageFile, ImagePalette -from ._binary import o8 - -# XPM header -xpm_head = re.compile(b'"([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*)') - - -def _accept(prefix): - return prefix[:9] == b"/* XPM */" - - -## -# Image plugin for X11 pixel maps. - - -class XpmImageFile(ImageFile.ImageFile): - format = "XPM" - format_description = "X11 Pixel Map" - - def _open(self): - if not _accept(self.fp.read(9)): - msg = "not an XPM file" - raise SyntaxError(msg) - - # skip forward to next string - while True: - s = self.fp.readline() - if not s: - msg = "broken XPM file" - raise SyntaxError(msg) - m = xpm_head.match(s) - if m: - break - - self._size = int(m.group(1)), int(m.group(2)) - - pal = int(m.group(3)) - bpp = int(m.group(4)) - - if pal > 256 or bpp != 1: - msg = "cannot read this XPM file" - raise ValueError(msg) - - # - # load palette description - - palette = [b"\0\0\0"] * 256 - - for _ in range(pal): - s = self.fp.readline() - if s[-2:] == b"\r\n": - s = s[:-2] - elif s[-1:] in b"\r\n": - s = s[:-1] - - c = s[1] - s = s[2:-2].split() - - for i in range(0, len(s), 2): - if s[i] == b"c": - # process colour key - rgb = s[i + 1] - if rgb == b"None": - self.info["transparency"] = c - elif rgb[:1] == b"#": - # FIXME: handle colour names (see ImagePalette.py) - rgb = int(rgb[1:], 16) - palette[c] = ( - o8((rgb >> 16) & 255) + o8((rgb >> 8) & 255) + o8(rgb & 255) - ) - else: - # unknown colour - msg = "cannot read this XPM file" - raise ValueError(msg) - break - - else: - # missing colour key - msg = "cannot read this XPM file" - raise ValueError(msg) - - self._mode = "P" - self.palette = ImagePalette.raw("RGB", b"".join(palette)) - - self.tile = [("raw", (0, 0) + self.size, self.fp.tell(), ("P", 0, 1))] - - def load_read(self, bytes): - # - # load all image data in one chunk - - xsize, ysize = self.size - - s = [None] * ysize - - for i in range(ysize): - s[i] = self.fp.readline()[1 : xsize + 1].ljust(xsize) - - return b"".join(s) - - -# -# Registry - - -Image.register_open(XpmImageFile.format, XpmImageFile, _accept) - -Image.register_extension(XpmImageFile.format, ".xpm") - -Image.register_mime(XpmImageFile.format, "image/xpm") diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/__init__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/__init__.py deleted file mode 100644 index 3fcac86..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/__init__.py +++ /dev/null @@ -1,85 +0,0 @@ -"""Pillow (Fork of the Python Imaging Library) - -Pillow is the friendly PIL fork by Jeffrey A. Clark (Alex) and contributors. - https://github.com/python-pillow/Pillow/ - -Pillow is forked from PIL 1.1.7. - -PIL is the Python Imaging Library by Fredrik Lundh and contributors. -Copyright (c) 1999 by Secret Labs AB. - -Use PIL.__version__ for this Pillow version. - -;-) -""" -from __future__ import annotations - -from . import _version - -# VERSION was removed in Pillow 6.0.0. -# PILLOW_VERSION was removed in Pillow 9.0.0. -# Use __version__ instead. -__version__ = _version.__version__ -del _version - - -_plugins = [ - "BlpImagePlugin", - "BmpImagePlugin", - "BufrStubImagePlugin", - "CurImagePlugin", - "DcxImagePlugin", - "DdsImagePlugin", - "EpsImagePlugin", - "FitsImagePlugin", - "FliImagePlugin", - "FpxImagePlugin", - "FtexImagePlugin", - "GbrImagePlugin", - "GifImagePlugin", - "GribStubImagePlugin", - "Hdf5StubImagePlugin", - "IcnsImagePlugin", - "IcoImagePlugin", - "ImImagePlugin", - "ImtImagePlugin", - "IptcImagePlugin", - "JpegImagePlugin", - "Jpeg2KImagePlugin", - "McIdasImagePlugin", - "MicImagePlugin", - "MpegImagePlugin", - "MpoImagePlugin", - "MspImagePlugin", - "PalmImagePlugin", - "PcdImagePlugin", - "PcxImagePlugin", - "PdfImagePlugin", - "PixarImagePlugin", - "PngImagePlugin", - "PpmImagePlugin", - "PsdImagePlugin", - "QoiImagePlugin", - "SgiImagePlugin", - "SpiderImagePlugin", - "SunImagePlugin", - "TgaImagePlugin", - "TiffImagePlugin", - "WebPImagePlugin", - "WmfImagePlugin", - "XbmImagePlugin", - "XpmImagePlugin", - "XVThumbImagePlugin", -] - - -class UnidentifiedImageError(OSError): - """ - Raised in :py:meth:`PIL.Image.open` if an image cannot be opened and identified. - - If a PNG image raises this error, setting :data:`.ImageFile.LOAD_TRUNCATED_IMAGES` - to true may allow the image to be opened after all. The setting will ignore missing - data and checksum failures. - """ - - pass diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/__main__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/__main__.py deleted file mode 100644 index 9437899..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/__main__.py +++ /dev/null @@ -1,5 +0,0 @@ -from __future__ import annotations - -from .features import pilinfo - -pilinfo() diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_binary.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_binary.py deleted file mode 100644 index 0a07e8d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_binary.py +++ /dev/null @@ -1,102 +0,0 @@ -# -# The Python Imaging Library. -# $Id$ -# -# Binary input/output support routines. -# -# Copyright (c) 1997-2003 by Secret Labs AB -# Copyright (c) 1995-2003 by Fredrik Lundh -# Copyright (c) 2012 by Brian Crowell -# -# See the README file for information on usage and redistribution. -# - - -"""Binary input/output support routines.""" -from __future__ import annotations - -from struct import pack, unpack_from - - -def i8(c: bytes) -> int: - return c[0] - - -def o8(i: int) -> bytes: - return bytes((i & 255,)) - - -# Input, le = little endian, be = big endian -def i16le(c: bytes, o: int = 0) -> int: - """ - Converts a 2-bytes (16 bits) string to an unsigned integer. - - :param c: string containing bytes to convert - :param o: offset of bytes to convert in string - """ - return unpack_from(" int: - """ - Converts a 2-bytes (16 bits) string to a signed integer. - - :param c: string containing bytes to convert - :param o: offset of bytes to convert in string - """ - return unpack_from(" int: - """ - Converts a 2-bytes (16 bits) string to a signed integer, big endian. - - :param c: string containing bytes to convert - :param o: offset of bytes to convert in string - """ - return unpack_from(">h", c, o)[0] - - -def i32le(c: bytes, o: int = 0) -> int: - """ - Converts a 4-bytes (32 bits) string to an unsigned integer. - - :param c: string containing bytes to convert - :param o: offset of bytes to convert in string - """ - return unpack_from(" int: - """ - Converts a 4-bytes (32 bits) string to a signed integer. - - :param c: string containing bytes to convert - :param o: offset of bytes to convert in string - """ - return unpack_from(" int: - return unpack_from(">H", c, o)[0] - - -def i32be(c: bytes, o: int = 0) -> int: - return unpack_from(">I", c, o)[0] - - -# Output, le = little endian, be = big endian -def o16le(i: int) -> bytes: - return pack(" bytes: - return pack(" bytes: - return pack(">H", i) - - -def o32be(i: int) -> bytes: - return pack(">I", i) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_deprecate.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_deprecate.py deleted file mode 100644 index 33a0e07..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_deprecate.py +++ /dev/null @@ -1,71 +0,0 @@ -from __future__ import annotations - -import warnings - -from . import __version__ - - -def deprecate( - deprecated: str, - when: int | None, - replacement: str | None = None, - *, - action: str | None = None, - plural: bool = False, -) -> None: - """ - Deprecations helper. - - :param deprecated: Name of thing to be deprecated. - :param when: Pillow major version to be removed in. - :param replacement: Name of replacement. - :param action: Instead of "replacement", give a custom call to action - e.g. "Upgrade to new thing". - :param plural: if the deprecated thing is plural, needing "are" instead of "is". - - Usually of the form: - - "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd). - Use [replacement] instead." - - You can leave out the replacement sentence: - - "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd)" - - Or with another call to action: - - "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd). - [action]." - """ - - is_ = "are" if plural else "is" - - if when is None: - removed = "a future version" - elif when <= int(__version__.split(".")[0]): - msg = f"{deprecated} {is_} deprecated and should be removed." - raise RuntimeError(msg) - elif when == 11: - removed = "Pillow 11 (2024-10-15)" - elif when == 12: - removed = "Pillow 12 (2025-10-15)" - else: - msg = f"Unknown removal version: {when}. Update {__name__}?" - raise ValueError(msg) - - if replacement and action: - msg = "Use only one of 'replacement' and 'action'" - raise ValueError(msg) - - if replacement: - action = f". Use {replacement} instead." - elif action: - action = f". {action.rstrip('.')}." - else: - action = "" - - warnings.warn( - f"{deprecated} {is_} deprecated and will be removed in {removed}{action}", - DeprecationWarning, - stacklevel=3, - ) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imaging.cp312-win_amd64.pyd b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imaging.cp312-win_amd64.pyd deleted file mode 100644 index fb151d5..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imaging.cp312-win_amd64.pyd and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingcms.cp312-win_amd64.pyd b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingcms.cp312-win_amd64.pyd deleted file mode 100644 index e3c0a83..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingcms.cp312-win_amd64.pyd and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingcms.pyi b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingcms.pyi deleted file mode 100644 index b023555..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingcms.pyi +++ /dev/null @@ -1,5 +0,0 @@ -from __future__ import annotations - -from typing import Any - -def __getattr__(name: str) -> Any: ... diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingft.cp312-win_amd64.pyd b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingft.cp312-win_amd64.pyd deleted file mode 100644 index a635eca..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingft.cp312-win_amd64.pyd and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingft.pyi b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingft.pyi deleted file mode 100644 index b023555..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingft.pyi +++ /dev/null @@ -1,5 +0,0 @@ -from __future__ import annotations - -from typing import Any - -def __getattr__(name: str) -> Any: ... diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingmath.cp312-win_amd64.pyd b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingmath.cp312-win_amd64.pyd deleted file mode 100644 index be4a867..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingmath.cp312-win_amd64.pyd and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingmorph.cp312-win_amd64.pyd b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingmorph.cp312-win_amd64.pyd deleted file mode 100644 index 05b07e8..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingmorph.cp312-win_amd64.pyd and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingtk.cp312-win_amd64.pyd b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingtk.cp312-win_amd64.pyd deleted file mode 100644 index 45f7187..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_imagingtk.cp312-win_amd64.pyd and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_tkinter_finder.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_tkinter_finder.py deleted file mode 100644 index 03a6eba..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_tkinter_finder.py +++ /dev/null @@ -1,19 +0,0 @@ -""" Find compiled module linking to Tcl / Tk libraries -""" -from __future__ import annotations - -import sys -import tkinter -from tkinter import _tkinter as tk - -try: - if hasattr(sys, "pypy_find_executable"): - TKINTER_LIB = tk.tklib_cffi.__file__ - else: - TKINTER_LIB = tk.__file__ -except AttributeError: - # _tkinter may be compiled directly into Python, in which case __file__ is - # not available. load_tkinter_funcs will check the binary first in any case. - TKINTER_LIB = None - -tk_version = str(tkinter.TkVersion) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_typing.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_typing.py deleted file mode 100644 index 608b2b4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_typing.py +++ /dev/null @@ -1,18 +0,0 @@ -from __future__ import annotations - -import sys - -if sys.version_info >= (3, 10): - from typing import TypeGuard -else: - try: - from typing_extensions import TypeGuard - except ImportError: - from typing import Any - - class TypeGuard: # type: ignore[no-redef] - def __class_getitem__(cls, item: Any) -> type[bool]: - return bool - - -__all__ = ["TypeGuard"] diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_util.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_util.py deleted file mode 100644 index 13f369c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_util.py +++ /dev/null @@ -1,32 +0,0 @@ -from __future__ import annotations - -import os -from pathlib import Path -from typing import Any, NoReturn - -from ._typing import TypeGuard - - -def is_path(f: Any) -> TypeGuard[bytes | str | Path]: - return isinstance(f, (bytes, str, Path)) - - -def is_directory(f: Any) -> TypeGuard[bytes | str | Path]: - """Checks if an object is a string, and that it points to a directory.""" - return is_path(f) and os.path.isdir(f) - - -class DeferredError: - def __init__(self, ex: BaseException): - self.ex = ex - - def __getattr__(self, elt: str) -> NoReturn: - raise self.ex - - @staticmethod - def new(ex: BaseException) -> Any: - """ - Creates an object that raises the wrapped exception ``ex`` when used, - and casts it to :py:obj:`~typing.Any` type. - """ - return DeferredError(ex) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_version.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_version.py deleted file mode 100644 index 1018b96..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_version.py +++ /dev/null @@ -1,4 +0,0 @@ -# Master version for Pillow -from __future__ import annotations - -__version__ = "10.2.0" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_webp.cp312-win_amd64.pyd b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_webp.cp312-win_amd64.pyd deleted file mode 100644 index 739bb47..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/_webp.cp312-win_amd64.pyd and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/features.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/features.py deleted file mode 100644 index b14d6df..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/PIL/features.py +++ /dev/null @@ -1,331 +0,0 @@ -from __future__ import annotations - -import collections -import os -import sys -import warnings - -import PIL - -from . import Image - -modules = { - "pil": ("PIL._imaging", "PILLOW_VERSION"), - "tkinter": ("PIL._tkinter_finder", "tk_version"), - "freetype2": ("PIL._imagingft", "freetype2_version"), - "littlecms2": ("PIL._imagingcms", "littlecms_version"), - "webp": ("PIL._webp", "webpdecoder_version"), -} - - -def check_module(feature): - """ - Checks if a module is available. - - :param feature: The module to check for. - :returns: ``True`` if available, ``False`` otherwise. - :raises ValueError: If the module is not defined in this version of Pillow. - """ - if feature not in modules: - msg = f"Unknown module {feature}" - raise ValueError(msg) - - module, ver = modules[feature] - - try: - __import__(module) - return True - except ModuleNotFoundError: - return False - except ImportError as ex: - warnings.warn(str(ex)) - return False - - -def version_module(feature): - """ - :param feature: The module to check for. - :returns: - The loaded version number as a string, or ``None`` if unknown or not available. - :raises ValueError: If the module is not defined in this version of Pillow. - """ - if not check_module(feature): - return None - - module, ver = modules[feature] - - if ver is None: - return None - - return getattr(__import__(module, fromlist=[ver]), ver) - - -def get_supported_modules(): - """ - :returns: A list of all supported modules. - """ - return [f for f in modules if check_module(f)] - - -codecs = { - "jpg": ("jpeg", "jpeglib"), - "jpg_2000": ("jpeg2k", "jp2klib"), - "zlib": ("zip", "zlib"), - "libtiff": ("libtiff", "libtiff"), -} - - -def check_codec(feature): - """ - Checks if a codec is available. - - :param feature: The codec to check for. - :returns: ``True`` if available, ``False`` otherwise. - :raises ValueError: If the codec is not defined in this version of Pillow. - """ - if feature not in codecs: - msg = f"Unknown codec {feature}" - raise ValueError(msg) - - codec, lib = codecs[feature] - - return codec + "_encoder" in dir(Image.core) - - -def version_codec(feature): - """ - :param feature: The codec to check for. - :returns: - The version number as a string, or ``None`` if not available. - Checked at compile time for ``jpg``, run-time otherwise. - :raises ValueError: If the codec is not defined in this version of Pillow. - """ - if not check_codec(feature): - return None - - codec, lib = codecs[feature] - - version = getattr(Image.core, lib + "_version") - - if feature == "libtiff": - return version.split("\n")[0].split("Version ")[1] - - return version - - -def get_supported_codecs(): - """ - :returns: A list of all supported codecs. - """ - return [f for f in codecs if check_codec(f)] - - -features = { - "webp_anim": ("PIL._webp", "HAVE_WEBPANIM", None), - "webp_mux": ("PIL._webp", "HAVE_WEBPMUX", None), - "transp_webp": ("PIL._webp", "HAVE_TRANSPARENCY", None), - "raqm": ("PIL._imagingft", "HAVE_RAQM", "raqm_version"), - "fribidi": ("PIL._imagingft", "HAVE_FRIBIDI", "fribidi_version"), - "harfbuzz": ("PIL._imagingft", "HAVE_HARFBUZZ", "harfbuzz_version"), - "libjpeg_turbo": ("PIL._imaging", "HAVE_LIBJPEGTURBO", "libjpeg_turbo_version"), - "libimagequant": ("PIL._imaging", "HAVE_LIBIMAGEQUANT", "imagequant_version"), - "xcb": ("PIL._imaging", "HAVE_XCB", None), -} - - -def check_feature(feature): - """ - Checks if a feature is available. - - :param feature: The feature to check for. - :returns: ``True`` if available, ``False`` if unavailable, ``None`` if unknown. - :raises ValueError: If the feature is not defined in this version of Pillow. - """ - if feature not in features: - msg = f"Unknown feature {feature}" - raise ValueError(msg) - - module, flag, ver = features[feature] - - try: - imported_module = __import__(module, fromlist=["PIL"]) - return getattr(imported_module, flag) - except ModuleNotFoundError: - return None - except ImportError as ex: - warnings.warn(str(ex)) - return None - - -def version_feature(feature): - """ - :param feature: The feature to check for. - :returns: The version number as a string, or ``None`` if not available. - :raises ValueError: If the feature is not defined in this version of Pillow. - """ - if not check_feature(feature): - return None - - module, flag, ver = features[feature] - - if ver is None: - return None - - return getattr(__import__(module, fromlist=[ver]), ver) - - -def get_supported_features(): - """ - :returns: A list of all supported features. - """ - return [f for f in features if check_feature(f)] - - -def check(feature): - """ - :param feature: A module, codec, or feature name. - :returns: - ``True`` if the module, codec, or feature is available, - ``False`` or ``None`` otherwise. - """ - - if feature in modules: - return check_module(feature) - if feature in codecs: - return check_codec(feature) - if feature in features: - return check_feature(feature) - warnings.warn(f"Unknown feature '{feature}'.", stacklevel=2) - return False - - -def version(feature): - """ - :param feature: - The module, codec, or feature to check for. - :returns: - The version number as a string, or ``None`` if unknown or not available. - """ - if feature in modules: - return version_module(feature) - if feature in codecs: - return version_codec(feature) - if feature in features: - return version_feature(feature) - return None - - -def get_supported(): - """ - :returns: A list of all supported modules, features, and codecs. - """ - - ret = get_supported_modules() - ret.extend(get_supported_features()) - ret.extend(get_supported_codecs()) - return ret - - -def pilinfo(out=None, supported_formats=True): - """ - Prints information about this installation of Pillow. - This function can be called with ``python3 -m PIL``. - - :param out: - The output stream to print to. Defaults to ``sys.stdout`` if ``None``. - :param supported_formats: - If ``True``, a list of all supported image file formats will be printed. - """ - - if out is None: - out = sys.stdout - - Image.init() - - print("-" * 68, file=out) - print(f"Pillow {PIL.__version__}", file=out) - py_version = sys.version.splitlines() - print(f"Python {py_version[0].strip()}", file=out) - for py_version in py_version[1:]: - print(f" {py_version.strip()}", file=out) - print("-" * 68, file=out) - print( - f"Python modules loaded from {os.path.dirname(Image.__file__)}", - file=out, - ) - print( - f"Binary modules loaded from {os.path.dirname(Image.core.__file__)}", - file=out, - ) - print("-" * 68, file=out) - - for name, feature in [ - ("pil", "PIL CORE"), - ("tkinter", "TKINTER"), - ("freetype2", "FREETYPE2"), - ("littlecms2", "LITTLECMS2"), - ("webp", "WEBP"), - ("transp_webp", "WEBP Transparency"), - ("webp_mux", "WEBPMUX"), - ("webp_anim", "WEBP Animation"), - ("jpg", "JPEG"), - ("jpg_2000", "OPENJPEG (JPEG2000)"), - ("zlib", "ZLIB (PNG/ZIP)"), - ("libtiff", "LIBTIFF"), - ("raqm", "RAQM (Bidirectional Text)"), - ("libimagequant", "LIBIMAGEQUANT (Quantization method)"), - ("xcb", "XCB (X protocol)"), - ]: - if check(name): - if name == "jpg" and check_feature("libjpeg_turbo"): - v = "libjpeg-turbo " + version_feature("libjpeg_turbo") - else: - v = version(name) - if v is not None: - version_static = name in ("pil", "jpg") - if name == "littlecms2": - # this check is also in src/_imagingcms.c:setup_module() - version_static = tuple(int(x) for x in v.split(".")) < (2, 7) - t = "compiled for" if version_static else "loaded" - if name == "raqm": - for f in ("fribidi", "harfbuzz"): - v2 = version_feature(f) - if v2 is not None: - v += f", {f} {v2}" - print("---", feature, "support ok,", t, v, file=out) - else: - print("---", feature, "support ok", file=out) - else: - print("***", feature, "support not installed", file=out) - print("-" * 68, file=out) - - if supported_formats: - extensions = collections.defaultdict(list) - for ext, i in Image.EXTENSION.items(): - extensions[i].append(ext) - - for i in sorted(Image.ID): - line = f"{i}" - if i in Image.MIME: - line = f"{line} {Image.MIME[i]}" - print(line, file=out) - - if i in extensions: - print( - "Extensions: {}".format(", ".join(sorted(extensions[i]))), file=out - ) - - features = [] - if i in Image.OPEN: - features.append("open") - if i in Image.SAVE: - features.append("save") - if i in Image.SAVE_ALL: - features.append("save_all") - if i in Image.DECODERS: - features.append("decode") - if i in Image.ENCODERS: - features.append("encode") - - print("Features: {}".format(", ".join(features)), file=out) - print("-" * 68, file=out) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/_virtualenv.pth b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/_virtualenv.pth deleted file mode 100644 index 1c3ff99..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/_virtualenv.pth +++ /dev/null @@ -1 +0,0 @@ -import _virtualenv \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/_virtualenv.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/_virtualenv.py deleted file mode 100644 index 17f73b1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/_virtualenv.py +++ /dev/null @@ -1,102 +0,0 @@ -"""Patches that are applied at runtime to the virtual environment.""" - -from __future__ import annotations - -import os -import sys -from contextlib import suppress - -VIRTUALENV_PATCH_FILE = os.path.join(__file__) - - -def patch_dist(dist): - """ - Distutils allows user to configure some arguments via a configuration file: - https://docs.python.org/3/install/index.html#distutils-configuration-files. - - Some of this arguments though don't make sense in context of the virtual environment files, let's fix them up. - """ # noqa: D205 - # we cannot allow some install config as that would get packages installed outside of the virtual environment - old_parse_config_files = dist.Distribution.parse_config_files - - def parse_config_files(self, *args, **kwargs): - result = old_parse_config_files(self, *args, **kwargs) - install = self.get_option_dict("install") - - if "prefix" in install: # the prefix governs where to install the libraries - install["prefix"] = VIRTUALENV_PATCH_FILE, os.path.abspath(sys.prefix) - for base in ("purelib", "platlib", "headers", "scripts", "data"): - key = f"install_{base}" - if key in install: # do not allow global configs to hijack venv paths - install.pop(key, None) - return result - - dist.Distribution.parse_config_files = parse_config_files - - -# Import hook that patches some modules to ignore configuration values that break package installation in case -# of virtual environments. -_DISTUTILS_PATCH = "distutils.dist", "setuptools.dist" -# https://docs.python.org/3/library/importlib.html#setting-up-an-importer - - -class _Finder: - """A meta path finder that allows patching the imported distutils modules.""" - - fullname = None - - # lock[0] is threading.Lock(), but initialized lazily to avoid importing threading very early at startup, - # because there are gevent-based applications that need to be first to import threading by themselves. - # See https://github.com/pypa/virtualenv/issues/1895 for details. - lock = [] # noqa: RUF012 - - def find_spec(self, fullname, path, target=None): # noqa: ARG002 - if fullname in _DISTUTILS_PATCH and self.fullname is None: - # initialize lock[0] lazily - if len(self.lock) == 0: - import threading - - lock = threading.Lock() - # there is possibility that two threads T1 and T2 are simultaneously running into find_spec, - # observing .lock as empty, and further going into hereby initialization. However due to the GIL, - # list.append() operation is atomic and this way only one of the threads will "win" to put the lock - # - that every thread will use - into .lock[0]. - # https://docs.python.org/3/faq/library.html#what-kinds-of-global-value-mutation-are-thread-safe - self.lock.append(lock) - - from functools import partial - from importlib.util import find_spec - - with self.lock[0]: - self.fullname = fullname - try: - spec = find_spec(fullname, path) - if spec is not None: - # https://www.python.org/dev/peps/pep-0451/#how-loading-will-work - is_new_api = hasattr(spec.loader, "exec_module") - func_name = "exec_module" if is_new_api else "load_module" - old = getattr(spec.loader, func_name) - func = self.exec_module if is_new_api else self.load_module - if old is not func: - with suppress(AttributeError): # C-Extension loaders are r/o such as zipimporter with <3.7 - setattr(spec.loader, func_name, partial(func, old)) - return spec - finally: - self.fullname = None - return None - - @staticmethod - def exec_module(old, module): - old(module) - if module.__name__ in _DISTUTILS_PATCH: - patch_dist(module) - - @staticmethod - def load_module(old, name): - module = old(name) - if module.__name__ in _DISTUTILS_PATCH: - patch_dist(module) - return module - - -sys.meta_path.insert(0, _Finder()) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/__init__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/__init__.py deleted file mode 100644 index 19d1f85..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -from django.utils.version import get_version - -VERSION = (4, 2, 11, "final", 0) - -__version__ = get_version(VERSION) - - -def setup(set_prefix=True): - """ - Configure the settings (this happens as a side effect of accessing the - first setting), configure logging and populate the app registry. - Set the thread-local urlresolvers script prefix if `set_prefix` is True. - """ - from django.apps import apps - from django.conf import settings - from django.urls import set_script_prefix - from django.utils.log import configure_logging - - configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) - if set_prefix: - set_script_prefix( - "/" if settings.FORCE_SCRIPT_NAME is None else settings.FORCE_SCRIPT_NAME - ) - apps.populate(settings.INSTALLED_APPS) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/__main__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/__main__.py deleted file mode 100644 index 8b96e91..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/__main__.py +++ /dev/null @@ -1,9 +0,0 @@ -""" -Invokes django-admin when the django module is run as a script. - -Example: python -m django check -""" -from django.core import management - -if __name__ == "__main__": - management.execute_from_command_line() diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/__init__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/__init__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/__init__.py deleted file mode 100644 index ef5c64f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -from django.contrib.admin.decorators import action, display, register -from django.contrib.admin.filters import ( - AllValuesFieldListFilter, - BooleanFieldListFilter, - ChoicesFieldListFilter, - DateFieldListFilter, - EmptyFieldListFilter, - FieldListFilter, - ListFilter, - RelatedFieldListFilter, - RelatedOnlyFieldListFilter, - SimpleListFilter, -) -from django.contrib.admin.options import ( - HORIZONTAL, - VERTICAL, - ModelAdmin, - StackedInline, - TabularInline, -) -from django.contrib.admin.sites import AdminSite, site -from django.utils.module_loading import autodiscover_modules - -__all__ = [ - "action", - "display", - "register", - "ModelAdmin", - "HORIZONTAL", - "VERTICAL", - "StackedInline", - "TabularInline", - "AdminSite", - "site", - "ListFilter", - "SimpleListFilter", - "FieldListFilter", - "BooleanFieldListFilter", - "RelatedFieldListFilter", - "ChoicesFieldListFilter", - "DateFieldListFilter", - "AllValuesFieldListFilter", - "EmptyFieldListFilter", - "RelatedOnlyFieldListFilter", - "autodiscover", -] - - -def autodiscover(): - autodiscover_modules("admin", register_to=site) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo deleted file mode 100644 index 8af4f88..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.po deleted file mode 100644 index 2dcd0fe..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/django.po +++ /dev/null @@ -1,759 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Bakhtawar Barzan, 2021 -# kosar tofiq , 2020 -# pejar hewrami , 2020 -# Swara , 2022 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Swara , 2022\n" -"Language-Team: Central Kurdish (http://www.transifex.com/django/django/" -"language/ckb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ckb\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "%(verbose_name_plural)sە هەڵبژێردراوەکان بسڕەوە" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "سەرکەوتووانە %(count)d %(items)sی سڕییەوە." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "ناتوانرێت %(name)s بسڕێتەوە" - -msgid "Are you sure?" -msgstr "ئایا تۆ دڵنیایت؟" - -msgid "Administration" -msgstr "بەڕێوەبەرایەتی" - -msgid "All" -msgstr "هەمووی" - -msgid "Yes" -msgstr "بەڵێ" - -msgid "No" -msgstr "نەخێر" - -msgid "Unknown" -msgstr "نەزانراو" - -msgid "Any date" -msgstr "هەر بەروارێک" - -msgid "Today" -msgstr "ئەمڕۆ" - -msgid "Past 7 days" -msgstr "7 ڕۆژی ڕابردوو" - -msgid "This month" -msgstr "ئەم مانگە" - -msgid "This year" -msgstr "ئەمساڵ" - -msgid "No date" -msgstr "بەروار نییە" - -msgid "Has date" -msgstr "بەرواری هەیە" - -msgid "Empty" -msgstr "بەتاڵ" - -msgid "Not empty" -msgstr "بەتاڵ نییە" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"تکایە %(username)s و تێپەڕەوشە دروستەکە بنوسە بۆ هەژمارێکی ستاف. تێبینی بکە " -"لەوانەیە هەردوو خانەکە دۆخی هەستیار بێت بۆ پیتەکان." - -msgid "Action:" -msgstr "کردار:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "زیادکردنی %(verbose_name)sی تر" - -msgid "Remove" -msgstr "لابردن" - -msgid "Addition" -msgstr "خستنەسەر" - -msgid "Change" -msgstr "گۆڕین" - -msgid "Deletion" -msgstr "سڕینەوە" - -msgid "action time" -msgstr "کاتی کردار" - -msgid "user" -msgstr "بەکارهێنەر" - -msgid "content type" -msgstr "جۆری ناوەڕۆک" - -msgid "object id" -msgstr "ناسنامەی ئۆبجێکت" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "نوێنەرایەتی ئۆبجێکت" - -msgid "action flag" -msgstr "ئاڵای کردار" - -msgid "change message" -msgstr "گۆڕینی پەیام" - -msgid "log entry" -msgstr "ڕاپۆرتی تۆمار" - -msgid "log entries" -msgstr "ڕاپۆرتی تۆمارەکان" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\"ی زیادکرد." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "\"%(object)s\"— %(changes)s گۆڕدرا" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "\"%(object)s\" سڕایەوە." - -msgid "LogEntry Object" -msgstr "ئۆبجێکتی ڕاپۆرتی تۆمار" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} \"{object}\" زیادکرا." - -msgid "Added." -msgstr "زیادکرا." - -msgid "and" -msgstr "و" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{fields} بۆ {name} “{object}” گۆڕدرا." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} گۆڕدرا." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} “{object}” سڕایەوە." - -msgid "No fields changed." -msgstr "هیچ خانەیەک نەگۆڕاوە." - -msgid "None" -msgstr "هیچ" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"پەنجە داگرە لەسەر “Control”، یاخود “Command” لەسەر ماک، بۆ هەڵبژاردنی " -"دانەیەک زیاتر." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” بەسەرکەوتوویی زیادکرا." - -msgid "You may edit it again below." -msgstr "دەگونجێت تۆ دووبارە لەخوارەوە دەستکاری بکەیت." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}” بەسەرکەوتوویی زیادکرا. دەگونجێت تۆ لە خوارەوە {name}یەکی تر " -"زیادبکەیت." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” بەسەرکەوتوویی گۆڕدرا. دەگونجێت تۆ لە خوارەوە دووبارە دەستکاری " -"بکەیتەوە." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” بەسەرکەوتوویی زیادکرا. دەگونجێت تۆ لە خوارەوە دووبارە " -"دەستکاری بکەیتەوە." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} “{obj}” بەسەرکەوتوویی گۆڕدرا. دەگونجێت تۆ لە خوارەوە {name}یەکی تر " -"زیاد بکەیت." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name}ی “{obj}” بەسەرکەوتوویی گۆڕدرا." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"دەبێت بڕگەکان هەڵبژێردرابن تاوەکو کرداریان لەسەر ئەنجام بدەیت. هیچ بڕگەیەک " -"نەگۆڕدراوە." - -msgid "No action selected." -msgstr "هیچ کردارێک هەڵنەبژێردراوە." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s\"%(obj)s\" بەسەرکەوتوویی سڕدرایەوە." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s بە ناسنامەی \"%(key)s\" بوونی نییە. لەوانەیە سڕدرابێتەوە؟" - -#, python-format -msgid "Add %s" -msgstr "زیادکردنی %s" - -#, python-format -msgid "Change %s" -msgstr "گۆڕینی %s" - -#, python-format -msgid "View %s" -msgstr "بینینی %s" - -msgid "Database error" -msgstr "هەڵەی بنکەدراوە" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s بەسەرکەوتوویی گۆڕدرا." -msgstr[1] "%(count)s %(name)s بەسەرکەوتوویی گۆڕدران." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s هەڵبژێردراوە" -msgstr[1] "هەمووی %(total_count)s هەڵبژێردراون" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 لە %(cnt)s هەڵبژێردراوە" - -#, python-format -msgid "Change history: %s" -msgstr "مێژووی گۆڕین: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(instance)sی %(class_name)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"سڕینەوەی %(instance)sی %(class_name)s پێویستی بە سڕینەوەی ئەم ئۆبجێکتە " -"پەیوەندیدارە پارێزراوانەیە: %(related_objects)s" - -msgid "Django site admin" -msgstr "بەڕێوەبەری پێگەی جەنگۆ" - -msgid "Django administration" -msgstr "بەڕێوەبەرایەتی جەنگۆ" - -msgid "Site administration" -msgstr "بەڕێوەبەرایەتی پێگە" - -msgid "Log in" -msgstr "چوونەژوورەوە" - -#, python-format -msgid "%(app)s administration" -msgstr "بەڕێوەبەرایەتی %(app)s" - -msgid "Page not found" -msgstr "پەڕە نەدۆزرایەوە" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "داوای لێبوردن ئەکەین، بەڵام ناتوانرێت پەڕەی داواکراو بدۆزرێتەوە." - -msgid "Home" -msgstr "ماڵەوە" - -msgid "Server error" -msgstr "هەڵەی ڕاژەکار" - -msgid "Server error (500)" -msgstr "هەڵەی ڕاژەکار (500)" - -msgid "Server Error (500)" -msgstr "هەڵەی ڕاژەکار (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"هەڵەیەک بوونی هەبووە. ڕاپۆرت دراوە بە پێگەی بەڕێوەبەرایەتی لەڕێی ئیمەیڵەوە و " -"دەبێت بەزوویی چاکبکرێت. سوپاس بۆ ئارامگرتنت." - -msgid "Run the selected action" -msgstr "کرداری هەڵبژێردراو جێبەجێ بکە" - -msgid "Go" -msgstr "بڕۆ" - -msgid "Click here to select the objects across all pages" -msgstr "کرتە لێرە بکە بۆ هەڵبژاردنی ئۆبجێکتەکان لە تەواوی هەموو پەڕەکان" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "هەموو %(total_count)s %(module_name)s هەڵبژێرە" - -msgid "Clear selection" -msgstr "پاککردنەوەی هەڵبژاردن" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "مۆدێلەکان لە بەرنامەی %(name)s" - -msgid "Add" -msgstr "زیادکردن" - -msgid "View" -msgstr "بینین" - -msgid "You don’t have permission to view or edit anything." -msgstr "تۆ ڕێگەپێدراو نیت بۆ بینین یان دەستکاری هیچ شتێک." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"سەرەتا، ناوی بەکارهێنەر و تێپەڕەوشە بنوسە. پاشان دەتوانیت دەستکاری زیاتری " -"هەڵبژاردنەکانی بەکارهێنەر بکەیت." - -msgid "Enter a username and password." -msgstr "ناوی بەکارهێنەر و تێپەڕەوشە بنوسە" - -msgid "Change password" -msgstr "گۆڕینی تێپەڕەوشە" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "تێپەڕەوشەی نوێ بۆ بەکارهێنەری %(username)s بنوسە" - -msgid "Skip to main content" -msgstr "" - -msgid "Welcome," -msgstr "بەخێربێیت،" - -msgid "View site" -msgstr "بینینی پێگە" - -msgid "Documentation" -msgstr "بەڵگەنامە" - -msgid "Log out" -msgstr "چوونەدەرەوە" - -msgid "Breadcrumbs" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "زیادکردنی %(name)s" - -msgid "History" -msgstr "مێژوو" - -msgid "View on site" -msgstr "بینین لەسەر پێگە" - -msgid "Filter" -msgstr "پاڵاوتن" - -msgid "Clear all filters" -msgstr "پاکردنەوەی هەموو پاڵاوتنەکان" - -msgid "Remove from sorting" -msgstr "لابردن لە ڕیزکردن" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "ڕیزکردنی لە پێشینە: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "ڕیزکردنی پێچەوانە" - -msgid "Toggle theme (current theme: auto)" -msgstr "" - -msgid "Toggle theme (current theme: light)" -msgstr "" - -msgid "Toggle theme (current theme: dark)" -msgstr "" - -msgid "Delete" -msgstr "سڕینەوە" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"سڕینەوەی %(object_name)s ‘%(escaped_object)s‘ دەبێتە هۆی سڕینەوەی ئۆبجێکتی " -"پەیوەندیدار، بەڵام هەژمارەکەت ڕێگەپێدراو نییە بۆ سڕینەوەی ئەم جۆرە " -"ئۆبجێکتانەی تر:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"سڕینەوەی %(object_name)sی ‘%(escaped_object)s‘ پێویستیی بە سڕینەوەی ئەم " -"ئۆبجێکتە پەیوەندیدارە پارێزراوانەیە:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"ئایا تۆ دڵنیایت کە دەتەوێت %(object_name)sی \"%(escaped_object)s\" بسڕیتەوە؟ " -"هەموو ئەم ئۆبجێکتە پەیوەندیدارانەش دەسڕێتەوە:" - -msgid "Objects" -msgstr "ئۆبجێکتەکان" - -msgid "Yes, I’m sure" -msgstr "بەڵێ، من دڵنیام" - -msgid "No, take me back" -msgstr "نەخێر، من بگەڕێنەرەوە دواوە" - -msgid "Delete multiple objects" -msgstr "سڕینەوەی چەندین ئۆبجێکت" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"سڕینەوەی %(objects_name)sی هەڵبژێردراو دەبێتە هۆی سڕینەوەی ئۆبجێکتی " -"پەیوەندیدار، بەڵام هەژمارەکەت ڕێگەپێدراو نییە بۆ سڕینەوەی ئەم جۆرە " -"ئۆبجێکتانەی تر:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"سڕینەوەی %(objects_name)sی هەڵبژێردراو پێویستیی بە سڕینەوەی ئەم ئۆبجێکتە " -"پەیوەندیدارە پارێزراوانەیە:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"ئایا تۆ دڵنیایت دەتەوێت %(objects_name)sی هەڵبژێردراو بسڕیتەوە؟ هەموو ئەم " -"ئۆبجێکت و بڕگە پەیوەندیدارەکانیان دەسڕێنەوە:" - -msgid "Delete?" -msgstr "سڕینەوە؟" - -#, python-format -msgid " By %(filter_title)s " -msgstr "بەپێی %(filter_title)s" - -msgid "Summary" -msgstr "پوختە" - -msgid "Recent actions" -msgstr "کردارە نوێیەکان" - -msgid "My actions" -msgstr "کردارەکانم" - -msgid "None available" -msgstr "هیچ شتيک بەردەست نییە" - -msgid "Unknown content" -msgstr "ناوەڕۆکی نەزانراو" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"هەڵەیەک هەیە لە دامەزراندنی بنکەدراوەکەت. دڵنیاببەرەوە لەوەی خشتە گونجاوەکان " -"دروستکراون، دڵنیاببەرەوە بنکەدراوەکە ئەخوێندرێتەوە لەلایەن بەکارهێنەری " -"گونجاوەوە." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"تۆ ڕەسەنایەتیت هەیە وەکو %(username)s, بەڵام ڕێگەپێدراو نیت بۆ ئەم لاپەڕەیە. " -"دەتەوێت بە هەژمارێکی تر بچیتەژوورەوە؟" - -msgid "Forgotten your password or username?" -msgstr "تێپەڕەوشە یان ناوی بەکارهێنەرەکەت بیرچۆتەوە؟" - -msgid "Toggle navigation" -msgstr "کردنەوەو داخستنی ڕێنیشاندەر" - -msgid "Sidebar" -msgstr "" - -msgid "Start typing to filter…" -msgstr "دەست بکە بە نوسین بۆ پاڵاوتن..." - -msgid "Filter navigation items" -msgstr "بڕگەکانی ڕێنیشاندەر بپاڵێوە" - -msgid "Date/time" -msgstr "بەروار/کات" - -msgid "User" -msgstr "بەکارهێنەر" - -msgid "Action" -msgstr "کردار" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"ئەم ئۆبجێکتە مێژووی گۆڕانکاری نییە. ڕەنگە لە ڕێگەی بەڕێەوەبەری ئەم پێگەیەوە " -"زیادنەکرابێت." - -msgid "Show all" -msgstr "پیشاندانی هەمووی" - -msgid "Save" -msgstr "پاشەکەوتکردن" - -msgid "Popup closing…" -msgstr "پەنجەرەکە دادەخرێت..." - -msgid "Search" -msgstr "گەڕان" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s ئەنجام" -msgstr[1] "%(counter)s ئەنجام" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)sگشتی" - -msgid "Save as new" -msgstr "پاشەکەوتکردن وەک نوێ" - -msgid "Save and add another" -msgstr "پاشەکەوتی بکەو دانەیەکی تر زیاد بکە" - -msgid "Save and continue editing" -msgstr "پاشەکەوتی بکەو بەردەوامبە لە گۆڕنکاری" - -msgid "Save and view" -msgstr "پاشەکەوتی بکەو پیشانی بدە" - -msgid "Close" -msgstr "داخستن" - -#, python-format -msgid "Change selected %(model)s" -msgstr "هەڵبژێردراوەکان بگۆڕە %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "زیادکردنی %(model)sی تر" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "هەڵبژێردراوەکان بسڕەوە %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "سەیری %(model)s هەڵبژێردراوەکان بکە" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "سوپاس بۆ بەسەربردنی هەندێک کاتێکی ئەمڕۆ لەگەڵ ماڵپەڕەکەدا." - -msgid "Log in again" -msgstr "دووبارە چوونەژوورەوە" - -msgid "Password change" -msgstr "گۆڕینی تێپەڕەوشە" - -msgid "Your password was changed." -msgstr "تێپەڕەوشەت گۆڕدرا." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"لەپێناو پاراستندا تکایە تێپەڕەوشە کۆنەکەت بنووسە، پاشان دووجار تێپەڕەوشە " -"نوێیەکەت بنووسە بۆ ئەوەی بتوانین پشتڕاستی بکەینەوە کە بە دروستی نووسیوتە." - -msgid "Change my password" -msgstr "گۆڕینی تێپەڕەوشەکەم" - -msgid "Password reset" -msgstr "دانانەوەی تێپەڕەوشە" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "تێپەڕەوشەکەت دانرایەوە. لەوانەیە ئێستا بچیتە سەرەوە و بچیتەژوورەوە." - -msgid "Password reset confirmation" -msgstr "دووپاتکردنەوەی دانانەوەی تێپەڕەوشە" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"تکایە دووجار تێپەڕەوشە نوێیەکەت بنوسە، پاشان دەتوانین دڵنیابین کە بە دروستی " -"نوسراوە." - -msgid "New password:" -msgstr "تێپەڕەوشەی نوێ:" - -msgid "Confirm password:" -msgstr "دووپاتکردنەوەی تێپەڕەوشە:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"بەستەری دانانەوەی تێپەڕەوشە نادروست بوو، لەوانەیە لەبەر ئەوەی پێشتر " -"بەکارهاتووە. تکایە داوای دانانەوەی تێپەڕەوشەی نوێ بکە." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"ئێمە ڕێنماییەکانمان بۆ دانانی تێپەڕەوشەکەت ئیمەیڵ بۆت ناردووە، ئەگەر " -"هەژمارێک هەبێت لەگەڵ ئەو ئیمەیڵەی کە نوسیوتە. پێویستە بەم زووانە بەدەستت " -"بگات." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"ئەگەر تۆ نامەی ئەلیکترۆنیت بەدەست نەگەیشت، ئەوا دڵنیا ببەرەوە کە تۆ ئەو " -"ناونیشانەت داخڵکردووە کە پێی تۆمار بوویت، وە فۆڵدەری سپامەکەت بپشکنە." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"تۆ ئەم نامە ئەلیکترۆنیەت بەدەست گەیشتووە لەبەرئەوەی داواکاری دوبارە " -"دانانەوەی تێپەڕە ووشەت کردبوو بۆ هەژماری بەکارهێنەرەکەت لە %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "تکایە بڕۆ بۆ پەڕەی دیاریکراو و تێپەڕەوشەیەکی نوێ هەڵبژێرە:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "ناوی بەکارهێنەری تۆ، لە کاتێکدا بیرت چووبێتەوە:" - -msgid "Thanks for using our site!" -msgstr "سوپاس بۆ بەکارهێنانی پێگەکەمان!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "دەستەی %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"تێپەڕەوشەکەت بیرچووەتەوە؟ ئیمەیڵەکەت لەخوارەوە بنوسە، پاشان ئێمە ئێمەیڵی " -"ڕێنمایت بۆ دەنێرین بۆ دانانی دانەیەکی نوێ." - -msgid "Email address:" -msgstr "ناونیشانی ئیمەیڵ:" - -msgid "Reset my password" -msgstr "دانانەوەی تێپەڕەوشەکەم" - -msgid "All dates" -msgstr "هەموو بەروارەکان" - -#, python-format -msgid "Select %s" -msgstr "%s هەڵبژێرە" - -#, python-format -msgid "Select %s to change" -msgstr "%s هەڵبژێرە بۆ گۆڕین" - -#, python-format -msgid "Select %s to view" -msgstr "%s هەڵبژێرە بۆ بینین" - -msgid "Date:" -msgstr "بەروار:" - -msgid "Time:" -msgstr "کات:" - -msgid "Lookup" -msgstr "گەڕان" - -msgid "Currently:" -msgstr "ئێستاکە:" - -msgid "Change:" -msgstr "گۆڕین:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo deleted file mode 100644 index f7415be..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.po deleted file mode 100644 index 69f7a73..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,280 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Bakhtawar Barzan, 2021 -# Bakhtawar Barzan, 2021 -# Mariusz Felisiak , 2023 -# Swara , 2022-2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Mariusz Felisiak , 2023\n" -"Language-Team: Central Kurdish (http://app.transifex.com/django/django/" -"language/ckb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ckb\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%sە بەردەستەکان" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"ئەمە لیستی بەردەستی %s . دەتوانیت هەندێکیان هەڵبژێریت بە هەڵبژاردنییان لەم " -"بوخچەی خوارەوە و پاشان کرتەکردن لەسەر ئاراستەی \"هەڵبژێرە\" لە نێوان هەردوو " -"بوخچەکەدا." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "لەم بوخچەدا بنووسە بۆ ئەوەی لیستی بەردەستەکان بپاڵێویت %s." - -msgid "Filter" -msgstr "پاڵاوتن" - -msgid "Choose all" -msgstr "هەمووی هەڵبژێرە" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "کرتە بکە بۆ هەڵبژاردنی هەموو %s بەیەکجار." - -msgid "Choose" -msgstr "‌هەڵبژاردن" - -msgid "Remove" -msgstr "لابردن" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s هەڵبژێردراوەکان" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"ئەمە لیستی هەڵبژێردراوی %s. دەتوانیت هەندێکیان لاببەیت بە هەڵبژاردنییان لەم " -"بوخچەی خوارەوە و پاشان کرتەکردن لەسەر ئاراستەی \"لابردن\" لە نێوان هەردوو " -"بوخچەکەدا." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "" - -msgid "Remove all" -msgstr "لابردنی هەمووی" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "کرتە بکە بۆ لابردنی هەموو ئەوانەی هەڵبژێردراون %sبە یەکجار." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "" -msgstr[1] "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "‫%(sel)s لە %(cnt)s هەڵبژێردراوە" -msgstr[1] "‫%(sel)s لە %(cnt)s هەڵبژێردراوە" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"گۆڕانکاریی پاشەکەوتنەکراوت هەیە لەسەر خانەی یەکلایەنەی شیاوی دەستکاریی. " -"ئەگەر کردارێک ئەنجام بدەیت، گۆڕانکارییە پاشەکەوتنەکراوەکانت لەدەست دەچن." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"چالاکییەکی هەڵبژێردراوت هەیە، بەڵام خانە تاکلایەنەکانت تا ئێستا پاشەکەوت " -"نەکردووە. تکایە کردتە لەسەر باشە بکە بۆ پاشەکەوتکردن. پێویستە دووبارە " -"چالاکییەکە ئەنجام بدەیتەوە." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"چالاکییەکی هەڵبژێردراوت هەیە، هەروەها هیچ گۆڕانکارییەکت لەسەر خانە " -"تاکلایەنەکانت نیە. ڕەنگە تۆ بەدوای دوگمەی بڕۆدا بگەڕێیت نەک دوگمەی " -"پاشەکەوتکردن." - -msgid "Now" -msgstr "ئێستا" - -msgid "Midnight" -msgstr "نیوەشەو" - -msgid "6 a.m." -msgstr "6ی بەیانی" - -msgid "Noon" -msgstr "نیوەڕۆ" - -msgid "6 p.m." -msgstr "6ی ئێوارە." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "تێبینی: تۆ %s کاتژمێر لەپێش کاتی ڕاژەوەیت." -msgstr[1] "تێبینی: تۆ %s کاتژمێر لەپێش کاتی ڕاژەوەیت." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "تێبینی: تۆ %s کاتژمێر لەدوای کاتی ڕاژەوەیت." -msgstr[1] "تێبینی: تۆ %s کاتژمێر لەدوای کاتی ڕاژەوەیت." - -msgid "Choose a Time" -msgstr "کاتێک دیاریبکە" - -msgid "Choose a time" -msgstr "کاتێک دیاریبکە" - -msgid "Cancel" -msgstr "پاشگەزبوونەوە" - -msgid "Today" -msgstr "ئەمڕۆ" - -msgid "Choose a Date" -msgstr "ڕۆژێک دیاریبکە" - -msgid "Yesterday" -msgstr "دوێنێ" - -msgid "Tomorrow" -msgstr "سبەینێ" - -msgid "January" -msgstr "‎ڕێبەندان" - -msgid "February" -msgstr "‎ڕەشەمە" - -msgid "March" -msgstr "نەورۆز" - -msgid "April" -msgstr "‎گوڵان" - -msgid "May" -msgstr "جۆزەردان" - -msgid "June" -msgstr "‎پوشپەڕ" - -msgid "July" -msgstr "گەلاوێژ " - -msgid "August" -msgstr "‎خەرمانان" - -msgid "September" -msgstr "‎ڕەزبەر" - -msgid "October" -msgstr "‎گەڵاڕێزان" - -msgid "November" -msgstr "‎سەرماوەرز" - -msgid "December" -msgstr "‎بەفرانبار" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "‎ڕێبەندان" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "ڕەشەمە" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "نەورۆز" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "گوڵان" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "‎جۆزەردان" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "پوشپەڕ" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "‎گەلاوێژ" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "خەرمانان" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "‎ڕەزبەر" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "‎گەڵاڕێزان" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "‎سەرماوەرز" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "‎بەفرانبار" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "ی" - -msgctxt "one letter Monday" -msgid "M" -msgstr "د" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "س" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "چ" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "پ" - -msgctxt "one letter Friday" -msgid "F" -msgstr "هە" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "ش" - -msgid "Show" -msgstr "پیشاندان" - -msgid "Hide" -msgstr "شاردنەوە" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo deleted file mode 100644 index d3bfdd7..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.po deleted file mode 100644 index 65159b8..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/django.po +++ /dev/null @@ -1,750 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# trendspotter , 2022 -# Jirka Vejrazka , 2011 -# Tomáš Ehrlich , 2015 -# Vláďa Macek , 2013-2014 -# Vláďa Macek , 2015-2020,2022 -# yedpodtrzitko , 2016 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: trendspotter \n" -"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " -"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Odstranit vybrané položky typu %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Úspěšně odstraněno: %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Nelze smazat %(name)s" - -msgid "Are you sure?" -msgstr "Jste si jisti?" - -msgid "Administration" -msgstr "Správa" - -msgid "All" -msgstr "Vše" - -msgid "Yes" -msgstr "Ano" - -msgid "No" -msgstr "Ne" - -msgid "Unknown" -msgstr "Neznámé" - -msgid "Any date" -msgstr "Libovolné datum" - -msgid "Today" -msgstr "Dnes" - -msgid "Past 7 days" -msgstr "Posledních 7 dní" - -msgid "This month" -msgstr "Tento měsíc" - -msgid "This year" -msgstr "Tento rok" - -msgid "No date" -msgstr "Bez data" - -msgid "Has date" -msgstr "Má datum" - -msgid "Empty" -msgstr "Prázdná hodnota" - -msgid "Not empty" -msgstr "Neprázdná hodnota" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Zadejte správné %(username)s a heslo pro personál. Obě pole mohou rozlišovat " -"velká a malá písmena." - -msgid "Action:" -msgstr "Operace:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Přidat %(verbose_name)s" - -msgid "Remove" -msgstr "Odebrat" - -msgid "Addition" -msgstr "Přidání" - -msgid "Change" -msgstr "Změnit" - -msgid "Deletion" -msgstr "Odstranění" - -msgid "action time" -msgstr "čas operace" - -msgid "user" -msgstr "uživatel" - -msgid "content type" -msgstr "typ obsahu" - -msgid "object id" -msgstr "id položky" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "reprez. položky" - -msgid "action flag" -msgstr "příznak operace" - -msgid "change message" -msgstr "zpráva o změně" - -msgid "log entry" -msgstr "položka protokolu" - -msgid "log entries" -msgstr "položky protokolu" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Přidán objekt \"%(object)s\"." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Změněn objekt \"%(object)s\" — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Odstraněna položka \"%(object)s\"." - -msgid "LogEntry Object" -msgstr "Objekt záznam v protokolu" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Přidáno: {name} \"{object}\"." - -msgid "Added." -msgstr "Přidáno." - -msgid "and" -msgstr "a" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Změněno: {fields} pro {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Změněno: {fields}" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Odstraněno: {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Nebyla změněna žádná pole." - -msgid "None" -msgstr "Žádný" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Výběr více než jedné položky je možný přidržením klávesy \"Control\", na " -"Macu \"Command\"." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Položka typu {name} \"{obj}\" byla úspěšně přidána." - -msgid "You may edit it again below." -msgstr "Níže můžete údaje znovu upravovat." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"Položka typu {name} \"{obj}\" byla úspěšně přidána. Níže můžete přidat další " -"položku {name}." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"Položka typu {name} \"{obj}\" byla úspěšně změněna. Níže ji můžete dále " -"upravovat." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"Položka \"{obj}\" typu {name} byla úspěšně přidána. Níže ji můžete dále " -"upravovat." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"Položka \"{obj}\" typu {name} byla úspěšně změněna. Níže můžete přidat další " -"položku {name}." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "Položka \"{obj}\" typu {name} byla úspěšně změněna." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"K provedení hromadných operací je třeba vybrat nějaké položky. Nedošlo k " -"žádným změnám." - -msgid "No action selected." -msgstr "Nebyla vybrána žádná operace." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "Položka \"%(obj)s\" typu %(name)s byla úspěšně odstraněna." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "Objekt %(name)s s klíčem \"%(key)s\" neexistuje. Možná byl odstraněn." - -#, python-format -msgid "Add %s" -msgstr "%s: přidat" - -#, python-format -msgid "Change %s" -msgstr "%s: změnit" - -#, python-format -msgid "View %s" -msgstr "Zobrazit %s" - -msgid "Database error" -msgstr "Chyba databáze" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "Položka %(name)s byla úspěšně změněna." -msgstr[1] "%(count)s položky %(name)s byly úspěšně změněny." -msgstr[2] "%(count)s položek %(name)s bylo úspěšně změněno." -msgstr[3] "%(count)s položek %(name)s bylo úspěšně změněno." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s položka vybrána." -msgstr[1] "Všechny %(total_count)s položky vybrány." -msgstr[2] "Vybráno všech %(total_count)s položek." -msgstr[3] "Vybráno všech %(total_count)s položek." - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Vybraných je 0 položek z celkem %(cnt)s." - -#, python-format -msgid "Change history: %s" -msgstr "Historie změn: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s: %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Odstranění položky \"%(instance)s\" typu %(class_name)s by vyžadovalo " -"odstranění těchto souvisejících chráněných položek: %(related_objects)s" - -msgid "Django site admin" -msgstr "Správa webu Django" - -msgid "Django administration" -msgstr "Správa systému Django" - -msgid "Site administration" -msgstr "Správa webu" - -msgid "Log in" -msgstr "Přihlášení" - -#, python-format -msgid "%(app)s administration" -msgstr "Správa aplikace %(app)s" - -msgid "Page not found" -msgstr "Stránka nenalezena" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Požadovaná stránka nebyla bohužel nalezena." - -msgid "Home" -msgstr "Domů" - -msgid "Server error" -msgstr "Chyba serveru" - -msgid "Server error (500)" -msgstr "Chyba serveru (500)" - -msgid "Server Error (500)" -msgstr "Chyba serveru (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"V systému došlo k chybě. Byla e-mailem nahlášena správcům, kteří by ji měli " -"v krátké době opravit. Děkujeme za trpělivost." - -msgid "Run the selected action" -msgstr "Provést vybranou operaci" - -msgid "Go" -msgstr "Provést" - -msgid "Click here to select the objects across all pages" -msgstr "Klepnutím zde vyberete položky ze všech stránek." - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Vybrat všechny položky typu %(module_name)s, celkem %(total_count)s." - -msgid "Clear selection" -msgstr "Zrušit výběr" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modely v aplikaci %(name)s" - -msgid "Add" -msgstr "Přidat" - -msgid "View" -msgstr "Zobrazit" - -msgid "You don’t have permission to view or edit anything." -msgstr "Nemáte oprávnění k zobrazení ani úpravám." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Nejdříve zadejte uživatelské jméno a heslo. Poté budete moci upravovat více " -"uživatelských nastavení." - -msgid "Enter a username and password." -msgstr "Zadejte uživatelské jméno a heslo." - -msgid "Change password" -msgstr "Změnit heslo" - -msgid "Please correct the error below." -msgstr "Opravte níže uvedenou chybu." - -msgid "Please correct the errors below." -msgstr "Opravte níže uvedené chyby." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Zadejte nové heslo pro uživatele %(username)s." - -msgid "Welcome," -msgstr "Vítejte, uživateli" - -msgid "View site" -msgstr "Zobrazení webu" - -msgid "Documentation" -msgstr "Dokumentace" - -msgid "Log out" -msgstr "Odhlásit se" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s: přidat" - -msgid "History" -msgstr "Historie" - -msgid "View on site" -msgstr "Zobrazení na webu" - -msgid "Filter" -msgstr "Filtr" - -msgid "Clear all filters" -msgstr "Zrušit všechny filtry" - -msgid "Remove from sorting" -msgstr "Přestat řadit" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Priorita řazení: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Přehodit řazení" - -msgid "Delete" -msgstr "Odstranit" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Odstranění položky \"%(escaped_object)s\" typu %(object_name)s by vyústilo v " -"odstranění souvisejících položek. Nemáte však oprávnění k odstranění položek " -"následujících typů:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Odstranění položky '%(escaped_object)s' typu %(object_name)s by vyžadovalo " -"odstranění souvisejících chráněných položek:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Opravdu má být odstraněna položka \"%(escaped_object)s\" typu " -"%(object_name)s? Následující související položky budou všechny odstraněny:" - -msgid "Objects" -msgstr "Objekty" - -msgid "Yes, I’m sure" -msgstr "Ano, jsem si jist(a)" - -msgid "No, take me back" -msgstr "Ne, beru zpět" - -msgid "Delete multiple objects" -msgstr "Odstranit vybrané položky" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Odstranění položky typu %(objects_name)s by vyústilo v odstranění " -"souvisejících položek. Nemáte však oprávnění k odstranění položek " -"následujících typů:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Odstranění vybrané položky typu %(objects_name)s by vyžadovalo odstranění " -"následujících souvisejících chráněných položek:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Opravdu má být odstraněny vybrané položky typu %(objects_name)s? Všechny " -"vybrané a s nimi související položky budou odstraněny:" - -msgid "Delete?" -msgstr "Odstranit?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Dle: %(filter_title)s " - -msgid "Summary" -msgstr "Shrnutí" - -msgid "Recent actions" -msgstr "Nedávné akce" - -msgid "My actions" -msgstr "Moje akce" - -msgid "None available" -msgstr "Nic" - -msgid "Unknown content" -msgstr "Neznámý obsah" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Potíže s nainstalovanou databází. Ujistěte se, že byly vytvořeny " -"odpovídající tabulky a že databáze je přístupná pro čtení příslušným " -"uživatelem." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Jste přihlášeni jako uživatel %(username)s, ale k této stránce nemáte " -"oprávnění. Chcete se přihlásit k jinému účtu?" - -msgid "Forgotten your password or username?" -msgstr "Zapomněli jste heslo nebo uživatelské jméno?" - -msgid "Toggle navigation" -msgstr "Přehodit navigaci" - -msgid "Start typing to filter…" -msgstr "Filtrovat začnete vepsáním textu..." - -msgid "Filter navigation items" -msgstr "Filtrace položek navigace" - -msgid "Date/time" -msgstr "Datum a čas" - -msgid "User" -msgstr "Uživatel" - -msgid "Action" -msgstr "Operace" - -msgid "entry" -msgstr "" - -msgid "entries" -msgstr "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Tato položka nemá historii změn. Pravděpodobně nebyla přidána tímto " -"administračním rozhraním." - -msgid "Show all" -msgstr "Zobrazit vše" - -msgid "Save" -msgstr "Uložit" - -msgid "Popup closing…" -msgstr "Vyskakovací okno se zavírá..." - -msgid "Search" -msgstr "Hledat" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s výsledek" -msgstr[1] "%(counter)s výsledky" -msgstr[2] "%(counter)s výsledků" -msgstr[3] "%(counter)s výsledků" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "Celkem %(full_result_count)s" - -msgid "Save as new" -msgstr "Uložit jako novou položku" - -msgid "Save and add another" -msgstr "Uložit a přidat další položku" - -msgid "Save and continue editing" -msgstr "Uložit a pokračovat v úpravách" - -msgid "Save and view" -msgstr "Uložit a zobrazit" - -msgid "Close" -msgstr "Zavřít" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Změnit vybrané položky typu %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Přidat další %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Odstranit vybrané položky typu %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Zobrazení vybraných %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Děkujeme za dnešní čas strávený s tímto neobyčejným webem." - -msgid "Log in again" -msgstr "Přihlaste se znovu" - -msgid "Password change" -msgstr "Změna hesla" - -msgid "Your password was changed." -msgstr "Vaše heslo bylo změněno." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Zadejte svoje současné heslo a poté dvakrát heslo nové. Omezíme tak možnost " -"překlepu." - -msgid "Change my password" -msgstr "Změnit heslo" - -msgid "Password reset" -msgstr "Obnovení hesla" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Vaše heslo bylo nastaveno. Nyní se můžete přihlásit." - -msgid "Password reset confirmation" -msgstr "Potvrzení obnovy hesla" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "Zadejte dvakrát nové heslo. Tak ověříme, že bylo zadáno správně." - -msgid "New password:" -msgstr "Nové heslo:" - -msgid "Confirm password:" -msgstr "Potvrdit heslo:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Odkaz pro obnovení hesla byl neplatný, možná již byl použit. Požádejte o " -"obnovení hesla znovu." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Návod na nastavení hesla byl odeslán na zadanou e-mailovou adresu, pokud " -"účet s takovou adresou existuje. Měl by za okamžik dorazit." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Pokud e-mail neobdržíte, ujistěte se, že zadaná e-mailová adresa je stejná " -"jako ta registrovaná u vašeho účtu a zkontrolujte složku nevyžádané pošty, " -"tzv. spamu." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Tento e-mail vám byl zaslán na základě vyžádání obnovy hesla vašeho " -"uživatelskému účtu na systému %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Přejděte na následující stránku a zadejte nové heslo:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Pro jistotu vaše uživatelské jméno:" - -msgid "Thanks for using our site!" -msgstr "Děkujeme za používání našeho webu!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Tým aplikace %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Zapomněli jste heslo? Zadejte níže e-mailovou adresu a systém vám odešle " -"postup k nastavení nového." - -msgid "Email address:" -msgstr "E-mailová adresa:" - -msgid "Reset my password" -msgstr "Obnovit heslo" - -msgid "All dates" -msgstr "Všechna data" - -#, python-format -msgid "Select %s" -msgstr "%s: vybrat" - -#, python-format -msgid "Select %s to change" -msgstr "Vyberte položku %s ke změně" - -#, python-format -msgid "Select %s to view" -msgstr "Vyberte položku %s k zobrazení" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Čas:" - -msgid "Lookup" -msgstr "Hledat" - -msgid "Currently:" -msgstr "Aktuálně:" - -msgid "Change:" -msgstr "Změna:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 828f705..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po deleted file mode 100644 index f4b7818..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,280 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# trendspotter , 2022 -# Jirka Vejrazka , 2011 -# Vláďa Macek , 2012,2014 -# Vláďa Macek , 2015-2016,2020-2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-07-25 07:59+0000\n" -"Last-Translator: trendspotter \n" -"Language-Team: Czech (http://www.transifex.com/django/django/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " -"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" - -#, javascript-format -msgid "Available %s" -msgstr "Dostupné položky: %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Seznam dostupných položek %s. Jednotlivě je lze vybrat tak, že na ně v " -"rámečku klepnete a pak klepnete na šipku \"Vybrat\" mezi rámečky." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Chcete-li filtrovat ze seznamu dostupných položek %s, začněte psát do tohoto " -"pole." - -msgid "Filter" -msgstr "Filtr" - -msgid "Choose all" -msgstr "Vybrat vše" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Chcete-li najednou vybrat všechny položky %s, klepněte sem." - -msgid "Choose" -msgstr "Vybrat" - -msgid "Remove" -msgstr "Odebrat" - -#, javascript-format -msgid "Chosen %s" -msgstr "Vybrané položky %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Seznam vybraných položek %s. Jednotlivě je lze odebrat tak, že na ně v " -"rámečku klepnete a pak klepnete na šipku \"Odebrat mezi rámečky." - -msgid "Remove all" -msgstr "Odebrat vše" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Chcete-li najednou odebrat všechny vybrané položky %s, klepněte sem." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "Vybrána je %(sel)s položka z celkem %(cnt)s." -msgstr[1] "Vybrány jsou %(sel)s položky z celkem %(cnt)s." -msgstr[2] "Vybraných je %(sel)s položek z celkem %(cnt)s." -msgstr[3] "Vybraných je %(sel)s položek z celkem %(cnt)s." - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"V jednotlivých polích jsou neuložené změny, které budou ztraceny, pokud " -"operaci provedete." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Byla vybrána operace, ale dosud nedošlo k uložení změn jednotlivých polí. " -"Uložíte klepnutím na tlačítko OK. Pak bude třeba operaci spustit znovu." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Byla vybrána operace, ale dosud nedošlo k uložení změn jednotlivých polí. " -"Patrně využijete tlačítko Provést spíše než tlačítko Uložit." - -msgid "Now" -msgstr "Nyní" - -msgid "Midnight" -msgstr "Půlnoc" - -msgid "6 a.m." -msgstr "6h ráno" - -msgid "Noon" -msgstr "Poledne" - -msgid "6 p.m." -msgstr "6h večer" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Poznámka: Váš čas o %s hodinu předstihuje čas na serveru." -msgstr[1] "Poznámka: Váš čas o %s hodiny předstihuje čas na serveru." -msgstr[2] "Poznámka: Váš čas o %s hodiny předstihuje čas na serveru." -msgstr[3] "Poznámka: Váš čas o %s hodin předstihuje čas na serveru." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Poznámka: Váš čas se o %s hodinu zpožďuje za časem na serveru." -msgstr[1] "Poznámka: Váš čas se o %s hodiny zpožďuje za časem na serveru." -msgstr[2] "Poznámka: Váš čas se o %s hodiny zpožďuje za časem na serveru." -msgstr[3] "Poznámka: Váš čas se o %s hodin zpožďuje za časem na serveru." - -msgid "Choose a Time" -msgstr "Vyberte čas" - -msgid "Choose a time" -msgstr "Vyberte čas" - -msgid "Cancel" -msgstr "Storno" - -msgid "Today" -msgstr "Dnes" - -msgid "Choose a Date" -msgstr "Vyberte datum" - -msgid "Yesterday" -msgstr "Včera" - -msgid "Tomorrow" -msgstr "Zítra" - -msgid "January" -msgstr "leden" - -msgid "February" -msgstr "únor" - -msgid "March" -msgstr "březen" - -msgid "April" -msgstr "duben" - -msgid "May" -msgstr "květen" - -msgid "June" -msgstr "červen" - -msgid "July" -msgstr "červenec" - -msgid "August" -msgstr "srpen" - -msgid "September" -msgstr "září" - -msgid "October" -msgstr "říjen" - -msgid "November" -msgstr "listopad" - -msgid "December" -msgstr "prosinec" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Led" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Úno" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Bře" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Dub" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Kvě" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Čvn" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Čvc" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Srp" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Zář" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Říj" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Lis" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Pro" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "N" - -msgctxt "one letter Monday" -msgid "M" -msgstr "P" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Ú" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "S" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Č" - -msgctxt "one letter Friday" -msgid "F" -msgstr "P" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "Tento formulář jste již odeslali. Opravdu jej chcete odeslat znovu?" - -msgid "Show" -msgstr "Zobrazit" - -msgid "Hide" -msgstr "Skrýt" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.mo deleted file mode 100644 index e20f6a4..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.po deleted file mode 100644 index 82e82f7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/django.po +++ /dev/null @@ -1,675 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Maredudd ap Gwyndaf , 2014 -# pjrobertson, 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-23 18:54+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Welsh (http://www.transifex.com/django/django/language/cy/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cy\n" -"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " -"11) ? 2 : 3;\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Dilëwyd %(count)d %(items)s yn llwyddiannus." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Ni ellir dileu %(name)s" - -msgid "Are you sure?" -msgstr "Ydych yn sicr?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Dileu y %(verbose_name_plural)s â ddewiswyd" - -msgid "Administration" -msgstr "Gweinyddu" - -msgid "All" -msgstr "Pob un" - -msgid "Yes" -msgstr "Ie" - -msgid "No" -msgstr "Na" - -msgid "Unknown" -msgstr "Anhysybys" - -msgid "Any date" -msgstr "Unrhyw ddyddiad" - -msgid "Today" -msgstr "Heddiw" - -msgid "Past 7 days" -msgstr "7 diwrnod diwethaf" - -msgid "This month" -msgstr "Mis yma" - -msgid "This year" -msgstr "Eleni" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Teipiwch yr %(username)s a chyfrinair cywir ar gyfer cyfrif staff. Noder y " -"gall y ddau faes fod yn sensitif i lythrennau bach a llythrennau bras." - -msgid "Action:" -msgstr "Gweithred:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Ychwanegu %(verbose_name)s arall" - -msgid "Remove" -msgstr "Gwaredu" - -msgid "action time" -msgstr "amser y weithred" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "id gwrthrych" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "repr gwrthrych" - -msgid "action flag" -msgstr "fflag gweithred" - -msgid "change message" -msgstr "neges y newid" - -msgid "log entry" -msgstr "cofnod" - -msgid "log entries" -msgstr "cofnodion" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Ychwanegwyd \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Newidwyd \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Dilëwyd \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "Gwrthrych LogEntry" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "a" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "Ni newidwyd unrhwy feysydd." - -msgid "None" -msgstr "Dim" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Rhaid dewis eitemau er mwyn gweithredu arnynt. Ni ddewiswyd unrhyw eitemau." - -msgid "No action selected." -msgstr "Ni ddewiswyd gweithred." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "Dilëwyd %(name)s \"%(obj)s\" yn llwyddiannus." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Ychwanegu %s" - -#, python-format -msgid "Change %s" -msgstr "Newid %s" - -msgid "Database error" -msgstr "Gwall cronfa ddata" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "Newidwyd %(count)s %(name)s yn llwyddiannus" -msgstr[1] "Newidwyd %(count)s %(name)s yn llwyddiannus" -msgstr[2] "Newidwyd %(count)s %(name)s yn llwyddiannus" -msgstr[3] "Newidwyd %(count)s %(name)s yn llwyddiannus" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Dewiswyd %(total_count)s" -msgstr[1] "Dewiswyd %(total_count)s" -msgstr[2] "Dewiswyd %(total_count)s" -msgstr[3] "Dewiswyd %(total_count)s" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Dewiswyd 0 o %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Hanes newid: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Byddai dileu %(class_name)s %(instance)s yn golygu dileu'r gwrthrychau " -"gwarchodedig canlynol sy'n perthyn: %(related_objects)s" - -msgid "Django site admin" -msgstr "Adran weinyddol safle Django" - -msgid "Django administration" -msgstr "Gweinyddu Django" - -msgid "Site administration" -msgstr "Gweinyddu'r safle" - -msgid "Log in" -msgstr "Mewngofnodi" - -#, python-format -msgid "%(app)s administration" -msgstr "Gweinyddu %(app)s" - -msgid "Page not found" -msgstr "Ni ddarganfyddwyd y dudalen" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Mae'n ddrwg gennym, ond ni ddarganfuwyd y dudalen" - -msgid "Home" -msgstr "Hafan" - -msgid "Server error" -msgstr "Gwall gweinydd" - -msgid "Server error (500)" -msgstr "Gwall gweinydd (500)" - -msgid "Server Error (500)" -msgstr "Gwall Gweinydd (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Mae gwall ac gyrrwyd adroddiad ohono i weinyddwyr y wefan drwy ebost a dylai " -"gael ei drwsio yn fuan. Diolch am fod yn amyneddgar." - -msgid "Run the selected action" -msgstr "Rhedeg y weithred a ddewiswyd" - -msgid "Go" -msgstr "Ffwrdd â ni" - -msgid "Click here to select the objects across all pages" -msgstr "" -"Cliciwch fan hyn i ddewis yr holl wrthrychau ar draws yr holl dudalennau" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Dewis y %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Clirio'r dewis" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Yn gyntaf, rhowch enw defnyddiwr a chyfrinair. Yna byddwch yn gallu golygu " -"mwy o ddewisiadau." - -msgid "Enter a username and password." -msgstr "Rhowch enw defnyddiwr a chyfrinair." - -msgid "Change password" -msgstr "Newid cyfrinair" - -msgid "Please correct the error below." -msgstr "Cywirwch y gwall isod." - -msgid "Please correct the errors below." -msgstr "Cywirwch y gwallau isod." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Rhowch gyfrinair newydd i'r defnyddiwr %(username)s." - -msgid "Welcome," -msgstr "Croeso," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "Dogfennaeth" - -msgid "Log out" -msgstr "Allgofnodi" - -#, python-format -msgid "Add %(name)s" -msgstr "Ychwanegu %(name)s" - -msgid "History" -msgstr "Hanes" - -msgid "View on site" -msgstr "Gweld ar y safle" - -msgid "Filter" -msgstr "Hidl" - -msgid "Remove from sorting" -msgstr "Gwaredu o'r didoli" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Blaenoriaeth didoli: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Toglio didoli" - -msgid "Delete" -msgstr "Dileu" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Byddai dileu %(object_name)s '%(escaped_object)s' yn golygu dileu'r " -"gwrthrychau sy'n perthyn, ond nid oes ganddoch ganiatâd i ddileu y mathau " -"canlynol o wrthrychau:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Byddai dileu %(object_name)s '%(escaped_object)s' yn golygu dileu'r " -"gwrthrychau gwarchodedig canlynol sy'n perthyn:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "Ydw, rwy'n sicr" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Byddai dileu %(objects_name)s yn golygu dileu'r gwrthrychau gwarchodedig " -"canlynol sy'n perthyn:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ydych yn sicr eich bod am ddileu'r %(objects_name)s a ddewiswyd? Dilëir yr " -"holl wrthrychau canlynol a'u heitemau perthnasol:" - -msgid "Change" -msgstr "Newid" - -msgid "Delete?" -msgstr "Dileu?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Wrth %(filter_title)s" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelau yn y rhaglen %(name)s " - -msgid "Add" -msgstr "Ychwanegu" - -msgid "You don't have permission to edit anything." -msgstr "Does gennych ddim hawl i olygu unrhywbeth." - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Dim ar gael" - -msgid "Unknown content" -msgstr "Cynnwys anhysbys" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Mae rhywbeth o'i le ar osodiad y gronfa ddata. Sicrhewch fod y tablau " -"cronfa ddata priodol wedi eu creu, a sicrhewch fod y gronfa ddata yn " -"ddarllenadwy gan y defnyddiwr priodol." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "Anghofioch eich cyfrinair neu enw defnyddiwr?" - -msgid "Date/time" -msgstr "Dyddiad/amser" - -msgid "User" -msgstr "Defnyddiwr" - -msgid "Action" -msgstr "Gweithred" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Does dim hanes newid gan y gwrthrych yma. Mae'n debyg nad ei ychwanegwyd " -"drwy'r safle gweinydd yma." - -msgid "Show all" -msgstr "Dangos pob canlyniad" - -msgid "Save" -msgstr "Cadw" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "Chwilio" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s canlyniad" -msgstr[1] "%(counter)s canlyniad" -msgstr[2] "%(counter)s canlyniad" -msgstr[3] "%(counter)s canlyniad" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "Cyfanswm o %(full_result_count)s" - -msgid "Save as new" -msgstr "Cadw fel newydd" - -msgid "Save and add another" -msgstr "Cadw ac ychwanegu un arall" - -msgid "Save and continue editing" -msgstr "Cadw a pharhau i olygu" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Diolch am dreulio amser o ansawdd gyda'r safle we yma heddiw." - -msgid "Log in again" -msgstr "Mewngofnodi eto" - -msgid "Password change" -msgstr "Newid cyfrinair" - -msgid "Your password was changed." -msgstr "Newidwyd eich cyfrinair." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Rhowch eich hen gyfrinair, er mwyn diogelwch, ac yna rhowch eich cyfrinair " -"newydd ddwywaith er mwyn gwirio y'i teipiwyd yn gywir." - -msgid "Change my password" -msgstr "Newid fy nghyfrinair" - -msgid "Password reset" -msgstr "Ailosod cyfrinair" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Mae'ch cyfrinair wedi ei osod. Gallwch fewngofnodi nawr." - -msgid "Password reset confirmation" -msgstr "Cadarnhad ailosod cyfrinair" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Rhowch eich cyfrinair newydd ddwywaith er mwyn gwirio y'i teipiwyd yn gywir." - -msgid "New password:" -msgstr "Cyfrinair newydd:" - -msgid "Confirm password:" -msgstr "Cadarnhewch y cyfrinair:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Roedd y ddolen i ailosod y cyfrinair yn annilys, o bosib oherwydd ei fod " -"wedi ei ddefnyddio'n barod. Gofynnwch i ailosod y cyfrinair eto." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Os na dderbyniwch ebost, sicrhewych y rhoddwyd y cyfeiriad sydd wedi ei " -"gofrestru gyda ni, ac edrychwch yn eich ffolder sbam." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Derbyniwch yr ebost hwn oherwydd i chi ofyn i ailosod y cyfrinair i'ch " -"cyfrif yn %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Ewch i'r dudalen olynol a dewsiwch gyfrinair newydd:" - -msgid "Your username, in case you've forgotten:" -msgstr "Eich enw defnyddiwr, rhag ofn eich bod wedi anghofio:" - -msgid "Thanks for using our site!" -msgstr "Diolch am ddefnyddio ein safle!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Tîm %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Anghofioch eich cyfrinair? Rhowch eich cyfeiriad ebost isod ac fe ebostiwn " -"gyfarwyddiadau ar osod un newydd." - -msgid "Email address:" -msgstr "Cyfeiriad ebost:" - -msgid "Reset my password" -msgstr "Ailosod fy nghyfrinair" - -msgid "All dates" -msgstr "Holl ddyddiadau" - -#, python-format -msgid "Select %s" -msgstr "Dewis %s" - -#, python-format -msgid "Select %s to change" -msgstr "Dewis %s i newid" - -msgid "Date:" -msgstr "Dyddiad:" - -msgid "Time:" -msgstr "Amser:" - -msgid "Lookup" -msgstr "Archwilio" - -msgid "Currently:" -msgstr "Cyfredol:" - -msgid "Change:" -msgstr "Newid:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo deleted file mode 100644 index ee9a9ca..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po deleted file mode 100644 index fa7ad2a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,222 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Maredudd ap Gwyndaf , 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-23 18:54+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Welsh (http://www.transifex.com/django/django/language/cy/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cy\n" -"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " -"11) ? 2 : 3;\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s sydd ar gael" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Dyma restr o'r %s sydd ar gael. Gellir dewis rhai drwyeu dewis yn y blwch " -"isod ac yna clicio'r saeth \"Dewis\" rhwng y ddau flwch." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Teipiwch yn y blwch i hidlo'r rhestr o %s sydd ar gael." - -msgid "Filter" -msgstr "Hidl" - -msgid "Choose all" -msgstr "Dewis y cyfan" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Cliciwch i ddewis pob %s yr un pryd." - -msgid "Choose" -msgstr "Dewis" - -msgid "Remove" -msgstr "Gwaredu" - -#, javascript-format -msgid "Chosen %s" -msgstr "Y %s a ddewiswyd" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Dyma restr o'r %s a ddewiswyd. Gellir gwaredu rhai drwy eu dewis yn y blwch " -"isod ac yna clicio'r saeth \"Gwaredu\" rhwng y ddau flwch." - -msgid "Remove all" -msgstr "Gwaredu'r cyfan" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Cliciwch i waredu pob %s sydd wedi ei ddewis yr un pryd." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "Dewiswyd %(sel)s o %(cnt)s" -msgstr[1] "Dewiswyd %(sel)s o %(cnt)s" -msgstr[2] "Dewiswyd %(sel)s o %(cnt)s" -msgstr[3] "Dewiswyd %(sel)s o %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Mae ganddoch newidiadau heb eu cadw mewn meysydd golygadwy. Os rhedwch y " -"weithred fe gollwch y newidiadau." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Rydych wedi dewis gweithred ond nid ydych wedi newid eich newidiadau i rai " -"meysydd eto. Cliciwch 'Iawn' i gadw. Bydd rhaid i chi ail-redeg y weithred." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Rydych wedi dewis gweithred ac nid ydych wedi newid unrhyw faes. Rydych " -"siwr o fod yn edrych am y botwm 'Ewch' yn lle'r botwm 'Cadw'." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Noder: Rydych %s awr o flaen amser y gweinydd." -msgstr[1] "Noder: Rydych %s awr o flaen amser y gweinydd." -msgstr[2] "Noder: Rydych %s awr o flaen amser y gweinydd." -msgstr[3] "Noder: Rydych %s awr o flaen amser y gweinydd." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Noder: Rydych %s awr tu ôl amser y gweinydd." -msgstr[1] "Noder: Rydych %s awr tu ôl amser y gweinydd." -msgstr[2] "Noder: Rydych %s awr tu ôl amser y gweinydd." -msgstr[3] "Noder: Rydych %s awr tu ôl amser y gweinydd." - -msgid "Now" -msgstr "Nawr" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "Dewiswch amser" - -msgid "Midnight" -msgstr "Canol nos" - -msgid "6 a.m." -msgstr "6 y.b." - -msgid "Noon" -msgstr "Canol dydd" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "Diddymu" - -msgid "Today" -msgstr "Heddiw" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "Ddoe" - -msgid "Tomorrow" -msgstr "Fory" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Dangos" - -msgid "Hide" -msgstr "Cuddio" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.mo deleted file mode 100644 index 3b6906a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.po deleted file mode 100644 index baf85bd..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/django.po +++ /dev/null @@ -1,755 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Christian Joergensen , 2012 -# Dimitris Glezos , 2012 -# Erik Ramsgaard Wognsen , 2020-2023 -# Erik Ramsgaard Wognsen , 2013,2015-2020 -# Finn Gruwier Larsen, 2011 -# Jannis Leidel , 2011 -# valberg , 2014-2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Erik Ramsgaard Wognsen , 2020-2023\n" -"Language-Team: Danish (http://www.transifex.com/django/django/language/da/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: da\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Slet valgte %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s blev slettet." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Kan ikke slette %(name)s " - -msgid "Are you sure?" -msgstr "Er du sikker?" - -msgid "Administration" -msgstr "Administration" - -msgid "All" -msgstr "Alle" - -msgid "Yes" -msgstr "Ja" - -msgid "No" -msgstr "Nej" - -msgid "Unknown" -msgstr "Ukendt" - -msgid "Any date" -msgstr "Når som helst" - -msgid "Today" -msgstr "I dag" - -msgid "Past 7 days" -msgstr "De sidste 7 dage" - -msgid "This month" -msgstr "Denne måned" - -msgid "This year" -msgstr "Dette år" - -msgid "No date" -msgstr "Ingen dato" - -msgid "Has date" -msgstr "Har dato" - -msgid "Empty" -msgstr "Tom" - -msgid "Not empty" -msgstr "Ikke tom" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Indtast venligst det korrekte %(username)s og adgangskode for en " -"personalekonto. Bemærk at begge felter kan være versalfølsomme." - -msgid "Action:" -msgstr "Handling" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Tilføj endnu en %(verbose_name)s" - -msgid "Remove" -msgstr "Fjern" - -msgid "Addition" -msgstr "Tilføjelse" - -msgid "Change" -msgstr "Ret" - -msgid "Deletion" -msgstr "Sletning" - -msgid "action time" -msgstr "handlingstid" - -msgid "user" -msgstr "bruger" - -msgid "content type" -msgstr "indholdstype" - -msgid "object id" -msgstr "objekt-ID" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objekt repr" - -msgid "action flag" -msgstr "handlingsflag" - -msgid "change message" -msgstr "ændringsmeddelelse" - -msgid "log entry" -msgstr "logmeddelelse" - -msgid "log entries" -msgstr "logmeddelelser" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Tilføjede “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Ændrede “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Slettede “%(object)s”." - -msgid "LogEntry Object" -msgstr "LogEntry-objekt" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Tilføjede {name} “{object}”." - -msgid "Added." -msgstr "Tilføjet." - -msgid "and" -msgstr "og" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Ændrede {fields} for {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Ændrede {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Slettede {name} “{object}”." - -msgid "No fields changed." -msgstr "Ingen felter ændret." - -msgid "None" -msgstr "Ingen" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "Hold “Ctrl”, eller “Æbletasten” på Mac, nede for at vælge mere end én." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” blev tilføjet." - -msgid "You may edit it again below." -msgstr "Du kan redigere den/det igen herunder." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}” blev tilføjet. Du kan tilføje endnu en/et {name} herunder." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} “{obj}” blev ændret. Du kan redigere den/det igen herunder." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} “{obj}” blev tilføjet. Du kan redigere den/det igen herunder." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} “{obj}” blev ændret. Du kan tilføje endnu en/et {name} herunder." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” blev ændret." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Der skal være valgt nogle emner for at man kan udføre handlinger på dem. " -"Ingen emner er blev ændret." - -msgid "No action selected." -msgstr "Ingen handling valgt." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” blev slettet." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"%(name)s med ID “%(key)s” findes ikke. Måske er objektet blevet slettet?" - -#, python-format -msgid "Add %s" -msgstr "Tilføj %s" - -#, python-format -msgid "Change %s" -msgstr "Ret %s" - -#, python-format -msgid "View %s" -msgstr "Vis %s" - -msgid "Database error" -msgstr "Databasefejl" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s blev ændret." -msgstr[1] "%(count)s %(name)s blev ændret." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s valgt" -msgstr[1] "Alle %(total_count)s valgt" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 af %(cnt)s valgt" - -#, python-format -msgid "Change history: %s" -msgstr "Ændringshistorik: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Sletning af %(class_name)s %(instance)s vil kræve sletning af følgende " -"beskyttede relaterede objekter: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django website-administration" - -msgid "Django administration" -msgstr "Django administration" - -msgid "Site administration" -msgstr "Website-administration" - -msgid "Log in" -msgstr "Log ind" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s administration" - -msgid "Page not found" -msgstr "Siden blev ikke fundet" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Vi beklager, men den ønskede side kunne ikke findes" - -msgid "Home" -msgstr "Hjem" - -msgid "Server error" -msgstr "Serverfejl" - -msgid "Server error (500)" -msgstr "Serverfejl (500)" - -msgid "Server Error (500)" -msgstr "Serverfejl (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Der opstod en fejl. Fejlen er rapporteret til website-administratoren via e-" -"mail, og vil blive rettet hurtigst muligt. Tak for din tålmodighed." - -msgid "Run the selected action" -msgstr "Udfør den valgte handling" - -msgid "Go" -msgstr "Udfør" - -msgid "Click here to select the objects across all pages" -msgstr "Klik her for at vælge objekter på tværs af alle sider" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Vælg alle %(total_count)s %(module_name)s " - -msgid "Clear selection" -msgstr "Ryd valg" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modeller i applikationen %(name)s" - -msgid "Add" -msgstr "Tilføj" - -msgid "View" -msgstr "Vis" - -msgid "You don’t have permission to view or edit anything." -msgstr "Du har ikke rettigheder til at se eller redigere noget." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Indtast først et brugernavn og en adgangskode. Derefter får du yderligere " -"redigeringsmuligheder." - -msgid "Enter a username and password." -msgstr "Indtast et brugernavn og en adgangskode." - -msgid "Change password" -msgstr "Skift adgangskode" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Ret venligst fejlen herunder." -msgstr[1] "Ret venligst fejlene herunder." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Indtast en ny adgangskode for brugeren %(username)s." - -msgid "Skip to main content" -msgstr "Gå til hovedindhold" - -msgid "Welcome," -msgstr "Velkommen," - -msgid "View site" -msgstr "Se side" - -msgid "Documentation" -msgstr "Dokumentation" - -msgid "Log out" -msgstr "Log ud" - -msgid "Breadcrumbs" -msgstr "Sti" - -#, python-format -msgid "Add %(name)s" -msgstr "Tilføj %(name)s" - -msgid "History" -msgstr "Historik" - -msgid "View on site" -msgstr "Se på website" - -msgid "Filter" -msgstr "Filtrer" - -msgid "Clear all filters" -msgstr "Nulstil alle filtre" - -msgid "Remove from sorting" -msgstr "Fjern fra sortering" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sorteringsprioritet: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Skift sortering" - -msgid "Toggle theme (current theme: auto)" -msgstr "Skift tema (nuværende tema: auto)" - -msgid "Toggle theme (current theme: light)" -msgstr "Skift tema (nuværende tema: lyst)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Skift tema (nuværende tema: mørkt)" - -msgid "Delete" -msgstr "Slet" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Hvis du sletter %(object_name)s '%(escaped_object)s', vil du også slette " -"relaterede objekter, men din konto har ikke rettigheder til at slette " -"følgende objekttyper:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Sletning af %(object_name)s ' %(escaped_object)s ' vil kræve sletning af " -"følgende beskyttede relaterede objekter:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Er du sikker på du vil slette %(object_name)s \"%(escaped_object)s\"? Alle " -"de følgende relaterede objekter vil blive slettet:" - -msgid "Objects" -msgstr "Objekter" - -msgid "Yes, I’m sure" -msgstr "Ja, jeg er sikker" - -msgid "No, take me back" -msgstr "Nej, tag mig tilbage" - -msgid "Delete multiple objects" -msgstr "Slet flere objekter" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Sletning af de valgte %(objects_name)s ville resultere i sletning af " -"relaterede objekter, men din konto har ikke tilladelse til at slette " -"følgende typer af objekter:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Sletning af de valgte %(objects_name)s vil kræve sletning af følgende " -"beskyttede relaterede objekter:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Er du sikker på du vil slette de valgte %(objects_name)s? Alle de følgende " -"objekter og deres relaterede emner vil blive slettet:" - -msgid "Delete?" -msgstr "Slet?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Efter %(filter_title)s " - -msgid "Summary" -msgstr "Sammendrag" - -msgid "Recent actions" -msgstr "Seneste handlinger" - -msgid "My actions" -msgstr "Mine handlinger" - -msgid "None available" -msgstr "Ingen tilgængelige" - -msgid "Unknown content" -msgstr "Ukendt indhold" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Der er noget galt med databaseinstallationen. Kontroller om " -"databasetabellerne er blevet oprettet og at databasen er læsbar for den " -"pågældende bruger." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Du er logget ind som %(username)s, men du har ikke tilladelse til at tilgå " -"denne site. Vil du logge ind med en anden brugerkonto?" - -msgid "Forgotten your password or username?" -msgstr "Har du glemt dit password eller brugernavn?" - -msgid "Toggle navigation" -msgstr "Vis/skjul navigation" - -msgid "Sidebar" -msgstr "Sidebjælke" - -msgid "Start typing to filter…" -msgstr "Skriv for at filtrere…" - -msgid "Filter navigation items" -msgstr "Filtrer navigationsemner" - -msgid "Date/time" -msgstr "Dato/tid" - -msgid "User" -msgstr "Bruger" - -msgid "Action" -msgstr "Funktion" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "post" -msgstr[1] "poster" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Dette objekt har ingen ændringshistorik. Det blev formentlig ikke tilføjet " -"via dette administrations-site" - -msgid "Show all" -msgstr "Vis alle" - -msgid "Save" -msgstr "Gem" - -msgid "Popup closing…" -msgstr "Popup lukker…" - -msgid "Search" -msgstr "Søg" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultat" -msgstr[1] "%(counter)s resultater" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s i alt" - -msgid "Save as new" -msgstr "Gem som ny" - -msgid "Save and add another" -msgstr "Gem og tilføj endnu en" - -msgid "Save and continue editing" -msgstr "Gem og fortsæt med at redigere" - -msgid "Save and view" -msgstr "Gem og vis" - -msgid "Close" -msgstr "Luk" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Redigér valgte %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Tilføj endnu en %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Slet valgte %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Vis valgte %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Tak for den kvalitetstid du brugte på websitet i dag." - -msgid "Log in again" -msgstr "Log ind igen" - -msgid "Password change" -msgstr "Skift adgangskode" - -msgid "Your password was changed." -msgstr "Din adgangskode blev ændret." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Indtast venligst din gamle adgangskode for en sikkerheds skyld og indtast så " -"din nye adgangskode to gange, så vi kan være sikre på, at den er indtastet " -"korrekt." - -msgid "Change my password" -msgstr "Skift min adgangskode" - -msgid "Password reset" -msgstr "Nulstil adgangskode" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Din adgangskode er blevet sat. Du kan logge ind med den nu." - -msgid "Password reset confirmation" -msgstr "Bekræftelse for nulstilling af adgangskode" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Indtast venligst din nye adgangskode to gange, så vi kan være sikre på, at " -"den er indtastet korrekt." - -msgid "New password:" -msgstr "Ny adgangskode:" - -msgid "Confirm password:" -msgstr "Bekræft ny adgangskode:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Linket for nulstilling af adgangskoden er ugyldigt, måske fordi det allerede " -"har været brugt. Anmod venligst påny om nulstilling af adgangskoden." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Vi har sendt dig en e-mail med instruktioner for at indstille din " -"adgangskode, hvis en konto med den angivne e-mail-adresse findes. Du burde " -"modtage den snarest." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Hvis du ikke modtager en e-mail, så tjek venligst, at du har indtastet den e-" -"mail-adresse, du registrerede dig med, og tjek din spam-mappe." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Du modtager denne e-mail, fordi du har anmodet om en nulstilling af " -"adgangskoden til din brugerkonto ved %(site_name)s ." - -msgid "Please go to the following page and choose a new password:" -msgstr "Gå venligst til denne side og vælg en ny adgangskode:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Hvis du skulle have glemt dit brugernavn er det:" - -msgid "Thanks for using our site!" -msgstr "Tak fordi du brugte vores website!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Med venlig hilsen %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Har du glemt din adgangskode? Skriv din e-mail-adresse herunder, så sender " -"vi dig instruktioner i at vælge en ny adgangskode." - -msgid "Email address:" -msgstr "E-mail-adresse:" - -msgid "Reset my password" -msgstr "Nulstil min adgangskode" - -msgid "All dates" -msgstr "Alle datoer" - -#, python-format -msgid "Select %s" -msgstr "Vælg %s" - -#, python-format -msgid "Select %s to change" -msgstr "Vælg %s, der skal ændres" - -#, python-format -msgid "Select %s to view" -msgstr "Vælg %s, der skal vises" - -msgid "Date:" -msgstr "Dato:" - -msgid "Time:" -msgstr "Tid:" - -msgid "Lookup" -msgstr "Slå op" - -msgid "Currently:" -msgstr "Nuværende:" - -msgid "Change:" -msgstr "Ændring:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo deleted file mode 100644 index d77d314..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po deleted file mode 100644 index 0bf36d1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,280 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Christian Joergensen , 2012 -# Erik Ramsgaard Wognsen , 2021-2023 -# Erik Ramsgaard Wognsen , 2012,2015-2016,2020 -# Finn Gruwier Larsen, 2011 -# Jannis Leidel , 2011 -# Mathias Rav , 2017 -# valberg , 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Erik Ramsgaard Wognsen , 2021-2023\n" -"Language-Team: Danish (http://www.transifex.com/django/django/language/da/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: da\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Tilgængelige %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Dette er listen over tilgængelige %s. Du kan vælge dem enkeltvis ved at " -"markere dem i kassen nedenfor og derefter klikke på \"Vælg\"-pilen mellem de " -"to kasser." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Skriv i dette felt for at filtrere listen af tilgængelige %s." - -msgid "Filter" -msgstr "Filtrér" - -msgid "Choose all" -msgstr "Vælg alle" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klik for at vælge alle %s med det samme." - -msgid "Choose" -msgstr "Vælg" - -msgid "Remove" -msgstr "Fjern" - -#, javascript-format -msgid "Chosen %s" -msgstr "Valgte %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Dette er listen over valgte %s. Du kan fjerne dem enkeltvis ved at markere " -"dem i kassen nedenfor og derefter klikke på \"Fjern\"-pilen mellem de to " -"kasser." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Skriv i dette felt for at filtrere listen af valgte %s." - -msgid "Remove all" -msgstr "Fjern alle" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klik for at fjerne alle valgte %s med det samme." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s valgt mulighed ikke vist" -msgstr[1] "%s valgte muligheder ikke vist" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s af %(cnt)s valgt" -msgstr[1] "%(sel)s af %(cnt)s valgt" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Du har ugemte ændringer af et eller flere redigerbare felter. Hvis du " -"udfører en handling fra drop-down-menuen, vil du miste disse ændringer." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Du har valgt en handling, men du har ikke gemt dine ændringer til et eller " -"flere felter. Klik venligst OK for at gemme og vælg dernæst handlingen igen." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Du har valgt en handling, og du har ikke udført nogen ændringer på felter. " -"Du søger formentlig Udfør-knappen i stedet for Gem-knappen." - -msgid "Now" -msgstr "Nu" - -msgid "Midnight" -msgstr "Midnat" - -msgid "6 a.m." -msgstr "Klokken 6" - -msgid "Noon" -msgstr "Middag" - -msgid "6 p.m." -msgstr "Klokken 18" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Obs: Du er %s time forud i forhold til servertiden." -msgstr[1] "Obs: Du er %s timer forud i forhold til servertiden." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Obs: Du er %s time bagud i forhold til servertiden." -msgstr[1] "Obs: Du er %s timer bagud i forhold til servertiden." - -msgid "Choose a Time" -msgstr "Vælg et Tidspunkt" - -msgid "Choose a time" -msgstr "Vælg et tidspunkt" - -msgid "Cancel" -msgstr "Annuller" - -msgid "Today" -msgstr "I dag" - -msgid "Choose a Date" -msgstr "Vælg en Dato" - -msgid "Yesterday" -msgstr "I går" - -msgid "Tomorrow" -msgstr "I morgen" - -msgid "January" -msgstr "Januar" - -msgid "February" -msgstr "Februar" - -msgid "March" -msgstr "Marts" - -msgid "April" -msgstr "April" - -msgid "May" -msgstr "Maj" - -msgid "June" -msgstr "Juni" - -msgid "July" -msgstr "Juli" - -msgid "August" -msgstr "August" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "November" - -msgid "December" -msgstr "December" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "maj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "S" - -msgctxt "one letter Monday" -msgid "M" -msgstr "M" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "O" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "T" - -msgctxt "one letter Friday" -msgid "F" -msgstr "F" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "L" - -msgid "Show" -msgstr "Vis" - -msgid "Hide" -msgstr "Skjul" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.mo deleted file mode 100644 index 8443a04..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.po deleted file mode 100644 index 273aa05..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/django.po +++ /dev/null @@ -1,770 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# André Hagenbruch, 2012 -# Florian Apolloner , 2011 -# Dimitris Glezos , 2012 -# Florian Apolloner , 2020-2023 -# jnns, 2013 -# Jannis Leidel , 2013-2018,2020 -# jnns, 2016 -# Markus Holtermann , 2020 -# Markus Holtermann , 2013,2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Florian Apolloner , 2020-2023\n" -"Language-Team: German (http://www.transifex.com/django/django/language/de/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: de\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Ausgewählte %(verbose_name_plural)s löschen" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Erfolgreich %(count)d %(items)s gelöscht." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Kann %(name)s nicht löschen" - -msgid "Are you sure?" -msgstr "Sind Sie sicher?" - -msgid "Administration" -msgstr "Administration" - -msgid "All" -msgstr "Alle" - -msgid "Yes" -msgstr "Ja" - -msgid "No" -msgstr "Nein" - -msgid "Unknown" -msgstr "Unbekannt" - -msgid "Any date" -msgstr "Alle Daten" - -msgid "Today" -msgstr "Heute" - -msgid "Past 7 days" -msgstr "Letzte 7 Tage" - -msgid "This month" -msgstr "Diesen Monat" - -msgid "This year" -msgstr "Dieses Jahr" - -msgid "No date" -msgstr "Kein Datum" - -msgid "Has date" -msgstr "Besitzt Datum" - -msgid "Empty" -msgstr "Leer" - -msgid "Not empty" -msgstr "Nicht leer" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Bitte %(username)s und Passwort für einen Staff-Account eingeben. Beide " -"Felder berücksichtigen die Groß-/Kleinschreibung." - -msgid "Action:" -msgstr "Aktion:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "%(verbose_name)s hinzufügen" - -msgid "Remove" -msgstr "Entfernen" - -msgid "Addition" -msgstr "Hinzugefügt" - -msgid "Change" -msgstr "Ändern" - -msgid "Deletion" -msgstr "Gelöscht" - -msgid "action time" -msgstr "Zeitpunkt der Aktion" - -msgid "user" -msgstr "Benutzer" - -msgid "content type" -msgstr "Inhaltstyp" - -msgid "object id" -msgstr "Objekt-ID" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "Objekt Darst." - -msgid "action flag" -msgstr "Aktionskennzeichen" - -msgid "change message" -msgstr "Änderungsmeldung" - -msgid "log entry" -msgstr "Logeintrag" - -msgid "log entries" -msgstr "Logeinträge" - -#, python-format -msgid "Added “%(object)s”." -msgstr "„%(object)s“ hinzufügt." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "„%(object)s“ geändert – %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "„%(object)s“ gelöscht." - -msgid "LogEntry Object" -msgstr "LogEntry Objekt" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} „{object}“ hinzugefügt." - -msgid "Added." -msgstr "Hinzugefügt." - -msgid "and" -msgstr "und" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{fields} für {name} „{object}“ geändert." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} geändert." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} „{object}“ gelöscht." - -msgid "No fields changed." -msgstr "Keine Felder geändert." - -msgid "None" -msgstr "-" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Halten Sie die Strg-Taste (⌘ für Mac) während des Klickens gedrückt, um " -"mehrere Einträge auszuwählen." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} „{obj}“ wurde erfolgreich hinzugefügt." - -msgid "You may edit it again below." -msgstr "Es kann unten erneut geändert werden." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} „{obj}“ wurde erfolgreich hinzugefügt und kann nun unten um ein " -"Weiteres ergänzt werden." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} „{obj}“ wurde erfolgreich geändert und kann unten erneut geändert " -"werden." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} „{obj}“ wurde erfolgreich hinzugefügt und kann unten geändert werden." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} „{obj}“ wurde erfolgreich geändert und kann nun unten erneut ergänzt " -"werden." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} „{obj}“ wurde erfolgreich geändert." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Es müssen Objekte aus der Liste ausgewählt werden, um Aktionen " -"durchzuführen. Es wurden keine Objekte geändert." - -msgid "No action selected." -msgstr "Keine Aktion ausgewählt." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s „%(obj)s“ wurde erfolgreich gelöscht." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s mit ID „%(key)s“ existiert nicht. Eventuell gelöscht?" - -#, python-format -msgid "Add %s" -msgstr "%s hinzufügen" - -#, python-format -msgid "Change %s" -msgstr "%s ändern" - -#, python-format -msgid "View %s" -msgstr "%s ansehen" - -msgid "Database error" -msgstr "Datenbankfehler" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s wurde erfolgreich geändert." -msgstr[1] "%(count)s %(name)s wurden erfolgreich geändert." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s ausgewählt" -msgstr[1] "Alle %(total_count)s ausgewählt" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 von %(cnt)s ausgewählt" - -#, python-format -msgid "Change history: %s" -msgstr "Änderungsgeschichte: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Das Löschen des %(class_name)s-Objekts „%(instance)s“ würde ein Löschen der " -"folgenden geschützten verwandten Objekte erfordern: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django-Systemverwaltung" - -msgid "Django administration" -msgstr "Django-Verwaltung" - -msgid "Site administration" -msgstr "Website-Verwaltung" - -msgid "Log in" -msgstr "Anmelden" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s-Administration" - -msgid "Page not found" -msgstr "Seite nicht gefunden" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" -"Es tut uns leid, aber die angeforderte Seite konnte nicht gefunden werden." - -msgid "Home" -msgstr "Start" - -msgid "Server error" -msgstr "Serverfehler" - -msgid "Server error (500)" -msgstr "Serverfehler (500)" - -msgid "Server Error (500)" -msgstr "Serverfehler (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ein Fehler ist aufgetreten und wurde an die Administratoren per E-Mail " -"gemeldet. Danke für die Geduld, der Fehler sollte in Kürze behoben sein." - -msgid "Run the selected action" -msgstr "Ausgewählte Aktion ausführen" - -msgid "Go" -msgstr "Ausführen" - -msgid "Click here to select the objects across all pages" -msgstr "Hier klicken, um die Objekte aller Seiten auszuwählen" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Alle %(total_count)s %(module_name)s auswählen" - -msgid "Clear selection" -msgstr "Auswahl widerrufen" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelle der %(name)s-Anwendung" - -msgid "Add" -msgstr "Hinzufügen" - -msgid "View" -msgstr "Ansehen" - -msgid "You don’t have permission to view or edit anything." -msgstr "" -"Das Benutzerkonto besitzt nicht die nötigen Rechte, um etwas anzusehen oder " -"zu ändern." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Bitte zuerst einen Benutzernamen und ein Passwort eingeben. Danach können " -"weitere Optionen für den Benutzer geändert werden." - -msgid "Enter a username and password." -msgstr "Bitte einen Benutzernamen und ein Passwort eingeben." - -msgid "Change password" -msgstr "Passwort ändern" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Bitte den unten aufgeführten Fehler korrigieren." -msgstr[1] "Bitte die unten aufgeführten Fehler korrigieren." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Bitte geben Sie ein neues Passwort für den Benutzer %(username)s ein." - -msgid "Skip to main content" -msgstr "Zum Hauptinhalt springen" - -msgid "Welcome," -msgstr "Willkommen," - -msgid "View site" -msgstr "Website anzeigen" - -msgid "Documentation" -msgstr "Dokumentation" - -msgid "Log out" -msgstr "Abmelden" - -msgid "Breadcrumbs" -msgstr "„Brotkrümel“" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s hinzufügen" - -msgid "History" -msgstr "Geschichte" - -msgid "View on site" -msgstr "Auf der Website anzeigen" - -msgid "Filter" -msgstr "Filter" - -msgid "Clear all filters" -msgstr "Alle Filter zurücksetzen" - -msgid "Remove from sorting" -msgstr "Aus der Sortierung entfernen" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sortierung: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Sortierung ein-/ausschalten" - -msgid "Toggle theme (current theme: auto)" -msgstr "Design wechseln (aktuelles Design: automatisch)" - -msgid "Toggle theme (current theme: light)" -msgstr "Design wechseln (aktuelles Design: hell)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Design wechseln (aktuelles Design: dunkel)" - -msgid "Delete" -msgstr "Löschen" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Das Löschen des %(object_name)s „%(escaped_object)s“ hätte das Löschen davon " -"abhängiger Daten zur Folge, aber Sie haben nicht die nötigen Rechte, um die " -"folgenden davon abhängigen Daten zu löschen:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Das Löschen von %(object_name)s „%(escaped_object)s“ würde ein Löschen der " -"folgenden geschützten verwandten Objekte erfordern:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Sind Sie sicher, dass Sie %(object_name)s „%(escaped_object)s“ löschen " -"wollen? Es werden zusätzlich die folgenden davon abhängigen Daten gelöscht:" - -msgid "Objects" -msgstr "Objekte" - -msgid "Yes, I’m sure" -msgstr "Ja, ich bin sicher" - -msgid "No, take me back" -msgstr "Nein, bitte abbrechen" - -msgid "Delete multiple objects" -msgstr "Mehrere Objekte löschen" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Das Löschen der ausgewählten %(objects_name)s würde im Löschen geschützter " -"verwandter Objekte resultieren, allerdings besitzt Ihr Benutzerkonto nicht " -"die nötigen Rechte, um diese zu löschen:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Das Löschen der ausgewählten %(objects_name)s würde ein Löschen der " -"folgenden geschützten verwandten Objekte erfordern:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Sind Sie sicher, dass Sie die ausgewählten %(objects_name)s löschen wollen? " -"Alle folgenden Objekte und ihre verwandten Objekte werden gelöscht:" - -msgid "Delete?" -msgstr "Löschen?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Nach %(filter_title)s " - -msgid "Summary" -msgstr "Zusammenfassung" - -msgid "Recent actions" -msgstr "Neueste Aktionen" - -msgid "My actions" -msgstr "Meine Aktionen" - -msgid "None available" -msgstr "Keine vorhanden" - -msgid "Unknown content" -msgstr "Unbekannter Inhalt" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, dass " -"die richtigen Datenbanktabellen angelegt wurden und die Datenbank vom " -"verwendeten Datenbankbenutzer auch lesbar ist." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Sie sind als %(username)s angemeldet, aber nicht autorisiert, auf diese " -"Seite zuzugreifen. Wollen Sie sich mit einem anderen Account anmelden?" - -msgid "Forgotten your password or username?" -msgstr "Benutzername oder Passwort vergessen?" - -msgid "Toggle navigation" -msgstr "Navigation ein-/ausblenden" - -msgid "Sidebar" -msgstr "Seitenleiste" - -msgid "Start typing to filter…" -msgstr "Eingabe beginnen um zu filtern…" - -msgid "Filter navigation items" -msgstr "Navigationselemente filtern" - -msgid "Date/time" -msgstr "Datum/Zeit" - -msgid "User" -msgstr "Benutzer" - -msgid "Action" -msgstr "Aktion" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "Eintrag" -msgstr[1] "Einträge" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht " -"über diese Verwaltungsseiten angelegt." - -msgid "Show all" -msgstr "Zeige alle" - -msgid "Save" -msgstr "Sichern" - -msgid "Popup closing…" -msgstr "Popup wird geschlossen..." - -msgid "Search" -msgstr "Suchen" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s Ergebnis" -msgstr[1] "%(counter)s Ergebnisse" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s gesamt" - -msgid "Save as new" -msgstr "Als neu sichern" - -msgid "Save and add another" -msgstr "Sichern und neu hinzufügen" - -msgid "Save and continue editing" -msgstr "Sichern und weiter bearbeiten" - -msgid "Save and view" -msgstr "Sichern und ansehen" - -msgid "Close" -msgstr "Schließen" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Ausgewählte %(model)s ändern" - -#, python-format -msgid "Add another %(model)s" -msgstr "%(model)s hinzufügen" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Ausgewählte %(model)s löschen" - -#, python-format -msgid "View selected %(model)s" -msgstr "Ausgewählte %(model)s ansehen" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" -"Vielen Dank, dass Sie heute ein paar nette Minuten auf dieser Webseite " -"verbracht haben." - -msgid "Log in again" -msgstr "Erneut anmelden" - -msgid "Password change" -msgstr "Passwort ändern" - -msgid "Your password was changed." -msgstr "Ihr Passwort wurde geändert." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Aus Sicherheitsgründen bitte zuerst das alte Passwort und darunter dann " -"zweimal das neue Passwort eingeben, um sicherzustellen, dass es es korrekt " -"eingegeben wurde." - -msgid "Change my password" -msgstr "Mein Passwort ändern" - -msgid "Password reset" -msgstr "Passwort zurücksetzen" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Ihr Passwort wurde zurückgesetzt. Sie können sich nun anmelden." - -msgid "Password reset confirmation" -msgstr "Zurücksetzen des Passworts bestätigen" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Bitte geben Sie Ihr neues Passwort zweimal ein, damit wir überprüfen können, " -"ob es richtig eingetippt wurde." - -msgid "New password:" -msgstr "Neues Passwort:" - -msgid "Confirm password:" -msgstr "Passwort wiederholen:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Der Link zum Zurücksetzen Ihres Passworts ist ungültig, wahrscheinlich weil " -"er schon einmal benutzt wurde. Bitte setzen Sie Ihr Passwort erneut zurück." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Wir haben eine E-Mail zum Zurücksetzen des Passwortes an die angegebene E-" -"Mail-Adresse gesendet, sofern ein entsprechendes Konto existiert. Sie sollte " -"in Kürze ankommen." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Falls die E-Mail nicht angekommen sein sollte, bitte die E-Mail-Adresse auf " -"Richtigkeit und gegebenenfalls den Spam-Ordner überprüfen." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Diese E-Mail wurde aufgrund einer Anfrage zum Zurücksetzen des Passworts auf " -"der Website %(site_name)s versendet." - -msgid "Please go to the following page and choose a new password:" -msgstr "Bitte öffnen Sie folgende Seite, um Ihr neues Passwort einzugeben:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Der Benutzername, falls vergessen:" - -msgid "Thanks for using our site!" -msgstr "Vielen Dank, dass Sie unsere Website benutzen!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Das Team von %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Passwort vergessen? Einfach die E-Mail-Adresse unten eingeben und den " -"Anweisungen zum Zurücksetzen des Passworts in der E-Mail folgen." - -msgid "Email address:" -msgstr "E-Mail-Adresse:" - -msgid "Reset my password" -msgstr "Mein Passwort zurücksetzen" - -msgid "All dates" -msgstr "Alle Daten" - -#, python-format -msgid "Select %s" -msgstr "%s auswählen" - -#, python-format -msgid "Select %s to change" -msgstr "%s zur Änderung auswählen" - -#, python-format -msgid "Select %s to view" -msgstr "%s zum Ansehen auswählen" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Zeit:" - -msgid "Lookup" -msgstr "Suchen" - -msgid "Currently:" -msgstr "Aktuell:" - -msgid "Change:" -msgstr "Ändern:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 54af228..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po deleted file mode 100644 index 7abceb3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,282 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# André Hagenbruch, 2011-2012 -# Florian Apolloner , 2020-2023 -# Jannis Leidel , 2011,2013-2016,2023 -# jnns, 2016 -# Markus Holtermann , 2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Jannis Leidel , 2011,2013-2016,2023\n" -"Language-Team: German (http://www.transifex.com/django/django/language/de/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: de\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Verfügbare %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Dies ist die Liste der verfügbaren %s. Einfach im unten stehenden Feld " -"markieren und mithilfe des „Auswählen“-Pfeils auswählen." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Durch Eingabe in diesem Feld lässt sich die Liste der verfügbaren %s " -"eingrenzen." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Alle auswählen" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klicken, um alle %s auf einmal auszuwählen." - -msgid "Choose" -msgstr "Auswählen" - -msgid "Remove" -msgstr "Entfernen" - -#, javascript-format -msgid "Chosen %s" -msgstr "Ausgewählte %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Dies ist die Liste der ausgewählten %s. Einfach im unten stehenden Feld " -"markieren und mithilfe des „Entfernen“-Pfeils wieder entfernen." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "" -"In diesem Feld tippen, um die Liste der ausgewählten %s einzuschränken." - -msgid "Remove all" -msgstr "Alle entfernen" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klicken, um alle ausgewählten %s auf einmal zu entfernen." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s ausgewählte Option nicht sichtbar" -msgstr[1] "%s ausgewählte Optionen nicht sichtbar" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s von %(cnt)s ausgewählt" -msgstr[1] "%(sel)s von %(cnt)s ausgewählt" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Sie haben Änderungen an bearbeitbaren Feldern vorgenommen und nicht " -"gespeichert. Wollen Sie die Aktion trotzdem ausführen und Ihre Änderungen " -"verwerfen?" - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Sie haben eine Aktion ausgewählt, aber Ihre vorgenommenen Änderungen nicht " -"gespeichert. Klicken Sie OK, um dennoch zu speichern. Danach müssen Sie die " -"Aktion erneut ausführen." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Sie haben eine Aktion ausgewählt, aber keine Änderungen an bearbeitbaren " -"Feldern vorgenommen. Sie wollten wahrscheinlich auf „Ausführen“ und nicht " -"auf „Speichern“ klicken." - -msgid "Now" -msgstr "Jetzt" - -msgid "Midnight" -msgstr "Mitternacht" - -msgid "6 a.m." -msgstr "6 Uhr" - -msgid "Noon" -msgstr "Mittag" - -msgid "6 p.m." -msgstr "18 Uhr" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Achtung: Sie sind %s Stunde der Serverzeit vorraus." -msgstr[1] "Achtung: Sie sind %s Stunden der Serverzeit vorraus." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Achtung: Sie sind %s Stunde hinter der Serverzeit." -msgstr[1] "Achtung: Sie sind %s Stunden hinter der Serverzeit." - -msgid "Choose a Time" -msgstr "Uhrzeit wählen" - -msgid "Choose a time" -msgstr "Uhrzeit" - -msgid "Cancel" -msgstr "Abbrechen" - -msgid "Today" -msgstr "Heute" - -msgid "Choose a Date" -msgstr "Datum wählen" - -msgid "Yesterday" -msgstr "Gestern" - -msgid "Tomorrow" -msgstr "Morgen" - -msgid "January" -msgstr "Januar" - -msgid "February" -msgstr "Februar" - -msgid "March" -msgstr "März" - -msgid "April" -msgstr "April" - -msgid "May" -msgstr "Mai" - -msgid "June" -msgstr "Juni" - -msgid "July" -msgstr "Juli" - -msgid "August" -msgstr "August" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "November" - -msgid "December" -msgstr "Dezember" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mrz" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Mai" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dez" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "So" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Mo" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Di" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Mi" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Do" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Fr" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Sa" - -msgid "Show" -msgstr "Einblenden" - -msgid "Hide" -msgstr "Ausblenden" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo deleted file mode 100644 index 87275d9..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po deleted file mode 100644 index 9fa3409..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/django.po +++ /dev/null @@ -1,760 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Michael Wolf , 2016-2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Michael Wolf , 2016-2023\n" -"Language-Team: Lower Sorbian (http://www.transifex.com/django/django/" -"language/dsb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: dsb\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " -"n%100==4 ? 2 : 3);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Wubrane %(verbose_name_plural)s lašowaś" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s su se wulašowali." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s njedajo se lašowaś" - -msgid "Are you sure?" -msgstr "Sćo se wěsty?" - -msgid "Administration" -msgstr "Administracija" - -msgid "All" -msgstr "Wšykne" - -msgid "Yes" -msgstr "Jo" - -msgid "No" -msgstr "Ně" - -msgid "Unknown" -msgstr "Njeznaty" - -msgid "Any date" -msgstr "Někaki datum" - -msgid "Today" -msgstr "Źinsa" - -msgid "Past 7 days" -msgstr "Zachadne 7 dnjow" - -msgid "This month" -msgstr "Toś ten mjasec" - -msgid "This year" -msgstr "W tom lěśe" - -msgid "No date" -msgstr "Žeden datum" - -msgid "Has date" -msgstr "Ma datum" - -msgid "Empty" -msgstr "Prozny" - -msgid "Not empty" -msgstr "Njeprozny" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Pšosym zapódajśo korektne %(username)s a gronidło za personalne konto. " -"Źiwajśo na to, až wobej póli móžotej mjazy wjeliko- a małopisanim rozeznawaś." - -msgid "Action:" -msgstr "Akcija:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Dalšne %(verbose_name)s pśidaś" - -msgid "Remove" -msgstr "Wótpóraś" - -msgid "Addition" -msgstr "Pśidanje" - -msgid "Change" -msgstr "Změniś" - -msgid "Deletion" -msgstr "Wulašowanje" - -msgid "action time" -msgstr "akciski cas" - -msgid "user" -msgstr "wužywaŕ" - -msgid "content type" -msgstr "wopśimjeśowy typ" - -msgid "object id" -msgstr "objektowy id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objektowa reprezentacija" - -msgid "action flag" -msgstr "akciske markěrowanje" - -msgid "change message" -msgstr "změnowa powěźeńka" - -msgid "log entry" -msgstr "protokolowy zapisk" - -msgid "log entries" -msgstr "protokolowe zapiski" - -#, python-format -msgid "Added “%(object)s”." -msgstr "„%(object)s“ pśidane." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "„%(object)s“ změnjone - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "„%(object)s“ wulašowane." - -msgid "LogEntry Object" -msgstr "Objekt LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} „{object}“ pśidany." - -msgid "Added." -msgstr "Pśidany." - -msgid "and" -msgstr "a" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{fields} za {name} „{object}“ změnjone." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} změnjone." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Deleted {name} „{object}“ wulašowane." - -msgid "No fields changed." -msgstr "Žedne póla změnjone." - -msgid "None" -msgstr "Žeden" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "´Źaržćo „ctrl“ abo „cmd“ na Mac tłocony, aby wusej jadnogo wubrał." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} „{obj}“ jo se wuspěšnje pśidał." - -msgid "You may edit it again below." -msgstr "Móźośo dołojce znowego wobźěłaś." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} „{obj}“ jo se wuspěšnje pśidał. Móžośo dołojce dalšne {name} pśidaś." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} „{obj}“ jo se wuspěšnje změnił. Móžośo jen dołojce znowego wobźěłowaś." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} „{obj}“ jo se wuspěšnje pśidał. Móžośo jen dołojce znowego wobźěłowaś." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} „{obj}“ jo se wuspěšnje změnił. Móžośo dołojce dalšne {name} pśidaś." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} „{obj}“ jo se wuspěšnje změnił." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Zapiski muse se wubraś, aby akcije na nje nałožowało. Zapiski njejsu se " -"změnili." - -msgid "No action selected." -msgstr "Žedna akcija wubrana." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s „%(obj)s“ jo se wuspěšnje wulašował." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s z ID „%(key)s“ njeeksistěrujo. Jo se snaź wulašowało?" - -#, python-format -msgid "Add %s" -msgstr "%s pśidaś" - -#, python-format -msgid "Change %s" -msgstr "%s změniś" - -#, python-format -msgid "View %s" -msgstr "%s pokazaś" - -msgid "Database error" -msgstr "Zmólka datoweje banki" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s jo se wuspěšnje změnił." -msgstr[1] "%(count)s %(name)s stej se wuspěšnje změniłej." -msgstr[2] "%(count)s %(name)s su se wuspěšnje změnili." -msgstr[3] "%(count)s %(name)s jo se wuspěšnje změniło." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s wubrany" -msgstr[1] "Wšykne %(total_count)s wubranej" -msgstr[2] "Wšykne %(total_count)s wubrane" -msgstr[3] "Wšykne %(total_count)s wubranych" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 z %(cnt)s wubranych" - -#, python-format -msgid "Change history: %s" -msgstr "Změnowa historija: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Aby se %(class_name)s %(instance)s lašowało, muse se slědujuce šćitane " -"objekty lašowaś: %(related_objects)s" - -msgid "Django site admin" -msgstr "Administrator sedła Django" - -msgid "Django administration" -msgstr "Administracija Django" - -msgid "Site administration" -msgstr "Sedłowa administracija" - -msgid "Log in" -msgstr "Pśizjawiś" - -#, python-format -msgid "%(app)s administration" -msgstr "Administracija %(app)s" - -msgid "Page not found" -msgstr "Bok njejo se namakał" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Jo nam luto, ale pominany bok njedajo se namakaś." - -msgid "Home" -msgstr "Startowy bok" - -msgid "Server error" -msgstr "Serwerowa zmólka" - -msgid "Server error (500)" -msgstr "Serwerowa zmólka (500)" - -msgid "Server Error (500)" -msgstr "Serwerowa zmólka (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Zmólka jo nastała. Jo se sedłowym administratoram pśez e-mail k wěsći dała a " -"by dejała se skóro wótpóraś. Źěkujom se za wašu sćerpmosć." - -msgid "Run the selected action" -msgstr "Wubranu akciju wuwjasć" - -msgid "Go" -msgstr "Start" - -msgid "Click here to select the objects across all pages" -msgstr "Klikniśo how, aby objekty wšych bokow wubrał" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Wubjeŕśo wšykne %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Wuběrk lašowaś" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modele w nałoženju %(name)s" - -msgid "Add" -msgstr "Pśidaś" - -msgid "View" -msgstr "Pokazaś" - -msgid "You don’t have permission to view or edit anything." -msgstr "Njamaśo pšawo něco pokazaś abo wobźěłaś" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Zapódajśo nejpjerwjej wužywarske mě a gronidło. Pótom móžośo dalšne " -"wužywarske nastajenja wobźěłowaś." - -msgid "Enter a username and password." -msgstr "Zapódajśo wužywarske mě a gronidło." - -msgid "Change password" -msgstr "Gronidło změniś" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Pšosym korigěrujśo slědujucu zmólku." -msgstr[1] "Pšosym korigěrujśo slědujucej zmólce." -msgstr[2] "Pšosym korigěrujśo slědujuce zmólki." -msgstr[3] "Pšosym korigěrujśo slědujuce zmólki." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Zapódajśo nowe gronidło za wužywarja %(username)s." - -msgid "Skip to main content" -msgstr "Dalej ku głownemu wopśimjeśeju" - -msgid "Welcome," -msgstr "Witajśo," - -msgid "View site" -msgstr "Sedło pokazaś" - -msgid "Documentation" -msgstr "Dokumentacija" - -msgid "Log out" -msgstr "Wótzjawiś" - -msgid "Breadcrumbs" -msgstr "Klěbowe srjodki" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s pśidaś" - -msgid "History" -msgstr "Historija" - -msgid "View on site" -msgstr "Na sedle pokazaś" - -msgid "Filter" -msgstr "Filtrowaś" - -msgid "Clear all filters" -msgstr "Wšykne filtry lašowaś" - -msgid "Remove from sorting" -msgstr "Ze sortěrowanja wótpóraś" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sortěrowański rěd: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Sortěrowanje pśešaltowaś" - -msgid "Toggle theme (current theme: auto)" -msgstr "Drastwu změniś (auto)" - -msgid "Toggle theme (current theme: light)" -msgstr "Drastwu změniś (swětły)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Drastwu změniś (śamny)" - -msgid "Delete" -msgstr "Lašowaś" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Gaž se %(object_name)s '%(escaped_object)s' lašujo, se pśisłušne objekty " -"wulašuju, ale wašo konto njama pšawo slědujuce typy objektow lašowaś: " - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Aby se %(object_name)s '%(escaped_object)s' lašujo, muse se slědujuce " -"šćitane pśisłušne objekty lašowaś:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Cośo napšawdu %(object_name)s „%(escaped_object)s“ lašowaś? Wšykne slědujuce " -"pśisłušne zapiski se wulašuju: " - -msgid "Objects" -msgstr "Objekty" - -msgid "Yes, I’m sure" -msgstr "Jo, som se wěsty" - -msgid "No, take me back" -msgstr "Ně, pšosym slědk" - -msgid "Delete multiple objects" -msgstr "Někotare objekty lašowaś" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Gaž lašujośo wubrany %(objects_name)s, se pśisłušne objekty wulašuju, ale " -"wašo konto njama pšawo slědujuce typy objektow lašowaś: " - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Aby wubrany %(objects_name)s lašowało, muse se slědujuce šćitane pśisłušne " -"objekty lašowaś:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Cośo napšawdu wubrany %(objects_name)s lašowaś? Wšykne slědujuce objekty a " -"jich pśisłušne zapiski se wulašuju:" - -msgid "Delete?" -msgstr "Lašowaś?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Pó %(filter_title)s " - -msgid "Summary" -msgstr "Zespominanje" - -msgid "Recent actions" -msgstr "Nejnowše akcije" - -msgid "My actions" -msgstr "Móje akcije" - -msgid "None available" -msgstr "Žeden k dispoziciji" - -msgid "Unknown content" -msgstr "Njeznate wopśimjeśe" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Něco jo z wašeju instalaciju datoweje banki kśiwje šło. Pśeznańśo se, až " -"wótpowědne tabele datoweje banki su se napórali a pótom, až datowa banka " -"dajo se wót wótpówědnego wužywarja cytaś." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Sćo ako %(username)s awtentificěrowany, ale njamaśo pśistup na toś ten bok. " -"Cośo se pla drugego konta pśizjawiś?" - -msgid "Forgotten your password or username?" -msgstr "Sćo swójo gronidło abo wužywarske mě zabył?" - -msgid "Toggle navigation" -msgstr "Nawigaciju pśešaltowaś" - -msgid "Sidebar" -msgstr "Bocnica" - -msgid "Start typing to filter…" -msgstr "Pišćo, aby filtrował …" - -msgid "Filter navigation items" -msgstr "Nawigaciske zapiski filtrowaś" - -msgid "Date/time" -msgstr "Datum/cas" - -msgid "User" -msgstr "Wužywaŕ" - -msgid "Action" -msgstr "Akcija" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "zapisk" -msgstr[1] "zapiska" -msgstr[2] "zapiski" -msgstr[3] "zapiskow" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Toś ten objekt njama změnowu historiju. Jo se nejskerjej pśez toś to " -"administratorowe sedło pśidał." - -msgid "Show all" -msgstr "Wšykne pokazaś" - -msgid "Save" -msgstr "Składowaś" - -msgid "Popup closing…" -msgstr "Wuskokujuce wokno se zacynja…" - -msgid "Search" -msgstr "Pytaś" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s wuslědk" -msgstr[1] "%(counter)s wuslědka" -msgstr[2] "%(counter)s wuslědki" -msgstr[3] "%(counter)s wuslědkow" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s dogromady" - -msgid "Save as new" -msgstr "Ako nowy składowaś" - -msgid "Save and add another" -msgstr "Składowaś a dalšny pśidaś" - -msgid "Save and continue editing" -msgstr "Składowaś a dalej wobźěłowaś" - -msgid "Save and view" -msgstr "Składowaś a pokazaś" - -msgid "Close" -msgstr "Zacyniś" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Wubrane %(model)s změniś" - -#, python-format -msgid "Add another %(model)s" -msgstr "Dalšny %(model)s pśidaś" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Wubrane %(model)s lašowaś" - -#, python-format -msgid "View selected %(model)s" -msgstr "Wubrany %(model)s pokazaś" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" -"Wjeliki źěk, až sćo sebje brał źinsa cas za pśeglědowanje kwality websedła." - -msgid "Log in again" -msgstr "Hyšći raz pśizjawiś" - -msgid "Password change" -msgstr "Gronidło změniś" - -msgid "Your password was changed." -msgstr "Wašo gronidło jo se změniło." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Pšosym zapódajśo k swójej wěstośe swójo stare gronidło a pótom swójo nowe " -"gronidło dwójcy, aby my mógli pśeglědowaś, lěc sćo jo korektnje zapisał." - -msgid "Change my password" -msgstr "Mójo gronidło změniś" - -msgid "Password reset" -msgstr "Gronidło jo se slědk stajiło" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Wašo gronidło jo se póstajiło. Móžośo pókšacowaś a se něnto pśizjawiś." - -msgid "Password reset confirmation" -msgstr "Wobkšuśenje slědkstajenja gronidła" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Pšosym zapódajśo swójo nowe gronidło dwójcy, aby my mógli pśeglědowaś, lěc " -"sći jo korektnje zapisał." - -msgid "New password:" -msgstr "Nowe gronidło:" - -msgid "Confirm password:" -msgstr "Gronidło wobkšuśiś:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Wótkaz za slědkstajenje gronidła jo njepłaśiwy był, snaź dokulaž jo se južo " -"wužył. Pšosym pšosćo wó nowe slědkstajenje gronidła." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Smy wam instrukcije za nastajenje wašogo gronidła pśez e-mail pósłali, jolic " -"konto ze zapódaneju e-mailoweju adresu eksistěrujo. Wy by dejał ju skóro " -"dostaś." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Jolic mejlku njedostawaśo, pśeznańśo se, až sćo adresu zapódał, z kótarejuž " -"sćo zregistrěrował, a pśeglědajśo swój spamowy zarědnik." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Dostawaśo toś tu mejlku, dokulaž sćo za swójo wužywarske konto na " -"%(site_name)s wó slědkstajenje gronidła pšosył." - -msgid "Please go to the following page and choose a new password:" -msgstr "Pšosym źiśo k slědujucemu bokoju a wubjeŕśo nowe gronidło:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Wašo wužywarske mě, jolic sćo jo zabył:" - -msgid "Thanks for using our site!" -msgstr "Wjeliki źěk za wužywanje našogo sedła!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Team %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Sćo swójo gronidło zabył? Zapódajśo dołojce swóju e-mailowu adresu a " -"pósćelomy wam instrukcije za nastajenje nowego gronidła pśez e-mail." - -msgid "Email address:" -msgstr "E-mailowa adresa:" - -msgid "Reset my password" -msgstr "Mójo gronidło slědk stajiś" - -msgid "All dates" -msgstr "Wšykne daty" - -#, python-format -msgid "Select %s" -msgstr "%s wubraś" - -#, python-format -msgid "Select %s to change" -msgstr "%s wubraś, aby se změniło" - -#, python-format -msgid "Select %s to view" -msgstr "%s wubraś, kótaryž ma se pokazaś" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Cas:" - -msgid "Lookup" -msgstr "Pytanje" - -msgid "Currently:" -msgstr "Tuchylu:" - -msgid "Change:" -msgstr "Změniś:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo deleted file mode 100644 index ee704b8..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po deleted file mode 100644 index 1285fb1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,286 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Michael Wolf , 2016,2020-2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Michael Wolf , 2016,2020-2023\n" -"Language-Team: Lower Sorbian (http://www.transifex.com/django/django/" -"language/dsb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: dsb\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " -"n%100==4 ? 2 : 3);\n" - -#, javascript-format -msgid "Available %s" -msgstr "K dispoziciji stojece %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"To jo lisćina k dispoziciji stojecych %s. Klikniśo na šypku „Wubraś“ mjazy " -"kašćikoma, aby někotare z nich w slědujucem kašćiku wubrał. " - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Zapišćo do toś togo póla, aby zapiski z lisćiny k dispoziciji stojecych %s " -"wufiltrował. " - -msgid "Filter" -msgstr "Filtrowaś" - -msgid "Choose all" -msgstr "Wšykne wubraś" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klikniśo, aby wšykne %s naraz wubrał." - -msgid "Choose" -msgstr "Wubraś" - -msgid "Remove" -msgstr "Wótpóraś" - -#, javascript-format -msgid "Chosen %s" -msgstr "Wubrane %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"To jo lisćina wubranych %s. Klikniśo na šypku „Wótpóraś“ mjazy kašćikoma, " -"aby někotare z nich w slědujucem kašćiku wótpórał." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "" -"Zapišćo do toś togo póla, aby zapiski z lisćiny wubranych %s wufiltrował. " - -msgid "Remove all" -msgstr "Wšykne wótpóraś" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klikniśo, aby wšykne wubrane %s naraz wótpórał." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s wubrane nastajenje njewidobne" -msgstr[1] "%s wubranej nastajeni njewidobnej" -msgstr[2] "%s wubrane nastajenja njewidobne" -msgstr[3] "%s wubranych nastajenjow njewidobne" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s z %(cnt)s wubrany" -msgstr[1] "%(sel)s z %(cnt)s wubranej" -msgstr[2] "%(sel)s z %(cnt)s wubrane" -msgstr[3] "%(sel)s z %(cnt)s wubranych" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Maśo njeskładowane změny za jadnotliwe wobźěłujobne póla. Jolic akciju " -"wuwjeźośo, se waše njeskładowane změny zgubiju." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Sćo akciju wubrał, ale njejsćo hyšći swóje změny za jadnotliwe póla " -"składował, Pšosym klikniśo na W pórěźe, aby składował. Musyśo akciju znowego " -"wuwjasć." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Sćo akciju wubrał, ale njejsćo jadnotliwe póla změnił. Nejskerjej pytaśo " -"skerjej za tłocaškom Start ako za tłocaškom Składowaś." - -msgid "Now" -msgstr "Něnto" - -msgid "Midnight" -msgstr "Połnoc" - -msgid "6 a.m." -msgstr "6:00 góź. dopołdnja" - -msgid "Noon" -msgstr "Połdnjo" - -msgid "6 p.m." -msgstr "6:00 wótpołdnja" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Glědajśo: Waš cas jo wó %s góźinu pśéd serwerowym casom." -msgstr[1] "Glědajśo: Waš cas jo wó %s góźinje pśéd serwerowym casom." -msgstr[2] "Glědajśo: Waš cas jo wó %s góźiny pśéd serwerowym casom." -msgstr[3] "Glědajśo: Waš cas jo wó %s góźin pśéd serwerowym casom." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Glědajśo: Waš cas jo wó %s góźinu za serwerowym casom." -msgstr[1] "Glědajśo: Waš cas jo wó %s góźinje za serwerowym casom." -msgstr[2] "Glědajśo: Waš cas jo wó %s góźiny za serwerowym casom." -msgstr[3] "Glědajśo: Waš cas jo wó %s góźin za serwerowym casom." - -msgid "Choose a Time" -msgstr "Wubjeŕśo cas" - -msgid "Choose a time" -msgstr "Wubjeŕśo cas" - -msgid "Cancel" -msgstr "Pśetergnuś" - -msgid "Today" -msgstr "Źinsa" - -msgid "Choose a Date" -msgstr "Wubjeŕśo datum" - -msgid "Yesterday" -msgstr "Cora" - -msgid "Tomorrow" -msgstr "Witśe" - -msgid "January" -msgstr "Januar" - -msgid "February" -msgstr "Februar" - -msgid "March" -msgstr "Měrc" - -msgid "April" -msgstr "Apryl" - -msgid "May" -msgstr "Maj" - -msgid "June" -msgstr "Junij" - -msgid "July" -msgstr "Julij" - -msgid "August" -msgstr "Awgust" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "Nowember" - -msgid "December" -msgstr "December" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan." - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb." - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Měr." - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr." - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Maj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun." - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul." - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Awg." - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep." - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt." - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Now." - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dec." - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Nj" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Pó" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Wa" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Sr" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "St" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Pě" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "So" - -msgid "Show" -msgstr "Pokazaś" - -msgid "Hide" -msgstr "Schowaś" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.mo deleted file mode 100644 index 0f88816..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.po deleted file mode 100644 index ec1dc94..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/django.po +++ /dev/null @@ -1,737 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Antonis Christofides , 2021 -# Dimitris Glezos , 2011 -# Giannis Meletakis , 2015 -# Jannis Leidel , 2011 -# Nick Mavrakis , 2016-2018,2021 -# Nick Mavrakis , 2016 -# Pãnoș , 2014 -# Pãnoș , 2014,2016,2019-2020 -# Yorgos Pagles , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-03-30 03:21+0000\n" -"Last-Translator: Antonis Christofides \n" -"Language-Team: Greek (http://www.transifex.com/django/django/language/el/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: el\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "%(verbose_name_plural)s: Διαγραφή επιλεγμένων" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Επιτυχώς διεγράφησαν %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Αδύνατη η διαγραφή του %(name)s" - -msgid "Are you sure?" -msgstr "Είστε σίγουρος;" - -msgid "Administration" -msgstr "Διαχείριση" - -msgid "All" -msgstr "Όλα" - -msgid "Yes" -msgstr "Ναι" - -msgid "No" -msgstr "Όχι" - -msgid "Unknown" -msgstr "Άγνωστο" - -msgid "Any date" -msgstr "Οποιαδήποτε ημερομηνία" - -msgid "Today" -msgstr "Σήμερα" - -msgid "Past 7 days" -msgstr "Τελευταίες 7 ημέρες" - -msgid "This month" -msgstr "Αυτό το μήνα" - -msgid "This year" -msgstr "Αυτό το χρόνο" - -msgid "No date" -msgstr "Καθόλου ημερομηνία" - -msgid "Has date" -msgstr "Έχει ημερομηνία" - -msgid "Empty" -msgstr "Χωρίς τιμή" - -msgid "Not empty" -msgstr "Με τιμή" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Παρακαλώ δώστε το σωστό %(username)s και συνθηματικό για λογαριασμό " -"προσωπικού. Και στα δύο πεδία μπορεί να έχει σημασία η διάκριση κεφαλαίων/" -"μικρών." - -msgid "Action:" -msgstr "Ενέργεια:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Να προστεθεί %(verbose_name)s" - -msgid "Remove" -msgstr "Αφαίρεση" - -msgid "Addition" -msgstr "Προσθήκη" - -msgid "Change" -msgstr "Αλλαγή" - -msgid "Deletion" -msgstr "Διαγραφή" - -msgid "action time" -msgstr "ώρα ενέργειας" - -msgid "user" -msgstr "χρήστης" - -msgid "content type" -msgstr "τύπος περιεχομένου" - -msgid "object id" -msgstr "ταυτότητα αντικειμένου" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "αναπαράσταση αντικειμένου" - -msgid "action flag" -msgstr "σημαία ενέργειας" - -msgid "change message" -msgstr "μήνυμα τροποποίησης" - -msgid "log entry" -msgstr "καταχώριση αρχείου καταγραφής" - -msgid "log entries" -msgstr "καταχωρίσεις αρχείου καταγραφής" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Προστέθηκε «%(object)s»." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Τροποποιήθηκε «%(object)s» — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Διαγράφηκε «%(object)s»." - -msgid "LogEntry Object" -msgstr "Αντικείμενο LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Προστέθηκε {name} “{object}”." - -msgid "Added." -msgstr "Προστέθηκε." - -msgid "and" -msgstr "και" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{name} «{object}»: Αλλαγή {fields}." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Αλλαγή {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Διεγράφη {name} «{object}»." - -msgid "No fields changed." -msgstr "Δεν άλλαξε κανένα πεδίο." - -msgid "None" -msgstr "Κανένα" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Κρατήστε πατημένο το «Control» («Command» σε Mac) για να επιλέξετε " -"περισσότερα από ένα αντικείμενα." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Προστέθηκε {name} «{obj}»." - -msgid "You may edit it again below." -msgstr "Μπορεί να πραγματοποιηθεί περαιτέρω επεξεργασία παρακάτω." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"Προστέθηκε {name} «{obj}». Μπορεί να πραγματοποιηθεί νέα πρόσθεση παρακάτω." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"Το αντικείμενο ({name}) «{obj}» τροποποιήθηκε. Μπορεί να πραγματοποιηθεί " -"περαιτέρω επεξεργασία παρακάτω." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"Προστέθηκε {name} «{obj}». Μπορεί να πραγματοποιηθεί περαιτέρω επεξεργασία " -"παρακάτω." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"Το αντικείμενο ({name}) «{obj}» τροποποιήθηκε. Μπορεί να προστεθεί επιπλέον " -"{name} παρακάτω." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "Το αντικείμενο ({name}) «{obj}» τροποποιήθηκε." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Καμία αλλαγή δεν πραγματοποιήθηκε γιατί δεν έχετε επιλέξει αντικείμενο. " -"Επιλέξτε ένα ή περισσότερα αντικείμενα για να πραγματοποιήσετε ενέργειες σ' " -"αυτά." - -msgid "No action selected." -msgstr "Δεν έχει επιλεγεί ενέργεια." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "Διεγράφη το αντικείμενο (%(name)s) «%(obj)s»" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "Δεν υπάρχει %(name)s με ID «%(key)s». Ίσως να έχει διαγραφεί." - -#, python-format -msgid "Add %s" -msgstr "Να προστεθεί %s" - -#, python-format -msgid "Change %s" -msgstr "%s: Τροποποίηση" - -#, python-format -msgid "View %s" -msgstr "%s: Προβολή" - -msgid "Database error" -msgstr "Σφάλμα στη βάση δεδομένων" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s άλλαξε επιτυχώς." -msgstr[1] "%(count)s %(name)s άλλαξαν επιτυχώς." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Επιλέχθηκε %(total_count)s" -msgstr[1] "Επιλέχθηκαν και τα %(total_count)s" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Επιλέχθηκαν 0 από %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Ιστορικό αλλαγών: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Η διαγραφή του αντικειμένου (%(class_name)s) %(instance)s θα απαιτούσε τη " -"διαγραφή των παρακάτω προστατευόμενων συσχετισμένων αντικειμένων: " -"%(related_objects)s" - -msgid "Django site admin" -msgstr "Ιστότοπος διαχείρισης Django" - -msgid "Django administration" -msgstr "Διαχείριση Django" - -msgid "Site administration" -msgstr "Διαχείριση του ιστότοπου" - -msgid "Log in" -msgstr "Σύνδεση" - -#, python-format -msgid "%(app)s administration" -msgstr "Διαχείριση %(app)s" - -msgid "Page not found" -msgstr "Η σελίδα δεν βρέθηκε" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Λυπούμαστε, αλλά η σελίδα που ζητήθηκε δεν βρέθηκε." - -msgid "Home" -msgstr "Αρχική" - -msgid "Server error" -msgstr "Σφάλμα στο server" - -msgid "Server error (500)" -msgstr "Σφάλμα στο server (500)" - -msgid "Server Error (500)" -msgstr "Σφάλμα στο server (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Παρουσιάστηκε σφάλμα. Εστάλη στους διαχειριστές με email και πιθανότατα θα " -"διορθωθεί σύντομα. Ευχαριστούμε για την υπομονή σας." - -msgid "Run the selected action" -msgstr "Εκτέλεση της επιλεγμένης ενέργειας" - -msgid "Go" -msgstr "Μετάβαση" - -msgid "Click here to select the objects across all pages" -msgstr "Κάντε κλικ εδώ για να επιλέξετε τα αντικείμενα σε όλες τις σελίδες" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Επιλέξτε και τα %(total_count)s αντικείμενα (%(module_name)s)" - -msgid "Clear selection" -msgstr "Καθαρισμός επιλογής" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Μοντέλα στην εφαρμογή %(name)s" - -msgid "Add" -msgstr "Προσθήκη" - -msgid "View" -msgstr "Προβολή" - -msgid "You don’t have permission to view or edit anything." -msgstr "Δεν έχετε δικαίωμα να δείτε ή να επεξεργαστείτε κάτι." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Καταρχήν προσδιορίστε όνομα χρήστη και συνθηματικό. Κατόπιν θα σας δοθεί η " -"δυνατότητα να εισαγάγετε περισσότερες πληροφορίες για το χρήστη." - -msgid "Enter a username and password." -msgstr "Προσδιορίστε όνομα χρήστη και συνθηματικό." - -msgid "Change password" -msgstr "Αλλαγή συνθηματικού" - -msgid "Please correct the error below." -msgstr "Παρακαλούμε διορθώστε το παρακάτω λάθος." - -msgid "Please correct the errors below." -msgstr "Παρακαλοϋμε διορθώστε τα παρακάτω λάθη." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Προσδιορίστε νέο συνθηματικό για το χρήστη %(username)s." - -msgid "Welcome," -msgstr "Καλώς ήρθατε," - -msgid "View site" -msgstr "Μετάβαση στην εφαρμογή" - -msgid "Documentation" -msgstr "Τεκμηρίωση" - -msgid "Log out" -msgstr "Αποσύνδεση" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s: προσθήκη" - -msgid "History" -msgstr "Ιστορικό" - -msgid "View on site" -msgstr "Προβολή στον ιστότοπο" - -msgid "Filter" -msgstr "Φίλτρο" - -msgid "Clear all filters" -msgstr "Καθαρισμός όλων των φίλτρων" - -msgid "Remove from sorting" -msgstr "Αφαίρεση από την ταξινόμηση" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Προτεραιότητα ταξινόμησης: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Εναλλαγή ταξινόμησης" - -msgid "Delete" -msgstr "Διαγραφή" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Επιλέξατε τη διαγραφή του αντικειμένου '%(escaped_object)s' τύπου " -"%(object_name)s. Αυτό συνεπάγεται τη διαγραφή συσχετισμένων αντικειμενων για " -"τα οποία δεν έχετε δικάιωμα διαγραφής. Οι τύποι των αντικειμένων αυτών είναι:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Η διαγραφή του αντικειμένου (%(object_name)s) «%(escaped_object)s» απαιτεί " -"τη διαγραφή των παρακάτω προστατευόμενων αντικειμένων:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Επιβεβαιώστε ότι επιθυμείτε τη διαγραφή των επιλεγμένων αντικειμένων " -"(%(object_name)s \"%(escaped_object)s\"). Αν προχωρήσετε με τη διαγραφή, όλα " -"τα παρακάτω συσχετισμένα αντικείμενα θα διαγραφούν επίσης:" - -msgid "Objects" -msgstr "Αντικείμενα" - -msgid "Yes, I’m sure" -msgstr "Ναι" - -msgid "No, take me back" -msgstr "Όχι" - -msgid "Delete multiple objects" -msgstr "Διαγραφή πολλαπλών αντικειμένων" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Η διαγραφή των επιλεγμένων αντικειμένων τύπου «%(objects_name)s» θα είχε " -"αποτέλεσμα τη διαγραφή των ακόλουθων συσχετισμένων αντικειμένων για τα οποία " -"δεν έχετε το διακαίωμα διαγραφής:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Η διαγραφή των επιλεγμένων αντικειμένων τύπου «%(objects_name)s» απαιτεί τη " -"διαγραφή των παρακάτω προστατευμένων συσχετισμένων αντικειμένων:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Επιβεβαιώστε ότι επιθυμείτε τη διαγραφή των επιλεγμένων αντικειμένων τύπου " -"«%(objects_name)s». Αν προχωρήσετε με τη διαγραφή, όλα τα παρακάτω " -"συσχετισμένα αντικείμενα θα διαγραφούν επίσης:" - -msgid "Delete?" -msgstr "Διαγραφή;" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Ανά %(filter_title)s " - -msgid "Summary" -msgstr "Περίληψη" - -msgid "Recent actions" -msgstr "Πρόσφατες ενέργειες" - -msgid "My actions" -msgstr "Οι ενέργειές μου" - -msgid "None available" -msgstr "Κανένα διαθέσιμο" - -msgid "Unknown content" -msgstr "Άγνωστο περιεχόμενο" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Υπάρχει κάποιο πρόβλημα στη βάση δεδομένων. Βεβαιωθείτε πως οι κατάλληλοι " -"πίνακες έχουν δημιουργηθεί και πως υπάρχουν τα κατάλληλα δικαιώματα " -"πρόσβασης." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Έχετε ταυτοποιηθεί ως %(username)s, αλλά δεν έχετε δικαίωμα πρόσβασης σ' " -"αυτή τη σελίδα. Θέλετε να συνδεθείτε με άλλο λογαριασμό;" - -msgid "Forgotten your password or username?" -msgstr "Ξεχάσατε το συνθηματικό ή το όνομα χρήστη σας;" - -msgid "Toggle navigation" -msgstr "Εναλλαγή προβολής πλοήγησης" - -msgid "Date/time" -msgstr "Ημερομηνία/ώρα" - -msgid "User" -msgstr "Χρήστης" - -msgid "Action" -msgstr "Ενέργεια" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Αυτό το αντικείμενο δεν έχει ιστορικό αλλαγών. Πιθανότατα δεν προστέθηκε " -"μέσω του παρόντος διαχειριστικού ιστότοπου." - -msgid "Show all" -msgstr "Εμφάνιση όλων" - -msgid "Save" -msgstr "Αποθήκευση" - -msgid "Popup closing…" -msgstr "Κλείσιμο popup..." - -msgid "Search" -msgstr "Αναζήτηση" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s αποτέλεσμα" -msgstr[1] "%(counter)s αποτελέσματα" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s συνολικά" - -msgid "Save as new" -msgstr "Αποθήκευση ως νέου" - -msgid "Save and add another" -msgstr "Αποθήκευση και προσθήκη καινούργιου" - -msgid "Save and continue editing" -msgstr "Αποθήκευση και συνέχεια επεξεργασίας" - -msgid "Save and view" -msgstr "Αποθήκευση και προβολή" - -msgid "Close" -msgstr "Κλείσιμο" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Να τροποποιηθεί το επιλεγμένο αντικείμενο (%(model)s)" - -#, python-format -msgid "Add another %(model)s" -msgstr "Να προστεθεί %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Να διαγραφεί το επιλεγμένο αντικείμενο (%(model)s)" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Ευχαριστούμε που διαθέσατε χρόνο στον ιστότοπο." - -msgid "Log in again" -msgstr "Επανασύνδεση" - -msgid "Password change" -msgstr "Αλλαγή συνθηματικού" - -msgid "Your password was changed." -msgstr "Το συνθηματικό σας αλλάχθηκε." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Δώστε το παλιό σας συνθηματικό και ακολούθως το νέο σας συνθηματικό δύο " -"φορές ώστε να ελέγξουμε ότι το πληκτρολογήσατε σωστά." - -msgid "Change my password" -msgstr "Αλλαγή του συνθηματικού μου" - -msgid "Password reset" -msgstr "Επαναφορά συνθηματικού" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Το συνθηματικό σας ορίστηκε. Μπορείτε τώρα να συνδεθείτε." - -msgid "Password reset confirmation" -msgstr "Επιβεβαίωση επαναφοράς συνθηματικού" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Δώστε το νέο συνθηματικό σας δύο φορές ώστε να ελέγξουμε ότι το " -"πληκτρολογήσατε σωστά." - -msgid "New password:" -msgstr "Νέο συνθηματικό:" - -msgid "Confirm password:" -msgstr "Επιβεβαίωση συνθηματικού:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Ο σύνδεσμος που χρησιμοποιήσατε για την επαναφορά του συνθηματικού δεν είναι " -"σωστός, ίσως γιατί έχει ήδη χρησιμοποιηθεί. Πραγματοποιήστε εξαρχής τη " -"διαδικασία αίτησης επαναφοράς του συνθηματικού." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Σας στείλαμε email με οδηγίες ορισμού συνθηματικού. Θα πρέπει να το λάβετε " -"σύντομα." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Εάν δεν λάβετε email, παρακαλούμε σιγουρευτείτε ότι έχετε εισαγάγει τη " -"διεύθυνση με την οποία έχετε εγγραφεί, και ελέγξτε το φάκελο ανεπιθύμητης " -"αλληλογραφίας." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Λαμβάνετε αυτό το email επειδή ζητήσατε επαναφορά συνθηματικού για το " -"λογαριασμό σας στον ιστότοπο %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "" -"Παρακαλούμε επισκεφθείτε την ακόλουθη σελίδα και επιλέξτε νέο συνθηματικό: " - -msgid "Your username, in case you’ve forgotten:" -msgstr "Το όνομα χρήστη, σε περίπτωση που δεν το θυμάστε:" - -msgid "Thanks for using our site!" -msgstr "Ευχαριστούμε που χρησιμοποιήσατε τον ιστότοπό μας!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Η ομάδα του ιστότοπου %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Ξεχάσατε το συνθηματικό σας; Εισαγάγετε το email σας και θα σας στείλουμε " -"οδηγίες για να ορίσετε καινούργιο." - -msgid "Email address:" -msgstr "Διεύθυνση email:" - -msgid "Reset my password" -msgstr "Επαναφορά του συνθηματικού μου" - -msgid "All dates" -msgstr "Όλες οι ημερομηνίες" - -#, python-format -msgid "Select %s" -msgstr "Επιλέξτε αντικείμενο (%s)" - -#, python-format -msgid "Select %s to change" -msgstr "Επιλέξτε αντικείμενο (%s) προς αλλαγή" - -#, python-format -msgid "Select %s to view" -msgstr "Επιλέξτε αντικείμενο (%s) για προβολή" - -msgid "Date:" -msgstr "Ημ/νία:" - -msgid "Time:" -msgstr "Ώρα:" - -msgid "Lookup" -msgstr "Αναζήτηση" - -msgid "Currently:" -msgstr "Τώρα:" - -msgid "Change:" -msgstr "Επεξεργασία:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 5548ab0..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.po deleted file mode 100644 index 1ffee5d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/el/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,272 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Dimitris Glezos , 2011 -# Fotis Athineos , 2021 -# glogiotatidis , 2011 -# Jannis Leidel , 2011 -# Nikolas Demiridis , 2014 -# Nick Mavrakis , 2016 -# Pãnoș , 2014 -# Pãnoș , 2016 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-08-04 06:47+0000\n" -"Last-Translator: Fotis Athineos \n" -"Language-Team: Greek (http://www.transifex.com/django/django/language/el/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: el\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Διαθέσιμο %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Αυτή είναι η λίστα των διαθέσιμων %s. Μπορείτε να επιλέξετε κάποια, από το " -"παρακάτω πεδίο και πατώντας το βέλος \"Επιλογή\" μεταξύ των δύο πεδίων." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Πληκτρολογήστε σε αυτό το πεδίο για να φιλτράρετε τη λίστα των διαθέσιμων %s." - -msgid "Filter" -msgstr "Φίλτρο" - -msgid "Choose all" -msgstr "Επιλογή όλων" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Πατήστε για επιλογή όλων των %s με τη μία." - -msgid "Choose" -msgstr "Επιλογή" - -msgid "Remove" -msgstr "Αφαίρεση" - -#, javascript-format -msgid "Chosen %s" -msgstr "Επιλέχθηκε %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Αυτή είναι η λίστα των επιλεγμένων %s. Μπορείτε να αφαιρέσετε μερικά " -"επιλέγοντας τα απο το κουτί παρακάτω και μετά κάνοντας κλίκ στο βελάκι " -"\"Αφαίρεση\" ανάμεσα στα δύο κουτιά." - -msgid "Remove all" -msgstr "Αφαίρεση όλων" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Κλίκ για να αφαιρεθούν όλα τα επιλεγμένα %s με τη μία." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s από %(cnt)s επιλεγμένα" -msgstr[1] "%(sel)s από %(cnt)s επιλεγμένα" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Έχετε μη αποθηκευμένες αλλαγές σε μεμονωμένα επεξεργάσιμα πεδία. Άν " -"εκτελέσετε μια ενέργεια, οι μη αποθηκευμένες αλλάγες θα χαθούν" - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Έχετε επιλέξει μια ενέργεια, αλλά δεν έχετε αποθηκεύσει τις αλλαγές στα " -"εκάστωτε πεδία ακόμα. Παρακαλώ πατήστε ΟΚ για να τις αποθηκεύσετε. Θα " -"χρειαστεί να εκτελέσετε ξανά την ενέργεια." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Έχετε επιλέξει μια ενέργεια, και δεν έχετε κάνει καμία αλλαγή στα εκάστοτε " -"πεδία. Πιθανών θέλετε το κουμπί Go αντί του κουμπιού Αποθήκευσης." - -msgid "Now" -msgstr "Τώρα" - -msgid "Midnight" -msgstr "Μεσάνυχτα" - -msgid "6 a.m." -msgstr "6 π.μ." - -msgid "Noon" -msgstr "Μεσημέρι" - -msgid "6 p.m." -msgstr "6 μ.μ." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Σημείωση: Είστε %s ώρα μπροστά από την ώρα του εξυπηρετητή." -msgstr[1] "Σημείωση: Είστε %s ώρες μπροστά από την ώρα του εξυπηρετητή." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Σημείωση: Είστε %s ώρα πίσω από την ώρα του εξυπηρετητή" -msgstr[1] "Σημείωση: Είστε %s ώρες πίσω από την ώρα του εξυπηρετητή." - -msgid "Choose a Time" -msgstr "Επιλέξτε Χρόνο" - -msgid "Choose a time" -msgstr "Επιλέξτε χρόνο" - -msgid "Cancel" -msgstr "Ακύρωση" - -msgid "Today" -msgstr "Σήμερα" - -msgid "Choose a Date" -msgstr "Επιλέξτε μια Ημερομηνία" - -msgid "Yesterday" -msgstr "Χθές" - -msgid "Tomorrow" -msgstr "Αύριο" - -msgid "January" -msgstr "Ιανουάριος" - -msgid "February" -msgstr "Φεβρουάριος" - -msgid "March" -msgstr "Μάρτιος" - -msgid "April" -msgstr "Απρίλιος" - -msgid "May" -msgstr "Μάιος" - -msgid "June" -msgstr "Ιούνιος" - -msgid "July" -msgstr "Ιούλιος" - -msgid "August" -msgstr "Αύγουστος" - -msgid "September" -msgstr "Σεπτέμβριος" - -msgid "October" -msgstr "Οκτώβριος" - -msgid "November" -msgstr "Νοέμβριος" - -msgid "December" -msgstr "Δεκέμβριος" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Ιαν" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Φεβ" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Μάρ" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Απρ" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Μάι" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Ιούν" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Ιούλ" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Αύγ" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Σεπ" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Οκτ" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Νοέ" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Δεκ" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Κ" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Δ" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Τ" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Τ" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Π" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Π" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Σ" - -msgid "Show" -msgstr "Προβολή" - -msgid "Hide" -msgstr "Απόκρυψη" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.mo deleted file mode 100644 index 08a7b68..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.po deleted file mode 100644 index bce40b8..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/django.po +++ /dev/null @@ -1,940 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2010-05-13 15:35+0200\n" -"Last-Translator: Django team\n" -"Language-Team: English \n" -"Language: en\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: contrib/admin/actions.py:17 -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -#: contrib/admin/actions.py:54 -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#: contrib/admin/actions.py:64 contrib/admin/options.py:2148 -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -#: contrib/admin/actions.py:66 contrib/admin/options.py:2150 -msgid "Are you sure?" -msgstr "" - -#: contrib/admin/apps.py:13 -msgid "Administration" -msgstr "" - -#: contrib/admin/filters.py:118 contrib/admin/filters.py:233 -#: contrib/admin/filters.py:278 contrib/admin/filters.py:321 -#: contrib/admin/filters.py:463 contrib/admin/filters.py:540 -msgid "All" -msgstr "" - -#: contrib/admin/filters.py:279 -msgid "Yes" -msgstr "" - -#: contrib/admin/filters.py:280 -msgid "No" -msgstr "" - -#: contrib/admin/filters.py:295 -msgid "Unknown" -msgstr "" - -#: contrib/admin/filters.py:375 -msgid "Any date" -msgstr "" - -#: contrib/admin/filters.py:377 -msgid "Today" -msgstr "" - -#: contrib/admin/filters.py:384 -msgid "Past 7 days" -msgstr "" - -#: contrib/admin/filters.py:391 -msgid "This month" -msgstr "" - -#: contrib/admin/filters.py:398 -msgid "This year" -msgstr "" - -#: contrib/admin/filters.py:408 -msgid "No date" -msgstr "" - -#: contrib/admin/filters.py:409 -msgid "Has date" -msgstr "" - -#: contrib/admin/filters.py:541 -msgid "Empty" -msgstr "" - -#: contrib/admin/filters.py:542 -msgid "Not empty" -msgstr "" - -#: contrib/admin/forms.py:14 -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -#: contrib/admin/helpers.py:30 -msgid "Action:" -msgstr "" - -#: contrib/admin/helpers.py:431 -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -#: contrib/admin/helpers.py:435 -msgid "Remove" -msgstr "" - -#: contrib/admin/models.py:18 -msgid "Addition" -msgstr "" - -#: contrib/admin/models.py:19 contrib/admin/templates/admin/app_list.html:28 -#: contrib/admin/templates/admin/edit_inline/stacked.html:16 -#: contrib/admin/templates/admin/edit_inline/tabular.html:36 -#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:12 -msgid "Change" -msgstr "" - -#: contrib/admin/models.py:20 -msgid "Deletion" -msgstr "" - -#: contrib/admin/models.py:50 -msgid "action time" -msgstr "" - -#: contrib/admin/models.py:57 -msgid "user" -msgstr "" - -#: contrib/admin/models.py:62 -msgid "content type" -msgstr "" - -#: contrib/admin/models.py:66 -msgid "object id" -msgstr "" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -#: contrib/admin/models.py:69 -msgid "object repr" -msgstr "" - -#: contrib/admin/models.py:71 -msgid "action flag" -msgstr "" - -#: contrib/admin/models.py:74 -msgid "change message" -msgstr "" - -#: contrib/admin/models.py:79 -msgid "log entry" -msgstr "" - -#: contrib/admin/models.py:80 -msgid "log entries" -msgstr "" - -#: contrib/admin/models.py:89 -#, python-format -msgid "Added “%(object)s”." -msgstr "" - -#: contrib/admin/models.py:91 -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#: contrib/admin/models.py:96 -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "" - -#: contrib/admin/models.py:98 -msgid "LogEntry Object" -msgstr "" - -#: contrib/admin/models.py:127 -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -#: contrib/admin/models.py:132 -msgid "Added." -msgstr "" - -#: contrib/admin/models.py:140 contrib/admin/options.py:2404 -msgid "and" -msgstr "" - -#: contrib/admin/models.py:147 -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#: contrib/admin/models.py:153 -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#: contrib/admin/models.py:163 -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -#: contrib/admin/models.py:169 -msgid "No fields changed." -msgstr "" - -#: contrib/admin/options.py:232 contrib/admin/options.py:273 -msgid "None" -msgstr "" - -#: contrib/admin/options.py:325 -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#: contrib/admin/options.py:1376 contrib/admin/options.py:1405 -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -#: contrib/admin/options.py:1378 -msgid "You may edit it again below." -msgstr "" - -#: contrib/admin/options.py:1391 -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#: contrib/admin/options.py:1453 -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#: contrib/admin/options.py:1468 -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#: contrib/admin/options.py:1487 -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#: contrib/admin/options.py:1504 -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -#: contrib/admin/options.py:1582 contrib/admin/options.py:1967 -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -#: contrib/admin/options.py:1602 -msgid "No action selected." -msgstr "" - -#: contrib/admin/options.py:1633 -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#: contrib/admin/options.py:1735 -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#: contrib/admin/options.py:1846 -#, python-format -msgid "Add %s" -msgstr "" - -#: contrib/admin/options.py:1848 -#, python-format -msgid "Change %s" -msgstr "" - -#: contrib/admin/options.py:1850 -#, python-format -msgid "View %s" -msgstr "" - -#: contrib/admin/options.py:1937 -msgid "Database error" -msgstr "" - -#: contrib/admin/options.py:2027 -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/options.py:2058 -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/options.py:2064 -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#: contrib/admin/options.py:2206 -#, python-format -msgid "Change history: %s" -msgstr "" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#: contrib/admin/options.py:2398 -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#: contrib/admin/options.py:2407 -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -#: contrib/admin/sites.py:47 contrib/admin/templates/admin/base_site.html:3 -msgid "Django site admin" -msgstr "" - -#: contrib/admin/sites.py:50 contrib/admin/templates/admin/base_site.html:6 -msgid "Django administration" -msgstr "" - -#: contrib/admin/sites.py:53 -msgid "Site administration" -msgstr "" - -#: contrib/admin/sites.py:423 contrib/admin/templates/admin/login.html:63 -#: contrib/admin/templates/registration/password_reset_complete.html:15 -#: contrib/admin/tests.py:144 -msgid "Log in" -msgstr "" - -#: contrib/admin/sites.py:576 -#, python-format -msgid "%(app)s administration" -msgstr "" - -#: contrib/admin/templates/admin/404.html:4 -#: contrib/admin/templates/admin/404.html:8 -msgid "Page not found" -msgstr "" - -#: contrib/admin/templates/admin/404.html:10 -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -#: contrib/admin/templates/admin/500.html:6 -#: contrib/admin/templates/admin/app_index.html:9 -#: contrib/admin/templates/admin/auth/user/change_password.html:10 -#: contrib/admin/templates/admin/base.html:76 -#: contrib/admin/templates/admin/change_form.html:18 -#: contrib/admin/templates/admin/change_list.html:32 -#: contrib/admin/templates/admin/delete_confirmation.html:14 -#: contrib/admin/templates/admin/delete_selected_confirmation.html:14 -#: contrib/admin/templates/admin/invalid_setup.html:6 -#: contrib/admin/templates/admin/object_history.html:6 -#: contrib/admin/templates/registration/logged_out.html:4 -#: contrib/admin/templates/registration/password_change_done.html:13 -#: contrib/admin/templates/registration/password_change_form.html:14 -#: contrib/admin/templates/registration/password_reset_complete.html:6 -#: contrib/admin/templates/registration/password_reset_confirm.html:7 -#: contrib/admin/templates/registration/password_reset_done.html:6 -#: contrib/admin/templates/registration/password_reset_form.html:7 -msgid "Home" -msgstr "" - -#: contrib/admin/templates/admin/500.html:7 -msgid "Server error" -msgstr "" - -#: contrib/admin/templates/admin/500.html:11 -msgid "Server error (500)" -msgstr "" - -#: contrib/admin/templates/admin/500.html:14 -msgid "Server Error (500)" -msgstr "" - -#: contrib/admin/templates/admin/500.html:15 -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -#: contrib/admin/templates/admin/actions.html:8 -msgid "Run the selected action" -msgstr "" - -#: contrib/admin/templates/admin/actions.html:8 -msgid "Go" -msgstr "" - -#: contrib/admin/templates/admin/actions.html:16 -msgid "Click here to select the objects across all pages" -msgstr "" - -#: contrib/admin/templates/admin/actions.html:16 -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -#: contrib/admin/templates/admin/actions.html:18 -msgid "Clear selection" -msgstr "" - -#: contrib/admin/templates/admin/app_list.html:8 -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -#: contrib/admin/templates/admin/app_list.html:19 -#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:20 -msgid "Add" -msgstr "" - -#: contrib/admin/templates/admin/app_list.html:26 -#: contrib/admin/templates/admin/edit_inline/stacked.html:16 -#: contrib/admin/templates/admin/edit_inline/tabular.html:36 -#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:35 -msgid "View" -msgstr "" - -#: contrib/admin/templates/admin/app_list.html:39 -msgid "You don’t have permission to view or edit anything." -msgstr "" - -#: contrib/admin/templates/admin/auth/user/add_form.html:6 -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -#: contrib/admin/templates/admin/auth/user/add_form.html:8 -msgid "Enter a username and password." -msgstr "" - -#: contrib/admin/templates/admin/auth/user/change_password.html:14 -#: contrib/admin/templates/admin/auth/user/change_password.html:52 -#: contrib/admin/templates/admin/base.html:57 -#: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:5 -msgid "Change password" -msgstr "" - -#: contrib/admin/templates/admin/auth/user/change_password.html:25 -#: contrib/admin/templates/admin/change_form.html:43 -#: contrib/admin/templates/admin/change_list.html:52 -#: contrib/admin/templates/admin/login.html:23 -#: contrib/admin/templates/registration/password_change_form.html:25 -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/templates/admin/auth/user/change_password.html:29 -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -#: contrib/admin/templates/admin/base.html:28 -msgid "Skip to main content" -msgstr "" - -#: contrib/admin/templates/admin/base.html:43 -msgid "Welcome," -msgstr "" - -#: contrib/admin/templates/admin/base.html:48 -msgid "View site" -msgstr "" - -#: contrib/admin/templates/admin/base.html:53 -#: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:5 -msgid "Documentation" -msgstr "" - -#: contrib/admin/templates/admin/base.html:61 -#: contrib/admin/templates/registration/password_change_done.html:7 -#: contrib/admin/templates/registration/password_change_form.html:8 -msgid "Log out" -msgstr "" - -#: contrib/admin/templates/admin/base.html:73 -msgid "Breadcrumbs" -msgstr "" - -#: contrib/admin/templates/admin/change_form.html:21 -#: contrib/admin/templates/admin/change_list_object_tools.html:8 -#, python-format -msgid "Add %(name)s" -msgstr "" - -#: contrib/admin/templates/admin/change_form_object_tools.html:5 -#: contrib/admin/templates/admin/object_history.html:10 -msgid "History" -msgstr "" - -#: contrib/admin/templates/admin/change_form_object_tools.html:7 -#: contrib/admin/templates/admin/edit_inline/stacked.html:18 -#: contrib/admin/templates/admin/edit_inline/tabular.html:38 -msgid "View on site" -msgstr "" - -#: contrib/admin/templates/admin/change_list.html:77 -msgid "Filter" -msgstr "" - -#: contrib/admin/templates/admin/change_list.html:79 -msgid "Clear all filters" -msgstr "" - -#: contrib/admin/templates/admin/change_list_results.html:16 -msgid "Remove from sorting" -msgstr "" - -#: contrib/admin/templates/admin/change_list_results.html:17 -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -#: contrib/admin/templates/admin/change_list_results.html:18 -msgid "Toggle sorting" -msgstr "" - -#: contrib/admin/templates/admin/color_theme_toggle.html:3 -msgid "Toggle theme (current theme: auto)" -msgstr "" - -#: contrib/admin/templates/admin/color_theme_toggle.html:4 -msgid "Toggle theme (current theme: light)" -msgstr "" - -#: contrib/admin/templates/admin/color_theme_toggle.html:5 -msgid "Toggle theme (current theme: dark)" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:18 -#: contrib/admin/templates/admin/submit_line.html:11 -#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:28 -msgid "Delete" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:25 -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:30 -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:35 -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:37 -#: contrib/admin/templates/admin/delete_selected_confirmation.html:31 -msgid "Objects" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:44 -#: contrib/admin/templates/admin/delete_selected_confirmation.html:42 -msgid "Yes, I’m sure" -msgstr "" - -#: contrib/admin/templates/admin/delete_confirmation.html:45 -#: contrib/admin/templates/admin/delete_selected_confirmation.html:43 -msgid "No, take me back" -msgstr "" - -#: contrib/admin/templates/admin/delete_selected_confirmation.html:17 -msgid "Delete multiple objects" -msgstr "" - -#: contrib/admin/templates/admin/delete_selected_confirmation.html:23 -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#: contrib/admin/templates/admin/delete_selected_confirmation.html:26 -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#: contrib/admin/templates/admin/delete_selected_confirmation.html:29 -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -#: contrib/admin/templates/admin/edit_inline/tabular.html:22 -msgid "Delete?" -msgstr "" - -#: contrib/admin/templates/admin/filter.html:4 -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -#: contrib/admin/templates/admin/includes/object_delete_summary.html:2 -msgid "Summary" -msgstr "" - -#: contrib/admin/templates/admin/index.html:23 -msgid "Recent actions" -msgstr "" - -#: contrib/admin/templates/admin/index.html:24 -msgid "My actions" -msgstr "" - -#: contrib/admin/templates/admin/index.html:28 -msgid "None available" -msgstr "" - -#: contrib/admin/templates/admin/index.html:42 -msgid "Unknown content" -msgstr "" - -#: contrib/admin/templates/admin/invalid_setup.html:12 -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#: contrib/admin/templates/admin/login.html:39 -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -#: contrib/admin/templates/admin/login.html:59 -msgid "Forgotten your password or username?" -msgstr "" - -#: contrib/admin/templates/admin/nav_sidebar.html:2 -msgid "Toggle navigation" -msgstr "" - -#: contrib/admin/templates/admin/nav_sidebar.html:3 -msgid "Sidebar" -msgstr "" - -#: contrib/admin/templates/admin/nav_sidebar.html:5 -msgid "Start typing to filter…" -msgstr "" - -#: contrib/admin/templates/admin/nav_sidebar.html:6 -msgid "Filter navigation items" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:22 -msgid "Date/time" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:23 -msgid "User" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:24 -msgid "Action" -msgstr "" - -#: contrib/admin/templates/admin/object_history.html:49 -msgid "entry" -msgid_plural "entries" -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/templates/admin/object_history.html:52 -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -#: contrib/admin/templates/admin/pagination.html:10 -#: contrib/admin/templates/admin/search_form.html:9 -msgid "Show all" -msgstr "" - -#: contrib/admin/templates/admin/pagination.html:11 -#: contrib/admin/templates/admin/submit_line.html:4 -msgid "Save" -msgstr "" - -#: contrib/admin/templates/admin/popup_response.html:3 -msgid "Popup closing…" -msgstr "" - -#: contrib/admin/templates/admin/search_form.html:7 -msgid "Search" -msgstr "" - -#: contrib/admin/templates/admin/search_form.html:9 -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/templates/admin/search_form.html:9 -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -#: contrib/admin/templates/admin/submit_line.html:5 -msgid "Save as new" -msgstr "" - -#: contrib/admin/templates/admin/submit_line.html:6 -msgid "Save and add another" -msgstr "" - -#: contrib/admin/templates/admin/submit_line.html:7 -msgid "Save and continue editing" -msgstr "" - -#: contrib/admin/templates/admin/submit_line.html:7 -msgid "Save and view" -msgstr "" - -#: contrib/admin/templates/admin/submit_line.html:8 -msgid "Close" -msgstr "" - -#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:11 -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:19 -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:27 -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -#: contrib/admin/templates/admin/widgets/related_widget_wrapper.html:34 -#, python-format -msgid "View selected %(model)s" -msgstr "" - -#: contrib/admin/templates/registration/logged_out.html:10 -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -#: contrib/admin/templates/registration/logged_out.html:12 -msgid "Log in again" -msgstr "" - -#: contrib/admin/templates/registration/password_change_done.html:14 -#: contrib/admin/templates/registration/password_change_form.html:15 -msgid "Password change" -msgstr "" - -#: contrib/admin/templates/registration/password_change_done.html:19 -msgid "Your password was changed." -msgstr "" - -#: contrib/admin/templates/registration/password_change_form.html:30 -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -#: contrib/admin/templates/registration/password_change_form.html:58 -#: contrib/admin/templates/registration/password_reset_confirm.html:31 -msgid "Change my password" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_complete.html:7 -#: contrib/admin/templates/registration/password_reset_done.html:7 -#: contrib/admin/templates/registration/password_reset_form.html:8 -msgid "Password reset" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_complete.html:13 -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -#: contrib/admin/templates/registration/password_reset_confirm.html:8 -msgid "Password reset confirmation" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_confirm.html:16 -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -#: contrib/admin/templates/registration/password_reset_confirm.html:23 -msgid "New password:" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_confirm.html:28 -msgid "Confirm password:" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_confirm.html:37 -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -#: contrib/admin/templates/registration/password_reset_done.html:13 -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -#: contrib/admin/templates/registration/password_reset_done.html:15 -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:10 -msgid "Thanks for using our site!" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_email.html:12 -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_form.html:14 -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -#: contrib/admin/templates/registration/password_reset_form.html:20 -msgid "Email address:" -msgstr "" - -#: contrib/admin/templates/registration/password_reset_form.html:23 -msgid "Reset my password" -msgstr "" - -#: contrib/admin/templatetags/admin_list.py:433 -msgid "All dates" -msgstr "" - -#: contrib/admin/views/main.py:125 -#, python-format -msgid "Select %s" -msgstr "" - -#: contrib/admin/views/main.py:127 -#, python-format -msgid "Select %s to change" -msgstr "" - -#: contrib/admin/views/main.py:129 -#, python-format -msgid "Select %s to view" -msgstr "" - -#: contrib/admin/widgets.py:90 -msgid "Date:" -msgstr "" - -#: contrib/admin/widgets.py:91 -msgid "Time:" -msgstr "" - -#: contrib/admin/widgets.py:155 -msgid "Lookup" -msgstr "" - -#: contrib/admin/widgets.py:375 -msgid "Currently:" -msgstr "" - -#: contrib/admin/widgets.py:376 -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 08a7b68..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po deleted file mode 100644 index 434e10f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,329 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2010-05-13 15:35+0200\n" -"Last-Translator: Django team\n" -"Language-Team: English \n" -"Language: en\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: contrib/admin/static/admin/js/SelectFilter2.js:38 -#, javascript-format -msgid "Available %s" -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:44 -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:60 -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:65 -#: contrib/admin/static/admin/js/SelectFilter2.js:110 -msgid "Filter" -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:69 -msgid "Choose all" -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:69 -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:75 -msgid "Choose" -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:77 -msgid "Remove" -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:83 -#, javascript-format -msgid "Chosen %s" -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:89 -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:105 -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:120 -msgid "Remove all" -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:120 -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -#: contrib/admin/static/admin/js/SelectFilter2.js:211 -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/static/admin/js/actions.js:67 -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/static/admin/js/actions.js:161 -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -#: contrib/admin/static/admin/js/actions.js:174 -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -#: contrib/admin/static/admin/js/actions.js:175 -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:13 -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:110 -msgid "Now" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:14 -msgid "Midnight" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:15 -msgid "6 a.m." -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:16 -msgid "Noon" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:17 -msgid "6 p.m." -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:78 -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:86 -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:128 -msgid "Choose a Time" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:158 -msgid "Choose a time" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:175 -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:333 -msgid "Cancel" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:238 -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:318 -msgid "Today" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:255 -msgid "Choose a Date" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:312 -msgid "Yesterday" -msgstr "" - -#: contrib/admin/static/admin/js/admin/DateTimeShortcuts.js:324 -msgid "Tomorrow" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:11 -msgid "January" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:12 -msgid "February" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:13 -msgid "March" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:14 -msgid "April" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:15 -msgid "May" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:16 -msgid "June" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:17 -msgid "July" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:18 -msgid "August" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:19 -msgid "September" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:20 -msgid "October" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:21 -msgid "November" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:22 -msgid "December" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:25 -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:26 -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:27 -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:28 -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:29 -msgctxt "abbrev. month May" -msgid "May" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:30 -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:31 -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:32 -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:33 -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:34 -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:35 -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:36 -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:39 -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:40 -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:41 -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:42 -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:43 -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:44 -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -#: contrib/admin/static/admin/js/calendar.js:45 -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -#: contrib/admin/static/admin/js/collapse.js:16 -#: contrib/admin/static/admin/js/collapse.js:34 -msgid "Show" -msgstr "" - -#: contrib/admin/static/admin/js/collapse.js:30 -msgid "Hide" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo deleted file mode 100644 index c86ec5d..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po deleted file mode 100644 index dfe62a0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po +++ /dev/null @@ -1,724 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Tom Fifield , 2014 -# Tom Fifield , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-09-22 07:21+0000\n" -"Last-Translator: Transifex Bot <>\n" -"Language-Team: English (Australia) (http://www.transifex.com/django/django/" -"language/en_AU/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: en_AU\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Delete selected %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Successfully deleted %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Cannot delete %(name)s" - -msgid "Are you sure?" -msgstr "Are you sure?" - -msgid "Administration" -msgstr "Administration" - -msgid "All" -msgstr "All" - -msgid "Yes" -msgstr "Yes" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Unknown" - -msgid "Any date" -msgstr "Any date" - -msgid "Today" -msgstr "Today" - -msgid "Past 7 days" -msgstr "Past 7 days" - -msgid "This month" -msgstr "This month" - -msgid "This year" -msgstr "This year" - -msgid "No date" -msgstr "No date" - -msgid "Has date" -msgstr "Has date" - -msgid "Empty" -msgstr "Empty" - -msgid "Not empty" -msgstr "Not empty" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." - -msgid "Action:" -msgstr "Action:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Add another %(verbose_name)s" - -msgid "Remove" -msgstr "Remove" - -msgid "Addition" -msgstr "Addition" - -msgid "Change" -msgstr "Change" - -msgid "Deletion" -msgstr "Deletion" - -msgid "action time" -msgstr "action time" - -msgid "user" -msgstr "user" - -msgid "content type" -msgstr "content type" - -msgid "object id" -msgstr "object id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "object repr" - -msgid "action flag" -msgstr "action flag" - -msgid "change message" -msgstr "change message" - -msgid "log entry" -msgstr "log entry" - -msgid "log entries" -msgstr "log entries" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Added “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Changed “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Deleted “%(object)s.”" - -msgid "LogEntry Object" -msgstr "LogEntry Object" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Added {name} “{object}”." - -msgid "Added." -msgstr "Added." - -msgid "and" -msgstr "and" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Changed {fields} for {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Changed {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Deleted {name} “{object}”." - -msgid "No fields changed." -msgstr "No fields changed." - -msgid "None" -msgstr "None" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "Hold down “Control”, or “Command” on a Mac, to select more than one." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "The {name} “{obj}” was added successfully." - -msgid "You may edit it again below." -msgstr "You may edit it again below." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"The {name} “{obj}” was added successfully. You may add another {name} below." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"The {name} “{obj}” was changed successfully. You may edit it again below." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"The {name} “{obj}” was added successfully. You may edit it again below." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "The {name} “{obj}” was changed successfully." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." - -msgid "No action selected." -msgstr "No action selected." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "The %(name)s “%(obj)s” was deleted successfully." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" - -#, python-format -msgid "Add %s" -msgstr "Add %s" - -#, python-format -msgid "Change %s" -msgstr "Change %s" - -#, python-format -msgid "View %s" -msgstr "View %s" - -msgid "Database error" -msgstr "Database error" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s was changed successfully." -msgstr[1] "%(count)s %(name)s were changed successfully." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s selected" -msgstr[1] "All %(total_count)s selected" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 of %(cnt)s selected" - -#, python-format -msgid "Change history: %s" -msgstr "Change history: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django site admin" - -msgid "Django administration" -msgstr "Django administration" - -msgid "Site administration" -msgstr "Site administration" - -msgid "Log in" -msgstr "Log in" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s administration" - -msgid "Page not found" -msgstr "Page not found" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "We’re sorry, but the requested page could not be found." - -msgid "Home" -msgstr "Home" - -msgid "Server error" -msgstr "Server error" - -msgid "Server error (500)" -msgstr "Server error (500)" - -msgid "Server Error (500)" -msgstr "Server Error (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." - -msgid "Run the selected action" -msgstr "Run the selected action" - -msgid "Go" -msgstr "Go" - -msgid "Click here to select the objects across all pages" -msgstr "Click here to select the objects across all pages" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Select all %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Clear selection" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Models in the %(name)s application" - -msgid "Add" -msgstr "Add" - -msgid "View" -msgstr "View" - -msgid "You don’t have permission to view or edit anything." -msgstr "You don’t have permission to view or edit anything." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." - -msgid "Enter a username and password." -msgstr "Enter a username and password." - -msgid "Change password" -msgstr "Change password" - -msgid "Please correct the error below." -msgstr "Please correct the error below." - -msgid "Please correct the errors below." -msgstr "Please correct the errors below." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Enter a new password for the user %(username)s." - -msgid "Welcome," -msgstr "Welcome," - -msgid "View site" -msgstr "View site" - -msgid "Documentation" -msgstr "Documentation" - -msgid "Log out" -msgstr "Log out" - -#, python-format -msgid "Add %(name)s" -msgstr "Add %(name)s" - -msgid "History" -msgstr "History" - -msgid "View on site" -msgstr "View on site" - -msgid "Filter" -msgstr "Filter" - -msgid "Clear all filters" -msgstr "Clear all filters" - -msgid "Remove from sorting" -msgstr "Remove from sorting" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sorting priority: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Toggle sorting" - -msgid "Delete" -msgstr "Delete" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" - -msgid "Objects" -msgstr "Objects" - -msgid "Yes, I’m sure" -msgstr "Yes, I’m sure" - -msgid "No, take me back" -msgstr "No, take me back" - -msgid "Delete multiple objects" -msgstr "Delete multiple objects" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" - -msgid "Delete?" -msgstr "Delete?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " By %(filter_title)s " - -msgid "Summary" -msgstr "Summary" - -msgid "Recent actions" -msgstr "Recent actions" - -msgid "My actions" -msgstr "My actions" - -msgid "None available" -msgstr "None available" - -msgid "Unknown content" -msgstr "Unknown content" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"You are authenticated as %(username)s, but are not authorised to access this " -"page. Would you like to login to a different account?" - -msgid "Forgotten your password or username?" -msgstr "Forgotten your password or username?" - -msgid "Toggle navigation" -msgstr "Toggle navigation" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Date/time" - -msgid "User" -msgstr "User" - -msgid "Action" -msgstr "Action" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." - -msgid "Show all" -msgstr "Show all" - -msgid "Save" -msgstr "Save" - -msgid "Popup closing…" -msgstr "Popup closing…" - -msgid "Search" -msgstr "Search" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s result" -msgstr[1] "%(counter)s results" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s total" - -msgid "Save as new" -msgstr "Save as new" - -msgid "Save and add another" -msgstr "Save and add another" - -msgid "Save and continue editing" -msgstr "Save and continue editing" - -msgid "Save and view" -msgstr "Save and view" - -msgid "Close" -msgstr "Close" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Change selected %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Add another %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Delete selected %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Log in again" - -msgid "Password change" -msgstr "Password change" - -msgid "Your password was changed." -msgstr "Your password was changed." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." - -msgid "Change my password" -msgstr "Change my password" - -msgid "Password reset" -msgstr "Password reset" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Your password has been set. You may go ahead and log in now." - -msgid "Password reset confirmation" -msgstr "Password reset confirmation" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." - -msgid "New password:" -msgstr "New password:" - -msgid "Confirm password:" -msgstr "Confirm password:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Please go to the following page and choose a new password:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Your username, in case you’ve forgotten:" - -msgid "Thanks for using our site!" -msgstr "Thanks for using our site!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "The %(site_name)s team" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." - -msgid "Email address:" -msgstr "Email address:" - -msgid "Reset my password" -msgstr "Reset my password" - -msgid "All dates" -msgstr "All dates" - -#, python-format -msgid "Select %s" -msgstr "Select %s" - -#, python-format -msgid "Select %s to change" -msgstr "Select %s to change" - -#, python-format -msgid "Select %s to view" -msgstr "Select %s to view" - -msgid "Date:" -msgstr "Date:" - -msgid "Time:" -msgstr "Time:" - -msgid "Lookup" -msgstr "Lookup" - -msgid "Currently:" -msgstr "Currently:" - -msgid "Change:" -msgstr "Change:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 077e784..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po deleted file mode 100644 index c4e52eb..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,266 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Tom Fifield , 2014 -# Tom Fifield , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-11 13:13+0000\n" -"Last-Translator: Tom Fifield \n" -"Language-Team: English (Australia) (http://www.transifex.com/django/django/" -"language/en_AU/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: en_AU\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Available %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Type into this box to filter down the list of available %s." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Choose all" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Click to choose all %s at once." - -msgid "Choose" -msgstr "Choose" - -msgid "Remove" -msgstr "Remove" - -#, javascript-format -msgid "Chosen %s" -msgstr "Chosen %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." - -msgid "Remove all" -msgstr "Remove all" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Click to remove all chosen %s at once." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s of %(cnt)s selected" -msgstr[1] "%(sel)s of %(cnt)s selected" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." - -msgid "Now" -msgstr "Now" - -msgid "Midnight" -msgstr "Midnight" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Noon" - -msgid "6 p.m." -msgstr "6 p.m." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Note: You are %s hour ahead of server time." -msgstr[1] "Note: You are %s hours ahead of server time." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Note: You are %s hour behind server time." -msgstr[1] "Note: You are %s hours behind server time." - -msgid "Choose a Time" -msgstr "Choose a Time" - -msgid "Choose a time" -msgstr "Choose a time" - -msgid "Cancel" -msgstr "Cancel" - -msgid "Today" -msgstr "Today" - -msgid "Choose a Date" -msgstr "Choose a Date" - -msgid "Yesterday" -msgstr "Yesterday" - -msgid "Tomorrow" -msgstr "Tomorrow" - -msgid "January" -msgstr "January" - -msgid "February" -msgstr "February" - -msgid "March" -msgstr "March" - -msgid "April" -msgstr "April" - -msgid "May" -msgstr "May" - -msgid "June" -msgstr "June" - -msgid "July" -msgstr "July" - -msgid "August" -msgstr "August" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "October" - -msgid "November" -msgstr "November" - -msgid "December" -msgstr "December" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "May" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Oct" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "S" - -msgctxt "one letter Monday" -msgid "M" -msgstr "M" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "W" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "T" - -msgctxt "one letter Friday" -msgid "F" -msgstr "F" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Show" - -msgid "Hide" -msgstr "Hide" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo deleted file mode 100644 index b20f7bd..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.po deleted file mode 100644 index 167a0db..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/django.po +++ /dev/null @@ -1,691 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Adam Forster , 2019 -# jon_atkinson , 2011-2012 -# Ross Poulton , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-04-05 10:37+0000\n" -"Last-Translator: Adam Forster \n" -"Language-Team: English (United Kingdom) (http://www.transifex.com/django/" -"django/language/en_GB/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: en_GB\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Successfully deleted %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Cannot delete %(name)s" - -msgid "Are you sure?" -msgstr "Are you sure?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Delete selected %(verbose_name_plural)s" - -msgid "Administration" -msgstr "Administration" - -msgid "All" -msgstr "All" - -msgid "Yes" -msgstr "Yes" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Unknown" - -msgid "Any date" -msgstr "Any date" - -msgid "Today" -msgstr "Today" - -msgid "Past 7 days" -msgstr "Past 7 days" - -msgid "This month" -msgstr "This month" - -msgid "This year" -msgstr "This year" - -msgid "No date" -msgstr "No date" - -msgid "Has date" -msgstr "Has date" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." - -msgid "Action:" -msgstr "Action:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Add another %(verbose_name)s" - -msgid "Remove" -msgstr "Remove" - -msgid "Addition" -msgstr "Addition" - -msgid "Change" -msgstr "Change" - -msgid "Deletion" -msgstr "Deletion" - -msgid "action time" -msgstr "action time" - -msgid "user" -msgstr "user" - -msgid "content type" -msgstr "content type" - -msgid "object id" -msgstr "object id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "object repr" - -msgid "action flag" -msgstr "action flag" - -msgid "change message" -msgstr "change message" - -msgid "log entry" -msgstr "log entry" - -msgid "log entries" -msgstr "log entries" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Added \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Changed \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Deleted \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "LogEntry Object" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "Added {name} \"{object}\"." - -msgid "Added." -msgstr "Added." - -msgid "and" -msgstr "and" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "No fields changed." - -msgid "None" -msgstr "None" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." - -msgid "No action selected." -msgstr "No action selected." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "The %(name)s \"%(obj)s\" was deleted successfully." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Add %s" - -#, python-format -msgid "Change %s" -msgstr "Change %s" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "Database error" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s was changed successfully." -msgstr[1] "%(count)s %(name)s were changed successfully." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s selected" -msgstr[1] "All %(total_count)s selected" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 of %(cnt)s selected" - -#, python-format -msgid "Change history: %s" -msgstr "Change history: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "Django site admin" - -msgid "Django administration" -msgstr "Django administration" - -msgid "Site administration" -msgstr "Site administration" - -msgid "Log in" -msgstr "Log in" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "Page not found" - -msgid "We're sorry, but the requested page could not be found." -msgstr "We're sorry, but the requested page could not be found." - -msgid "Home" -msgstr "Home" - -msgid "Server error" -msgstr "Server error" - -msgid "Server error (500)" -msgstr "Server error (500)" - -msgid "Server Error (500)" -msgstr "Server Error (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Run the selected action" - -msgid "Go" -msgstr "Go" - -msgid "Click here to select the objects across all pages" -msgstr "Click here to select the objects across all pages" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Select all %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Clear selection" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." - -msgid "Enter a username and password." -msgstr "Enter a username and password." - -msgid "Change password" -msgstr "Change password" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Enter a new password for the user %(username)s." - -msgid "Welcome," -msgstr "Welcome," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "Documentation" - -msgid "Log out" -msgstr "Log out" - -#, python-format -msgid "Add %(name)s" -msgstr "Add %(name)s" - -msgid "History" -msgstr "History" - -msgid "View on site" -msgstr "View on site" - -msgid "Filter" -msgstr "Filter" - -msgid "Remove from sorting" -msgstr "Remove from sorting" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sorting priority: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Toggle sorting" - -msgid "Delete" -msgstr "Delete" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "Yes, I'm sure" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "Delete multiple objects" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" - -msgid "View" -msgstr "" - -msgid "Delete?" -msgstr "Delete?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " By %(filter_title)s " - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "Add" - -msgid "You don't have permission to view or edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "None available" - -msgid "Unknown content" -msgstr "Unknown content" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "Forgotten your password or username?" - -msgid "Date/time" -msgstr "Date/time" - -msgid "User" -msgstr "User" - -msgid "Action" -msgstr "Action" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." - -msgid "Show all" -msgstr "Show all" - -msgid "Save" -msgstr "Save" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "Search" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s result" -msgstr[1] "%(counter)s results" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s total" - -msgid "Save as new" -msgstr "Save as new" - -msgid "Save and add another" -msgstr "Save and add another" - -msgid "Save and continue editing" -msgstr "Save and continue editing" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Thanks for spending some quality time with the Web site today." - -msgid "Log in again" -msgstr "Log in again" - -msgid "Password change" -msgstr "Password change" - -msgid "Your password was changed." -msgstr "Your password was changed." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." - -msgid "Change my password" -msgstr "Change my password" - -msgid "Password reset" -msgstr "Password reset" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Your password has been set. You may go ahead and log in now." - -msgid "Password reset confirmation" -msgstr "Password reset confirmation" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." - -msgid "New password:" -msgstr "New password:" - -msgid "Confirm password:" -msgstr "Confirm password:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "Please go to the following page and choose a new password:" - -msgid "Your username, in case you've forgotten:" -msgstr "Your username, in case you've forgotten:" - -msgid "Thanks for using our site!" -msgstr "Thanks for using our site!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "The %(site_name)s team" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "Reset my password" - -msgid "All dates" -msgstr "All dates" - -#, python-format -msgid "Select %s" -msgstr "Select %s" - -#, python-format -msgid "Select %s to change" -msgstr "Select %s to change" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "Date:" - -msgid "Time:" -msgstr "Time:" - -msgid "Lookup" -msgstr "Lookup" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 0967a38..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po deleted file mode 100644 index 03cf679..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,218 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# jon_atkinson , 2012 -# Ross Poulton , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: English (United Kingdom) (http://www.transifex.com/django/" -"django/language/en_GB/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: en_GB\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Available %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Type into this box to filter down the list of available %s." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Choose all" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Click to choose all %s at once." - -msgid "Choose" -msgstr "Choose" - -msgid "Remove" -msgstr "Remove" - -#, javascript-format -msgid "Chosen %s" -msgstr "Chosen %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." - -msgid "Remove all" -msgstr "Remove all" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Click to remove all chosen %s at once." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s of %(cnt)s selected" -msgstr[1] "%(sel)s of %(cnt)s selected" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "Now" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "Choose a time" - -msgid "Midnight" -msgstr "Midnight" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Noon" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "Cancel" - -msgid "Today" -msgstr "Today" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "Yesterday" - -msgid "Tomorrow" -msgstr "Tomorrow" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Show" - -msgid "Hide" -msgstr "Hide" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo deleted file mode 100644 index b05f121..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.po deleted file mode 100644 index ddc5901..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/django.po +++ /dev/null @@ -1,728 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Batist D 🐍 , 2012-2013 -# Batist D 🐍 , 2013-2019 -# Claude Paroz , 2016 -# Dinu Gherman , 2011 -# kristjan , 2012 -# Matthieu Desplantes , 2021 -# Meiyer , 2022 -# Nikolay Korotkiy , 2017 -# Adamo Mesha , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-05-25 07:05+0000\n" -"Last-Translator: Meiyer , 2022\n" -"Language-Team: Esperanto (http://www.transifex.com/django/django/language/" -"eo/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: eo\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Forigi elektitajn %(verbose_name_plural)sn" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Sukcese forigis %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Ne povas forigi %(name)s" - -msgid "Are you sure?" -msgstr "Ĉu vi certas?" - -msgid "Administration" -msgstr "Administrado" - -msgid "All" -msgstr "Ĉio" - -msgid "Yes" -msgstr "Jes" - -msgid "No" -msgstr "Ne" - -msgid "Unknown" -msgstr "Nekonata" - -msgid "Any date" -msgstr "Ajna dato" - -msgid "Today" -msgstr "Hodiaŭ" - -msgid "Past 7 days" -msgstr "Lastaj 7 tagoj" - -msgid "This month" -msgstr "Ĉi tiu monato" - -msgid "This year" -msgstr "Ĉi tiu jaro" - -msgid "No date" -msgstr "Neniu dato" - -msgid "Has date" -msgstr "Havas daton" - -msgid "Empty" -msgstr "Malplena" - -msgid "Not empty" -msgstr "Ne malplena" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Bonvolu enigi la ĝustajn %(username)sn kaj pasvorton por personara konto. " -"Notu, ke ambaŭ kampoj povas esti uskleco-distingaj." - -msgid "Action:" -msgstr "Ago:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Aldoni alian %(verbose_name)sn" - -msgid "Remove" -msgstr "Forigi" - -msgid "Addition" -msgstr "Aldono" - -msgid "Change" -msgstr "Ŝanĝi" - -msgid "Deletion" -msgstr "Forviŝo" - -msgid "action time" -msgstr "aga tempo" - -msgid "user" -msgstr "uzanto" - -msgid "content type" -msgstr "enhava tipo" - -msgid "object id" -msgstr "objekta identigaĵo" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objekta prezento" - -msgid "action flag" -msgstr "aga marko" - -msgid "change message" -msgstr "ŝanĝmesaĝo" - -msgid "log entry" -msgstr "protokolero" - -msgid "log entries" -msgstr "protokoleroj" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Aldono de “%(object)s”" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Ŝanĝo de “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Forigo de “%(object)s”" - -msgid "LogEntry Object" -msgstr "Protokolera objekto" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Aldonita(j) {name} “{object}”." - -msgid "Added." -msgstr "Aldonita." - -msgid "and" -msgstr "kaj" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Ŝanĝita(j) {fields} por {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Ŝanĝita(j) {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Forigita(j) {name} “{object}”." - -msgid "No fields changed." -msgstr "Neniu kampo ŝanĝita." - -msgid "None" -msgstr "Neniu" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "La {name} “{obj}” estis sukcese aldonita(j)." - -msgid "You may edit it again below." -msgstr "Eblas redakti ĝin sube." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Elementoj devas esti elektitaj por agi je ili. Neniu elemento estis ŝanĝita." - -msgid "No action selected." -msgstr "Neniu ago elektita." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "La %(name)s “%(obj)s” estis sukcese forigita(j)." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Aldoni %sn" - -#, python-format -msgid "Change %s" -msgstr "Ŝanĝi %s" - -#, python-format -msgid "View %s" -msgstr "Vidi %sn" - -msgid "Database error" -msgstr "Datumbaza eraro" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s estis sukcese ŝanĝita." -msgstr[1] "%(count)s %(name)s estis sukcese ŝanĝitaj." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s elektitaj" -msgstr[1] "Ĉiuj %(total_count)s elektitaj" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 el %(cnt)s elektita" - -#, python-format -msgid "Change history: %s" -msgstr "Ŝanĝa historio: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Forigi la %(class_name)s-n “%(instance)s” postulus forigi la sekvajn " -"protektitajn rilatajn objektojn: %(related_objects)s" - -msgid "Django site admin" -msgstr "Dĵanga reteja administrado" - -msgid "Django administration" -msgstr "Dĵanga administrado" - -msgid "Site administration" -msgstr "Reteja administrado" - -msgid "Log in" -msgstr "Ensaluti" - -#, python-format -msgid "%(app)s administration" -msgstr "Administrado de %(app)s" - -msgid "Page not found" -msgstr "Paĝo ne trovita" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Bedaŭrinde la petita paĝo ne estis trovita." - -msgid "Home" -msgstr "Ĉefpaĝo" - -msgid "Server error" -msgstr "Servila eraro" - -msgid "Server error (500)" -msgstr "Servila eraro (500)" - -msgid "Server Error (500)" -msgstr "Servila eraro (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Lanĉi la elektitan agon" - -msgid "Go" -msgstr "Ek" - -msgid "Click here to select the objects across all pages" -msgstr "Klaku ĉi-tie por elekti la objektojn trans ĉiuj paĝoj" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Elekti ĉiuj %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Viŝi elekton" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modeloj en la aplikaĵo “%(name)s”" - -msgid "Add" -msgstr "Aldoni" - -msgid "View" -msgstr "Vidi" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "Enigu salutnomon kaj pasvorton." - -msgid "Change password" -msgstr "Ŝanĝi pasvorton" - -msgid "Please correct the error below." -msgstr "Bonvolu ĝustigi la eraron sube." - -msgid "Please correct the errors below." -msgstr "Bonvolu ĝustigi la erarojn sube." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Enigu novan pasvorton por la uzanto %(username)s." - -msgid "Welcome," -msgstr "Bonvenon," - -msgid "View site" -msgstr "Vidi retejon" - -msgid "Documentation" -msgstr "Dokumentaro" - -msgid "Log out" -msgstr "Elsaluti" - -#, python-format -msgid "Add %(name)s" -msgstr "Aldoni %(name)sn" - -msgid "History" -msgstr "Historio" - -msgid "View on site" -msgstr "Vidi sur retejo" - -msgid "Filter" -msgstr "Filtri" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "Forigi el ordigado" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Ordiga prioritato: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Ŝalti ordigadon" - -msgid "Delete" -msgstr "Forigi" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Foriganti la %(object_name)s '%(escaped_object)s' rezultus en foriganti " -"rilatajn objektojn, sed via konto ne havas permeson por forigi la sekvantajn " -"tipojn de objektoj:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Forigi la %(object_name)s '%(escaped_object)s' postulus forigi la sekvajn " -"protektitajn rilatajn objektojn:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ĉu vi certas, ke vi volas forigi %(object_name)s \"%(escaped_object)s\"? " -"Ĉiuj el la sekvaj rilataj eroj estos forigitaj:" - -msgid "Objects" -msgstr "Objektoj" - -msgid "Yes, I’m sure" -msgstr "Jes, mi certas" - -msgid "No, take me back" -msgstr "Ne, reen" - -msgid "Delete multiple objects" -msgstr "Forigi plurajn objektojn" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Forigi la %(objects_name)s rezultus en forigi rilatajn objektojn, sed via " -"konto ne havas permeson por forigi la sekvajn tipojn de objektoj:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Forigi la %(objects_name)s postulus forigi la sekvajn protektitajn rilatajn " -"objektojn:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ĉu vi certas, ke vi volas forigi la elektitajn %(objects_name)s? Ĉiuj el la " -"sekvaj objektoj kaj iliaj rilataj eroj estos forigita:" - -msgid "Delete?" -msgstr "Forviŝi?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Laŭ %(filter_title)s " - -msgid "Summary" -msgstr "Resumo" - -msgid "Recent actions" -msgstr "Lastaj agoj" - -msgid "My actions" -msgstr "Miaj agoj" - -msgid "None available" -msgstr "Neniu disponebla" - -msgid "Unknown content" -msgstr "Nekonata enhavo" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Vi estas aŭtentikigita kiel %(username)s, sed ne havas permeson aliri tiun " -"paĝon. Ĉu vi ŝatus ensaluti per alia konto?" - -msgid "Forgotten your password or username?" -msgstr "Ĉu vi forgesis vian pasvorton aŭ vian salutnomon?" - -msgid "Toggle navigation" -msgstr "Ŝalti navigadon" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Dato/horo" - -msgid "User" -msgstr "Uzanto" - -msgid "Action" -msgstr "Ago" - -msgid "entry" -msgstr "" - -msgid "entries" -msgstr "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Ĉi tiu objekto ne havas historion de ŝanĝoj. Ĝi verŝajne ne estis aldonita " -"per ĉi tiu administrejo." - -msgid "Show all" -msgstr "Montri ĉion" - -msgid "Save" -msgstr "Konservi" - -msgid "Popup closing…" -msgstr "Ŝprucfenesto fermiĝas…" - -msgid "Search" -msgstr "Serĉu" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resulto" -msgstr[1] "%(counter)s rezultoj" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s entute" - -msgid "Save as new" -msgstr "Konservi kiel novan" - -msgid "Save and add another" -msgstr "Konservi kaj aldoni alian" - -msgid "Save and continue editing" -msgstr "Konservi kaj daŭre redakti" - -msgid "Save and view" -msgstr "Konservi kaj vidi" - -msgid "Close" -msgstr "Fermi" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Redaktu elektitan %(model)sn" - -#, python-format -msgid "Add another %(model)s" -msgstr "Aldoni alian %(model)sn" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Forigi elektitan %(model)sn" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Ensaluti denove" - -msgid "Password change" -msgstr "Pasvorta ŝanĝo" - -msgid "Your password was changed." -msgstr "Via pasvorto estis sukcese ŝanĝita." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Bonvolu entajpi vian malnovan pasvorton pro sekureco, kaj entajpi vian novan " -"pasvorton dufoje, por ke ni estu certaj, ke vi tajpis ĝin ĝuste." - -msgid "Change my password" -msgstr "Ŝanĝi mian passvorton" - -msgid "Password reset" -msgstr "Pasvorta rekomencigo" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Via pasvorto estis ŝanĝita. Vi povas ensaluti nun." - -msgid "Password reset confirmation" -msgstr "Konfirmo de restarigo de pasvorto" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Bonvolu entajpi vian novan pasvorton dufoje, tiel ni povas konfirmi ke vi " -"ĝuste tajpis ĝin." - -msgid "New password:" -msgstr "Nova pasvorto:" - -msgid "Confirm password:" -msgstr "Konfirmi pasvorton:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"La ligilo por restarigi pasvorton estis malvalida, eble ĉar ĝi jam estis " -"uzita. Bonvolu denove peti restarigon de pasvorto." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Ni sendis al vi instrukciojn por starigi vian pasvorton, se ekzistas konto " -"kun la retadreso, kiun vi provizis. Vi devus ricevi ilin post mallonge." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Se vi ne ricevas retmesaĝon, bonvole certiĝu ke vi entajpis la adreson per " -"kiu vi registriĝis, kaj kontrolu en via spamujo." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Vi ricevis ĉi tiun retpoŝton ĉar vi petis pasvortan rekomencigon por via " -"uzanta konto ĉe %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Bonvolu iri al la sekvanta paĝo kaj elekti novan pasvorton:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Via uzantnomo, se vi forgesis ĝin:" - -msgid "Thanks for using our site!" -msgstr "Dankon pro uzo de nia retejo!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "La %(site_name)s teamo" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Ĉu vi forgesis vian pasvorton? Entajpu vian retpoŝtadreson sube kaj ni " -"sendos al vi retpoŝte instrukciojn por ŝanĝi ĝin." - -msgid "Email address:" -msgstr "Retpoŝto:" - -msgid "Reset my password" -msgstr "Rekomencigi mian pasvorton" - -msgid "All dates" -msgstr "Ĉiuj datoj" - -#, python-format -msgid "Select %s" -msgstr "Elekti %sn" - -#, python-format -msgid "Select %s to change" -msgstr "Elekti %sn por ŝanĝi" - -#, python-format -msgid "Select %s to view" -msgstr "Elektu %sn por vidi" - -msgid "Date:" -msgstr "Dato:" - -msgid "Time:" -msgstr "Horo:" - -msgid "Lookup" -msgstr "Trarigardo" - -msgid "Currently:" -msgstr "Nuntempe:" - -msgid "Change:" -msgstr "Ŝanĝo:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 6e86ac2..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po deleted file mode 100644 index db99913..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,268 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Batist D 🐍 , 2012 -# Batist D 🐍 , 2014-2016 -# 977db45bb2d7151f88325d4fbeca189e_848074d <3d1ba07956d05291bf7c987ecea0a7ef_13052>, 2011 -# Meiyer , 2022 -# Adamo Mesha , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-05-25 07:05+0000\n" -"Last-Translator: Meiyer , 2022\n" -"Language-Team: Esperanto (http://www.transifex.com/django/django/language/" -"eo/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: eo\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Disponeblaj %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Tio ĉi estas la listo de disponeblaj %s. Vi povas aktivigi kelkajn markante " -"ilin en la suba kesto kaj klakante la sagon “Elekti” inter la du kestoj." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Tajpu en ĉi-tiu skatolo por filtri la liston de haveblaj %s." - -msgid "Filter" -msgstr "Filtru" - -msgid "Choose all" -msgstr "Elekti ĉiujn" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klaku por tuj elekti ĉiujn %sn." - -msgid "Choose" -msgstr "Elekti" - -msgid "Remove" -msgstr "Forigi" - -#, javascript-format -msgid "Chosen %s" -msgstr "Elektitaj %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Tio ĉi estas la listo de elektitaj %s. Vi povas malaktivigi kelkajn markante " -"ilin en la suba kesto kaj klakante la sagon “Forigi” inter la du kestoj." - -msgid "Remove all" -msgstr "Forigi ĉiujn" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klaku por tuj forigi ĉiujn %sn elektitajn." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s elektita" -msgstr[1] "%(sel)s el %(cnt)s elektitaj" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Vi havas neŝirmitajn ŝanĝojn je unuopaj redakteblaj kampoj. Se vi faros " -"agon, viaj neŝirmitaj ŝanĝoj perdiĝos." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "Nun" - -msgid "Midnight" -msgstr "Noktomeze" - -msgid "6 a.m." -msgstr "6 a.t.m." - -msgid "Noon" -msgstr "Tagmeze" - -msgid "6 p.m." -msgstr "6 p.t.m." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Noto: Vi estas %s horon post la servila horo." -msgstr[1] "Noto: Vi estas %s horojn post la servila horo." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Noto: Vi estas %s horon antaŭ la servila horo." -msgstr[1] "Noto: Vi estas %s horojn antaŭ la servila horo." - -msgid "Choose a Time" -msgstr "Elektu horon" - -msgid "Choose a time" -msgstr "Elektu tempon" - -msgid "Cancel" -msgstr "Nuligi" - -msgid "Today" -msgstr "Hodiaŭ" - -msgid "Choose a Date" -msgstr "Elektu daton" - -msgid "Yesterday" -msgstr "Hieraŭ" - -msgid "Tomorrow" -msgstr "Morgaŭ" - -msgid "January" -msgstr "januaro" - -msgid "February" -msgstr "februaro" - -msgid "March" -msgstr "marto" - -msgid "April" -msgstr "aprilo" - -msgid "May" -msgstr "majo" - -msgid "June" -msgstr "junio" - -msgid "July" -msgstr "julio" - -msgid "August" -msgstr "aŭgusto" - -msgid "September" -msgstr "septembro" - -msgid "October" -msgstr "oktobro" - -msgid "November" -msgstr "novembro" - -msgid "December" -msgstr "decembro" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jan." - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "feb." - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "mar." - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "apr." - -msgctxt "abbrev. month May" -msgid "May" -msgstr "maj." - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "jun." - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "jul." - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "aŭg." - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "sep." - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "okt." - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov." - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "dec." - -msgctxt "one letter Sunday" -msgid "S" -msgstr "d" - -msgctxt "one letter Monday" -msgid "M" -msgstr "l" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "m" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "m" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "ĵ" - -msgctxt "one letter Friday" -msgid "F" -msgstr "v" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "s" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "Vi jam forsendis tiun ĉi formularon. Ĉu vi certe volas resendi ĝin?" - -msgid "Show" -msgstr "Montri" - -msgid "Hide" -msgstr "Kaŝi" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.mo deleted file mode 100644 index 8d52b53..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.po deleted file mode 100644 index 99013f5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/django.po +++ /dev/null @@ -1,784 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# abraham.martin , 2014 -# Antoni Aloy , 2011-2014 -# Claude Paroz , 2014 -# e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016 -# 8cb2d5a716c3c9a99b6d20472609a4d5_6d03802 , 2011 -# guillem , 2012 -# Ignacio José Lizarán Rus , 2019 -# Igor Támara , 2013 -# Jannis Leidel , 2011 -# Jorge Puente Sarrín , 2014-2015 -# José Luis , 2016 -# Josue Naaman Nistal Guerra , 2014 -# Luigy, 2019 -# Marc Garcia , 2011 -# Miguel Angel Tribaldos , 2017 -# Miguel Gonzalez , 2023 -# Pablo, 2015 -# Uriel Medina , 2020-2023 -# Veronicabh , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Miguel Gonzalez , 2023\n" -"Language-Team: Spanish (http://www.transifex.com/django/django/language/" -"es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Eliminar %(verbose_name_plural)s seleccionado/s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Eliminado/s %(count)d %(items)s satisfactoriamente." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "No se puede eliminar %(name)s" - -msgid "Are you sure?" -msgstr "¿Está seguro?" - -msgid "Administration" -msgstr "Administración" - -msgid "All" -msgstr "Todo" - -msgid "Yes" -msgstr "Sí" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Desconocido" - -msgid "Any date" -msgstr "Cualquier fecha" - -msgid "Today" -msgstr "Hoy" - -msgid "Past 7 days" -msgstr "Últimos 7 días" - -msgid "This month" -msgstr "Este mes" - -msgid "This year" -msgstr "Este año" - -msgid "No date" -msgstr "Sin fecha" - -msgid "Has date" -msgstr "Tiene fecha" - -msgid "Empty" -msgstr "Vacío" - -msgid "Not empty" -msgstr "No vacío" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Por favor introduzca el %(username)s y la clave correctos para una cuenta de " -"personal. Observe que ambos campos pueden ser sensibles a mayúsculas." - -msgid "Action:" -msgstr "Acción:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Agregar %(verbose_name)s adicional." - -msgid "Remove" -msgstr "Eliminar" - -msgid "Addition" -msgstr "Añadido" - -msgid "Change" -msgstr "Modificar" - -msgid "Deletion" -msgstr "Borrado" - -msgid "action time" -msgstr "hora de la acción" - -msgid "user" -msgstr "usuario" - -msgid "content type" -msgstr "tipo de contenido" - -msgid "object id" -msgstr "id del objeto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr del objeto" - -msgid "action flag" -msgstr "marca de acción" - -msgid "change message" -msgstr "mensaje de cambio" - -msgid "log entry" -msgstr "entrada de registro" - -msgid "log entries" -msgstr "entradas de registro" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Agregado “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Modificado “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Eliminado “%(object)s.”" - -msgid "LogEntry Object" -msgstr "Objeto de registro de Log" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Agregado {name} “{object}”." - -msgid "Added." -msgstr "Añadido." - -msgid "and" -msgstr "y" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Cambios en {fields} para {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Modificado {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Eliminado {name} “{object}”." - -msgid "No fields changed." -msgstr "No ha cambiado ningún campo." - -msgid "None" -msgstr "Ninguno" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Mantenga presionado \"Control\" o \"Comando\" en una Mac, para seleccionar " -"más de uno." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "El {name} “{obj}” fue agregado correctamente." - -msgid "You may edit it again below." -msgstr "Puede volverlo a editar otra vez a continuación." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"El {name} “{obj}” se agregó correctamente. Puede agregar otro {name} a " -"continuación." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"El {name} “{obj}” se cambió correctamente. Puede editarlo nuevamente a " -"continuación." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"El {name} “{obj}” se agregó correctamente. Puede editarlo nuevamente a " -"continuación." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"El {name} “{obj}” se cambió correctamente. Puede agregar otro {name} a " -"continuación." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "El {name} “{obj}” se cambió correctamente." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Se deben seleccionar elementos para poder realizar acciones sobre estos. No " -"se han modificado elementos." - -msgid "No action selected." -msgstr "No se seleccionó ninguna acción." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "El%(name)s “%(obj)s” fue eliminado con éxito." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s con el ID “%(key)s” no existe. ¿Quizás fue eliminado?" - -#, python-format -msgid "Add %s" -msgstr "Añadir %s" - -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -#, python-format -msgid "View %s" -msgstr "Vista %s" - -msgid "Database error" -msgstr "Error en la base de datos" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s fué modificado con éxito." -msgstr[1] "%(count)s %(name)s fueron modificados con éxito." -msgstr[2] "%(count)s %(name)s fueron modificados con éxito." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s seleccionado" -msgstr[1] "%(total_count)s seleccionados en total" -msgstr[2] "%(total_count)s seleccionados en total" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "seleccionados 0 de %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Histórico de modificaciones: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"La eliminación de %(class_name)s %(instance)s requeriría eliminar los " -"siguientes objetos relacionados protegidos: %(related_objects)s" - -msgid "Django site admin" -msgstr "Sitio de administración de Django" - -msgid "Django administration" -msgstr "Administración de Django" - -msgid "Site administration" -msgstr "Sitio administrativo" - -msgid "Log in" -msgstr "Iniciar sesión" - -#, python-format -msgid "%(app)s administration" -msgstr "Administración de %(app)s " - -msgid "Page not found" -msgstr "Página no encontrada" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Lo sentimos, pero no se pudo encontrar la página solicitada." - -msgid "Home" -msgstr "Inicio" - -msgid "Server error" -msgstr "Error del servidor" - -msgid "Server error (500)" -msgstr "Error del servidor (500)" - -msgid "Server Error (500)" -msgstr "Error de servidor (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Hubo un error. Se ha informado a los administradores del sitio por correo " -"electrónico y debería solucionarse en breve. Gracias por su paciencia." - -msgid "Run the selected action" -msgstr "Ejecutar la acción seleccionada" - -msgid "Go" -msgstr "Ir" - -msgid "Click here to select the objects across all pages" -msgstr "Pulse aquí para seleccionar los objetos a través de todas las páginas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Seleccionar todos los %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Limpiar selección" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelos en la aplicación %(name)s" - -msgid "Add" -msgstr "Añadir" - -msgid "View" -msgstr "Vista" - -msgid "You don’t have permission to view or edit anything." -msgstr "No cuenta con permiso para ver ni editar nada." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Primero, ingrese un nombre de usuario y contraseña. Luego, podrá editar más " -"opciones del usuario." - -msgid "Enter a username and password." -msgstr "Introduzca un nombre de usuario y contraseña" - -msgid "Change password" -msgstr "Cambiar contraseña" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Por favor, corrija el siguiente error." -msgstr[1] "Por favor, corrija los siguientes errores." -msgstr[2] "Por favor, corrija los siguientes errores." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Introduzca una nueva contraseña para el usuario %(username)s." - -msgid "Skip to main content" -msgstr "Saltar al contenido principal" - -msgid "Welcome," -msgstr "Bienvenidos," - -msgid "View site" -msgstr "Ver el sitio" - -msgid "Documentation" -msgstr "Documentación" - -msgid "Log out" -msgstr "Cerrar sesión" - -msgid "Breadcrumbs" -msgstr "Migas de pan" - -#, python-format -msgid "Add %(name)s" -msgstr "Añadir %(name)s" - -msgid "History" -msgstr "Histórico" - -msgid "View on site" -msgstr "Ver en el sitio" - -msgid "Filter" -msgstr "Filtro" - -msgid "Clear all filters" -msgstr "Borrar todos los filtros" - -msgid "Remove from sorting" -msgstr "Eliminar del ordenación" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioridad de la ordenación: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Activar la ordenación" - -msgid "Toggle theme (current theme: auto)" -msgstr "Cambiar tema (tema actual: automático)" - -msgid "Toggle theme (current theme: light)" -msgstr "Cambiar tema (tema actual: claro)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Cambiar tema (tema actual: oscuro)" - -msgid "Delete" -msgstr "Eliminar" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " -"de objetos relacionados, pero su cuenta no tiene permiso para borrar los " -"siguientes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"La eliminación de %(object_name)s %(escaped_object)s requeriría eliminar los " -"siguientes objetos relacionados protegidos:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"¿Está seguro de que quiere borrar los %(object_name)s " -"\"%(escaped_object)s\"? Se borrarán los siguientes objetos relacionados:" - -msgid "Objects" -msgstr "Objetos" - -msgid "Yes, I’m sure" -msgstr "Si, estoy seguro" - -msgid "No, take me back" -msgstr "No, llévame atrás" - -msgid "Delete multiple objects" -msgstr "Eliminar múltiples objetos." - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"La eliminación del %(objects_name)s seleccionado resultaría en el borrado de " -"objetos relacionados, pero su cuenta no tiene permisos para borrar los " -"siguientes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"La eliminación de %(objects_name)s seleccionado requeriría el borrado de los " -"siguientes objetos protegidos relacionados:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"¿Está usted seguro que quiere eliminar el %(objects_name)s seleccionado? " -"Todos los siguientes objetos y sus elementos relacionados serán borrados:" - -msgid "Delete?" -msgstr "¿Eliminar?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Por %(filter_title)s " - -msgid "Summary" -msgstr "Resumen" - -msgid "Recent actions" -msgstr "Acciones recientes" - -msgid "My actions" -msgstr "Mis acciones" - -msgid "None available" -msgstr "Ninguno disponible" - -msgid "Unknown content" -msgstr "Contenido desconocido" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Algo anda mal con la instalación de su base de datos. Asegúrese de que se " -"hayan creado las tablas de base de datos adecuadas y asegúrese de que el " -"usuario adecuado pueda leer la base de datos." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Se ha autenticado como %(username)s, pero no está autorizado a acceder a " -"esta página. ¿Desea autenticarse con una cuenta diferente?" - -msgid "Forgotten your password or username?" -msgstr "¿Ha olvidado la contraseña o el nombre de usuario?" - -msgid "Toggle navigation" -msgstr "Activar navegación" - -msgid "Sidebar" -msgstr "Barra lateral" - -msgid "Start typing to filter…" -msgstr "Empiece a escribir para filtrar…" - -msgid "Filter navigation items" -msgstr "Filtrar elementos de navegación" - -msgid "Date/time" -msgstr "Fecha/hora" - -msgid "User" -msgstr "Usuario" - -msgid "Action" -msgstr "Acción" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "entrada" -msgstr[1] "entradas" -msgstr[2] "entradas" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Este objeto no tiene un historial de cambios. Probablemente no se agregó a " -"través de este sitio de administración." - -msgid "Show all" -msgstr "Mostrar todo" - -msgid "Save" -msgstr "Guardar" - -msgid "Popup closing…" -msgstr "Cerrando ventana emergente..." - -msgid "Search" -msgstr "Buscar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultado" -msgstr[1] "%(counter)s resultados" -msgstr[2] "%(counter)s resultados" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s total" - -msgid "Save as new" -msgstr "Guardar como nuevo" - -msgid "Save and add another" -msgstr "Guardar y añadir otro" - -msgid "Save and continue editing" -msgstr "Guardar y continuar editando" - -msgid "Save and view" -msgstr "Guardar y ver" - -msgid "Close" -msgstr "Cerrar" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Cambiar %(model)s seleccionados" - -#, python-format -msgid "Add another %(model)s" -msgstr "Añadir otro %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Eliminar %(model)s seleccionada/o" - -#, python-format -msgid "View selected %(model)s" -msgstr "Ver seleccionado %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Gracias por pasar un buen rato con el sitio web hoy." - -msgid "Log in again" -msgstr "Iniciar sesión de nuevo" - -msgid "Password change" -msgstr "Cambio de contraseña" - -msgid "Your password was changed." -msgstr "Su contraseña ha sido cambiada." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Ingrese su contraseña anterior, por razones de seguridad, y luego ingrese su " -"nueva contraseña dos veces para que podamos verificar que la ingresó " -"correctamente." - -msgid "Change my password" -msgstr "Cambiar mi contraseña" - -msgid "Password reset" -msgstr "Restablecer contraseña" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Su contraseña ha sido establecida. Ahora puede continuar e iniciar sesión." - -msgid "Password reset confirmation" -msgstr "Confirmación de restablecimiento de contraseña" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Por favor, introduzca su contraseña nueva dos veces para verificar que la ha " -"escrito correctamente." - -msgid "New password:" -msgstr "Contraseña nueva:" - -msgid "Confirm password:" -msgstr "Confirme contraseña:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"El enlace de restablecimiento de contraseña era inválido, seguramente porque " -"se haya usado antes. Por favor, solicite un nuevo restablecimiento de " -"contraseña." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Le enviamos instrucciones por correo electrónico para configurar su " -"contraseña, si existe una cuenta con el correo electrónico que ingresó. " -"Debería recibirlos en breve." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Si no recibe un correo electrónico, asegúrese de haber ingresado la " -"dirección con la que se registró y verifique su carpeta de correo no deseado." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Ha recibido este correo electrónico porque ha solicitado restablecer la " -"contraseña para su cuenta en %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Por favor, vaya a la página siguiente y escoja una nueva contraseña." - -msgid "Your username, in case you’ve forgotten:" -msgstr "Su nombre de usuario, en caso de que lo haya olvidado:" - -msgid "Thanks for using our site!" -msgstr "¡Gracias por usar nuestro sitio!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "El equipo de %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"¿Olvidaste tu contraseña? Ingrese su dirección de correo electrónico a " -"continuación y le enviaremos las instrucciones para configurar una nueva." - -msgid "Email address:" -msgstr "Correo electrónico:" - -msgid "Reset my password" -msgstr "Restablecer mi contraseña" - -msgid "All dates" -msgstr "Todas las fechas" - -#, python-format -msgid "Select %s" -msgstr "Seleccione %s" - -#, python-format -msgid "Select %s to change" -msgstr "Seleccione %s a modificar" - -#, python-format -msgid "Select %s to view" -msgstr "Seleccione %s para ver" - -msgid "Date:" -msgstr "Fecha:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Buscar" - -msgid "Currently:" -msgstr "Actualmente:" - -msgid "Change:" -msgstr "Cambiar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 4998fa5..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po deleted file mode 100644 index e0d2735..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,287 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Antoni Aloy , 2011-2012 -# e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016 -# Jannis Leidel , 2011 -# Josue Naaman Nistal Guerra , 2014 -# Leonardo J. Caballero G. , 2011 -# Uriel Medina , 2020-2023 -# Veronicabh , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Uriel Medina , 2020-2023\n" -"Language-Team: Spanish (http://www.transifex.com/django/django/language/" -"es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s Disponibles" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Esta es la lista de %s disponibles. Puede elegir algunos seleccionándolos en " -"la caja inferior y luego haciendo clic en la flecha \"Elegir\" que hay entre " -"las dos cajas." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Escriba en este cuadro para filtrar la lista de %s disponibles" - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Selecciona todos" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Haga clic para seleccionar todos los %s de una vez" - -msgid "Choose" -msgstr "Elegir" - -msgid "Remove" -msgstr "Eliminar" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s elegidos" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Esta es la lista de los %s elegidos. Puede elmininar algunos " -"seleccionándolos en la caja inferior y luego haciendo click en la flecha " -"\"Eliminar\" que hay entre las dos cajas." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Escriba en este cuadro para filtrar la lista de %s seleccionados." - -msgid "Remove all" -msgstr "Eliminar todos" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Haz clic para eliminar todos los %s elegidos" - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s seleccionado" -msgstr[1] "%(sel)s de %(cnt)s seleccionados" -msgstr[2] "%(sel)s de %(cnt)s seleccionados" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tiene cambios sin guardar en campos editables individuales. Si ejecuta una " -"acción, los cambios no guardados se perderán." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Ha seleccionado una acción, pero aún no ha guardado los cambios en los " -"campos individuales. Haga clic en Aceptar para guardar. Deberá volver a " -"ejecutar la acción." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Ha seleccionado una acción y no ha realizado ningún cambio en campos " -"individuales. Probablemente esté buscando el botón 'Ir' en lugar del botón " -"'Guardar'." - -msgid "Now" -msgstr "Ahora" - -msgid "Midnight" -msgstr "Medianoche" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Mediodía" - -msgid "6 p.m." -msgstr "6 p.m." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Nota: Usted esta a %s horas por delante de la hora del servidor." -msgstr[1] "Nota: Usted va %s horas por delante de la hora del servidor." -msgstr[2] "Nota: Usted va %s horas por delante de la hora del servidor." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Nota: Usted esta a %s hora de retraso de tiempo de servidor." -msgstr[1] "Nota: Usted va %s horas por detrás de la hora del servidor." -msgstr[2] "Nota: Usted va %s horas por detrás de la hora del servidor." - -msgid "Choose a Time" -msgstr "Elija una Hora" - -msgid "Choose a time" -msgstr "Elija una hora" - -msgid "Cancel" -msgstr "Cancelar" - -msgid "Today" -msgstr "Hoy" - -msgid "Choose a Date" -msgstr "Elija una Fecha" - -msgid "Yesterday" -msgstr "Ayer" - -msgid "Tomorrow" -msgstr "Mañana" - -msgid "January" -msgstr "Enero" - -msgid "February" -msgstr "Febrero" - -msgid "March" -msgstr "Marzo" - -msgid "April" -msgstr "Abril" - -msgid "May" -msgstr "Mayo" - -msgid "June" -msgstr "Junio" - -msgid "July" -msgstr "Julio" - -msgid "August" -msgstr "Agosto" - -msgid "September" -msgstr "Septiembre" - -msgid "October" -msgstr "Octubre" - -msgid "November" -msgstr "Noviembre" - -msgid "December" -msgstr "Diciembre" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Ene" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Abr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "May" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Ago" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Oct" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dic" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "L" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "M" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "M" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "J" - -msgctxt "one letter Friday" -msgid "F" -msgstr "V" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Mostrar" - -msgid "Hide" -msgstr "Ocultar" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo deleted file mode 100644 index 5fe2d61..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po deleted file mode 100644 index eb71997..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po +++ /dev/null @@ -1,747 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Leonardo José Guzmán , 2013 -# Ramiro Morales, 2013-2022 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: Ramiro Morales\n" -"Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django/" -"language/es_AR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_AR\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Eliminar %(verbose_name_plural)s seleccionados/as" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Se eliminaron con éxito %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "No se puede eliminar %(name)s" - -msgid "Are you sure?" -msgstr "¿Está seguro?" - -msgid "Administration" -msgstr "Administración" - -msgid "All" -msgstr "Todos/as" - -msgid "Yes" -msgstr "Sí" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Desconocido" - -msgid "Any date" -msgstr "Cualquier fecha" - -msgid "Today" -msgstr "Hoy" - -msgid "Past 7 days" -msgstr "Últimos 7 días" - -msgid "This month" -msgstr "Este mes" - -msgid "This year" -msgstr "Este año" - -msgid "No date" -msgstr "Sin fecha" - -msgid "Has date" -msgstr "Tiene fecha" - -msgid "Empty" -msgstr "Vacío/a" - -msgid "Not empty" -msgstr "No vacío/a" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Por favor introduza %(username)s y contraseña correctos de una cuenta de " -"staff. Note que puede que ambos campos sean estrictos en relación a " -"diferencias entre mayúsculas y minúsculas." - -msgid "Action:" -msgstr "Acción:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Agregar otro/a %(verbose_name)s" - -msgid "Remove" -msgstr "Eliminar" - -msgid "Addition" -msgstr "Agregado" - -msgid "Change" -msgstr "Modificar" - -msgid "Deletion" -msgstr "Borrado" - -msgid "action time" -msgstr "hora de la acción" - -msgid "user" -msgstr "usuario" - -msgid "content type" -msgstr "tipo de contenido" - -msgid "object id" -msgstr "id de objeto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr de objeto" - -msgid "action flag" -msgstr "marca de acción" - -msgid "change message" -msgstr "mensaje de cambio" - -msgid "log entry" -msgstr "entrada de registro" - -msgid "log entries" -msgstr "entradas de registro" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Se agrega \"%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Se modifica \"%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Se elimina \"%(object)s”." - -msgid "LogEntry Object" -msgstr "Objeto LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Se agrega {name} \"{object}”." - -msgid "Added." -msgstr "Agregado." - -msgid "and" -msgstr "y" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Se modifican {fields} en {name} \"{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Modificación de {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Se elimina {name} \"{object}”." - -msgid "No fields changed." -msgstr "No ha modificado ningún campo." - -msgid "None" -msgstr "Ninguno" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Mantenga presionada \"Control” (\"Command” en una Mac) para seleccionar más " -"de uno." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Se agregó con éxito {name} \"{obj}”." - -msgid "You may edit it again below." -msgstr "Puede modificarlo/a nuevamente mas abajo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"Se agregó con éxito {name} \"{obj}”. Puede agregar otro/a {name} abajo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"Se modificó con éxito {name} \"{obj}”. Puede modificarlo/a nuevamente abajo." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "Se agregó con éxito {name} \"{obj}”. Puede modificarlo/a abajo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"Se modificó con éxito {name} \"{obj}”. Puede agregar otro {name} abajo." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "Se modificó con éxito {name} \"{obj}”." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Deben existir ítems seleccionados para poder realizar acciones sobre los " -"mismos. No se modificó ningún ítem." - -msgid "No action selected." -msgstr "No se ha seleccionado ninguna acción." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "Se eliminó con éxito %(name)s \"%(obj)s”." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "No existe %(name)s con ID \"%(key)s”. ¿Quizá fue eliminado/a?" - -#, python-format -msgid "Add %s" -msgstr "Agregar %s" - -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -#, python-format -msgid "View %s" -msgstr "Ver %s" - -msgid "Database error" -msgstr "Error de base de datos" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "Se ha modificado con éxito %(count)s %(name)s." -msgstr[1] "Se han modificado con éxito %(count)s %(name)s." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s seleccionados/as" -msgstr[1] "Todos/as (%(total_count)s en total) han sido seleccionados/as" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 de %(cnt)s seleccionados/as" - -#, python-format -msgid "Change history: %s" -msgstr "Historia de modificaciones: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"La eliminación de %(class_name)s %(instance)s provocaría la eliminación de " -"los siguientes objetos relacionados protegidos: %(related_objects)s" - -msgid "Django site admin" -msgstr "Administración de sitio Django" - -msgid "Django administration" -msgstr "Administración de Django" - -msgid "Site administration" -msgstr "Administración de sitio" - -msgid "Log in" -msgstr "Identificarse" - -#, python-format -msgid "%(app)s administration" -msgstr "Administración de %(app)s" - -msgid "Page not found" -msgstr "Página no encontrada" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Lo lamentamos, no se encontró la página solicitada." - -msgid "Home" -msgstr "Inicio" - -msgid "Server error" -msgstr "Error del servidor" - -msgid "Server error (500)" -msgstr "Error del servidor (500)" - -msgid "Server Error (500)" -msgstr "Error de servidor (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ha ocurrido un error. Se ha reportado el mismo a los administradores del " -"sitio vía email y debería ser solucionado en breve. Le agradecemos por su " -"paciencia." - -msgid "Run the selected action" -msgstr "Ejecutar la acción seleccionada" - -msgid "Go" -msgstr "Ejecutar" - -msgid "Click here to select the objects across all pages" -msgstr "Haga click aquí para seleccionar los objetos de todas las páginas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Seleccionar lo(s)/a(s) %(total_count)s %(module_name)s existentes" - -msgid "Clear selection" -msgstr "Borrar selección" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelos en la aplicación %(name)s" - -msgid "Add" -msgstr "Agregar" - -msgid "View" -msgstr "Ver" - -msgid "You don’t have permission to view or edit anything." -msgstr "No tiene permiso para ver o modificar nada." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Primero introduzca un nombre de usuario y una contraseña. Luego podrá " -"configurar opciones adicionales para el usuario." - -msgid "Enter a username and password." -msgstr "Introduzca un nombre de usuario y una contraseña." - -msgid "Change password" -msgstr "Cambiar contraseña" - -msgid "Please correct the error below." -msgstr "Por favor, corrija el error detallado mas abajo." - -msgid "Please correct the errors below." -msgstr "Por favor corrija los errores detallados abajo." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Introduzca una nueva contraseña para el usuario %(username)s." - -msgid "Welcome," -msgstr "Bienvenido/a," - -msgid "View site" -msgstr "Ver sitio" - -msgid "Documentation" -msgstr "Documentación" - -msgid "Log out" -msgstr "Cerrar sesión" - -#, python-format -msgid "Add %(name)s" -msgstr "Agregar %(name)s" - -msgid "History" -msgstr "Historia" - -msgid "View on site" -msgstr "Ver en el sitio" - -msgid "Filter" -msgstr "Filtrar" - -msgid "Clear all filters" -msgstr "Limpiar todos los filtros" - -msgid "Remove from sorting" -msgstr "Remover de ordenamiento" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioridad de ordenamiento: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "(des)activar ordenamiento" - -msgid "Delete" -msgstr "Eliminar" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " -"de objetos relacionados, pero su cuenta no tiene permiso para eliminar los " -"siguientes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Eliminar los %(object_name)s '%(escaped_object)s' requeriría eliminar " -"también los siguientes objetos relacionados protegidos:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"¿Está seguro de que desea eliminar los %(object_name)s \"%(escaped_object)s" -"\"? Se eliminarán los siguientes objetos relacionados:" - -msgid "Objects" -msgstr "Objectos" - -msgid "Yes, I’m sure" -msgstr "Si, estoy seguro" - -msgid "No, take me back" -msgstr "No, volver" - -msgid "Delete multiple objects" -msgstr "Eliminar múltiples objetos" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Eliminar el/los objetos %(objects_name)s seleccionados provocaría la " -"eliminación de objetos relacionados a los mismos, pero su cuenta de usuario " -"no tiene los permisos necesarios para eliminar los siguientes tipos de " -"objetos:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Eliminar el/los objetos %(objects_name)s seleccionados requeriría eliminar " -"también los siguientes objetos relacionados protegidos:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"¿Está seguro de que desea eliminar el/los objetos %(objects_name)s?. Todos " -"los siguientes objetos e ítems relacionados a los mismos también serán " -"eliminados:" - -msgid "Delete?" -msgstr "¿Eliminar?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Por %(filter_title)s " - -msgid "Summary" -msgstr "Resumen" - -msgid "Recent actions" -msgstr "Acciones recientes" - -msgid "My actions" -msgstr "Mis acciones" - -msgid "None available" -msgstr "Ninguna disponible" - -msgid "Unknown content" -msgstr "Contenido desconocido" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Hay algún problema con su instalación de base de datos. Asegúrese de que las " -"tablas de la misma hayan sido creadas, y asegúrese de que el usuario " -"apropiado tenga permisos de lectura en la base de datos." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Ud. se halla autenticado como %(username)s, pero no está autorizado a " -"acceder a esta página ¿Desea autenticarse con una cuenta diferente?" - -msgid "Forgotten your password or username?" -msgstr "¿Olvidó su contraseña o nombre de usuario?" - -msgid "Toggle navigation" -msgstr "(des)activar navegación" - -msgid "Start typing to filter…" -msgstr "Empiece a escribir para filtrar…" - -msgid "Filter navigation items" -msgstr "Filtrar elementos de navegación" - -msgid "Date/time" -msgstr "Fecha/hora" - -msgid "User" -msgstr "Usuario" - -msgid "Action" -msgstr "Acción" - -msgid "entry" -msgstr "entrada" - -msgid "entries" -msgstr "entradas" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Este objeto no tiene historia de modificaciones. Probablemente no fue " -"añadido usando este sitio de administración." - -msgid "Show all" -msgstr "Mostrar todos/as" - -msgid "Save" -msgstr "Guardar" - -msgid "Popup closing…" -msgstr "Cerrando ventana amergente…" - -msgid "Search" -msgstr "Buscar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultado" -msgstr[1] "%(counter)s resultados" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "total: %(full_result_count)s" - -msgid "Save as new" -msgstr "Guardar como nuevo" - -msgid "Save and add another" -msgstr "Guardar y agregar otro" - -msgid "Save and continue editing" -msgstr "Guardar y continuar editando" - -msgid "Save and view" -msgstr "Guardar y ver" - -msgid "Close" -msgstr "Cerrar" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Modificar %(model)s seleccionados/as" - -#, python-format -msgid "Add another %(model)s" -msgstr "Agregar otro/a %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Eliminar %(model)s seleccionados/as" - -#, python-format -msgid "View selected %(model)s" -msgstr "Ver %(model)s seleccionado/a" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy." - -msgid "Log in again" -msgstr "Identificarse de nuevo" - -msgid "Password change" -msgstr "Cambio de contraseña" - -msgid "Your password was changed." -msgstr "Su contraseña ha sido cambiada." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Por favor, por razones de seguridad, introduzca primero su contraseña " -"antigua y luego introduzca la nueva contraseña dos veces para verificar que " -"la ha escrito correctamente." - -msgid "Change my password" -msgstr "Cambiar mi contraseña" - -msgid "Password reset" -msgstr "Recuperar contraseña" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Su contraseña ha sido cambiada. Ahora puede continuar e ingresar." - -msgid "Password reset confirmation" -msgstr "Confirmación de reincialización de contraseña" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Por favor introduzca su nueva contraseña dos veces de manera que podamos " -"verificar que la ha escrito correctamente." - -msgid "New password:" -msgstr "Contraseña nueva:" - -msgid "Confirm password:" -msgstr "Confirme contraseña:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"El enlace de reinicialización de contraseña es inválido, posiblemente debido " -"a que ya ha sido usado. Por favor solicite una nueva reinicialización de " -"contraseña." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Se le han enviado instrucciones sobre cómo establecer su contraseña. Si la " -"dirección de email que proveyó existe, debería recibir las mismas pronto." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Si no ha recibido un email, por favor asegúrese de que ha introducido la " -"dirección de correo con la que se había registrado y verifique su carpeta de " -"Correo no deseado." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Le enviamos este email porque Ud. ha solicitado que se reestablezca la " -"contraseña para su cuenta de usuario en %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "" -"Por favor visite la página que se muestra a continuación y elija una nueva " -"contraseña:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Su nombre de usuario en caso de que lo haya olvidado:" - -msgid "Thanks for using our site!" -msgstr "¡Gracias por usar nuestro sitio!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "El equipo de %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"¿Olvidó su contraseña? Introduzca su dirección de email abajo y le " -"enviaremos instrucciones para establecer una nueva." - -msgid "Email address:" -msgstr "Dirección de email:" - -msgid "Reset my password" -msgstr "Recuperar mi contraseña" - -msgid "All dates" -msgstr "Todas las fechas" - -#, python-format -msgid "Select %s" -msgstr "Seleccione %s" - -#, python-format -msgid "Select %s to change" -msgstr "Seleccione %s a modificar" - -#, python-format -msgid "Select %s to view" -msgstr "Seleccione %s que desea ver" - -msgid "Date:" -msgstr "Fecha:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Buscar" - -msgid "Currently:" -msgstr "Actualmente:" - -msgid "Change:" -msgstr "Cambiar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo deleted file mode 100644 index c3a27f3..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po deleted file mode 100644 index 58a650e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,282 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Ramiro Morales, 2014-2016,2020-2022 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-07-25 07:59+0000\n" -"Last-Translator: Ramiro Morales\n" -"Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django/" -"language/es_AR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_AR\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s disponibles" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Esta es la lista de %s disponibles. Puede elegir algunos/as seleccionándolos/" -"as en el cuadro de abajo y luego haciendo click en la flecha \"Seleccionar\" " -"ubicada entre las dos listas." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Escriba en esta caja para filtrar la lista de %s disponibles." - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Seleccionar todos/as" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Haga click para seleccionar todos/as los/as %s." - -msgid "Choose" -msgstr "Seleccionar" - -msgid "Remove" -msgstr "Eliminar" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s seleccionados/as" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Esta es la lista de %s seleccionados. Puede deseleccionar algunos de ellos " -"activándolos en la lista de abajo y luego haciendo click en la flecha " -"\"Eliminar\" ubicada entre las dos listas." - -msgid "Remove all" -msgstr "Eliminar todos/as" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Haga clic para deselecionar todos/as los/as %s." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s seleccionado/a" -msgstr[1] "%(sel)s de %(cnt)s seleccionados/as" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tiene modificaciones sin guardar en campos modificables individuales. Si " -"ejecuta una acción las mismas se perderán." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Ha seleccionado una acción pero todavía no ha grabado sus cambios en campos " -"individuales. Por favor haga click en Ok para grabarlos. Luego necesitará re-" -"ejecutar la acción." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Ha seleccionado una acción y no ha realizado ninguna modificación de campos " -"individuales. Es probable que deba usar el botón 'Ir' y no el botón " -"'Grabar'." - -msgid "Now" -msgstr "Ahora" - -msgid "Midnight" -msgstr "Medianoche" - -msgid "6 a.m." -msgstr "6 AM" - -msgid "Noon" -msgstr "Mediodía" - -msgid "6 p.m." -msgstr "6 PM" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -"Nota: Ud. se encuentra en una zona horaria que está %s hora adelantada " -"respecto a la del servidor." -msgstr[1] "" -"Nota: Ud. se encuentra en una zona horaria que está %s horas adelantada " -"respecto a la del servidor." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -"Nota: Ud. se encuentra en una zona horaria que está %s hora atrasada " -"respecto a la del servidor." -msgstr[1] "" -"Nota: Ud. se encuentra en una zona horaria que está %s horas atrasada " -"respecto a la del servidor." - -msgid "Choose a Time" -msgstr "Seleccione una Hora" - -msgid "Choose a time" -msgstr "Elija una hora" - -msgid "Cancel" -msgstr "Cancelar" - -msgid "Today" -msgstr "Hoy" - -msgid "Choose a Date" -msgstr "Seleccione una Fecha" - -msgid "Yesterday" -msgstr "Ayer" - -msgid "Tomorrow" -msgstr "Mañana" - -msgid "January" -msgstr "enero" - -msgid "February" -msgstr "febrero" - -msgid "March" -msgstr "marzo" - -msgid "April" -msgstr "abril" - -msgid "May" -msgstr "mayo" - -msgid "June" -msgstr "junio" - -msgid "July" -msgstr "julio" - -msgid "August" -msgstr "agosto" - -msgid "September" -msgstr "setiembre" - -msgid "October" -msgstr "octubre" - -msgid "November" -msgstr "noviembre" - -msgid "December" -msgstr "diciembre" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Ene" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Abr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "May" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Ago" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Set" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Oct" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dic" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "L" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "M" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "M" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "J" - -msgctxt "one letter Friday" -msgid "F" -msgstr "V" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "" -"Ya ha enviado este formulario. ¿Está seguro de que desea enviarlo nuevamente?" - -msgid "Show" -msgstr "Mostrar" - -msgid "Hide" -msgstr "Ocultar" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo deleted file mode 100644 index f806074..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.po deleted file mode 100644 index 5831fbf..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/django.po +++ /dev/null @@ -1,697 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# abraham.martin , 2014 -# Axel Díaz , 2015 -# Claude Paroz , 2014 -# Ernesto Avilés Vázquez , 2015 -# franchukelly , 2011 -# guillem , 2012 -# Igor Támara , 2013 -# Jannis Leidel , 2011 -# Josue Naaman Nistal Guerra , 2014 -# Marc Garcia , 2011 -# Pablo, 2015 -# Veronicabh , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 19:11+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Spanish (Colombia) (http://www.transifex.com/django/django/" -"language/es_CO/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_CO\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Eliminado/s %(count)d %(items)s satisfactoriamente." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "No se puede eliminar %(name)s" - -msgid "Are you sure?" -msgstr "¿Está seguro?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Eliminar %(verbose_name_plural)s seleccionado/s" - -msgid "Administration" -msgstr "Administración" - -msgid "All" -msgstr "Todo" - -msgid "Yes" -msgstr "Sí" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Desconocido" - -msgid "Any date" -msgstr "Cualquier fecha" - -msgid "Today" -msgstr "Hoy" - -msgid "Past 7 days" -msgstr "Últimos 7 días" - -msgid "This month" -msgstr "Este mes" - -msgid "This year" -msgstr "Este año" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Por favor ingrese el %(username)s y la clave correctos para obtener cuenta " -"de personal. Observe que ambos campos pueden ser sensibles a mayúsculas." - -msgid "Action:" -msgstr "Acción:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Agregar %(verbose_name)s adicional." - -msgid "Remove" -msgstr "Eliminar" - -msgid "action time" -msgstr "hora de la acción" - -msgid "user" -msgstr "usuario" - -msgid "content type" -msgstr "tipo de contenido" - -msgid "object id" -msgstr "id del objeto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "repr del objeto" - -msgid "action flag" -msgstr "marca de acción" - -msgid "change message" -msgstr "mensaje de cambio" - -msgid "log entry" -msgstr "entrada de registro" - -msgid "log entries" -msgstr "entradas de registro" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Añadidos \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Cambiados \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Eliminado/a \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "Objeto de registro de Log" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "Añadido." - -msgid "and" -msgstr "y" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "No ha cambiado ningún campo." - -msgid "None" -msgstr "Ninguno" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Mantenga presionado \"Control\" o \"Command\" en un Mac, para seleccionar " -"más de una opción." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Se deben seleccionar elementos para poder realizar acciones sobre estos. No " -"se han modificado elementos." - -msgid "No action selected." -msgstr "No se seleccionó ninguna acción." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Añadir %s" - -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -msgid "Database error" -msgstr "Error en la base de datos" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s fué modificado con éxito." -msgstr[1] "%(count)s %(name)s fueron modificados con éxito." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s seleccionado" -msgstr[1] "%(total_count)s seleccionados en total" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "seleccionados 0 de %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Histórico de modificaciones: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"La eliminación de %(class_name)s %(instance)s requeriría eliminar los " -"siguientes objetos relacionados protegidos: %(related_objects)s" - -msgid "Django site admin" -msgstr "Sitio de administración de Django" - -msgid "Django administration" -msgstr "Administración de Django" - -msgid "Site administration" -msgstr "Sitio administrativo" - -msgid "Log in" -msgstr "Iniciar sesión" - -#, python-format -msgid "%(app)s administration" -msgstr "Administración de %(app)s " - -msgid "Page not found" -msgstr "Página no encontrada" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Lo sentimos, pero no se encuentra la página solicitada." - -msgid "Home" -msgstr "Inicio" - -msgid "Server error" -msgstr "Error del servidor" - -msgid "Server error (500)" -msgstr "Error del servidor (500)" - -msgid "Server Error (500)" -msgstr "Error de servidor (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ha habido un error. Ha sido comunicado al administrador del sitio por correo " -"electrónico y debería solucionarse a la mayor brevedad. Gracias por su " -"paciencia y comprensión." - -msgid "Run the selected action" -msgstr "Ejecutar la acción seleccionada" - -msgid "Go" -msgstr "Ir" - -msgid "Click here to select the objects across all pages" -msgstr "Pulse aquí para seleccionar los objetos a través de todas las páginas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Seleccionar todos los %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Limpiar selección" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar " -"el resto de opciones del usuario." - -msgid "Enter a username and password." -msgstr "Ingrese un nombre de usuario y contraseña" - -msgid "Change password" -msgstr "Cambiar contraseña" - -msgid "Please correct the error below." -msgstr "Por favor, corrija los siguientes errores." - -msgid "Please correct the errors below." -msgstr "Por favor, corrija los siguientes errores." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Ingrese una nueva contraseña para el usuario %(username)s." - -msgid "Welcome," -msgstr "Bienvenido/a," - -msgid "View site" -msgstr "Ver el sitio" - -msgid "Documentation" -msgstr "Documentación" - -msgid "Log out" -msgstr "Terminar sesión" - -#, python-format -msgid "Add %(name)s" -msgstr "Añadir %(name)s" - -msgid "History" -msgstr "Histórico" - -msgid "View on site" -msgstr "Ver en el sitio" - -msgid "Filter" -msgstr "Filtro" - -msgid "Remove from sorting" -msgstr "Elimina de la ordenación" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioridad de la ordenación: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Activar la ordenación" - -msgid "Delete" -msgstr "Eliminar" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " -"de objetos relacionados, pero su cuenta no tiene permiso para borrar los " -"siguientes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"La eliminación de %(object_name)s %(escaped_object)s requeriría eliminar los " -"siguientes objetos relacionados protegidos:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s" -"\"? Se borrarán los siguientes objetos relacionados:" - -msgid "Objects" -msgstr "Objetos" - -msgid "Yes, I'm sure" -msgstr "Sí, estoy seguro" - -msgid "No, take me back" -msgstr "No, llévame atrás" - -msgid "Delete multiple objects" -msgstr "Eliminar múltiples objetos." - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"La eliminación del %(objects_name)s seleccionado resultaría en el borrado de " -"objetos relacionados, pero su cuenta no tiene permisos para borrar los " -"siguientes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"La eliminación de %(objects_name)s seleccionado requeriría el borrado de los " -"siguientes objetos protegidos relacionados:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"¿Está usted seguro que quiere eliminar el %(objects_name)s seleccionado? " -"Todos los siguientes objetos y sus elementos relacionados serán borrados:" - -msgid "Change" -msgstr "Modificar" - -msgid "Delete?" -msgstr "¿Eliminar?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Por %(filter_title)s " - -msgid "Summary" -msgstr "Resumen" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelos en la aplicación %(name)s" - -msgid "Add" -msgstr "Añadir" - -msgid "You don't have permission to edit anything." -msgstr "No tiene permiso para editar nada." - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Ninguno disponible" - -msgid "Unknown content" -msgstr "Contenido desconocido" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Algo va mal con la instalación de la base de datos. Asegúrese de que las " -"tablas necesarias han sido creadas, y de que la base de datos puede ser " -"leída por el usuario apropiado." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Se ha autenticado como %(username)s, pero no está autorizado a acceder a " -"esta página. ¿Desea autenticarse con una cuenta diferente?" - -msgid "Forgotten your password or username?" -msgstr "¿Ha olvidado la contraseña o el nombre de usuario?" - -msgid "Date/time" -msgstr "Fecha/hora" - -msgid "User" -msgstr "Usuario" - -msgid "Action" -msgstr "Acción" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Este objeto no tiene histórico de cambios. Probablemente no fue añadido " -"usando este sitio de administración." - -msgid "Show all" -msgstr "Mostrar todo" - -msgid "Save" -msgstr "Grabar" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Cambiar %(model)s seleccionado" - -#, python-format -msgid "Add another %(model)s" -msgstr "Añadir otro %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Eliminar %(model)s seleccionada/o" - -msgid "Search" -msgstr "Buscar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultado" -msgstr[1] "%(counter)s resultados" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s total" - -msgid "Save as new" -msgstr "Grabar como nuevo" - -msgid "Save and add another" -msgstr "Grabar y añadir otro" - -msgid "Save and continue editing" -msgstr "Grabar y continuar editando" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Gracias por el tiempo que ha dedicado hoy al sitio web." - -msgid "Log in again" -msgstr "Iniciar sesión de nuevo" - -msgid "Password change" -msgstr "Cambio de contraseña" - -msgid "Your password was changed." -msgstr "Su contraseña ha sido cambiada." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Por favor, ingrese su contraseña antigua, por seguridad, y después " -"introduzca la nueva contraseña dos veces para verificar que la ha escrito " -"correctamente." - -msgid "Change my password" -msgstr "Cambiar mi contraseña" - -msgid "Password reset" -msgstr "Restablecer contraseña" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Su contraseña ha sido establecida. Ahora puede seguir adelante e iniciar " -"sesión." - -msgid "Password reset confirmation" -msgstr "Confirmación de restablecimiento de contraseña" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Por favor, ingrese su contraseña nueva dos veces para verificar que la ha " -"escrito correctamente." - -msgid "New password:" -msgstr "Contraseña nueva:" - -msgid "Confirm password:" -msgstr "Confirme contraseña:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"El enlace de restablecimiento de contraseña era inválido, seguramente porque " -"se haya usado antes. Por favor, solicite un nuevo restablecimiento de " -"contraseña." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Le hemos enviado por email las instrucciones para restablecer la contraseña, " -"si es que existe una cuenta con la dirección electrónica que indicó. Debería " -"recibirlas en breve." - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Si no recibe un correo, por favor asegúrese de que ha introducido la " -"dirección de correo con la que se registró y verifique su carpeta de spam." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Ha recibido este correo electrónico porque ha solicitado restablecer la " -"contraseña para su cuenta en %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Por favor, vaya a la página siguiente y escoja una nueva contraseña." - -msgid "Your username, in case you've forgotten:" -msgstr "Su nombre de usuario, en caso de haberlo olvidado:" - -msgid "Thanks for using our site!" -msgstr "¡Gracias por usar nuestro sitio!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "El equipo de %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"¿Ha olvidado su clave? Ingrese su dirección de correo electrónico a " -"continuación y le enviaremos las instrucciones para establecer una nueva." - -msgid "Email address:" -msgstr "Correo electrónico:" - -msgid "Reset my password" -msgstr "Restablecer mi contraseña" - -msgid "All dates" -msgstr "Todas las fechas" - -#, python-format -msgid "Select %s" -msgstr "Escoja %s" - -#, python-format -msgid "Select %s to change" -msgstr "Escoja %s a modificar" - -msgid "Date:" -msgstr "Fecha:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Buscar" - -msgid "Currently:" -msgstr "Actualmente:" - -msgid "Change:" -msgstr "Cambiar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 3d428a0..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.po deleted file mode 100644 index 4bcc1cc..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,223 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ernesto Avilés Vázquez , 2015 -# Jannis Leidel , 2011 -# Josue Naaman Nistal Guerra , 2014 -# Leonardo J. Caballero G. , 2011 -# Veronicabh , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-20 03:01+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Spanish (Colombia) (http://www.transifex.com/django/django/" -"language/es_CO/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_CO\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s Disponibles" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Esta es la lista de %s disponibles. Puede elegir algunos seleccionándolos en " -"la caja inferior y luego haciendo clic en la flecha \"Elegir\" que hay entre " -"las dos cajas." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Escriba en este cuadro para filtrar la lista de %s disponibles" - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Selecciona todos" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Haga clic para seleccionar todos los %s de una vez" - -msgid "Choose" -msgstr "Elegir" - -msgid "Remove" -msgstr "Eliminar" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s elegidos" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Esta es la lista de los %s elegidos. Puede eliminar algunos seleccionándolos " -"en la caja inferior y luego haciendo click en la flecha \"Eliminar\" que hay " -"entre las dos cajas." - -msgid "Remove all" -msgstr "Eliminar todos" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Haz clic para eliminar todos los %s elegidos" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s seleccionado" -msgstr[1] "%(sel)s de %(cnt)s seleccionados" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tiene cambios sin guardar en campos editables individuales. Si ejecuta una " -"acción, los cambios no guardados se perderán." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Ha seleccionado una acción, pero no ha guardado los cambios en los campos " -"individuales todavía. Pulse OK para guardar. Tendrá que volver a ejecutar la " -"acción." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Ha seleccionado una acción y no ha hecho ningún cambio en campos " -"individuales. Probablemente esté buscando el botón Ejecutar en lugar del " -"botón Guardar." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Nota: Usted esta a %s horas por delante de la hora del servidor." -msgstr[1] "Nota: Usted va %s horas por delante de la hora del servidor." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Nota: Usted esta a %s hora de retraso de tiempo de servidor." -msgstr[1] "Nota: Usted va %s horas por detrás de la hora del servidor." - -msgid "Now" -msgstr "Ahora" - -msgid "Choose a Time" -msgstr "Elija una hora" - -msgid "Choose a time" -msgstr "Elija una hora" - -msgid "Midnight" -msgstr "Medianoche" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Mediodía" - -msgid "6 p.m." -msgstr "6 p.m." - -msgid "Cancel" -msgstr "Cancelar" - -msgid "Today" -msgstr "Hoy" - -msgid "Choose a Date" -msgstr "Elija una fecha" - -msgid "Yesterday" -msgstr "Ayer" - -msgid "Tomorrow" -msgstr "Mañana" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Mostrar" - -msgid "Hide" -msgstr "Esconder" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo deleted file mode 100644 index 8b88505..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po deleted file mode 100644 index 416df6a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po +++ /dev/null @@ -1,720 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Abe Estrada, 2011-2013 -# Alex Dzul , 2015 -# Gustavo Jimenez , 2020 -# Jesús Bautista , 2020 -# José Rosso, 2022 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: José Rosso\n" -"Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/" -"language/es_MX/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_MX\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Eliminar %(verbose_name_plural)s seleccionados/as" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Se eliminaron con éxito %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "No se puede eliminar %(name)s " - -msgid "Are you sure?" -msgstr "¿Está seguro?" - -msgid "Administration" -msgstr "Administración" - -msgid "All" -msgstr "Todos/as" - -msgid "Yes" -msgstr "Sí" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Desconocido" - -msgid "Any date" -msgstr "Cualquier fecha" - -msgid "Today" -msgstr "Hoy" - -msgid "Past 7 days" -msgstr "Últimos 7 días" - -msgid "This month" -msgstr "Este mes" - -msgid "This year" -msgstr "Este año" - -msgid "No date" -msgstr "Sin fecha" - -msgid "Has date" -msgstr "Tiene fecha" - -msgid "Empty" -msgstr "Vacío" - -msgid "Not empty" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Por favor introduza %(username)s y contraseña correctos de una cuenta de " -"staff. Note que puede que ambos campos sean estrictos en relación a " -"diferencias entre mayúsculas y minúsculas." - -msgid "Action:" -msgstr "Acción:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Agregar otro/a %(verbose_name)s" - -msgid "Remove" -msgstr "Eliminar" - -msgid "Addition" -msgstr "Adición" - -msgid "Change" -msgstr "Modificar" - -msgid "Deletion" -msgstr "Eliminación" - -msgid "action time" -msgstr "hora de la acción" - -msgid "user" -msgstr "usuario" - -msgid "content type" -msgstr "tipo de contenido" - -msgid "object id" -msgstr "id de objeto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr de objeto" - -msgid "action flag" -msgstr "marca de acción" - -msgid "change message" -msgstr "mensaje de cambio" - -msgid "log entry" -msgstr "entrada de registro" - -msgid "log entries" -msgstr "entradas de registro" - -#, python-format -msgid "Added “%(object)s”." -msgstr "" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "" - -msgid "LogEntry Object" -msgstr "Objeto de registro de Log" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "Agregado." - -msgid "and" -msgstr "y" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "No ha modificado ningún campo." - -msgid "None" -msgstr "Ninguno" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "El {name} \"{obj}\" se agregó correctamente." - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Deben existir items seleccionados para poder realizar acciones sobre los " -"mismos. No se modificó ningún item." - -msgid "No action selected." -msgstr "No se ha seleccionado ninguna acción." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Agregar %s" - -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "Error en la base de datos" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "Se ha modificado con éxito %(count)s %(name)s." -msgstr[1] "Se han modificado con éxito %(count)s %(name)s." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s seleccionados/as" -msgstr[1] "Todos/as (%(total_count)s en total) han sido seleccionados/as" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 de %(cnt)s seleccionados/as" - -#, python-format -msgid "Change history: %s" -msgstr "Historia de modificaciones: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"La eliminación de %(class_name)s %(instance)s provocaría la eliminación de " -"los siguientes objetos relacionados protegidos: %(related_objects)s" - -msgid "Django site admin" -msgstr "Sitio de administración de Django" - -msgid "Django administration" -msgstr "Administración de Django" - -msgid "Site administration" -msgstr "Administración del sitio" - -msgid "Log in" -msgstr "Identificarse" - -#, python-format -msgid "%(app)s administration" -msgstr "Administración de %(app)s " - -msgid "Page not found" -msgstr "Página no encontrada" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "Inicio" - -msgid "Server error" -msgstr "Error del servidor" - -msgid "Server error (500)" -msgstr "Error del servidor (500)" - -msgid "Server Error (500)" -msgstr "Error de servidor (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Ejecutar la acción seleccionada" - -msgid "Go" -msgstr "Ejecutar" - -msgid "Click here to select the objects across all pages" -msgstr "Haga click aquí para seleccionar los objetos de todas las páginas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Seleccionar lo(s)/a(s) %(total_count)s de %(module_name)s" - -msgid "Clear selection" -msgstr "Borrar selección" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelos en la aplicación %(name)s" - -msgid "Add" -msgstr "Agregar" - -msgid "View" -msgstr "Vista" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "Introduzca un nombre de usuario y una contraseña." - -msgid "Change password" -msgstr "Cambiar contraseña" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "Por favor, corrija los siguientes errores." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Introduzca una nueva contraseña para el usuario %(username)s." - -msgid "Welcome," -msgstr "Bienvenido," - -msgid "View site" -msgstr "Ver sitio" - -msgid "Documentation" -msgstr "Documentación" - -msgid "Log out" -msgstr "Cerrar sesión" - -#, python-format -msgid "Add %(name)s" -msgstr "Agregar %(name)s" - -msgid "History" -msgstr "Historia" - -msgid "View on site" -msgstr "Ver en el sitio" - -msgid "Filter" -msgstr "Filtrar" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "Elimina de la clasificación" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioridad de la clasificación: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Activar la clasificación" - -msgid "Delete" -msgstr "Eliminar" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " -"de objetos relacionados, pero su cuenta no tiene permiso para eliminar los " -"siguientes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Para eliminar %(object_name)s '%(escaped_object)s' requiere eliminar los " -"siguientes objetos relacionados protegidos:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"¿Está seguro de que quiere eliminar los %(object_name)s \"%(escaped_object)s" -"\"? Se eliminarán los siguientes objetos relacionados:" - -msgid "Objects" -msgstr "Objetos" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "Eliminar múltiples objetos" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Para eliminar %(objects_name)s requiere eliminar los objetos relacionado, " -"pero tu cuenta no tiene permisos para eliminar los siguientes tipos de " -"objetos:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Eliminar el seleccionado %(objects_name)s requiere eliminar los siguientes " -"objetos relacionados protegidas:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"¿Está seguro que desea eliminar el seleccionado %(objects_name)s ? Todos los " -"objetos siguientes y sus elementos asociados serán eliminados:" - -msgid "Delete?" -msgstr "Eliminar?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Por %(filter_title)s" - -msgid "Summary" -msgstr "Resúmen" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "Mis acciones" - -msgid "None available" -msgstr "Ninguna disponible" - -msgid "Unknown content" -msgstr "Contenido desconocido" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "¿Ha olvidado su contraseña o nombre de usuario?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Fecha/hora" - -msgid "User" -msgstr "Usuario" - -msgid "Action" -msgstr "Acción" - -msgid "entry" -msgstr "" - -msgid "entries" -msgstr "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "Mostrar todos/as" - -msgid "Save" -msgstr "Guardar" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "Buscar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s results" -msgstr[1] "%(counter)s resultados" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "total: %(full_result_count)s" - -msgid "Save as new" -msgstr "Guardar como nuevo" - -msgid "Save and add another" -msgstr "Guardar y agregar otro" - -msgid "Save and continue editing" -msgstr "Guardar y continuar editando" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "Cerrar" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Identificarse de nuevo" - -msgid "Password change" -msgstr "Cambio de contraseña" - -msgid "Your password was changed." -msgstr "Su contraseña ha sido cambiada." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "Cambiar mi contraseña" - -msgid "Password reset" -msgstr "Recuperar contraseña" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Se le ha enviado su contraseña. Ahora puede continuar e ingresar." - -msgid "Password reset confirmation" -msgstr "Confirmación de reincialización de contraseña" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Por favor introduzca su nueva contraseña dos veces de manera que podamos " -"verificar que la ha escrito correctamente." - -msgid "New password:" -msgstr "Nueva contraseña:" - -msgid "Confirm password:" -msgstr "Confirme contraseña:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"El enlace de reinicialización de contraseña es inválido, posiblemente debido " -"a que ya ha sido usado. Por favor solicite una nueva reinicialización de " -"contraseña." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Usted está recibiendo este correo electrónico porque ha solicitado un " -"restablecimiento de contraseña para la cuenta de usuario en %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "" -"Por favor visite la página que se muestra a continuación y elija una nueva " -"contraseña:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "¡Gracias por usar nuestro sitio!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "El equipo de %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "Correo electrónico:" - -msgid "Reset my password" -msgstr "Recuperar mi contraseña" - -msgid "All dates" -msgstr "Todas las fechas" - -#, python-format -msgid "Select %s" -msgstr "Seleccione %s" - -#, python-format -msgid "Select %s to change" -msgstr "Seleccione %s a modificar" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "Fecha:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Buscar" - -msgid "Currently:" -msgstr "Actualmente:" - -msgid "Change:" -msgstr "Modificar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo deleted file mode 100644 index fbd765a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po deleted file mode 100644 index 76af2f3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,219 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Abraham Estrada, 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/" -"language/es_MX/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_MX\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Disponible %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Esta es la lista de los %s disponibles. Usted puede elegir algunos " -"seleccionándolos en el cuadro de abajo y haciendo click en la flecha " -"\"Seleccionar\" entre las dos cajas." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Escriba en esta casilla para filtrar la lista de %s disponibles." - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Seleccionar todos" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Da click para seleccionar todos los %s de una vez." - -msgid "Choose" -msgstr "Seleccionar" - -msgid "Remove" -msgstr "Quitar" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s seleccionados" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Esta es la lista de los %s elegidos. Usted puede eliminar algunos " -"seleccionándolos en el cuadro de abajo y haciendo click en la flecha " -"\"Eliminar\" entre las dos cajas." - -msgid "Remove all" -msgstr "Eliminar todos" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Da click para eliminar todos los %s seleccionados de una vez." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s seleccionado/a" -msgstr[1] "%(sel)s de %(cnt)s seleccionados/as" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tiene modificaciones sin guardar en campos modificables individuales. Si " -"ejecuta una acción las mismas se perderán." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Ha seleccionado una acción, pero todavía no ha grabado las modificaciones " -"que ha realizado en campos individuales. Por favor haga click en Aceptar " -"para grabarlas. Necesitará ejecutar la acción nuevamente." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Ha seleccionado una acción pero no ha realizado ninguna modificación en " -"campos individuales. Es probable que lo que necesite usar en realidad sea el " -"botón Ejecutar y no el botón Guardar." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "Ahora" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "Elija una hora" - -msgid "Midnight" -msgstr "Medianoche" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Mediodía" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "Cancelar" - -msgid "Today" -msgstr "Hoy" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "Ayer" - -msgid "Tomorrow" -msgstr "Mañana" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Mostrar" - -msgid "Hide" -msgstr "Ocultar" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo deleted file mode 100644 index ab04e3f..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po deleted file mode 100644 index c9e1509..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po +++ /dev/null @@ -1,698 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Eduardo , 2017 -# Hotellook, 2014 -# Leonardo J. Caballero G. , 2016 -# Yoel Acevedo, 2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 19:11+0000\n" -"Last-Translator: Eduardo \n" -"Language-Team: Spanish (Venezuela) (http://www.transifex.com/django/django/" -"language/es_VE/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_VE\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Eliminado %(count)d %(items)s satisfactoriamente." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "No se puede eliminar %(name)s" - -msgid "Are you sure?" -msgstr "¿Está seguro?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Eliminar %(verbose_name_plural)s seleccionado" - -msgid "Administration" -msgstr "Administración" - -msgid "All" -msgstr "Todo" - -msgid "Yes" -msgstr "Sí" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Desconocido" - -msgid "Any date" -msgstr "Cualquier fecha" - -msgid "Today" -msgstr "Hoy" - -msgid "Past 7 days" -msgstr "Últimos 7 días" - -msgid "This month" -msgstr "Este mes" - -msgid "This year" -msgstr "Este año" - -msgid "No date" -msgstr "Sin fecha" - -msgid "Has date" -msgstr "Tiene fecha" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Por favor, ingrese el %(username)s y la clave correctos para obtener cuenta " -"de personal. Observe que ambos campos pueden ser sensibles a mayúsculas." - -msgid "Action:" -msgstr "Acción:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Añadir otro %(verbose_name)s." - -msgid "Remove" -msgstr "Eliminar" - -msgid "action time" -msgstr "hora de la acción" - -msgid "user" -msgstr "usuario" - -msgid "content type" -msgstr "tipo de contenido" - -msgid "object id" -msgstr "id del objeto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "repr del objeto" - -msgid "action flag" -msgstr "marca de acción" - -msgid "change message" -msgstr "mensaje de cambio" - -msgid "log entry" -msgstr "entrada de registro" - -msgid "log entries" -msgstr "entradas de registro" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Añadidos \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Cambiados \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Eliminado \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "Objeto LogEntry" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "Agregado {name} \"{object}\"." - -msgid "Added." -msgstr "Añadido." - -msgid "and" -msgstr "y" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "Modificado {fields} por {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Modificado {fields}." - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "Eliminado {name} \"{object}\"." - -msgid "No fields changed." -msgstr "No ha cambiado ningún campo." - -msgid "None" -msgstr "Ninguno" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Mantenga presionado \"Control\" o \"Command\" en un Mac, para seleccionar " -"más de una opción." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" -"El {name} \"{obj}\" fue agregado satisfactoriamente. Puede editarlo " -"nuevamente a continuación. " - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" -"El {name} \"{obj}\" fue agregado satisfactoriamente. Puede agregar otro " -"{name} a continuación. " - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "El {name} \"{obj}\" fue cambiado satisfactoriamente." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" -"El {name} \"{obj}\" fue cambiado satisfactoriamente. Puede editarlo " -"nuevamente a continuación. " - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" -"El {name} \"{obj}\" fue cambiado satisfactoriamente. Puede agregar otro " -"{name} a continuación." - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "El {name} \"{obj}\" fue cambiado satisfactoriamente." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Se deben seleccionar elementos para poder realizar acciones sobre estos. No " -"se han modificado elementos." - -msgid "No action selected." -msgstr "No se seleccionó ninguna acción." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "%(name)s con ID \"%(key)s\" no existe. ¿Tal vez fue eliminada?" - -#, python-format -msgid "Add %s" -msgstr "Añadir %s" - -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -msgid "Database error" -msgstr "Error en la base de datos" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s fué modificado con éxito." -msgstr[1] "%(count)s %(name)s fueron modificados con éxito." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s seleccionado" -msgstr[1] "%(total_count)s seleccionados en total" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 de %(cnt)s seleccionado" - -#, python-format -msgid "Change history: %s" -msgstr "Histórico de modificaciones: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"La eliminación de %(class_name)s %(instance)s requeriría eliminar los " -"siguientes objetos relacionados protegidos: %(related_objects)s" - -msgid "Django site admin" -msgstr "Sitio de administración de Django" - -msgid "Django administration" -msgstr "Administración de Django" - -msgid "Site administration" -msgstr "Sitio de administración" - -msgid "Log in" -msgstr "Iniciar sesión" - -#, python-format -msgid "%(app)s administration" -msgstr "Administración de %(app)s " - -msgid "Page not found" -msgstr "Página no encontrada" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Lo sentimos, pero no se encuentra la página solicitada." - -msgid "Home" -msgstr "Inicio" - -msgid "Server error" -msgstr "Error del servidor" - -msgid "Server error (500)" -msgstr "Error del servidor (500)" - -msgid "Server Error (500)" -msgstr "Error de servidor (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ha habido un error. Ha sido comunicado al administrador del sitio por correo " -"electrónico y debería solucionarse a la mayor brevedad. Gracias por su " -"paciencia y comprensión." - -msgid "Run the selected action" -msgstr "Ejecutar la acción seleccionada" - -msgid "Go" -msgstr "Ir" - -msgid "Click here to select the objects across all pages" -msgstr "Pulse aquí para seleccionar los objetos a través de todas las páginas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Seleccionar todos los %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Limpiar selección" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar " -"el resto de opciones del usuario." - -msgid "Enter a username and password." -msgstr "Ingrese un nombre de usuario y contraseña" - -msgid "Change password" -msgstr "Cambiar contraseña" - -msgid "Please correct the error below." -msgstr "Por favor, corrija el siguiente error." - -msgid "Please correct the errors below." -msgstr "Por favor, corrija los siguientes errores." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Ingrese una nueva contraseña para el usuario %(username)s." - -msgid "Welcome," -msgstr "Bienvenido," - -msgid "View site" -msgstr "Ver el sitio" - -msgid "Documentation" -msgstr "Documentación" - -msgid "Log out" -msgstr "Terminar sesión" - -#, python-format -msgid "Add %(name)s" -msgstr "Añadir %(name)s" - -msgid "History" -msgstr "Histórico" - -msgid "View on site" -msgstr "Ver en el sitio" - -msgid "Filter" -msgstr "Filtro" - -msgid "Remove from sorting" -msgstr "Elimina de la ordenación" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioridad de la ordenación: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Activar la ordenación" - -msgid "Delete" -msgstr "Eliminar" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " -"de objetos relacionados, pero su cuenta no tiene permiso para borrar los " -"siguientes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Eliminar el %(object_name)s %(escaped_object)s requeriría eliminar los " -"siguientes objetos relacionados protegidos:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s" -"\"? Se borrarán los siguientes objetos relacionados:" - -msgid "Objects" -msgstr "Objetos" - -msgid "Yes, I'm sure" -msgstr "Sí, Yo estoy seguro" - -msgid "No, take me back" -msgstr "No, llévame atrás" - -msgid "Delete multiple objects" -msgstr "Eliminar múltiples objetos" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Eliminar el %(objects_name)s seleccionado resultaría en el borrado de " -"objetos relacionados, pero su cuenta no tiene permisos para borrar los " -"siguientes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Eliminar el %(objects_name)s seleccionado requeriría el borrado de los " -"siguientes objetos protegidos relacionados:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"¿Está usted seguro que quiere eliminar el %(objects_name)s seleccionado? " -"Todos los siguientes objetos y sus elementos relacionados serán borrados:" - -msgid "Change" -msgstr "Modificar" - -msgid "Delete?" -msgstr "¿Eliminar?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Por %(filter_title)s " - -msgid "Summary" -msgstr "Resumen" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelos en la aplicación %(name)s" - -msgid "Add" -msgstr "Añadir" - -msgid "You don't have permission to edit anything." -msgstr "No tiene permiso para editar nada." - -msgid "Recent actions" -msgstr "Acciones recientes" - -msgid "My actions" -msgstr "Mis acciones" - -msgid "None available" -msgstr "Ninguno disponible" - -msgid "Unknown content" -msgstr "Contenido desconocido" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Algo va mal con la instalación de la base de datos. Asegúrese de que las " -"tablas necesarias han sido creadas, y de que la base de datos puede ser " -"leída por el usuario apropiado." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Se ha autenticado como %(username)s, pero no está autorizado a acceder a " -"esta página. ¿Desea autenticarse con una cuenta diferente?" - -msgid "Forgotten your password or username?" -msgstr "¿Ha olvidado la contraseña o el nombre de usuario?" - -msgid "Date/time" -msgstr "Fecha/hora" - -msgid "User" -msgstr "Usuario" - -msgid "Action" -msgstr "Acción" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Este objeto no tiene histórico de cambios. Probablemente no fue añadido " -"usando este sitio de administración." - -msgid "Show all" -msgstr "Mostrar todo" - -msgid "Save" -msgstr "Guardar" - -msgid "Popup closing..." -msgstr "Ventana emergente cerrando..." - -#, python-format -msgid "Change selected %(model)s" -msgstr "Cambiar %(model)s seleccionado" - -#, python-format -msgid "Add another %(model)s" -msgstr "Añadir otro %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Eliminar %(model)s seleccionado" - -msgid "Search" -msgstr "Buscar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultado" -msgstr[1] "%(counter)s resultados" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s total" - -msgid "Save as new" -msgstr "Guardar como nuevo" - -msgid "Save and add another" -msgstr "Guardar y añadir otro" - -msgid "Save and continue editing" -msgstr "Guardar y continuar editando" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Gracias por el tiempo que ha dedicado hoy al sitio web." - -msgid "Log in again" -msgstr "Iniciar sesión de nuevo" - -msgid "Password change" -msgstr "Cambio de contraseña" - -msgid "Your password was changed." -msgstr "Su contraseña ha sido cambiada." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Por favor, ingrese su contraseña antigua, por seguridad, y después " -"introduzca la nueva contraseña dos veces para verificar que la ha escrito " -"correctamente." - -msgid "Change my password" -msgstr "Cambiar mi contraseña" - -msgid "Password reset" -msgstr "Restablecer contraseña" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Su contraseña ha sido establecida. Ahora puede seguir adelante e iniciar " -"sesión." - -msgid "Password reset confirmation" -msgstr "Confirmación de restablecimiento de contraseña" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Por favor, ingrese su contraseña nueva dos veces para verificar que la ha " -"escrito correctamente." - -msgid "New password:" -msgstr "Contraseña nueva:" - -msgid "Confirm password:" -msgstr "Confirme contraseña:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"El enlace de restablecimiento de contraseña era inválido, seguramente porque " -"se haya usado antes. Por favor, solicite un nuevo restablecimiento de " -"contraseña." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Le hemos enviado por correo electrónico las instrucciones para restablecer " -"la contraseña, si es que existe una cuenta con la dirección electrónica que " -"indicó. Debería recibirlas en breve." - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Si no recibe un correo, por favor, asegúrese de que ha introducido la " -"dirección de correo con la que se registró y verifique su carpeta de correo " -"no deseado o spam." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Ha recibido este correo electrónico porque ha solicitado restablecer la " -"contraseña para su cuenta en %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Por favor, vaya a la página siguiente y escoja una nueva contraseña." - -msgid "Your username, in case you've forgotten:" -msgstr "Su nombre de usuario, en caso de haberlo olvidado:" - -msgid "Thanks for using our site!" -msgstr "¡Gracias por usar nuestro sitio!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "El equipo de %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"¿Ha olvidado su clave? Ingrese su dirección de correo electrónico a " -"continuación y le enviaremos las instrucciones para establecer una nueva." - -msgid "Email address:" -msgstr "Correo electrónico:" - -msgid "Reset my password" -msgstr "Restablecer mi contraseña" - -msgid "All dates" -msgstr "Todas las fechas" - -#, python-format -msgid "Select %s" -msgstr "Escoja %s" - -#, python-format -msgid "Select %s to change" -msgstr "Escoja %s a modificar" - -msgid "Date:" -msgstr "Fecha:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Buscar" - -msgid "Currently:" -msgstr "Actualmente:" - -msgid "Change:" -msgstr "Cambiar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 6cc0519..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.po deleted file mode 100644 index 1ab4dcd..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,222 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Eduardo , 2017 -# FIRST AUTHOR , 2012 -# Hotellook, 2014 -# Leonardo J. Caballero G. , 2016 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-20 03:01+0000\n" -"Last-Translator: Eduardo \n" -"Language-Team: Spanish (Venezuela) (http://www.transifex.com/django/django/" -"language/es_VE/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_VE\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Disponibles %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Esta es la lista de %s disponibles. Puede elegir algunos seleccionándolos en " -"la caja inferior y luego haciendo clic en la flecha \"Elegir\" que hay entre " -"las dos cajas." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Escriba en este cuadro para filtrar la lista de %s disponibles." - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Seleccione todos" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Haga clic para seleccionar todos los %s de una vez." - -msgid "Choose" -msgstr "Elegir" - -msgid "Remove" -msgstr "Eliminar" - -#, javascript-format -msgid "Chosen %s" -msgstr "Elegidos %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Esta es la lista de los %s elegidos. Puede eliminar algunos seleccionándolos " -"en la caja inferior y luego haciendo clic en la flecha \"Eliminar\" que hay " -"entre las dos cajas." - -msgid "Remove all" -msgstr "Eliminar todos" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Haga clic para eliminar todos los %s elegidos." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s seleccionado" -msgstr[1] "%(sel)s de %(cnt)s seleccionados" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tiene cambios sin guardar en campos editables individuales. Si ejecuta una " -"acción, los cambios no guardados se perderán." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Ha seleccionado una acción, pero no ha guardado los cambios en los campos " -"individuales todavía. Pulse OK para guardar. Tendrá que volver a ejecutar la " -"acción." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Ha seleccionado una acción y no ha hecho ningún cambio en campos " -"individuales. Probablemente esté buscando el botón Ejecutar en lugar del " -"botón Guardar." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Nota: Usted esta a %s hora por delante de la hora del servidor." -msgstr[1] "Nota: Usted esta a %s horas por delante de la hora del servidor." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Nota: Usted esta a %s hora de retraso de la hora de servidor." -msgstr[1] "Nota: Usted esta a %s horas por detrás de la hora del servidor." - -msgid "Now" -msgstr "Ahora" - -msgid "Choose a Time" -msgstr "Elija una Hora" - -msgid "Choose a time" -msgstr "Elija una hora" - -msgid "Midnight" -msgstr "Medianoche" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Mediodía" - -msgid "6 p.m." -msgstr "6 p.m." - -msgid "Cancel" -msgstr "Cancelar" - -msgid "Today" -msgstr "Hoy" - -msgid "Choose a Date" -msgstr "Elija una fecha" - -msgid "Yesterday" -msgstr "Ayer" - -msgid "Tomorrow" -msgstr "Mañana" - -msgid "January" -msgstr "Enero" - -msgid "February" -msgstr "Febrero" - -msgid "March" -msgstr "Marzo" - -msgid "April" -msgstr "Abril" - -msgid "May" -msgstr "Mayo" - -msgid "June" -msgstr "Junio" - -msgid "July" -msgstr "Julio" - -msgid "August" -msgstr "Agosto" - -msgid "September" -msgstr "Septiembre" - -msgid "October" -msgstr "Octubre" - -msgid "November" -msgstr "Noviembre" - -msgid "December" -msgstr "Diciembre" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "L" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "M" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "M" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "J" - -msgctxt "one letter Friday" -msgid "F" -msgstr "V" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Mostrar" - -msgid "Hide" -msgstr "Esconder" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.mo deleted file mode 100644 index ac00dbb..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.po deleted file mode 100644 index e224a24..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/django.po +++ /dev/null @@ -1,753 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# eallik , 2011 -# Erlend , 2020 -# Jannis Leidel , 2011 -# Janno Liivak , 2013-2015 -# Martin , 2015,2022-2023 -# Martin , 2016,2019-2020 -# Marti Raudsepp , 2016 -# Ragnar Rebase , 2019 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Martin , 2015,2022-2023\n" -"Language-Team: Estonian (http://www.transifex.com/django/django/language/" -"et/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: et\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Kustuta valitud %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s kustutamine õnnestus." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Ei saa kustutada %(name)s" - -msgid "Are you sure?" -msgstr "Kas olete kindel?" - -msgid "Administration" -msgstr "Administreerimine" - -msgid "All" -msgstr "Kõik" - -msgid "Yes" -msgstr "Jah" - -msgid "No" -msgstr "Ei" - -msgid "Unknown" -msgstr "Tundmatu" - -msgid "Any date" -msgstr "Suvaline kuupäev" - -msgid "Today" -msgstr "Täna" - -msgid "Past 7 days" -msgstr "Viimased 7 päeva" - -msgid "This month" -msgstr "Käesolev kuu" - -msgid "This year" -msgstr "Käesolev aasta" - -msgid "No date" -msgstr "Kuupäev puudub" - -msgid "Has date" -msgstr "Kuupäev olemas" - -msgid "Empty" -msgstr "Tühi" - -msgid "Not empty" -msgstr "Mitte tühi" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Palun sisestage personali kontole õige %(username)s ja parool. Teadke, et " -"mõlemad väljad võivad olla tõstutundlikud." - -msgid "Action:" -msgstr "Toiming:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Lisa veel üks %(verbose_name)s" - -msgid "Remove" -msgstr "Eemalda" - -msgid "Addition" -msgstr "Lisamine" - -msgid "Change" -msgstr "Muuda" - -msgid "Deletion" -msgstr "Kustutamine" - -msgid "action time" -msgstr "toimingu aeg" - -msgid "user" -msgstr "kasutaja" - -msgid "content type" -msgstr "sisutüüp" - -msgid "object id" -msgstr "objekti id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objekti esitus" - -msgid "action flag" -msgstr "toimingu lipp" - -msgid "change message" -msgstr "muudatuse tekst" - -msgid "log entry" -msgstr "logisissekanne" - -msgid "log entries" -msgstr "logisissekanded" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Lisati “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Muudeti “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Kustutati “%(object)s.”" - -msgid "LogEntry Object" -msgstr "Objekt LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Lisati {name} “{object}”." - -msgid "Added." -msgstr "Lisatud." - -msgid "and" -msgstr "ja" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Muudeti {fields} -> {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Muudetud {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Kustutati {name} “{object}”." - -msgid "No fields changed." -msgstr "Ühtegi välja ei muudetud." - -msgid "None" -msgstr "Puudub" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "Hoia all “Control” või “Command” Macil, et valida rohkem kui üks." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” lisamine õnnestus." - -msgid "You may edit it again below." -msgstr "Võite seda uuesti muuta." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}” lisamine õnnestus. Allpool saate lisada järgmise {name}." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} “{obj}” muutmine õnnestus. Allpool saate seda uuesti muuta." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} “{obj}” lisamine õnnestus. Allpool saate seda uuesti muuta." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} ”{obj}” muutmine õnnestus. Allpool saate lisada uue {name}." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” muutmine õnnestus." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Palun märgistage elemendid, millega soovite toiminguid sooritada. Ühtegi " -"elementi ei muudetud." - -msgid "No action selected." -msgstr "Toiming valimata." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” kustutamine õnnestus." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s ID-ga “%(key)s” ei eksisteeri. Võib-olla on see kustutatud?" - -#, python-format -msgid "Add %s" -msgstr "Lisa %s" - -#, python-format -msgid "Change %s" -msgstr "Muuda %s" - -#, python-format -msgid "View %s" -msgstr "Vaata %s" - -msgid "Database error" -msgstr "Andmebaasi viga" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s muutmine õnnestus." -msgstr[1] "%(count)s %(name)s muutmine õnnestus." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s valitud" -msgstr[1] "Kõik %(total_count)s valitud" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "valitud 0/%(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Muudatuste ajalugu: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Et kustutada %(class_name)s %(instance)s, on vaja kustutada järgmised " -"kaitstud seotud objektid: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django administreerimisliides" - -msgid "Django administration" -msgstr "Django administreerimisliides" - -msgid "Site administration" -msgstr "Saidi administreerimine" - -msgid "Log in" -msgstr "Sisene" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s administreerimine" - -msgid "Page not found" -msgstr "Lehte ei leitud" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Vabandame, kuid soovitud lehte ei leitud." - -msgid "Home" -msgstr "Kodu" - -msgid "Server error" -msgstr "Serveri viga" - -msgid "Server error (500)" -msgstr "Serveri viga (500)" - -msgid "Server Error (500)" -msgstr "Serveri Viga (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ilmnes viga. Sellest on e-posti teel teavitatud lehe administraatorit ja " -"viga parandatakse esimesel võimalusel. Täname kannatlikkuse eest." - -msgid "Run the selected action" -msgstr "Käivita valitud toiming" - -msgid "Go" -msgstr "Mine" - -msgid "Click here to select the objects across all pages" -msgstr "Kliki siin, et märgistada objektid üle kõigi lehekülgede" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Märgista kõik %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Tühjenda valik" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Rakenduse %(name)s moodulid" - -msgid "Add" -msgstr "Lisa" - -msgid "View" -msgstr "Vaata" - -msgid "You don’t have permission to view or edit anything." -msgstr "Teil pole õigust midagi vaadata ega muuta." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Kõigepealt sisestage kasutajatunnus ja salasõna. Seejärel saate muuta " -"täiendavaid kasutajaandmeid." - -msgid "Enter a username and password." -msgstr "Sisestage kasutajanimi ja salasõna." - -msgid "Change password" -msgstr "Muuda salasõna" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Palun parandage allolev viga." -msgstr[1] "Palun parandage allolevad vead." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Sisestage uus salasõna kasutajale %(username)s" - -msgid "Skip to main content" -msgstr "" - -msgid "Welcome," -msgstr "Tere tulemast," - -msgid "View site" -msgstr "Vaata saiti" - -msgid "Documentation" -msgstr "Dokumentatsioon" - -msgid "Log out" -msgstr "Logi välja" - -msgid "Breadcrumbs" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "Lisa %(name)s" - -msgid "History" -msgstr "Ajalugu" - -msgid "View on site" -msgstr "Näita lehel" - -msgid "Filter" -msgstr "Filtreeri" - -msgid "Clear all filters" -msgstr "Tühjenda kõik filtrid" - -msgid "Remove from sorting" -msgstr "Eemalda sorteerimisest" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sorteerimisjärk: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Sorteerimine" - -msgid "Toggle theme (current theme: auto)" -msgstr "" - -msgid "Toggle theme (current theme: light)" -msgstr "" - -msgid "Toggle theme (current theme: dark)" -msgstr "" - -msgid "Delete" -msgstr "Kustuta" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Selleks, et kustutada %(object_name)s '%(escaped_object)s', on vaja " -"kustutada lisaks ka kõik seotud objecktid, aga teil puudub õigus järgnevat " -"tüüpi objektide kustutamiseks:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Et kustutada %(object_name)s '%(escaped_object)s', on vaja kustutada " -"järgmised kaitstud seotud objektid:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Kas olete kindel, et soovite kustutada objekti %(object_name)s " -"\"%(escaped_object)s\"? Kõik järgnevad seotud objektid kustutatakse koos " -"sellega:" - -msgid "Objects" -msgstr "Objektid" - -msgid "Yes, I’m sure" -msgstr "Jah, olen kindel" - -msgid "No, take me back" -msgstr "Ei, mine tagasi" - -msgid "Delete multiple objects" -msgstr "Kustuta mitu objekti" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Kui kustutada valitud %(objects_name)s, peaks kustutama ka seotud objektid, " -"aga sinu kasutajakontol pole õigusi järgmiste objektitüüpide kustutamiseks:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Et kustutada valitud %(objects_name)s, on vaja kustutada ka järgmised " -"kaitstud seotud objektid:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Kas oled kindel, et soovid kustutada valitud %(objects_name)s? Kõik " -"järgnevad objektid ja seotud objektid kustutatakse:" - -msgid "Delete?" -msgstr "Kustutan?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s " - -msgid "Summary" -msgstr "Kokkuvõte" - -msgid "Recent actions" -msgstr "Hiljutised toimingud" - -msgid "My actions" -msgstr "Minu toimingud" - -msgid "None available" -msgstr "Ei leitud ühtegi" - -msgid "Unknown content" -msgstr "Tundmatu sisu" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"On tekkinud viga seoses andmebaasiga. Veenduge, et kõik vajalikud " -"andmebaasitabelid on loodud ja andmebaas on loetav vastava kasutaja poolt." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Olete sisse logitud kasutajana %(username)s, kuid teil puudub ligipääs " -"lehele. Kas te soovite teise kontoga sisse logida?" - -msgid "Forgotten your password or username?" -msgstr "Unustasite oma parooli või kasutajanime?" - -msgid "Toggle navigation" -msgstr "Lülita navigeerimine sisse" - -msgid "Sidebar" -msgstr "" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Kuupäev/kellaaeg" - -msgid "User" -msgstr "Kasutaja" - -msgid "Action" -msgstr "Toiming" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "sissekanne" -msgstr[1] "sissekanded" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Sellel objektil puudub muudatuste ajalugu. Tõenäoliselt ei lisatud objekti " -"läbi selle administreerimisliidese." - -msgid "Show all" -msgstr "Näita kõiki" - -msgid "Save" -msgstr "Salvesta" - -msgid "Popup closing…" -msgstr "Hüpikaken sulgub…" - -msgid "Search" -msgstr "Otsing" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s tulemus" -msgstr[1] "%(counter)s tulemust" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "Kokku %(full_result_count)s" - -msgid "Save as new" -msgstr "Salvesta uuena" - -msgid "Save and add another" -msgstr "Salvesta ja lisa uus" - -msgid "Save and continue editing" -msgstr "Salvesta ja jätka muutmist" - -msgid "Save and view" -msgstr "Salvesta ja vaata" - -msgid "Close" -msgstr "Sulge" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Muuda valitud %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Lisa veel üks %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Kustuta valitud %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Vaata valitud %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Tänan, et veetsite aega meie lehel." - -msgid "Log in again" -msgstr "Logi uuesti sisse" - -msgid "Password change" -msgstr "Salasõna muutmine" - -msgid "Your password was changed." -msgstr "Teie salasõna on vahetatud." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Turvalisuse tagamiseks palun sisestage oma praegune salasõna ja seejärel uus " -"salasõna. Veendumaks, et uue salasõna sisestamisel ei tekkinud vigu, palun " -"sisestage see kaks korda." - -msgid "Change my password" -msgstr "Muuda salasõna" - -msgid "Password reset" -msgstr "Uue parooli loomine" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Teie salasõna on määratud. Võite nüüd sisse logida." - -msgid "Password reset confirmation" -msgstr "Uue salasõna loomise kinnitamine" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Palun sisestage uus salasõna kaks korda, et saaksime veenduda, et " -"sisestamisel ei tekkinud vigu." - -msgid "New password:" -msgstr "Uus salasõna:" - -msgid "Confirm password:" -msgstr "Kinnita salasõna:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Uue salasõna loomise link ei olnud korrektne. Võimalik, et seda on varem " -"kasutatud. Esitage uue salasõna taotlus uuesti." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Saatsime teile meilile parooli muutmise juhendi. Kui teie poolt sisestatud e-" -"posti aadressiga konto on olemas, siis jõuab kiri peagi kohale." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Kui te ei saa kirja kätte siis veenduge, et sisestasite just selle e-posti " -"aadressi, millega registreerisite. Kontrollige ka oma rämpsposti kausta." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Saite käesoleva kirja kuna soovisite muuta lehel %(site_name)s oma " -"kasutajakontoga seotud parooli." - -msgid "Please go to the following page and choose a new password:" -msgstr "Palun minge järmisele lehele ning sisestage uus salasõna" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Teie kasutajatunnus juhuks, kui olete unustanud:" - -msgid "Thanks for using our site!" -msgstr "Täname meie lehte külastamast!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s meeskond" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Unustasite oma salasõna? Sisestage oma e-posti aadress ja saadame meilile " -"juhised uue saamiseks." - -msgid "Email address:" -msgstr "E-posti aadress:" - -msgid "Reset my password" -msgstr "Reseti parool" - -msgid "All dates" -msgstr "Kõik kuupäevad" - -#, python-format -msgid "Select %s" -msgstr "Vali %s" - -#, python-format -msgid "Select %s to change" -msgstr "Vali %s mida muuta" - -#, python-format -msgid "Select %s to view" -msgstr "Vali %s vaatamiseks" - -msgid "Date:" -msgstr "Kuupäev:" - -msgid "Time:" -msgstr "Aeg:" - -msgid "Lookup" -msgstr "Otsi" - -msgid "Currently:" -msgstr "Hetkel:" - -msgid "Change:" -msgstr "Muuda:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo deleted file mode 100644 index d14d676..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po deleted file mode 100644 index 0c06004..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,270 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# eallik , 2011 -# Jannis Leidel , 2011 -# Janno Liivak , 2013-2015 -# Martin , 2021 -# Martin , 2016,2020 -# Ragnar Rebase , 2019 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-03-22 11:55+0000\n" -"Last-Translator: Martin \n" -"Language-Team: Estonian (http://www.transifex.com/django/django/language/" -"et/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: et\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Saadaval %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Nimekiri välja \"%s\" võimalikest väärtustest. Saad valida ühe või mitu " -"kirjet allolevast kastist ning vajutades noolt \"Vali\" liigutada neid ühest " -"kastist teise." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Filtreeri selle kasti abil välja \"%s\" nimekirja." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Vali kõik" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Kliki, et valida kõik %s korraga." - -msgid "Choose" -msgstr "Vali" - -msgid "Remove" -msgstr "Eemalda" - -#, javascript-format -msgid "Chosen %s" -msgstr "Valitud %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Nimekiri välja \"%s\" valitud väärtustest. Saad valida ühe või mitu kirjet " -"allolevast kastist ning vajutades noolt \"Eemalda\" liigutada neid ühest " -"kastist teise." - -msgid "Remove all" -msgstr "Eemalda kõik" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Kliki, et eemaldada kõik valitud %s korraga." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s %(cnt)sst valitud" -msgstr[1] "%(sel)s %(cnt)sst valitud" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Muudetavates lahtrites on salvestamata muudatusi. Kui sooritate mõne " -"toimingu, lähevad salvestamata muudatused kaotsi." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Valisite toimingu, kuid pole salvestanud muudatusi lahtrites. Salvestamiseks " -"palun vajutage OK. Peate toimingu uuesti käivitama." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Valisite toimingu, kuid ei muutnud ühtegi lahtrit. Tõenäoliselt otsite Mine " -"mitte Salvesta nuppu." - -msgid "Now" -msgstr "Praegu" - -msgid "Midnight" -msgstr "Kesköö" - -msgid "6 a.m." -msgstr "6 hommikul" - -msgid "Noon" -msgstr "Keskpäev" - -msgid "6 p.m." -msgstr "6 õhtul" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Märkus: Olete %s tund serveri ajast ees." -msgstr[1] "Märkus: Olete %s tundi serveri ajast ees." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Märkus: Olete %s tund serveri ajast maas." -msgstr[1] "Märkus: Olete %s tundi serveri ajast maas." - -msgid "Choose a Time" -msgstr "Vali aeg" - -msgid "Choose a time" -msgstr "Vali aeg" - -msgid "Cancel" -msgstr "Tühista" - -msgid "Today" -msgstr "Täna" - -msgid "Choose a Date" -msgstr "Vali kuupäev" - -msgid "Yesterday" -msgstr "Eile" - -msgid "Tomorrow" -msgstr "Homme" - -msgid "January" -msgstr "jaanuar" - -msgid "February" -msgstr "veebruar" - -msgid "March" -msgstr "märts" - -msgid "April" -msgstr "aprill" - -msgid "May" -msgstr "mai" - -msgid "June" -msgstr "juuni" - -msgid "July" -msgstr "juuli" - -msgid "August" -msgstr "august" - -msgid "September" -msgstr "september" - -msgid "October" -msgstr "oktoober" - -msgid "November" -msgstr "november" - -msgid "December" -msgstr "detsember" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jaan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "veebr" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "märts" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "mai" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "juuni" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "juuli" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "sept" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "dets" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "P" - -msgctxt "one letter Monday" -msgid "M" -msgstr "E" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "K" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "N" - -msgctxt "one letter Friday" -msgid "F" -msgstr "R" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "L" - -msgid "Show" -msgstr "Näita" - -msgid "Hide" -msgstr "Varja" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo deleted file mode 100644 index a2c9933..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.po deleted file mode 100644 index 3aba9f8..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/django.po +++ /dev/null @@ -1,732 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Aitzol Naberan , 2013,2016 -# Eneko Illarramendi , 2017-2019,2022 -# Jannis Leidel , 2011 -# julen, 2012-2013 -# julen, 2013 -# Urtzi Odriozola , 2017 -# Yoaira García , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: Eneko Illarramendi \n" -"Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Ezabatu aukeratutako %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s elementu ezabatu dira." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Ezin da %(name)s ezabatu" - -msgid "Are you sure?" -msgstr "Ziur al zaude?" - -msgid "Administration" -msgstr "Kudeaketa" - -msgid "All" -msgstr "Dena" - -msgid "Yes" -msgstr "Bai" - -msgid "No" -msgstr "Ez" - -msgid "Unknown" -msgstr "Ezezaguna" - -msgid "Any date" -msgstr "Edozein data" - -msgid "Today" -msgstr "Gaur" - -msgid "Past 7 days" -msgstr "Aurreko 7 egunak" - -msgid "This month" -msgstr "Hilabete hau" - -msgid "This year" -msgstr "Urte hau" - -msgid "No date" -msgstr "Datarik ez" - -msgid "Has date" -msgstr "Data dauka" - -msgid "Empty" -msgstr "Hutsik" - -msgid "Not empty" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Idatzi kudeaketa gunerako %(username)s eta pasahitz zuzena. Kontuan izan " -"biek maiuskula/minuskulak desberdintzen dituztela." - -msgid "Action:" -msgstr "Ekintza:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Gehitu beste %(verbose_name)s bat" - -msgid "Remove" -msgstr "Kendu" - -msgid "Addition" -msgstr "Gehitzea" - -msgid "Change" -msgstr "Aldatu" - -msgid "Deletion" -msgstr "Ezabatzea" - -msgid "action time" -msgstr "Ekintza hordua" - -msgid "user" -msgstr "erabiltzailea" - -msgid "content type" -msgstr "eduki mota" - -msgid "object id" -msgstr "objetuaren id-a" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objeturaren adierazpena" - -msgid "action flag" -msgstr "Ekintza botoia" - -msgid "change message" -msgstr "Mezua aldatu" - -msgid "log entry" -msgstr "Log sarrera" - -msgid "log entries" -msgstr "log sarrerak" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\" gehituta." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "\"%(object)s\" ezabatuta." - -msgid "LogEntry Object" -msgstr "LogEntry objetua" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} \"{object}\" gehituta." - -msgid "Added." -msgstr "Gehituta" - -msgid "and" -msgstr "eta" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} aldatuta." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} \"{object}\" ezabatuta." - -msgid "No fields changed." -msgstr "Ez da eremurik aldatu." - -msgid "None" -msgstr "Bat ere ez" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Bat baino gehiago hautatzeko, sakatu \"Kontrol\" tekla edo \"Command\" Mac " -"batean." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "Aldaketa gehiago egin ditzazkezu jarraian." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} \"{obj}\" ondo gehitu da. Beste {name} bat gehitu dezakezu jarraian." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\" ondo aldatu da. Aldaketa gehiago egin ditzazkezu jarraian." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\" ondo gehitu da. Aldaketa gehiago egin ditzazkezu jarraian." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Elementuak aukeratu behar dira beraien gain ekintzak burutzeko. Ez da " -"elementurik aldatu." - -msgid "No action selected." -msgstr "Ez dago ekintzarik aukeratuta." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s \"%(obj)s\" ondo ezabatu da." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"\"%(key)s\" ID-a duen %(name)s ez da existitzen. Agian ezabatua izan da?" - -#, python-format -msgid "Add %s" -msgstr "Gehitu %s" - -#, python-format -msgid "Change %s" -msgstr "Aldatu %s" - -#, python-format -msgid "View %s" -msgstr "%s ikusi" - -msgid "Database error" -msgstr "Errorea datu-basean" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(name)s %(count)s ondo aldatu da." -msgstr[1] "%(count)s %(name)s ondo aldatu dira." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Guztira %(total_count)s aukeratuta" -msgstr[1] "Guztira %(total_count)s aukeratuta" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Guztira %(cnt)s, 0 aukeratuta" - -#, python-format -msgid "Change history: %s" -msgstr "Aldaketen historia: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(class_name)s klaseko %(instance)s instantziak ezabatzeak erlazionatutako " -"objektu hauek ezabatzea eragingo du:\n" -"%(related_objects)s" - -msgid "Django site admin" -msgstr "Django kudeaketa gunea" - -msgid "Django administration" -msgstr "Django kudeaketa" - -msgid "Site administration" -msgstr "Webgunearen kudeaketa" - -msgid "Log in" -msgstr "Sartu" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s kudeaketa" - -msgid "Page not found" -msgstr "Ez da orririk aurkitu" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Sentitzen dugu, baina eskatutako orria ezin da aurkitu." - -msgid "Home" -msgstr "Hasiera" - -msgid "Server error" -msgstr "Zerbitzariaren errorea" - -msgid "Server error (500)" -msgstr "Zerbitzariaren errorea (500)" - -msgid "Server Error (500)" -msgstr "Zerbitzariaren errorea (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Burutu aukeratutako ekintza" - -msgid "Go" -msgstr "Joan" - -msgid "Click here to select the objects across all pages" -msgstr "Egin klik hemen orri guztietako objektuak aukeratzeko" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Hautatu %(total_count)s %(module_name)s guztiak" - -msgid "Clear selection" -msgstr "Garbitu hautapena" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s aplikazioaren modeloak" - -msgid "Add" -msgstr "Gehitu" - -msgid "View" -msgstr "Ikusi" - -msgid "You don’t have permission to view or edit anything." -msgstr "Ez duzu ezer ikusteko edo editatzeko baimenik." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Lehenik, sartu erabiltzailea eta pasahitza bat. Gero, editatzeko aukera " -"gehiago izango dituzu. " - -msgid "Enter a username and password." -msgstr "Sartu erabiltzaile izen eta pasahitz bat." - -msgid "Change password" -msgstr "Aldatu pasahitza" - -msgid "Please correct the error below." -msgstr "Mesedez zuzendu erroreak behean." - -msgid "Please correct the errors below." -msgstr "Mesedez zuzendu erroreak behean." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Idatzi pasahitz berria %(username)s erabiltzailearentzat." - -msgid "Welcome," -msgstr "Ongi etorri," - -msgid "View site" -msgstr "Webgunea ikusi" - -msgid "Documentation" -msgstr "Dokumentazioa" - -msgid "Log out" -msgstr "Irten" - -#, python-format -msgid "Add %(name)s" -msgstr "Gehitu %(name)s" - -msgid "History" -msgstr "Historia" - -msgid "View on site" -msgstr "Webgunean ikusi" - -msgid "Filter" -msgstr "Iragazkia" - -msgid "Clear all filters" -msgstr "Garbitu filtro guztiak." - -msgid "Remove from sorting" -msgstr "Kendu ordenaziotik" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Ordenatzeko lehentasuna: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Txandakatu ordenazioa" - -msgid "Delete" -msgstr "Ezabatu" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s ezabatzean bere '%(escaped_object)s' ere ezabatzen dira, " -"baina zure kontuak ez dauka baimenik objetu mota hauek ezabatzeko:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' ezabatzeak erlazionatutako objektu " -"babestu hauek ezabatzea eskatzen du:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ziur zaude %(object_name)s \"%(escaped_object)s\" ezabatu nahi dituzula? " -"Erlazionaturik dauden hurrengo elementuak ere ezabatuko dira:" - -msgid "Objects" -msgstr "Objetuak" - -msgid "Yes, I’m sure" -msgstr "bai, ziur nago " - -msgid "No, take me back" -msgstr "Ez, itzuli atzera" - -msgid "Delete multiple objects" -msgstr "Ezabatu hainbat objektu" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Aukeratutako %(objects_name)s ezabatzeak erlazionatutako objektuak ezabatzea " -"eskatzen du baina zure kontuak ez dauka baimen nahikorik objektu mota hauek " -"ezabatzeko: " - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Aukeratutako %(objects_name)s ezabatzeak erlazionatutako objektu babestu " -"hauek ezabatzea eskatzen du:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ziur zaude aukeratutako %(objects_name)s ezabatu nahi duzula? Objektu guzti " -"hauek eta erlazionatutako elementu guztiak ezabatuko dira:" - -msgid "Delete?" -msgstr "Ezabatu?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Irizpidea: %(filter_title)s" - -msgid "Summary" -msgstr "Laburpena" - -msgid "Recent actions" -msgstr "Azken ekintzak" - -msgid "My actions" -msgstr "Nire ekintzak" - -msgid "None available" -msgstr "Ez dago ezer" - -msgid "Unknown content" -msgstr "Eduki ezezaguna" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"%(username)s bezala autentikatu zara, baina ez daukazu orrialde honetara " -"sarbidea. Nahi al duzu kontu ezberdin batez sartu?" - -msgid "Forgotten your password or username?" -msgstr "Pasahitza edo erabiltzaile-izena ahaztu duzu?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Start typing to filter…" -msgstr "Hasi idazten filtratzeko..." - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Data/ordua" - -msgid "User" -msgstr "Erabiltzailea" - -msgid "Action" -msgstr "Ekintza" - -msgid "entry" -msgstr "sarrera" - -msgid "entries" -msgstr "sarrerak" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "Erakutsi dena" - -msgid "Save" -msgstr "Gorde" - -msgid "Popup closing…" -msgstr "Popup leihoa ixten..." - -msgid "Search" -msgstr "Bilatu" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "Emaitza %(counter)s " -msgstr[1] "%(counter)s emaitza" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s guztira" - -msgid "Save as new" -msgstr "Gorde berri gisa" - -msgid "Save and add another" -msgstr "Gorde eta beste bat gehitu" - -msgid "Save and continue editing" -msgstr "Gorde eta editatzen jarraitu" - -msgid "Save and view" -msgstr "Gorde eta ikusi" - -msgid "Close" -msgstr "Itxi" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Aldatu aukeratutako %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Gehitu beste %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Ezabatu aukeratutako %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Hasi saioa berriro" - -msgid "Password change" -msgstr "Aldatu pasahitza" - -msgid "Your password was changed." -msgstr "Zure pasahitza aldatu egin da." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Mesedez, sartu zure pasahitza zaharra segurtasunagatik, gero sartu berria bi " -"aldiz, ondo idatzita dagoela ziurtatzeko. " - -msgid "Change my password" -msgstr "Nire pasahitza aldatu" - -msgid "Password reset" -msgstr "Berrezarri pasahitza" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Zure pasahitza ezarri da. Orain aurrera egin eta sartu zaitezke." - -msgid "Password reset confirmation" -msgstr "Pasahitza berrezartzeko berrespena" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "Idatzi pasahitz berria birritan ondo idatzita dagoela ziurta dezagun." - -msgid "New password:" -msgstr "Pasahitz berria:" - -msgid "Confirm password:" -msgstr "Berretsi pasahitza:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Pasahitza berrezartzeko loturak baliogabea dirudi. Baliteke lotura aurretik " -"erabilita egotea. Eskatu berriro pasahitza berrezartzea." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Zure pasahitza jartzeko aginduak bidali dizkizugu... sartu duzun posta " -"elektronikoarekin konturen bat baldin badago. Laster jasoko dituzu." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Posta elektronikorik jasotzen ez baduzu, ziurtatu erregistratu duzun " -"helbidean sartu zarela, eta zure spam horria begiratu. " - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Mezu hau %(site_name)s webgunean pasahitza berrezartzea eskatu duzulako jaso " -"duzu." - -msgid "Please go to the following page and choose a new password:" -msgstr "Zoaz hurrengo orrira eta aukeratu pasahitz berria:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Zure erabiltzaile-izena, ahaztu baduzu:" - -msgid "Thanks for using our site!" -msgstr "Mila esker gure webgunea erabiltzeagatik!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s webguneko taldea" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Pasahitza ahaztu zaizu? Sartu zure helbidea behean, eta berria jartzeko " -"argibideak bidaliko dizkizugu " - -msgid "Email address:" -msgstr "Helbide elektronikoa:" - -msgid "Reset my password" -msgstr "Berrezarri pasahitza" - -msgid "All dates" -msgstr "Data guztiak" - -#, python-format -msgid "Select %s" -msgstr "Aukeratu %s" - -#, python-format -msgid "Select %s to change" -msgstr "Aukeratu %s aldatzeko" - -#, python-format -msgid "Select %s to view" -msgstr "Aukeratu %s ikusteko" - -msgid "Date:" -msgstr "Data:" - -msgid "Time:" -msgstr "Ordua:" - -msgid "Lookup" -msgstr "Lookup" - -msgid "Currently:" -msgstr "Oraingoa:" - -msgid "Change:" -msgstr "Aldatu:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 234bff6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po deleted file mode 100644 index e7d3ae5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,267 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Aitzol Naberan , 2011 -# Eneko Illarramendi , 2017,2022 -# Jannis Leidel , 2011 -# julen, 2012-2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-07-25 07:59+0000\n" -"Last-Translator: Eneko Illarramendi \n" -"Language-Team: Basque (http://www.transifex.com/django/django/language/eu/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s erabilgarri" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Hau da aukeran dauden %s zerrenda. Hauetako zenbait aukera ditzakezu " -"azpiko \n" -"kaxan hautatu eta kutxen artean dagoen \"Aukeratu\" gezian klik eginez." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Idatzi kutxa honetan erabilgarri dauden %s objektuak iragazteko." - -msgid "Filter" -msgstr "Filtroa" - -msgid "Choose all" -msgstr "Denak aukeratu" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Egin klik %s guztiak batera aukeratzeko." - -msgid "Choose" -msgstr "Aukeratu" - -msgid "Remove" -msgstr "Kendu" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s aukeratuak" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Hau da aukeratutako %s zerrenda. Hauetako zenbait ezaba ditzakezu azpiko " -"kutxan hautatu eta bi kutxen artean dagoen \"Ezabatu\" gezian klik eginez." - -msgid "Remove all" -msgstr "Kendu guztiak" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Egin klik aukeratutako %s guztiak kentzeko." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s-etik %(sel)s aukeratuta" -msgstr[1] "%(cnt)s-etik %(sel)s aukeratuta" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Gorde gabeko aldaketak dauzkazu eremuetan. Ekintza bat exekutatzen baduzu, " -"gorde gabeko aldaketak galduko dira." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "Orain" - -msgid "Midnight" -msgstr "Gauerdia" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Eguerdia" - -msgid "6 p.m." -msgstr "6 p.m." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Oharra: zerbitzariaren denborarekiko ordu %s aurrerago zaude" -msgstr[1] "Oharra: zerbitzariaren denborarekiko %s ordu aurrerago zaude" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Oharra: zerbitzariaren denborarekiko ordu %s atzerago zaude. " -msgstr[1] "Oharra: zerbitzariaren denborarekiko %s ordu atzerago zaude. " - -msgid "Choose a Time" -msgstr "Aukeratu ordu bat" - -msgid "Choose a time" -msgstr "Aukeratu ordu bat" - -msgid "Cancel" -msgstr "Atzera" - -msgid "Today" -msgstr "Gaur" - -msgid "Choose a Date" -msgstr "Aukeratu data bat" - -msgid "Yesterday" -msgstr "Atzo" - -msgid "Tomorrow" -msgstr "Bihar" - -msgid "January" -msgstr "urtarrila" - -msgid "February" -msgstr "otsaila" - -msgid "March" -msgstr "martxoa" - -msgid "April" -msgstr "apirila" - -msgid "May" -msgstr "maiatza" - -msgid "June" -msgstr "ekaina" - -msgid "July" -msgstr "uztaila" - -msgid "August" -msgstr "abuztua" - -msgid "September" -msgstr "iraila" - -msgid "October" -msgstr "urria" - -msgid "November" -msgstr "azaroa" - -msgid "December" -msgstr "abendua" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "urt." - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "ots." - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "mar." - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "api." - -msgctxt "abbrev. month May" -msgid "May" -msgstr "mai." - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "eka." - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "uzt." - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "abu." - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "ira." - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "urr." - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "aza." - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "abe." - -msgctxt "one letter Sunday" -msgid "S" -msgstr "ig." - -msgctxt "one letter Monday" -msgid "M" -msgstr "al." - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "ar." - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "az." - -msgctxt "one letter Thursday" -msgid "T" -msgstr "og." - -msgctxt "one letter Friday" -msgid "F" -msgstr "ol." - -msgctxt "one letter Saturday" -msgid "S" -msgstr "lr." - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "" - -msgid "Show" -msgstr "Erakutsi" - -msgid "Hide" -msgstr "Izkutatu" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo deleted file mode 100644 index 227a0cd..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.po deleted file mode 100644 index 03a221c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/django.po +++ /dev/null @@ -1,751 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ahmad Hosseini , 2020 -# Ali Nikneshan , 2015,2020 -# Ali Vakilzade , 2015 -# Aly Ahmady , 2022 -# Amir Ajorloo , 2020 -# Arash Fazeli , 2012 -# Farshad Asadpour, 2021 -# Jannis Leidel , 2011 -# MJafar Mashhadi , 2018 -# Mohammad Hossein Mojtahedi , 2017,2019 -# Pouya Abbassi, 2016 -# rahim agh , 2021 -# Reza Mohammadi , 2013-2014 -# Sajad Rahimi , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-05-25 07:05+0000\n" -"Last-Translator: Aly Ahmady , 2022\n" -"Language-Team: Persian (http://www.transifex.com/django/django/language/" -"fa/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "حذف %(verbose_name_plural)s های انتخاب شده" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d تا %(items)s با موفقیت حذف شدند." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "امکان حذف %(name)s نیست." - -msgid "Are you sure?" -msgstr "آیا مطمئن هستید؟" - -msgid "Administration" -msgstr "مدیریت" - -msgid "All" -msgstr "همه" - -msgid "Yes" -msgstr "بله" - -msgid "No" -msgstr "خیر" - -msgid "Unknown" -msgstr "ناشناخته" - -msgid "Any date" -msgstr "هر تاریخی" - -msgid "Today" -msgstr "امروز" - -msgid "Past 7 days" -msgstr "۷ روز اخیر" - -msgid "This month" -msgstr "این ماه" - -msgid "This year" -msgstr "امسال" - -msgid "No date" -msgstr "بدون تاریخ" - -msgid "Has date" -msgstr "دارای تاریخ" - -msgid "Empty" -msgstr "خالی" - -msgid "Not empty" -msgstr "غیر خالی" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"لطفا %(username)s و گذرواژه را برای یک حساب کارمند وارد کنید.\n" -"توجه داشته باشید که ممکن است هر دو به کوچکی و بزرگی حروف حساس باشند." - -msgid "Action:" -msgstr "اقدام:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "افزودن یک %(verbose_name)s دیگر" - -msgid "Remove" -msgstr "حذف" - -msgid "Addition" -msgstr "افزودن" - -msgid "Change" -msgstr "تغییر" - -msgid "Deletion" -msgstr "کاستن" - -msgid "action time" -msgstr "زمان اقدام" - -msgid "user" -msgstr "کاربر" - -msgid "content type" -msgstr "نوع محتوی" - -msgid "object id" -msgstr "شناسهٔ شیء" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "صورت شیء" - -msgid "action flag" -msgstr "نشانه عمل" - -msgid "change message" -msgstr "پیغام تغییر" - -msgid "log entry" -msgstr "مورد اتفاقات" - -msgid "log entries" -msgstr "موارد اتفاقات" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\" افروده شد." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "تغییر یافت \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "\"%(object)s\" حدف شد." - -msgid "LogEntry Object" -msgstr "شئ LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} \"{object}\" اضافه شد." - -msgid "Added." -msgstr "اضافه شد" - -msgid "and" -msgstr "و" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{fields} برای {name} \"{object}\" تغییر یافتند." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} تغییر یافتند." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} \"{object}\" حذف شد." - -msgid "No fields changed." -msgstr "فیلدی تغییر نیافته است." - -msgid "None" -msgstr "هیچ" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"برای انتخاب بیش از یکی، کلید \"Control\"، یا \"Command\" روی Mac، را نگه " -"دارید." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\" با موفقیت اضافه شد." - -msgid "You may edit it again below." -msgstr "می‌توانید مجدداً ویرایش کنید." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} \"{obj}\" با موفقیت اضافه شد. شما میتوانید {name} دیگری در قسمت پایین " -"اضافه کنید." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\" با موفقیت تغییر یافت. شما میتوانید دوباره آنرا در قسمت " -"پایین ویرایش کنید." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -" {name} \"{obj}\" به موفقیت اضافه شد. شما میتوانید در قسمت پایین، دوباره آن " -"را ویرایش کنید." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} \"{obj}\" با موفقیت تغییر یافت. شما میتوانید {name} دیگری در قسمت " -"پایین اضافه کنید." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\" با موفقیت تغییر یافت." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"آیتم ها باید به منظور انجام عملیات بر روی آنها انتخاب شوند. هیچ آیتمی با " -"تغییر نیافته است." - -msgid "No action selected." -msgstr "فعالیتی انتخاب نشده" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s·\"%(obj)s\" با موفقیت حذف شد." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s با کلید «%(key)s» وجود ندارد. ممکن است حذف شده باشد." - -#, python-format -msgid "Add %s" -msgstr "اضافه کردن %s" - -#, python-format -msgid "Change %s" -msgstr "تغییر %s" - -#, python-format -msgid "View %s" -msgstr "مشاهده %s" - -msgid "Database error" -msgstr "خطا در بانک اطلاعاتی" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s با موفقیت تغییر کرد." -msgstr[1] "%(count)s %(name)s با موفقیت تغییر کرد." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "همه موارد %(total_count)s انتخاب شده" -msgstr[1] "همه موارد %(total_count)s انتخاب شده" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 از %(cnt)s انتخاب شده‌اند" - -#, python-format -msgid "Change history: %s" -msgstr "تاریخچهٔ تغییر: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"برای حذف %(class_name)s %(instance)s لازم است اشیای حفاظت شدهٔ زیر هم حذف " -"شوند: %(related_objects)s" - -msgid "Django site admin" -msgstr "مدیریت وب‌گاه Django" - -msgid "Django administration" -msgstr "مدیریت Django" - -msgid "Site administration" -msgstr "مدیریت وب‌گاه" - -msgid "Log in" -msgstr "ورود" - -#, python-format -msgid "%(app)s administration" -msgstr "مدیریت ‎%(app)s‎" - -msgid "Page not found" -msgstr "صفحه یافت نشد" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "شرمنده، صفحه مورد تقاضا یافت نشد." - -msgid "Home" -msgstr "شروع" - -msgid "Server error" -msgstr "خطای سرور" - -msgid "Server error (500)" -msgstr "خطای سرور (500)" - -msgid "Server Error (500)" -msgstr "خطای سرور (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"مشکلی پیش آمده. این مشکل از طریق ایمیل به مدیران وب‌گاه اطلاع داده شد و به " -"زودی اصلاح می‌گردد. از صبر شما متشکریم." - -msgid "Run the selected action" -msgstr "اجرای حرکت انتخاب شده" - -msgid "Go" -msgstr "برو" - -msgid "Click here to select the objects across all pages" -msgstr "برای انتخاب موجودیت‌ها در تمام صفحات اینجا را کلیک کنید" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "انتخاب تمامی %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "لغو انتخاب‌ها" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "مدلها در برنامه %(name)s " - -msgid "Add" -msgstr "اضافه کردن" - -msgid "View" -msgstr "مشاهده" - -msgid "You don’t have permission to view or edit anything." -msgstr "شما اجازهٔ مشاهده یا ویرایش چیزی را ندارید." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"ابتدا یک نام کاربری و گذرواژه وارد کنید. سپس می توانید مشخصات دیگر کاربر را " -"ویرایش کنید." - -msgid "Enter a username and password." -msgstr "یک نام کاربری و رمز عبور را وارد کنید." - -msgid "Change password" -msgstr "تغییر گذرواژه" - -msgid "Please correct the error below." -msgstr "لطفاً خطای زیر را تصحیح کنید." - -msgid "Please correct the errors below." -msgstr "لطفاً خطاهای زیر را تصحیح کنید." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "برای کابر %(username)s یک گذرنامهٔ جدید وارد کنید." - -msgid "Welcome," -msgstr "خوش آمدید،" - -msgid "View site" -msgstr "نمایش وبگاه" - -msgid "Documentation" -msgstr "مستندات" - -msgid "Log out" -msgstr "خروج" - -#, python-format -msgid "Add %(name)s" -msgstr "اضافه‌کردن %(name)s" - -msgid "History" -msgstr "تاریخچه" - -msgid "View on site" -msgstr "مشاهده در وب‌گاه" - -msgid "Filter" -msgstr "فیلتر" - -msgid "Clear all filters" -msgstr "پاک کردن همه فیلترها" - -msgid "Remove from sorting" -msgstr "حذف از مرتب سازی" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "اولویت مرتب‌سازی: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "تعویض مرتب سازی" - -msgid "Delete" -msgstr "حذف" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"حذف %(object_name)s·'%(escaped_object)s' می تواند باعث حذف اشیاء مرتبط شود. " -"اما حساب شما دسترسی لازم برای حذف اشیای از انواع زیر را ندارد:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"حذف %(object_name)s '%(escaped_object)s' نیاز به حذف موجودیت‌های مرتبط محافظت " -"شده ذیل دارد:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"آیا مطمئنید که می‌خواهید %(object_name)s·\"%(escaped_object)s\" را حذف کنید؟ " -"کلیهٔ اشیای مرتبط زیر حذف خواهند شد:" - -msgid "Objects" -msgstr "اشیاء" - -msgid "Yes, I’m sure" -msgstr "بله، مطمئن هستم." - -msgid "No, take me back" -msgstr "نه، من را برگردان" - -msgid "Delete multiple objects" -msgstr "حذف اشیاء متعدد" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"حذف %(objects_name)s انتخاب شده منجر به حذف موجودیت‌های مرتبط خواهد شد، ولی " -"شناسه شما اجازه حذف اینگونه از موجودیت‌های ذیل را ندارد:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"حذف %(objects_name)s انتخاب شده نیاز به حذف موجودیت‌های مرتبط محافظت شده ذیل " -"دارد:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"آیا در خصوص حذف %(objects_name)s انتخاب شده اطمینان دارید؟ تمام موجودیت‌های " -"ذیل به همراه موارد مرتبط با آنها حذف خواهند شد:" - -msgid "Delete?" -msgstr "حذف؟" - -#, python-format -msgid " By %(filter_title)s " -msgstr "براساس %(filter_title)s " - -msgid "Summary" -msgstr "خلاصه" - -msgid "Recent actions" -msgstr "فعالیتهای اخیر" - -msgid "My actions" -msgstr "فعالیتهای من" - -msgid "None available" -msgstr "چیزی در دسترس نیست" - -msgid "Unknown content" -msgstr "محتوا ناشناخته" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"در نصب بانک اطلاعاتی شما مشکلی وجود دارد. مطمئن شوید که جداول مربوطه به " -"درستی ایجاد شده‌اند و اطمینان حاصل کنید که بانک اطلاعاتی توسط کاربر مربوطه " -"قابل خواندن می باشد." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"شما به عنوان %(username)sوارد شده اید. ولی اجازه مشاهده صفحه فوق را نداریدو " -"آیا مایلید با کاربر دیگری وارد شوید؟" - -msgid "Forgotten your password or username?" -msgstr "گذرواژه یا نام کاربری خود را فراموش کرده‌اید؟" - -msgid "Toggle navigation" -msgstr "تعویض جهت یابی" - -msgid "Start typing to filter…" -msgstr "آغار به کار نوشتن برای فیلترکردن ..." - -msgid "Filter navigation items" -msgstr "فیلتر کردن آیتم های مسیریابی" - -msgid "Date/time" -msgstr "تاریخ/ساعت" - -msgid "User" -msgstr "کاربر" - -msgid "Action" -msgstr "عمل" - -msgid "entry" -msgstr "ورودی" - -msgid "entries" -msgstr "ورودی ها" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"این شیء هنوز تاریخچه تغییرات ندارد. ممکن است توسط این وب‌گاه مدیر ساخته نشده " -"باشد." - -msgid "Show all" -msgstr "نمایش همه" - -msgid "Save" -msgstr "ذخیره" - -msgid "Popup closing…" -msgstr "در حال بستن پنجره..." - -msgid "Search" -msgstr "جستجو" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s نتیجه" -msgstr[1] "%(counter)s نتیجه" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "در مجموع %(full_result_count)s تا" - -msgid "Save as new" -msgstr "ذخیره به عنوان جدید" - -msgid "Save and add another" -msgstr "ذخیره و ایجاد یکی دیگر" - -msgid "Save and continue editing" -msgstr "ذخیره و ادامهٔ ویرایش" - -msgid "Save and view" -msgstr "ذخیره و نمایش" - -msgid "Close" -msgstr "بستن" - -#, python-format -msgid "Change selected %(model)s" -msgstr "تغییر دادن %(model)s انتخاب شده" - -#, python-format -msgid "Add another %(model)s" -msgstr "افزدون %(model)s دیگر" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "حذف کردن %(model)s انتخاب شده" - -#, python-format -msgid "View selected %(model)s" -msgstr "نمایش %(model)sهای انتخاب شده" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" -"از شما ممنون هستیم که زمان با ارزش خود را برای این تارنما امروز صرف کرده اید" - -msgid "Log in again" -msgstr "ورود دوباره" - -msgid "Password change" -msgstr "تغییر گذرواژه" - -msgid "Your password was changed." -msgstr "گذرواژهٔ شما تغییر یافت." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"برای امنیت بیشتر٬ لطفا گذرواژه قدیمی خود را وارد کنید٬ سپس گذرواژه جدیدتان " -"را دوبار وارد کنید تا ما بتوانیم چک کنیم که به درستی تایپ کرده‌اید. " - -msgid "Change my password" -msgstr "تغییر گذرواژهٔ من" - -msgid "Password reset" -msgstr "ایجاد گذرواژهٔ جدید" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "گذرواژهٔ جدیدتان تنظیم شد. اکنون می‌توانید وارد وب‌گاه شوید." - -msgid "Password reset confirmation" -msgstr "تأیید گذرواژهٔ جدید" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"گذرواژهٔ جدیدتان را دوبار وارد کنید تا ما بتوانیم چک کنیم که به درستی تایپ " -"کرده‌اید." - -msgid "New password:" -msgstr "گذرواژهٔ جدید:" - -msgid "Confirm password:" -msgstr "تکرار گذرواژه:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"پیوند ایجاد گذرواژهٔ جدید نامعتبر بود، احتمالاً به این علت که قبلاً از آن " -"استفاده شده است. لطفاً برای یک گذرواژهٔ جدید درخواست دهید." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"دستورالعمل تنظیم گذرواژه را برایتان ایمیل کردیم. اگر با ایمیلی که وارد کردید " -"اکانتی وجود داشته باشد باید به زودی این دستورالعمل‌ها را دریافت کنید." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"اگر ایمیلی دریافت نمی‌کنید، لطفاً بررسی کنید که آدرسی که وارد کرده‌اید همان است " -"که با آن ثبت نام کرده‌اید، و پوشهٔ اسپم خود را نیز چک کنید." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"شما این ایمیل را بخاطر تقاضای تغییر رمز حساب در %(site_name)s. دریافت کرده " -"اید." - -msgid "Please go to the following page and choose a new password:" -msgstr "لطفاً به صفحهٔ زیر بروید و یک گذرواژهٔ جدید انتخاب کنید:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "نام کاربری‌تان، چنانچه احیاناً یادتان رفته است:" - -msgid "Thanks for using our site!" -msgstr "ممنون از استفادهٔ شما از وب‌گاه ما" - -#, python-format -msgid "The %(site_name)s team" -msgstr "گروه %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"گذرواژه خود را فراموش کرده اید؟ آدرس ایمیل خود را وارد کنید و ما مراحل تعیین " -"کلمه عبور جدید را برای شما ایمیل می‌کنیم." - -msgid "Email address:" -msgstr "آدرس ایمیل:" - -msgid "Reset my password" -msgstr "ایجاد گذرواژهٔ جدید" - -msgid "All dates" -msgstr "همهٔ تاریخ‌ها" - -#, python-format -msgid "Select %s" -msgstr "%s انتخاب کنید" - -#, python-format -msgid "Select %s to change" -msgstr "%s را برای تغییر انتخاب کنید" - -#, python-format -msgid "Select %s to view" -msgstr "%s را برای مشاهده انتخاب کنید" - -msgid "Date:" -msgstr "تاریخ:" - -msgid "Time:" -msgstr "زمان:" - -msgid "Lookup" -msgstr "جستجو" - -msgid "Currently:" -msgstr "در حال حاضر:" - -msgid "Change:" -msgstr "تغییر یافته:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 2add5c7..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.po deleted file mode 100644 index f082b60..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,271 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ali Nikneshan , 2011-2012 -# Alireza Savand , 2012 -# Ali Vakilzade , 2015 -# Jannis Leidel , 2011 -# Pouya Abbassi, 2016 -# rahim agh , 2020-2021 -# Reza Mohammadi , 2014 -# Sina Cheraghi , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-03 13:56+0000\n" -"Last-Translator: rahim agh \n" -"Language-Team: Persian (http://www.transifex.com/django/django/language/" -"fa/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%sی موجود" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"این لیست%s های در دسترس است. شما ممکن است برخی از آنها را در محل زیرانتخاب " -"نمایید و سپس روی \"انتخاب\" بین دو جعبه کلیک کنید." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "برای غربال فهرست %sی موجود درون این جعبه تایپ کنید." - -msgid "Filter" -msgstr "غربال" - -msgid "Choose all" -msgstr "انتخاب همه" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "برای انتخاب یکجای همهٔ %s کلیک کنید." - -msgid "Choose" -msgstr "انتخاب" - -msgid "Remove" -msgstr "حذف" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s انتخاب شده" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"این فهرست %s های انتخاب شده است. شما ممکن است برخی از انتخاب آنها را در محل " -"زیر وارد نمایید و سپس روی \"حذف\" جهت دار بین دو جعبه حذف شده است." - -msgid "Remove all" -msgstr "حذف همه" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "برای حذف یکجای همهٔ %sی انتخاب شده کلیک کنید." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] " %(sel)s از %(cnt)s انتخاب شده‌اند" -msgstr[1] " %(sel)s از %(cnt)s انتخاب شده‌اند" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"شما تغییراتی در بعضی فیلدهای قابل تغییر انجام داده اید. اگر کاری انجام " -"دهید، تغییرات از دست خواهند رفت" - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"شما یک اقدام را انتخاب کرده‌اید، ولی تغییراتی که در فیلدهای شخصی وارد کرده‌اید " -"هنوز ذخیره نشده‌اند. لطفاً کلید OK را برای ذخیره کردن تغییرات بزنید. لازم است " -"که اقدام را دوباره اجرا کنید." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"شما یک اقدام را انتخاب کرده‌اید، ولی تغییراتی در فیلدهای شخصی وارد نکرده‌اید. " -"احتمالاً به جای کلید Save به دنبال کلید Go می‌گردید." - -msgid "Now" -msgstr "اکنون" - -msgid "Midnight" -msgstr "نیمه‌شب" - -msgid "6 a.m." -msgstr "۶ صبح" - -msgid "Noon" -msgstr "ظهر" - -msgid "6 p.m." -msgstr "۶ بعدازظهر" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "توجه: شما %s ساعت از زمان سرور جلو هستید." -msgstr[1] "توجه: شما %s ساعت از زمان سرور جلو هستید." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "توجه: شما %s ساعت از زمان سرور عقب هستید." -msgstr[1] "توجه: شما %s ساعت از زمان سرور عقب هستید." - -msgid "Choose a Time" -msgstr "یک زمان انتخاب کنید" - -msgid "Choose a time" -msgstr "یک زمان انتخاب کنید" - -msgid "Cancel" -msgstr "انصراف" - -msgid "Today" -msgstr "امروز" - -msgid "Choose a Date" -msgstr "یک تاریخ انتخاب کنید" - -msgid "Yesterday" -msgstr "دیروز" - -msgid "Tomorrow" -msgstr "فردا" - -msgid "January" -msgstr "ژانویه" - -msgid "February" -msgstr "فوریه" - -msgid "March" -msgstr "مارس" - -msgid "April" -msgstr "آوریل" - -msgid "May" -msgstr "می" - -msgid "June" -msgstr "ژوئن" - -msgid "July" -msgstr "جولای" - -msgid "August" -msgstr "آگوست" - -msgid "September" -msgstr "سپتامبر" - -msgid "October" -msgstr "اکتبر" - -msgid "November" -msgstr "نوامبر" - -msgid "December" -msgstr "دسامبر" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "ژانویه" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "فوریه" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "مارس" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "آوریل" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "می" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "ژوئن" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "ژوئیه" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "اوت" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "سپتامبر" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "اکتبر" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "نوامبر" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "دسامبر" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "ی" - -msgctxt "one letter Monday" -msgid "M" -msgstr "د" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "س" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "چ" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "پ" - -msgctxt "one letter Friday" -msgid "F" -msgstr "ج" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "ش" - -msgid "Show" -msgstr "نمایش" - -msgid "Hide" -msgstr "پنهان کردن" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo deleted file mode 100644 index c7826fe..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.po deleted file mode 100644 index 31e871a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/django.po +++ /dev/null @@ -1,735 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Aarni Koskela, 2015,2017,2020-2022 -# Antti Kaihola , 2011 -# Jannis Leidel , 2011 -# Jiri Grönroos , 2021 -# Klaus Dahlén, 2012 -# Nikolay Korotkiy , 2018 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: Aarni Koskela\n" -"Language-Team: Finnish (http://www.transifex.com/django/django/language/" -"fi/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fi\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Poista valitut \"%(verbose_name_plural)s\"-kohteet" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d \"%(items)s\"-kohdetta poistettu." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Ei voida poistaa: %(name)s" - -msgid "Are you sure?" -msgstr "Oletko varma?" - -msgid "Administration" -msgstr "Hallinta" - -msgid "All" -msgstr "Kaikki" - -msgid "Yes" -msgstr "Kyllä" - -msgid "No" -msgstr "Ei" - -msgid "Unknown" -msgstr "Tuntematon" - -msgid "Any date" -msgstr "Mikä tahansa päivä" - -msgid "Today" -msgstr "Tänään" - -msgid "Past 7 days" -msgstr "Viimeiset 7 päivää" - -msgid "This month" -msgstr "Tässä kuussa" - -msgid "This year" -msgstr "Tänä vuonna" - -msgid "No date" -msgstr "Ei päivämäärää" - -msgid "Has date" -msgstr "On päivämäärä" - -msgid "Empty" -msgstr "Tyhjä" - -msgid "Not empty" -msgstr "Ei tyhjä" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Ole hyvä ja syötä henkilökuntatilin %(username)s ja salasana. Huomaa että " -"kummassakin kentässä isoilla ja pienillä kirjaimilla saattaa olla merkitystä." - -msgid "Action:" -msgstr "Toiminto:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Lisää toinen %(verbose_name)s" - -msgid "Remove" -msgstr "Poista" - -msgid "Addition" -msgstr "Lisäys" - -msgid "Change" -msgstr "Muokkaa" - -msgid "Deletion" -msgstr "Poisto" - -msgid "action time" -msgstr "tapahtumahetki" - -msgid "user" -msgstr "käyttäjä" - -msgid "content type" -msgstr "sisältötyyppi" - -msgid "object id" -msgstr "kohteen tunniste" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "kohteen tiedot" - -msgid "action flag" -msgstr "tapahtumatyyppi" - -msgid "change message" -msgstr "selitys" - -msgid "log entry" -msgstr "lokimerkintä" - -msgid "log entries" -msgstr "lokimerkinnät" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Lisätty \"%(object)s\"." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Muokattu \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Poistettu \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "Lokimerkintätietue" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Lisätty {name} \"{object}\"." - -msgid "Added." -msgstr "Lisätty." - -msgid "and" -msgstr "ja" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Muutettu {fields} {name}-kohteelle \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Muutettu {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Poistettu {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Ei muutoksia kenttiin." - -msgid "None" -msgstr "Ei arvoa" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -" Pidä \"Ctrl\" (tai Macin \"Command\") pohjassa valitaksesi useita " -"vaihtoehtoja." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\" on lisätty." - -msgid "You may edit it again below." -msgstr "Voit muokata sitä jälleen alla." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "{name} \"{obj}\" on lisätty. Voit lisätä toisen {name}-kohteen alla." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} \"{obj}\" on muokattu. Voit muokata sitä edelleen alla." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} \"{obj}\" on lisätty. Voit muokata sitä edelleen alla." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} \"{obj}\" on muokattu. Voit lisätä toisen {name}-kohteen alla." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\" on muokattu." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Kohteiden täytyy olla valittuna, jotta niihin voi kohdistaa toimintoja. " -"Kohteita ei ole muutettu." - -msgid "No action selected." -msgstr "Ei toimintoa valittuna." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s \"%(obj)s\" on poistettu." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s tunnisteella \"%(key)s\" puuttuu. Se on voitu poistaa." - -#, python-format -msgid "Add %s" -msgstr "Lisää %s" - -#, python-format -msgid "Change %s" -msgstr "Muokkaa %s" - -#, python-format -msgid "View %s" -msgstr "Näytä %s" - -msgid "Database error" -msgstr "Tietokantavirhe" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s on muokattu." -msgstr[1] "%(count)s \"%(name)s\"-kohdetta on muokattu." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s valittu" -msgstr[1] "Kaikki %(total_count)s valittu" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 valittuna %(cnt)s mahdollisesta" - -#, python-format -msgid "Change history: %s" -msgstr "Muokkaushistoria: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(class_name)s %(instance)s poistaminen vaatisi myös seuraavien suojattujen " -"liittyvien kohteiden poiston: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django-sivuston ylläpito" - -msgid "Django administration" -msgstr "Djangon ylläpito" - -msgid "Site administration" -msgstr "Sivuston ylläpito" - -msgid "Log in" -msgstr "Kirjaudu sisään" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s-ylläpito" - -msgid "Page not found" -msgstr "Sivua ei löydy" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Pahoittelemme, pyydettyä sivua ei löytynyt." - -msgid "Home" -msgstr "Etusivu" - -msgid "Server error" -msgstr "Palvelinvirhe" - -msgid "Server error (500)" -msgstr "Palvelinvirhe (500)" - -msgid "Server Error (500)" -msgstr "Palvelinvirhe (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Sattui virhe. Virheestä on huomautettu sivuston ylläpitäjille sähköpostitse " -"ja se korjautunee piakkoin. Kiitos kärsivällisyydestä." - -msgid "Run the selected action" -msgstr "Suorita valittu toiminto" - -msgid "Go" -msgstr "Suorita" - -msgid "Click here to select the objects across all pages" -msgstr "Klikkaa tästä valitaksesi kohteet kaikilta sivuilta" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Valitse kaikki %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Tyhjennä valinta" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s -applikaation mallit" - -msgid "Add" -msgstr "Lisää" - -msgid "View" -msgstr "Näytä" - -msgid "You don’t have permission to view or edit anything." -msgstr "Sinulla ei ole oikeutta näyttää tai muokata mitään." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Syötä ensin käyttäjätunnus ja salasana. Sen jälkeen voit muokata muita " -"käyttäjän tietoja." - -msgid "Enter a username and password." -msgstr "Syötä käyttäjätunnus ja salasana." - -msgid "Change password" -msgstr "Vaihda salasana" - -msgid "Please correct the error below." -msgstr "Korjaa alla oleva virhe." - -msgid "Please correct the errors below." -msgstr "Korjaa alla olevat virheet." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Syötä käyttäjän %(username)s uusi salasana." - -msgid "Welcome," -msgstr "Tervetuloa," - -msgid "View site" -msgstr "Näytä sivusto" - -msgid "Documentation" -msgstr "Ohjeita" - -msgid "Log out" -msgstr "Kirjaudu ulos" - -#, python-format -msgid "Add %(name)s" -msgstr "Lisää %(name)s" - -msgid "History" -msgstr "Muokkaushistoria" - -msgid "View on site" -msgstr "Näytä lopputulos" - -msgid "Filter" -msgstr "Suodatin" - -msgid "Clear all filters" -msgstr "Tyhjennä kaikki suodattimet" - -msgid "Remove from sorting" -msgstr "Poista järjestämisestä" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Järjestysprioriteetti: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Kytke järjestäminen" - -msgid "Delete" -msgstr "Poista" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Kohteen '%(escaped_object)s' (%(object_name)s) poisto poistaisi myös siihen " -"liittyviä kohteita, mutta sinulla ei ole oikeutta näiden kohteiden " -"poistamiseen:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s': poistettaessa joudutaan poistamaan " -"myös seuraavat suojatut siihen liittyvät kohteet:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Haluatko varmasti poistaa kohteen \"%(escaped_object)s\" (%(object_name)s)? " -"Myös seuraavat kohteet poistettaisiin samalla:" - -msgid "Objects" -msgstr "Kohteet" - -msgid "Yes, I’m sure" -msgstr "Kyllä, olen varma" - -msgid "No, take me back" -msgstr "Ei, mennään takaisin" - -msgid "Delete multiple objects" -msgstr "Poista useita kohteita" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Jos valitut %(objects_name)s poistettaisiin, jouduttaisiin poistamaan niihin " -"liittyviä kohteita. Sinulla ei kuitenkaan ole oikeutta poistaa seuraavia " -"kohdetyyppejä:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Jos valitut %(objects_name)s poistetaan, pitää poistaa myös seuraavat " -"suojatut niihin liittyvät kohteet:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Haluatko varmasti poistaa valitut %(objects_name)s? Samalla poistetaan " -"kaikki alla mainitut ja niihin liittyvät kohteet:" - -msgid "Delete?" -msgstr "Poista?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s " - -msgid "Summary" -msgstr "Yhteenveto" - -msgid "Recent actions" -msgstr "Viimeisimmät tapahtumat" - -msgid "My actions" -msgstr "Omat tapahtumat" - -msgid "None available" -msgstr "Ei yhtään" - -msgid "Unknown content" -msgstr "Tuntematon sisältö" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Tietokanta-asennuksessa on jotain vialla. Varmista, että sopivat taulut on " -"luotu ja että oikea käyttäjä voi lukea tietokantaa." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Olet kirjautunut käyttäjänä %(username)s, mutta sinulla ei ole pääsyä tälle " -"sivulle. Haluaisitko kirjautua eri tilille?" - -msgid "Forgotten your password or username?" -msgstr "Unohditko salasanasi tai käyttäjätunnuksesi?" - -msgid "Toggle navigation" -msgstr "Kytke navigaatio" - -msgid "Start typing to filter…" -msgstr "Kirjoita suodattaaksesi..." - -msgid "Filter navigation items" -msgstr "Suodata navigaatiovaihtoehtoja" - -msgid "Date/time" -msgstr "Pvm/klo" - -msgid "User" -msgstr "Käyttäjä" - -msgid "Action" -msgstr "Tapahtuma" - -msgid "entry" -msgstr "merkintä" - -msgid "entries" -msgstr "merkinnät" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Tällä kohteella ei ole muutoshistoriaa. Sitä ei ole ilmeisesti lisätty tämän " -"ylläpitosivun avulla." - -msgid "Show all" -msgstr "Näytä kaikki" - -msgid "Save" -msgstr "Tallenna ja poistu" - -msgid "Popup closing…" -msgstr "Ponnahdusikkuna sulkeutuu..." - -msgid "Search" -msgstr "Haku" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s osuma" -msgstr[1] "%(counter)s osumaa" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "yhteensä %(full_result_count)s" - -msgid "Save as new" -msgstr "Tallenna uutena" - -msgid "Save and add another" -msgstr "Tallenna ja lisää toinen" - -msgid "Save and continue editing" -msgstr "Tallenna välillä ja jatka muokkaamista" - -msgid "Save and view" -msgstr "Tallenna ja näytä" - -msgid "Close" -msgstr "Sulje" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Muuta valittuja %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Lisää toinen %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Poista valitut %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Näytä valitut %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Kiitos sivuillamme viettämästäsi ajasta." - -msgid "Log in again" -msgstr "Kirjaudu uudelleen sisään" - -msgid "Password change" -msgstr "Salasanan vaihtaminen" - -msgid "Your password was changed." -msgstr "Salasanasi on vaihdettu." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Syötä vanha salasanasi varmistukseksi, ja syötä sitten uusi salasanasi kaksi " -"kertaa, jotta se tulee varmasti oikein." - -msgid "Change my password" -msgstr "Vaihda salasana" - -msgid "Password reset" -msgstr "Salasanan nollaus" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Salasanasi on asetettu. Nyt voit kirjautua sisään." - -msgid "Password reset confirmation" -msgstr "Salasanan nollauksen vahvistus" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Syötä uusi salasanasi kaksi kertaa, jotta voimme varmistaa että syötit sen " -"oikein." - -msgid "New password:" -msgstr "Uusi salasana:" - -msgid "Confirm password:" -msgstr "Varmista uusi salasana:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Salasanan nollauslinkki oli virheellinen, mahdollisesti siksi että se on jo " -"käytetty. Ole hyvä ja pyydä uusi salasanan nollaus." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Sinulle on lähetetty sähköpostitse ohjeet salasanasi asettamiseen, mikäli " -"antamallasi sähköpostiosoitteella on olemassa tili." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Jos viestiä ei näy, ole hyvä ja varmista syöttäneesi oikea sähköpostiosoite " -"sekä tarkista sähköpostisi roskapostikansio." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Tämä viesti on lähetetty sinulle, koska olet pyytänyt %(site_name)s -" -"sivustolla salasanan palautusta." - -msgid "Please go to the following page and choose a new password:" -msgstr "Määrittele uusi salasanasi oheisella sivulla:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Käyttäjätunnuksesi siltä varalta, että olet unohtanut sen:" - -msgid "Thanks for using our site!" -msgstr "Kiitos vierailustasi sivuillamme!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s -sivuston ylläpitäjät" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Unohditko salasanasi? Syötä sähköpostiosoitteesi alle ja lähetämme sinulle " -"ohjeet uuden salasanan asettamiseksi." - -msgid "Email address:" -msgstr "Sähköpostiosoite:" - -msgid "Reset my password" -msgstr "Nollaa salasanani" - -msgid "All dates" -msgstr "Kaikki päivät" - -#, python-format -msgid "Select %s" -msgstr "Valitse %s" - -#, python-format -msgid "Select %s to change" -msgstr "Valitse muokattava %s" - -#, python-format -msgid "Select %s to view" -msgstr "Valitse näytettävä %s" - -msgid "Date:" -msgstr "Pvm:" - -msgid "Time:" -msgstr "Klo:" - -msgid "Lookup" -msgstr "Etsi" - -msgid "Currently:" -msgstr "Tällä hetkellä:" - -msgid "Change:" -msgstr "Muokkaa:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo deleted file mode 100644 index ff01527..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po deleted file mode 100644 index 1a2e54e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,276 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Aarni Koskela, 2015,2017,2020-2022 -# Antti Kaihola , 2011 -# Jannis Leidel , 2011 -# Jiri Grönroos , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-07-25 07:59+0000\n" -"Last-Translator: Aarni Koskela\n" -"Language-Team: Finnish (http://www.transifex.com/django/django/language/" -"fi/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fi\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Mahdolliset %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Tämä on lista saatavilla olevista %s. Valitse alla olevasta laatikosta " -"haluamasi ja siirrä ne valittuihin klikkamalla \"Valitse\"-nuolta " -"laatikoiden välillä." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Kirjoita tähän listaan suodattaaksesi %s-listaa." - -msgid "Filter" -msgstr "Suodatin" - -msgid "Choose all" -msgstr "Valitse kaikki" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klikkaa valitaksesi kaikki %s kerralla." - -msgid "Choose" -msgstr "Valitse" - -msgid "Remove" -msgstr "Poista" - -#, javascript-format -msgid "Chosen %s" -msgstr "Valitut %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Tämä on lista valituista %s. Voit poistaa valintoja valitsemalla ne " -"allaolevasta laatikosta ja siirtämällä ne takaisin valitsemattomiin " -"klikkamalla \"Poista\"-nuolta laatikoiden välillä." - -msgid "Remove all" -msgstr "Poista kaikki" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klikkaa poistaaksesi kaikki valitut %s kerralla." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s valittuna %(cnt)s mahdollisesta" -msgstr[1] "%(sel)s valittuna %(cnt)s mahdollisesta" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Sinulla on tallentamattomia muutoksia yksittäisissä muokattavissa kentissä. " -"Jos suoritat toiminnon, tallentamattomat muutoksesi katoavat." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Olet valinnut toiminnon, mutta et ole vielä tallentanut muutoksiasi " -"yksittäisiin kenttiin. Paina OK tallentaaksesi. Sinun pitää suorittaa " -"toiminto uudelleen." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Olet valinnut toiminnon etkä ole tehnyt yhtään muutosta yksittäisissä " -"kentissä. Etsit todennäköisesti Suorita-painiketta Tallenna-painikkeen " -"sijaan." - -msgid "Now" -msgstr "Nyt" - -msgid "Midnight" -msgstr "24" - -msgid "6 a.m." -msgstr "06" - -msgid "Noon" -msgstr "12" - -msgid "6 p.m." -msgstr "18:00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Huom: Olet %s tunnin palvelinaikaa edellä." -msgstr[1] "Huom: Olet %s tuntia palvelinaikaa edellä." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Huom: Olet %s tunnin palvelinaikaa jäljessä." -msgstr[1] "Huom: Olet %s tuntia palvelinaikaa jäljessä." - -msgid "Choose a Time" -msgstr "Valitse kellonaika" - -msgid "Choose a time" -msgstr "Valitse kellonaika" - -msgid "Cancel" -msgstr "Peruuta" - -msgid "Today" -msgstr "Tänään" - -msgid "Choose a Date" -msgstr "Valitse päivämäärä" - -msgid "Yesterday" -msgstr "Eilen" - -msgid "Tomorrow" -msgstr "Huomenna" - -msgid "January" -msgstr "tammikuu" - -msgid "February" -msgstr "helmikuu" - -msgid "March" -msgstr "maaliskuu" - -msgid "April" -msgstr "huhtikuu" - -msgid "May" -msgstr "toukokuu" - -msgid "June" -msgstr "kesäkuu" - -msgid "July" -msgstr "heinäkuu" - -msgid "August" -msgstr "elokuu" - -msgid "September" -msgstr "syyskuu" - -msgid "October" -msgstr "lokakuu" - -msgid "November" -msgstr "marraskuu" - -msgid "December" -msgstr "joulukuu" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Tammi" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Helmi" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Maalis" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Huhti" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Touko" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Kesä" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Heinä" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Elo" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Syys" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Loka" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Marras" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Joulu" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Su" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Ma" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Ti" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Ke" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "To" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Pe" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "La" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "" -"Olet jo lähettänyt tämän lomakkeen. Haluatko varmasti lähettää sen uudelleen?" - -msgid "Show" -msgstr "Näytä" - -msgid "Hide" -msgstr "Piilota" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo deleted file mode 100644 index 2103e18..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.po deleted file mode 100644 index 4a883e7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/django.po +++ /dev/null @@ -1,776 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Bruno Brouard , 2021 -# Claude Paroz , 2013-2023 -# Claude Paroz , 2011,2013 -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Claude Paroz , 2013-2023\n" -"Language-Team: French (http://www.transifex.com/django/django/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Supprimer les %(verbose_name_plural)s sélectionnés" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "La suppression de %(count)d %(items)s a réussi." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Impossible de supprimer %(name)s" - -msgid "Are you sure?" -msgstr "Êtes-vous sûr ?" - -msgid "Administration" -msgstr "Administration" - -msgid "All" -msgstr "Tout" - -msgid "Yes" -msgstr "Oui" - -msgid "No" -msgstr "Non" - -msgid "Unknown" -msgstr "Inconnu" - -msgid "Any date" -msgstr "Toutes les dates" - -msgid "Today" -msgstr "Aujourd’hui" - -msgid "Past 7 days" -msgstr "Les 7 derniers jours" - -msgid "This month" -msgstr "Ce mois-ci" - -msgid "This year" -msgstr "Cette année" - -msgid "No date" -msgstr "Aucune date" - -msgid "Has date" -msgstr "Possède une date" - -msgid "Empty" -msgstr "Vide" - -msgid "Not empty" -msgstr "Non vide" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Veuillez compléter correctement les champs « %(username)s » et « mot de " -"passe » d'un compte autorisé. Sachez que les deux champs peuvent être " -"sensibles à la casse." - -msgid "Action:" -msgstr "Action :" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Ajouter un objet %(verbose_name)s supplémentaire" - -msgid "Remove" -msgstr "Enlever" - -msgid "Addition" -msgstr "Ajout" - -msgid "Change" -msgstr "Modification" - -msgid "Deletion" -msgstr "Suppression" - -msgid "action time" -msgstr "date de l’action" - -msgid "user" -msgstr "utilisateur" - -msgid "content type" -msgstr "type de contenu" - -msgid "object id" -msgstr "id de l’objet" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "représentation de l’objet" - -msgid "action flag" -msgstr "indicateur de l’action" - -msgid "change message" -msgstr "message de modification" - -msgid "log entry" -msgstr "entrée d’historique" - -msgid "log entries" -msgstr "entrées d’historique" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Ajout de « %(object)s »." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Modification de « %(object)s » — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Suppression de « %(object)s »." - -msgid "LogEntry Object" -msgstr "Objet de journal" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Ajout de {name} « {object} »." - -msgid "Added." -msgstr "Ajout." - -msgid "and" -msgstr "et" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Modification de {fields} pour l'objet {name} « {object} »." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Modification de {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Suppression de {name} « {object} »." - -msgid "No fields changed." -msgstr "Aucun champ modifié." - -msgid "None" -msgstr "Aucun(e)" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Maintenez appuyé « Ctrl », ou « Commande (touche pomme) » sur un Mac, pour " -"en sélectionner plusieurs." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "L'objet {name} « {obj} » a été ajouté avec succès." - -msgid "You may edit it again below." -msgstr "Vous pouvez l’éditer à nouveau ci-dessous." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"L’objet {name} « {obj} » a été ajouté avec succès. Vous pouvez ajouter un " -"autre objet « {name} » ci-dessous." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"L’objet {name} « {obj} » a été modifié avec succès. Vous pouvez l’éditer à " -"nouveau ci-dessous." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"L’objet {name} « {obj} » a été ajouté avec succès. Vous pouvez l’éditer à " -"nouveau ci-dessous." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"L’objet {name} « {obj} » a été modifié avec succès. Vous pouvez ajouter un " -"autre objet {name} ci-dessous." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "L’objet {name} « {obj} » a été modifié avec succès." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Des éléments doivent être sélectionnés afin d’appliquer les actions. Aucun " -"élément n’a été modifié." - -msgid "No action selected." -msgstr "Aucune action sélectionnée." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "L’objet %(name)s « %(obj)s » a été supprimé avec succès." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"%(name)s avec l’identifiant « %(key)s » n’existe pas. Peut-être a-t-il été " -"supprimé ?" - -#, python-format -msgid "Add %s" -msgstr "Ajout de %s" - -#, python-format -msgid "Change %s" -msgstr "Modification de %s" - -#, python-format -msgid "View %s" -msgstr "Affichage de %s" - -msgid "Database error" -msgstr "Erreur de base de données" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s objet %(name)s a été modifié avec succès." -msgstr[1] "%(count)s objets %(name)s ont été modifiés avec succès." -msgstr[2] "%(count)s objets %(name)s ont été modifiés avec succès." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s sélectionné" -msgstr[1] "Tous les %(total_count)s sélectionnés" -msgstr[2] "Tous les %(total_count)s sélectionnés" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 sur %(cnt)s sélectionné" - -#, python-format -msgid "Change history: %s" -msgstr "Historique des changements : %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Supprimer l’objet %(class_name)s « %(instance)s » provoquerait la " -"suppression des objets liés et protégés suivants : %(related_objects)s" - -msgid "Django site admin" -msgstr "Site d’administration de Django" - -msgid "Django administration" -msgstr "Administration de Django" - -msgid "Site administration" -msgstr "Site d’administration" - -msgid "Log in" -msgstr "Connexion" - -#, python-format -msgid "%(app)s administration" -msgstr "Administration de %(app)s" - -msgid "Page not found" -msgstr "Page non trouvée" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Nous sommes désolés, mais la page demandée est introuvable." - -msgid "Home" -msgstr "Accueil" - -msgid "Server error" -msgstr "Erreur du serveur" - -msgid "Server error (500)" -msgstr "Erreur du serveur (500)" - -msgid "Server Error (500)" -msgstr "Erreur du serveur (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Une erreur est survenue. Elle a été transmise par courriel aux " -"administrateurs du site et sera corrigée dans les meilleurs délais. Merci " -"pour votre patience." - -msgid "Run the selected action" -msgstr "Exécuter l’action sélectionnée" - -msgid "Go" -msgstr "Envoyer" - -msgid "Click here to select the objects across all pages" -msgstr "Cliquez ici pour sélectionner tous les objets sur l’ensemble des pages" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Sélectionner tous les %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Effacer la sélection" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modèles de l’application %(name)s" - -msgid "Add" -msgstr "Ajouter" - -msgid "View" -msgstr "Afficher" - -msgid "You don’t have permission to view or edit anything." -msgstr "Vous n’avez pas la permission de voir ou de modifier quoi que ce soit." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Saisissez tout d’abord un nom d’utilisateur et un mot de passe. Vous pourrez " -"ensuite modifier plus d’options." - -msgid "Enter a username and password." -msgstr "Saisissez un nom d’utilisateur et un mot de passe." - -msgid "Change password" -msgstr "Modifier le mot de passe" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Corrigez l’erreur ci-dessous." -msgstr[1] "Corrigez les erreurs ci-dessous." -msgstr[2] "Corrigez les erreurs ci-dessous." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Saisissez un nouveau mot de passe pour l’utilisateur %(username)s." - -msgid "Skip to main content" -msgstr "Passer au contenu principal" - -msgid "Welcome," -msgstr "Bienvenue," - -msgid "View site" -msgstr "Voir le site" - -msgid "Documentation" -msgstr "Documentation" - -msgid "Log out" -msgstr "Déconnexion" - -msgid "Breadcrumbs" -msgstr "Fil d'Ariane" - -#, python-format -msgid "Add %(name)s" -msgstr "Ajouter %(name)s" - -msgid "History" -msgstr "Historique" - -msgid "View on site" -msgstr "Voir sur le site" - -msgid "Filter" -msgstr "Filtre" - -msgid "Clear all filters" -msgstr "Effacer tous les filtres" - -msgid "Remove from sorting" -msgstr "Enlever du tri" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Priorité de tri : %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Inverser le tri" - -msgid "Toggle theme (current theme: auto)" -msgstr "Changer de thème (actuellement : automatique)" - -msgid "Toggle theme (current theme: light)" -msgstr "Changer de thème (actuellement : clair)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Changer de thème (actuellement : sombre)" - -msgid "Delete" -msgstr "Supprimer" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Supprimer l’objet %(object_name)s « %(escaped_object)s » provoquerait la " -"suppression des objets qui lui sont liés, mais votre compte ne possède pas " -"la permission de supprimer les types d’objets suivants :" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Supprimer l’objet %(object_name)s « %(escaped_object)s » provoquerait la " -"suppression des objets liés et protégés suivants :" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Voulez-vous vraiment supprimer l’objet %(object_name)s " -"« %(escaped_object)s » ? Les éléments suivants sont liés à celui-ci et " -"seront aussi supprimés :" - -msgid "Objects" -msgstr "Objets" - -msgid "Yes, I’m sure" -msgstr "Oui, je suis sûr" - -msgid "No, take me back" -msgstr "Non, revenir à la page précédente" - -msgid "Delete multiple objects" -msgstr "Supprimer plusieurs objets" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"La suppression des objets %(objects_name)s sélectionnés provoquerait la " -"suppression d’objets liés, mais votre compte n’est pas autorisé à supprimer " -"les types d’objet suivants :" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"La suppression des objets %(objects_name)s sélectionnés provoquerait la " -"suppression des objets liés et protégés suivants :" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Voulez-vous vraiment supprimer les objets %(objects_name)s sélectionnés ? " -"Tous les objets suivants et les éléments liés seront supprimés :" - -msgid "Delete?" -msgstr "Supprimer ?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Par %(filter_title)s " - -msgid "Summary" -msgstr "Résumé" - -msgid "Recent actions" -msgstr "Actions récentes" - -msgid "My actions" -msgstr "Mes actions" - -msgid "None available" -msgstr "Aucun(e) disponible" - -msgid "Unknown content" -msgstr "Contenu inconnu" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"L’installation de votre base de données est incorrecte. Vérifiez que les " -"tables utiles ont été créées, et que la base est accessible par " -"l’utilisateur concerné." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Vous êtes authentifié sous le nom %(username)s, mais vous n’êtes pas " -"autorisé à accéder à cette page. Souhaitez-vous vous connecter avec un autre " -"compte utilisateur ?" - -msgid "Forgotten your password or username?" -msgstr "Mot de passe ou nom d’utilisateur oublié ?" - -msgid "Toggle navigation" -msgstr "Basculer la navigation" - -msgid "Sidebar" -msgstr "Barre latérale" - -msgid "Start typing to filter…" -msgstr "Écrivez ici pour filtrer…" - -msgid "Filter navigation items" -msgstr "Filtrer les éléments de navigation" - -msgid "Date/time" -msgstr "Date/heure" - -msgid "User" -msgstr "Utilisateur" - -msgid "Action" -msgstr "Action" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "entrée" -msgstr[1] "entrées" -msgstr[2] "entrées" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Cet objet n’a pas d’historique de modification. Il n’a probablement pas été " -"ajouté au moyen de ce site d’administration." - -msgid "Show all" -msgstr "Tout afficher" - -msgid "Save" -msgstr "Enregistrer" - -msgid "Popup closing…" -msgstr "Fenêtre en cours de fermeture…" - -msgid "Search" -msgstr "Rechercher" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s résultat" -msgstr[1] "%(counter)s résultats" -msgstr[2] "%(counter)s résultats" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s résultats" - -msgid "Save as new" -msgstr "Enregistrer en tant que nouveau" - -msgid "Save and add another" -msgstr "Enregistrer et ajouter un nouveau" - -msgid "Save and continue editing" -msgstr "Enregistrer et continuer les modifications" - -msgid "Save and view" -msgstr "Enregistrer et afficher" - -msgid "Close" -msgstr "Fermer" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Modifier l’objet %(model)s sélectionné" - -#, python-format -msgid "Add another %(model)s" -msgstr "Ajouter un autre objet %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Supprimer l’objet %(model)s sélectionné" - -#, python-format -msgid "View selected %(model)s" -msgstr "Afficher l'objet %(model)s sélectionné" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Merci pour le temps que vous avez accordé à ce site aujourd’hui." - -msgid "Log in again" -msgstr "Connectez-vous à nouveau" - -msgid "Password change" -msgstr "Modification du mot de passe" - -msgid "Your password was changed." -msgstr "Votre mot de passe a été modifié." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Pour des raisons de sécurité, saisissez votre ancien mot de passe puis votre " -"nouveau mot de passe à deux reprises afin de vérifier qu’il est correctement " -"saisi." - -msgid "Change my password" -msgstr "Modifier mon mot de passe" - -msgid "Password reset" -msgstr "Réinitialisation du mot de passe" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Votre mot de passe a été défini. Vous pouvez maintenant vous authentifier." - -msgid "Password reset confirmation" -msgstr "Confirmation de mise à jour du mot de passe" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Saisissez deux fois votre nouveau mot de passe afin de vérifier qu’il est " -"correctement saisi." - -msgid "New password:" -msgstr "Nouveau mot de passe :" - -msgid "Confirm password:" -msgstr "Confirmation du mot de passe :" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Le lien de mise à jour du mot de passe n’était pas valide, probablement en " -"raison de sa précédente utilisation. Veuillez renouveler votre demande de " -"mise à jour de mot de passe." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Nous vous avons envoyé par courriel les instructions pour changer de mot de " -"passe, pour autant qu’un compte existe avec l’adresse que vous avez " -"indiquée. Vous devriez recevoir rapidement ce message." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Si vous ne recevez pas de message, vérifiez que vous avez saisi l’adresse " -"avec laquelle vous vous êtes enregistré et contrôlez votre dossier de " -"pourriels." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Vous recevez ce message en réponse à votre demande de réinitialisation du " -"mot de passe de votre compte sur %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "" -"Veuillez vous rendre sur cette page et choisir un nouveau mot de passe :" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Votre nom d’utilisateur, en cas d’oubli :" - -msgid "Thanks for using our site!" -msgstr "Merci d’utiliser notre site !" - -#, python-format -msgid "The %(site_name)s team" -msgstr "L’équipe %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Mot de passe perdu ? Saisissez votre adresse électronique ci-dessous et nous " -"vous enverrons les instructions pour en créer un nouveau." - -msgid "Email address:" -msgstr "Adresse électronique :" - -msgid "Reset my password" -msgstr "Réinitialiser mon mot de passe" - -msgid "All dates" -msgstr "Toutes les dates" - -#, python-format -msgid "Select %s" -msgstr "Sélectionnez %s" - -#, python-format -msgid "Select %s to change" -msgstr "Sélectionnez l’objet %s à changer" - -#, python-format -msgid "Select %s to view" -msgstr "Sélectionnez l’objet %s à afficher" - -msgid "Date:" -msgstr "Date :" - -msgid "Time:" -msgstr "Heure :" - -msgid "Lookup" -msgstr "Recherche" - -msgid "Currently:" -msgstr "Actuellement :" - -msgid "Change:" -msgstr "Modifier :" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 7265a44..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po deleted file mode 100644 index 4386f10..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,283 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Claude Paroz , 2014-2017,2020-2023 -# Claude Paroz , 2011-2012 -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Claude Paroz , 2014-2017,2020-2023\n" -"Language-Team: French (http://www.transifex.com/django/django/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s disponible(s)" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ceci est une liste des « %s » disponibles. Vous pouvez en choisir en les " -"sélectionnant dans la zone ci-dessous, puis en cliquant sur la flèche " -"« Choisir » entre les deux zones." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Écrivez dans cette zone pour filtrer la liste des « %s » disponibles." - -msgid "Filter" -msgstr "Filtrer" - -msgid "Choose all" -msgstr "Tout choisir" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Cliquez pour choisir tous les « %s » en une seule opération." - -msgid "Choose" -msgstr "Choisir" - -msgid "Remove" -msgstr "Enlever" - -#, javascript-format -msgid "Chosen %s" -msgstr "Choix des « %s »" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ceci est la liste des « %s » choisi(e)s. Vous pouvez en enlever en les " -"sélectionnant dans la zone ci-dessous, puis en cliquant sur la flèche « " -"Enlever » entre les deux zones." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "" -"Écrivez dans cette zone pour filtrer la liste des « %s » sélectionné·e·s." - -msgid "Remove all" -msgstr "Tout enlever" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Cliquez pour enlever tous les « %s » en une seule opération." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s option sélectionnée invisible" -msgstr[1] "%s options sélectionnées invisibles" -msgstr[2] "%s options sélectionnées invisibles" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s sur %(cnt)s sélectionné" -msgstr[1] "%(sel)s sur %(cnt)s sélectionnés" -msgstr[2] "%(sel)s sur %(cnt)s sélectionnés" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Vous avez des modifications non sauvegardées sur certains champs éditables. " -"Si vous lancez une action, ces modifications vont être perdues." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Vous avez sélectionné une action, mais vous n'avez pas encore enregistré " -"certains champs modifiés. Cliquez sur OK pour enregistrer. Vous devrez " -"réappliquer l'action." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Vous avez sélectionné une action, et vous n'avez fait aucune modification " -"sur des champs. Vous cherchez probablement le bouton Envoyer et non le " -"bouton Enregistrer." - -msgid "Now" -msgstr "Maintenant" - -msgid "Midnight" -msgstr "Minuit" - -msgid "6 a.m." -msgstr "6:00" - -msgid "Noon" -msgstr "Midi" - -msgid "6 p.m." -msgstr "18:00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Note : l'heure du serveur précède votre heure de %s heure." -msgstr[1] "Note : l'heure du serveur précède votre heure de %s heures." -msgstr[2] "Note : l'heure du serveur précède votre heure de %s heures." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Note : votre heure précède l'heure du serveur de %s heure." -msgstr[1] "Note : votre heure précède l'heure du serveur de %s heures." -msgstr[2] "Note : votre heure précède l'heure du serveur de %s heures." - -msgid "Choose a Time" -msgstr "Choisir une heure" - -msgid "Choose a time" -msgstr "Choisir une heure" - -msgid "Cancel" -msgstr "Annuler" - -msgid "Today" -msgstr "Aujourd'hui" - -msgid "Choose a Date" -msgstr "Choisir une date" - -msgid "Yesterday" -msgstr "Hier" - -msgid "Tomorrow" -msgstr "Demain" - -msgid "January" -msgstr "Janvier" - -msgid "February" -msgstr "Février" - -msgid "March" -msgstr "Mars" - -msgid "April" -msgstr "Avril" - -msgid "May" -msgstr "Mai" - -msgid "June" -msgstr "Juin" - -msgid "July" -msgstr "Juillet" - -msgid "August" -msgstr "Août" - -msgid "September" -msgstr "Septembre" - -msgid "October" -msgstr "Octobre" - -msgid "November" -msgstr "Novembre" - -msgid "December" -msgstr "Décembre" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "fév" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "avr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "mai" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "jui" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "aoû" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "oct" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "déc" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "L" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "M" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "M" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "J" - -msgctxt "one letter Friday" -msgid "F" -msgstr "V" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Afficher" - -msgid "Hide" -msgstr "Masquer" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.mo deleted file mode 100644 index cdea1d8..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.po deleted file mode 100644 index 52310d3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/django.po +++ /dev/null @@ -1,609 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2015-01-18 08:31+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Western Frisian (http://www.transifex.com/projects/p/django/" -"language/fy/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fy\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "" - -msgid "Yes" -msgstr "" - -msgid "No" -msgstr "" - -msgid "Unknown" -msgstr "" - -msgid "Any date" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Past 7 days" -msgstr "" - -msgid "This month" -msgstr "" - -msgid "This year" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "" - -msgid "action time" -msgstr "" - -msgid "object id" -msgstr "" - -msgid "object repr" -msgstr "" - -msgid "action flag" -msgstr "" - -msgid "change message" -msgstr "" - -msgid "log entry" -msgstr "" - -msgid "log entries" -msgstr "" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -msgid "None" -msgstr "" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-format -msgid "Changed %s." -msgstr "" - -msgid "and" -msgstr "" - -#, python-format -msgid "Added %(name)s \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed %(list)s for %(name)s \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Deleted %(name)s \"%(object)s\"." -msgstr "" - -msgid "No fields changed." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may add another " -"%(name)s below." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was changed successfully. You may edit it again " -"below." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was changed successfully. You may add another " -"%(name)s below." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s object with primary key %(key)r does not exist." -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "" - -#, python-format -msgid "Change %s" -msgstr "" - -msgid "Database error" -msgstr "" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "" - -msgid "Django administration" -msgstr "" - -msgid "Site administration" -msgstr "" - -msgid "Log in" -msgstr "" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "" - -msgid "We're sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "" - -msgid "Server error" -msgstr "" - -msgid "Server error (500)" -msgstr "" - -msgid "Server Error (500)" -msgstr "" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "" - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "" - -msgid "Log out" -msgstr "" - -msgid "Add" -msgstr "" - -msgid "History" -msgstr "" - -msgid "View on site" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "" - -msgid "Remove" -msgstr "" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Delete?" -msgstr "" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "You don't have permission to edit anything." -msgstr "" - -msgid "Recent Actions" -msgstr "" - -msgid "My Actions" -msgstr "" - -msgid "None available" -msgstr "" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "" - -msgid "User" -msgstr "" - -msgid "Action" -msgstr "" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "" - -msgid "Save" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -msgid "Save as new" -msgstr "" - -msgid "Save and add another" -msgstr "" - -msgid "Save and continue editing" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "" - -msgid "Log in again" -msgstr "" - -msgid "Password change" -msgstr "" - -msgid "Your password was changed." -msgstr "" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "" - -msgid "Password reset" -msgstr "" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "" - -msgid "Confirm password:" -msgstr "" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "" - -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "" - -msgid "All dates" -msgstr "" - -msgid "(None)" -msgstr "" - -#, python-format -msgid "Select %s" -msgstr "" - -#, python-format -msgid "Select %s to change" -msgstr "" - -msgid "Date:" -msgstr "" - -msgid "Time:" -msgstr "" - -msgid "Lookup" -msgstr "" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 489bbab..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po deleted file mode 100644 index ba09bad..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,145 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2014-10-05 20:13+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Western Frisian (http://www.transifex.com/projects/p/django/" -"language/fy/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fy\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Choose all" -msgstr "" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "" - -#, javascript-format -msgid "Chosen %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "" - -msgid "Clock" -msgstr "" - -msgid "Choose a time" -msgstr "" - -msgid "Midnight" -msgstr "" - -msgid "6 a.m." -msgstr "" - -msgid "Noon" -msgstr "" - -msgid "Cancel" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Calendar" -msgstr "" - -msgid "Yesterday" -msgstr "" - -msgid "Tomorrow" -msgstr "" - -msgid "" -"January February March April May June July August September October November " -"December" -msgstr "" - -msgid "S M T W T F S" -msgstr "" - -msgid "Show" -msgstr "" - -msgid "Hide" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.mo deleted file mode 100644 index 8c029af..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.po deleted file mode 100644 index 252e50d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/django.po +++ /dev/null @@ -1,715 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Luke Blaney , 2019 -# Michael Thornhill , 2011-2012,2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-06-22 21:17+0000\n" -"Last-Translator: Luke Blaney \n" -"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ga\n" -"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " -"4);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "D'éirigh le scriosadh %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Ní féidir scriosadh %(name)s " - -msgid "Are you sure?" -msgstr "An bhfuil tú cinnte?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Scrios %(verbose_name_plural) roghnaithe" - -msgid "Administration" -msgstr "Riarachán" - -msgid "All" -msgstr "Gach" - -msgid "Yes" -msgstr "Tá" - -msgid "No" -msgstr "Níl" - -msgid "Unknown" -msgstr "Gan aithne" - -msgid "Any date" -msgstr "Aon dáta" - -msgid "Today" -msgstr "Inniu" - -msgid "Past 7 days" -msgstr "7 lá a chuaigh thart" - -msgid "This month" -msgstr "Táim cinnte" - -msgid "This year" -msgstr "An blian seo" - -msgid "No date" -msgstr "Gan dáta" - -msgid "Has date" -msgstr "Le dáta" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Cuir isteach an %(username)s agus focal faire ceart le haghaidh cuntas " -"foirne. Tabhair faoi deara go bhféadfadh an dá réimsí a cás-íogair." - -msgid "Action:" -msgstr "Aicsean:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Cuir eile %(verbose_name)s" - -msgid "Remove" -msgstr "Tóg amach" - -msgid "Addition" -msgstr "" - -msgid "Change" -msgstr "Athraigh" - -msgid "Deletion" -msgstr "Scriosadh" - -msgid "action time" -msgstr "am aicsean" - -msgid "user" -msgstr "úsáideoir" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "id oibiacht" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr oibiacht" - -msgid "action flag" -msgstr "brat an aicsean" - -msgid "change message" -msgstr "teachtaireacht athrú" - -msgid "log entry" -msgstr "loga iontráil" - -msgid "log entries" -msgstr "loga iontrálacha" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "\"%(object)s\" curtha isteach." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "\"%(object)s\" - %(changes)s aithrithe" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "\"%(object)s.\" scrioste" - -msgid "LogEntry Object" -msgstr "Oibiacht LogEntry" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "{name} curtha leis \"{object}\"." - -msgid "Added." -msgstr "Curtha leis." - -msgid "and" -msgstr "agus" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "{fields} athrithe don {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} athrithe." - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "{name} scrioste: \"{object}\"." - -msgid "No fields changed." -msgstr "Dada réimse aithraithe" - -msgid "None" -msgstr "Dada" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Coinnigh síos \"Control\", nó \"Command\" ar Mac chun níos mó ná ceann " -"amháin a roghnú." - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "Bhí {name} \"{obj}\" curtha leis go rathúil" - -msgid "You may edit it again below." -msgstr "Thig leat é a athrú arís faoi seo." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" -"D'athraigh {name} \"{obj}\" go rathúil.\n" -"Thig leat é a athrú arís faoi seo." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" -"D'athraigh {name} \"{obj}\" go rathúil.\n" -"Thig leat {name} eile a chuir leis." - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "D'athraigh {name} \"{obj}\" go rathúil." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Ní mór Míreanna a roghnú chun caingne a dhéanamh orthu. Níl aon mhíreanna a " -"athrú." - -msgid "No action selected." -msgstr "Uimh gníomh roghnaithe." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "Bhí %(name)s \"%(obj)s\" scrioste go rathúil." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "Níl%(name)s ann le aitheantais \"%(key)s\". B'fhéidir gur scriosadh é?" - -#, python-format -msgid "Add %s" -msgstr "Cuir %s le" - -#, python-format -msgid "Change %s" -msgstr "Aithrigh %s" - -#, python-format -msgid "View %s" -msgstr "Amharc ar %s" - -msgid "Database error" -msgstr "Botún bunachar sonraí" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s athraithe go rathúil" -msgstr[1] "%(count)s %(name)s athraithe go rathúil" -msgstr[2] "%(count)s %(name)s athraithe go rathúil" -msgstr[3] "%(count)s %(name)s athraithe go rathúil" -msgstr[4] "%(count)s %(name)s athraithe go rathúil" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s roghnaithe" -msgstr[1] "Gach %(total_count)s roghnaithe" -msgstr[2] "Gach %(total_count)s roghnaithe" -msgstr[3] "Gach %(total_count)s roghnaithe" -msgstr[4] "Gach %(total_count)s roghnaithe" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 as %(cnt)s roghnaithe." - -#, python-format -msgid "Change history: %s" -msgstr "Athraigh stáir %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Teastaíodh scriosadh %(class_name)s %(instance)s scriosadh na rudaí a " -"bhaineann leis: %(related_objects)s" - -msgid "Django site admin" -msgstr "Riarthóir suíomh Django" - -msgid "Django administration" -msgstr "Riarachán Django" - -msgid "Site administration" -msgstr "Riaracháin an suíomh" - -msgid "Log in" -msgstr "Logáil isteach" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s riaracháin" - -msgid "Page not found" -msgstr "Ní bhfuarthas an leathanach" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Tá brón orainn, ach ní bhfuarthas an leathanach iarraite." - -msgid "Home" -msgstr "Baile" - -msgid "Server error" -msgstr "Botún freastalaí" - -msgid "Server error (500)" -msgstr "Botún freastalaí (500)" - -msgid "Server Error (500)" -msgstr "Botún Freastalaí (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Tharla earráid. Tuairiscíodh don riarthóirí suíomh tríd an ríomhphost agus " -"ba chóir a shocrú go luath. Go raibh maith agat as do foighne." - -msgid "Run the selected action" -msgstr "Rith an gníomh roghnaithe" - -msgid "Go" -msgstr "Té" - -msgid "Click here to select the objects across all pages" -msgstr "" -"Cliceáil anseo chun na hobiacht go léir a roghnú ar fud gach leathanach" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Roghnaigh gach %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Scroiseadh modhnóir" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Ar dtús, iontráil ainm úsaideoir agus focal faire. Ansin, beidh tú in ann " -"cuir in eagar níos mó roghaí úsaideoira." - -msgid "Enter a username and password." -msgstr "Cuir isteach ainm úsáideora agus focal faire." - -msgid "Change password" -msgstr "Athraigh focal faire" - -msgid "Please correct the error below." -msgstr "Ceartaigh an botún thíos le do thoil." - -msgid "Please correct the errors below." -msgstr "Le do thoil cheartú earráidí thíos." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Iontráil focal faire nua le hadhaigh an úsaideor %(username)s." - -msgid "Welcome," -msgstr "Fáilte" - -msgid "View site" -msgstr "Breatnaigh ar an suíomh" - -msgid "Documentation" -msgstr "Doiciméadúchán" - -msgid "Log out" -msgstr "Logáil amach" - -#, python-format -msgid "Add %(name)s" -msgstr "Cuir %(name)s le" - -msgid "History" -msgstr "Stair" - -msgid "View on site" -msgstr "Breath ar suíomh" - -msgid "Filter" -msgstr "Scagaire" - -msgid "Remove from sorting" -msgstr "Bain as sórtáil" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sórtáil tosaíocht: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Toggle sórtáil" - -msgid "Delete" -msgstr "Cealaigh" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Má scriossan tú %(object_name)s '%(escaped_object)s' scriosfaidh oibiachtí " -"gaolta. Ach níl cead ag do cuntas na oibiacht a leanúint a scriosadh:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Bheadh Scriosadh an %(object_name)s '%(escaped_object)s' a cheangal ar an " -"méid seo a leanas a scriosadh nithe cosanta a bhaineann le:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"An bhfuil tú cinnte na %(object_name)s \"%(escaped_object)s\" a scroiseadh?" -"Beidh gach oibiacht a leanúint scroiste freisin:" - -msgid "Objects" -msgstr "Oibiachtaí" - -msgid "Yes, I'm sure" -msgstr "Táim cinnte" - -msgid "No, take me back" -msgstr "Ní hea, tóg ar ais mé" - -msgid "Delete multiple objects" -msgstr "Scrios na réadanna" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Scriosadh an roghnaithe %(objects_name)s a bheadh mar thoradh ar na nithe " -"gaolmhara a scriosadh, ach níl cead do chuntas a scriosadh na cineálacha seo " -"a leanas na cuspóirí:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Teastaíonn scriosadh na %(objects_name)s roghnaithe scriosadh na hoibiacht " -"gaolta cosainte a leanúint:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"An bhfuil tú cinnte gur mian leat a scriosadh %(objects_name)s roghnaithe? " -"Beidh gach ceann de na nithe seo a leanas agus a n-ítimí gaolta scroiste:" - -msgid "View" -msgstr "Amharc ar" - -msgid "Delete?" -msgstr "Cealaigh?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Trí %(filter_title)s " - -msgid "Summary" -msgstr "Achoimre" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Samhlacha ins an %(name)s iarratais" - -msgid "Add" -msgstr "Cuir le" - -msgid "You don't have permission to view or edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Dada ar fáil" - -msgid "Unknown content" -msgstr "Inneachair anaithnid" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Tá rud éigin mícheart le suitéail do bunachar sonraí. Déan cinnte go bhfuil " -"boird an bunachar sonraI cruthaithe cheana, agus déan cinnte go bhfuil do " -"úsaideoir in ann an bunacchar sonraí a léamh." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "Dearmad déanta ar do focal faire nó ainm úsaideora" - -msgid "Date/time" -msgstr "Dáta/am" - -msgid "User" -msgstr "Úsaideoir" - -msgid "Action" -msgstr "Aicsean" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Níl stáir aitraithe ag an oibiacht seo agús is dócha ná cuir le tríd an an " -"suíomh riarachán." - -msgid "Show all" -msgstr "Taispéan gach rud" - -msgid "Save" -msgstr "Sábháil" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "Cuardach" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s toradh" -msgstr[1] "%(counter)s torthaí" -msgstr[2] "%(counter)s torthaí" -msgstr[3] "%(counter)s torthaí" -msgstr[4] "%(counter)s torthaí" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s iomlán" - -msgid "Save as new" -msgstr "Sabháil mar nua" - -msgid "Save and add another" -msgstr "Sabháil agus cuir le ceann eile" - -msgid "Save and continue editing" -msgstr "Sábhail agus lean ag cuir in eagar" - -msgid "Save and view" -msgstr "Sabháil agus amharc ar" - -msgid "Close" -msgstr "Druid" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Athraigh roghnaithe %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Cuir le %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Scrios roghnaithe %(model)s" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Go raibh maith agat le hadhaigh do cuairt ar an suíomh idirlínn inniú." - -msgid "Log in again" -msgstr "Logáil isteacj arís" - -msgid "Password change" -msgstr "Athrú focal faire" - -msgid "Your password was changed." -msgstr "Bhí do focal faire aithraithe." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Le do thoil, iontráil do sean-focal faire, ar son slándáil, agus ansin " -"iontráil do focal faire dhá uaire cé go mbeimid in ann a seiceal go bhfuil " -"sé scríobhte isteach i gceart." - -msgid "Change my password" -msgstr "Athraigh mo focal faire" - -msgid "Password reset" -msgstr "Athsocraigh focal faire" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Tá do focal faire réidh. Is féidir leat logáil isteach anois." - -msgid "Password reset confirmation" -msgstr "Deimhniú athshocraigh focal faire" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Le do thoil, iontráil do focal faire dhá uaire cé go mbeimid in ann a " -"seiceal go bhfuil sé scríobhte isteach i gceart." - -msgid "New password:" -msgstr "Focal faire nua:" - -msgid "Confirm password:" -msgstr "Deimhnigh focal faire:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Bhí nasc athshocraigh an focal faire mícheart, b'fheidir mar go raibh sé " -"úsaidte cheana. Le do thoil, iarr ar athsocraigh focal faire nua." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" -"Le do thoil té go dtí an leathanach a leanúint agus roghmaigh focal faire " -"nua:" - -msgid "Your username, in case you've forgotten:" -msgstr "Do ainm úsaideoir, má tá dearmad déanta agat." - -msgid "Thanks for using our site!" -msgstr "Go raibh maith agat le hadhaigh do cuairt!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Foireann an %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "Seoladh ríomhphoist:" - -msgid "Reset my password" -msgstr "Athsocraigh mo focal faire" - -msgid "All dates" -msgstr "Gach dáta" - -#, python-format -msgid "Select %s" -msgstr "Roghnaigh %s" - -#, python-format -msgid "Select %s to change" -msgstr "Roghnaigh %s a athrú" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "Dáta:" - -msgid "Time:" -msgstr "Am:" - -msgid "Lookup" -msgstr "Cuardach" - -msgid "Currently:" -msgstr "Faoi láthair:" - -msgid "Change:" -msgstr "Athraigh:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo deleted file mode 100644 index ee000e2..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.po deleted file mode 100644 index ce0a412..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,234 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Luke Blaney , 2019 -# Michael Thornhill , 2011-2012,2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2019-06-22 21:36+0000\n" -"Last-Translator: Luke Blaney \n" -"Language-Team: Irish (http://www.transifex.com/django/django/language/ga/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ga\n" -"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " -"4);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s ar fáil" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Is é seo an liosta %s ar fáil. Is féidir leat a roghnú roinnt ag roghnú acu " -"sa bhosca thíos agus ansin cliceáil ar an saighead \"Roghnaigh\" idir an dá " -"boscaí." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Scríobh isteach sa bhosca seo a scagadh síos ar an liosta de %s ar fáil." - -msgid "Filter" -msgstr "Scagaire" - -msgid "Choose all" -msgstr "Roghnaigh iomlán" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Cliceáil anseo chun %s go léir a roghnú." - -msgid "Choose" -msgstr "Roghnaigh" - -msgid "Remove" -msgstr "Bain amach" - -#, javascript-format -msgid "Chosen %s" -msgstr "Roghnófar %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Is é seo an liosta de %s roghnaithe. Is féidir leat iad a bhaint amach má " -"roghnaionn tú cuid acu sa bhosca thíos agus ansin cliceáil ar an saighead " -"\"Bain\" idir an dá boscaí." - -msgid "Remove all" -msgstr "Scrois gach ceann" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Cliceáil anseo chun %s go léir roghnaithe a scroiseadh." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s roghnaithe" -msgstr[1] "%(sel)s de %(cnt)s roghnaithe" -msgstr[2] "%(sel)s de %(cnt)s roghnaithe" -msgstr[3] "%(sel)s de %(cnt)s roghnaithe" -msgstr[4] "%(sel)s de %(cnt)s roghnaithe" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tá aithrithe nach bhfuil sabhailte ar chuid do na réimse. Má ritheann tú " -"gníomh, caillfidh tú do chuid aithrithe." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Tá gníomh roghnaithe agat, ach níl do aithrithe sabhailte ar cuid de na " -"réímse. Clic OK chun iad a sábháil. Caithfidh tú an gníomh a rith arís." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Tá gníomh roghnaithe agat, ach níl do aithrithe sabhailte ar cuid de na " -"réímse. Is dócha go bhfuil tú ag iarraidh an cnaipe Té ná an cnaipe Sábháil." - -msgid "Now" -msgstr "Anois" - -msgid "Midnight" -msgstr "Meán oíche" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Nóin" - -msgid "6 p.m." -msgstr "6in" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." -msgstr[1] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." -msgstr[2] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." -msgstr[3] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." -msgstr[4] "Tabhair faoi deara: Tá tú %s uair a chloig roimh am an friothálaí." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." -msgstr[1] "" -"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." -msgstr[2] "" -"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." -msgstr[3] "" -"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." -msgstr[4] "" -"Tabhair faoi deara: Tá tú %s uair a chloig taobh thiar am an friothálaí." - -msgid "Choose a Time" -msgstr "Roghnaigh Am" - -msgid "Choose a time" -msgstr "Roghnaigh am" - -msgid "Cancel" -msgstr "Cealaigh" - -msgid "Today" -msgstr "Inniu" - -msgid "Choose a Date" -msgstr "Roghnaigh Dáta" - -msgid "Yesterday" -msgstr "Inné" - -msgid "Tomorrow" -msgstr "Amárach" - -msgid "January" -msgstr "Eanáir" - -msgid "February" -msgstr "Feabhra" - -msgid "March" -msgstr "Márta" - -msgid "April" -msgstr "Aibreán" - -msgid "May" -msgstr "Bealtaine" - -msgid "June" -msgstr "Meitheamh" - -msgid "July" -msgstr "Iúil" - -msgid "August" -msgstr "Lúnasa" - -msgid "September" -msgstr "Meán Fómhair" - -msgid "October" -msgstr "Deireadh Fómhair" - -msgid "November" -msgstr "Samhain" - -msgid "December" -msgstr "Nollaig" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "L" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "M" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "C" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "D" - -msgctxt "one letter Friday" -msgid "F" -msgstr "A" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Taispeán" - -msgid "Hide" -msgstr "Folaigh" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.mo deleted file mode 100644 index 3807caa..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.po deleted file mode 100644 index 030f4b6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/django.po +++ /dev/null @@ -1,754 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# GunChleoc, 2015-2017,2021 -# GunChleoc, 2015 -# GunChleoc, 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-10-27 12:57+0000\n" -"Last-Translator: GunChleoc\n" -"Language-Team: Gaelic, Scottish (http://www.transifex.com/django/django/" -"language/gd/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: gd\n" -"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " -"(n > 2 && n < 20) ? 2 : 3;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Sguab às na %(verbose_name_plural)s a chaidh a thaghadh" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Chaidh %(count)d %(items)s a sguabadh às." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Chan urrainn dhuinn %(name)s a sguabadh às" - -msgid "Are you sure?" -msgstr "A bheil thu cinnteach?" - -msgid "Administration" -msgstr "Rianachd" - -msgid "All" -msgstr "Na h-uile" - -msgid "Yes" -msgstr "Tha" - -msgid "No" -msgstr "Chan eil" - -msgid "Unknown" -msgstr "Chan eil fhios" - -msgid "Any date" -msgstr "Ceann-là sam bith" - -msgid "Today" -msgstr "An-diugh" - -msgid "Past 7 days" -msgstr "Na 7 làithean seo chaidh" - -msgid "This month" -msgstr "Am mìos seo" - -msgid "This year" -msgstr "Am bliadhna" - -msgid "No date" -msgstr "Gun cheann-là" - -msgid "Has date" -msgstr "Tha ceann-là aige" - -msgid "Empty" -msgstr "Falamh" - -msgid "Not empty" -msgstr "Neo-fhalamh" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Cuir a-steach %(username)s agus facal-faire ceart airson cunntas neach-" -"obrach. Thoir an aire gum bi aire do litrichean mòra ’s beaga air an dà " -"raon, ma dh’fhaoidte." - -msgid "Action:" -msgstr "Gnìomh:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Cuir %(verbose_name)s eile ris" - -msgid "Remove" -msgstr "Thoir air falbh" - -msgid "Addition" -msgstr "Cur ris" - -msgid "Change" -msgstr "Atharraich" - -msgid "Deletion" -msgstr "Sguabadh às" - -msgid "action time" -msgstr "àm a’ ghnìomha" - -msgid "user" -msgstr "cleachdaiche" - -msgid "content type" -msgstr "seòrsa susbainte" - -msgid "object id" -msgstr "id an oibceict" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "riochdachadh oibseict" - -msgid "action flag" -msgstr "bratach a’ ghnìomha" - -msgid "change message" -msgstr "teachdaireachd atharrachaidh" - -msgid "log entry" -msgstr "innteart loga" - -msgid "log entries" -msgstr "innteartan loga" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Chaidh “%(object)s” a chur ris." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Chaidh “%(object)s” atharrachadh – %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Chaidh “%(object)s” a sguabadh às." - -msgid "LogEntry Object" -msgstr "Oibseact innteart an loga" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Chaidh {name} “{object}” a chur ris." - -msgid "Added." -msgstr "Chaidh a chur ris." - -msgid "and" -msgstr "agus" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Chaidh {fields} atharrachadh airson {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Chaidh {fields} atharrachadh." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Chaidh {name} “{object}” a sguabadh às." - -msgid "No fields changed." -msgstr "Cha deach raon atharrachadh." - -msgid "None" -msgstr "Chan eil gin" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "Cum sìos “Control” no “Command” air Mac gus iomadh nì a thaghadh." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Chaidh {name} “{obj}” a chur ris." - -msgid "You may edit it again below." -msgstr "’S urrainn dhut a dheasachadh a-rithist gu h-ìosal." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"Chaidh {name} “%{obj}” a chur ris. ’S urrainn dhut {name} eile a chur ris gu " -"h-ìosal." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"Chaidh {name} “{obj}” atharrachadh. ’S urrainn dhut a dheasachadh a-rithist " -"gu h-ìosal." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"Chaidh {name} “{obj}” a chur ris. ’S urrainn dhut a dheasachadh a-rithist gu " -"h-ìosal." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"Chaidh {name} “{obj}” atharrachadh. ’S urrainn dhut {name} eile a chur ris " -"gu h-ìosal." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "Chaidh {name} “{obj}” atharrachadh." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Feumaidh tu nithean a thaghadh mus dèan thu gnìomh orra. Cha deach nì " -"atharrachadh." - -msgid "No action selected." -msgstr "Cha deach gnìomh a thaghadh." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "Chaidh %(name)s “%(obj)s” a sguabadh às." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"Chan eil %(name)s leis an ID \"%(key)s\" ann. 'S dòcha gun deach a sguabadh " -"às?" - -#, python-format -msgid "Add %s" -msgstr "Cuir %s ris" - -#, python-format -msgid "Change %s" -msgstr "Atharraich %s" - -#, python-format -msgid "View %s" -msgstr "Seall %s" - -msgid "Database error" -msgstr "Mearachd an stòir-dhàta" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "Chaidh %(count)s %(name)s atharrachadh." -msgstr[1] "Chaidh %(count)s %(name)s atharrachadh." -msgstr[2] "Chaidh %(count)s %(name)s atharrachadh." -msgstr[3] "Chaidh %(count)s %(name)s atharrachadh." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Chaidh %(total_count)s a thaghadh" -msgstr[1] "Chaidh a h-uile %(total_count)s a thaghadh" -msgstr[2] "Chaidh a h-uile %(total_count)s a thaghadh" -msgstr[3] "Chaidh a h-uile %(total_count)s a thaghadh" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Chaidh 0 à %(cnt)s a thaghadh" - -#, python-format -msgid "Change history: %s" -msgstr "Eachdraidh nan atharraichean: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Gus %(class_name)s %(instance)s a sguabadh às, bhiodh againn ris na h-" -"oibseactan dàimheach dìonta seo a sguabadh às cuideachd: %(related_objects)s" - -msgid "Django site admin" -msgstr "Rianachd làraich Django" - -msgid "Django administration" -msgstr "Rianachd Django" - -msgid "Site administration" -msgstr "Rianachd na làraich" - -msgid "Log in" -msgstr "Clàraich a-steach" - -#, python-format -msgid "%(app)s administration" -msgstr "Rianachd %(app)s" - -msgid "Page not found" -msgstr "Cha deach an duilleag a lorg" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Tha sinn duilich ach cha do lorg sinn an duilleag a dh’iarr thu." - -msgid "Home" -msgstr "Dhachaigh" - -msgid "Server error" -msgstr "Mearachd an fhrithealaiche" - -msgid "Server error (500)" -msgstr "Mearachd an fhrithealaiche (500)" - -msgid "Server Error (500)" -msgstr "Mearachd an fhrithealaiche (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Chaidh rudeigin cearr. Fhuair rianairean na làraich aithris air a’ phost-d " -"agus tha sinn an dùil gun dèid a chàradh a dh’aithghearr. Mòran taing airson " -"d’ fhoighidinn." - -msgid "Run the selected action" -msgstr "Ruith an gnìomh a thagh thu" - -msgid "Go" -msgstr "Siuthad" - -msgid "Click here to select the objects across all pages" -msgstr "" -"Briog an-seo gus na h-oibseactan a thaghadh air feadh nan duilleagan uile" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Tagh a h-uile %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Falamhaich an taghadh" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modailean ann an aplacaid %(name)s" - -msgid "Add" -msgstr "Cuir ris" - -msgid "View" -msgstr "Seall" - -msgid "You don’t have permission to view or edit anything." -msgstr "Chan eil cead agad gus dad a shealltainn no a dheasachadh." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Cuir ainm-cleachdaiche is facal-faire a-steach an toiseach. ’S urrainn dhut " -"barrachd roghainnean a’ chleachdaiche a dheasachadh an uairsin." - -msgid "Enter a username and password." -msgstr "Cuir ainm-cleachdaiche ’s facal-faire a-steach." - -msgid "Change password" -msgstr "Atharraich am facal-faire" - -msgid "Please correct the error below." -msgstr "Feuch an cuir thu a’ mhearachd gu h-ìosal gu ceart." - -msgid "Please correct the errors below." -msgstr "Feuch an cuir thu na mearachdan gu h-ìosal gu ceart." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Cuir a-steach facal-faire ùr airson a’ chleachdaiche %(username)s." - -msgid "Welcome," -msgstr "Fàilte," - -msgid "View site" -msgstr "Seall an làrach" - -msgid "Documentation" -msgstr "Docamaideadh" - -msgid "Log out" -msgstr "Clàraich a-mach" - -#, python-format -msgid "Add %(name)s" -msgstr "Cuir %(name)s ris" - -msgid "History" -msgstr "An eachdraidh" - -msgid "View on site" -msgstr "Seall e air an làrach" - -msgid "Filter" -msgstr "Criathraich" - -msgid "Clear all filters" -msgstr "Falamhaich gach crithrag" - -msgid "Remove from sorting" -msgstr "Thoir air falbh on t-seòrsachadh" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prìomhachas an t-seòrsachaidh: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Toglaich an seòrsachadh" - -msgid "Delete" -msgstr "Sguab às" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Nan sguabadh tu às %(object_name)s “%(escaped_object)s”, rachadh oibseactan " -"dàimheach a sguabadh às cuideachd ach chan eil cead aig a’ chunntas agad gus " -"na seòrsaichean de dh’oibseact seo a sguabadh às:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Nan sguabadh tu às %(object_name)s “%(escaped_object)s”, bhiodh againn ris " -"na h-oibseactan dàimheach dìonta seo a sguabadh às cuideachd:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"A bheil thu cinnteach gu bheil thu airson %(object_name)s " -"“%(escaped_object)s” a sguabadh às? Thèid a h-uile nì dàimheach a sguabadh " -"às cuideachd:" - -msgid "Objects" -msgstr "Oibseactan" - -msgid "Yes, I’m sure" -msgstr "Tha mi cinnteach" - -msgid "No, take me back" -msgstr "Chan eil, air ais leam" - -msgid "Delete multiple objects" -msgstr "Sguab às iomadh oibseact" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Nan sguabadh tu às a’ %(objects_name)s a thagh thu, rachadh oibseactan " -"dàimheach a sguabadh às cuideachd ach chan eil cead aig a’ chunntas agad gus " -"na seòrsaichean de dh’oibseact seo a sguabadh às:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Nan sguabadh tu às a’ %(objects_name)s a thagh thu, bhiodh againn ris na h-" -"oibseactan dàimheach dìonta seo a sguabadh às cuideachd:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"A bheil thu cinnteach gu bheil thu airson a’ %(objects_name)s a thagh thu a " -"sguabadh às? Thèid a h-uile oibseact seo ’s na nithean dàimheach aca a " -"sguabadh às:" - -msgid "Delete?" -msgstr "A bheil thu airson a sguabadh às?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " le %(filter_title)s " - -msgid "Summary" -msgstr "Gearr-chunntas" - -msgid "Recent actions" -msgstr "Gnìomhan o chionn goirid" - -msgid "My actions" -msgstr "Na gnìomhan agam" - -msgid "None available" -msgstr "Chan eil gin ann" - -msgid "Unknown content" -msgstr "Susbaint nach aithne dhuinn" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Chaidh rudeigin cearr le stàladh an stòir-dhàta agad. Dèan cinnteach gun " -"deach na clàran stòir-dhàta iomchaidh a chruthachadh agus gur urrainn dhan " -"chleachdaiche iomchaidh an stòr-dàta a leughadh." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Chaidh do dhearbhadh mar %(username)s ach chan eil ùghdarras agad gus an " -"duilleag seo inntrigeadh. Am bu toigh leat clàradh a-steach le cunntas eile?" - -msgid "Forgotten your password or username?" -msgstr "" -"An do dhìochuimhnich thu am facal-faire no an t-ainm-cleachdaiche agad?" - -msgid "Toggle navigation" -msgstr "Toglaich an t-seòladaireachd" - -msgid "Start typing to filter…" -msgstr "Tòisich air sgrìobhadh airson criathradh…" - -msgid "Filter navigation items" -msgstr "Criathraich nithean na seòladaireachd" - -msgid "Date/time" -msgstr "Ceann-là ’s àm" - -msgid "User" -msgstr "Cleachdaiche" - -msgid "Action" -msgstr "Gnìomh" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Chan eil eachdraidh nan atharraichean aig an oibseact seo. Dh’fhaoidte nach " -"deach a chur ris leis an làrach rianachd seo." - -msgid "Show all" -msgstr "Seall na h-uile" - -msgid "Save" -msgstr "Sàbhail" - -msgid "Popup closing…" -msgstr "Tha a’ phriob-uinneag ’ga dùnadh…" - -msgid "Search" -msgstr "Lorg" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s toradh" -msgstr[1] "%(counter)s thoradh" -msgstr[2] "%(counter)s toraidhean" -msgstr[3] "%(counter)s toradh" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s gu h-iomlan" - -msgid "Save as new" -msgstr "Sàbhail mar fhear ùr" - -msgid "Save and add another" -msgstr "Sàbhail is cuir fear eile ris" - -msgid "Save and continue editing" -msgstr "Sàbhail is deasaich a-rithist" - -msgid "Save and view" -msgstr "Sàbhail is seall" - -msgid "Close" -msgstr "Dùin" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Atharraich a’ %(model)s a thagh thu" - -#, python-format -msgid "Add another %(model)s" -msgstr "Cuir %(model)s eile ris" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Sguab às a’ %(model)s a thagh thu" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" -"Mòran taing gun do chuir thu seachad deagh-àm air an làrach-lìn an-diugh." - -msgid "Log in again" -msgstr "Clàraich a-steach a-rithist" - -msgid "Password change" -msgstr "Atharrachadh an facail-fhaire" - -msgid "Your password was changed." -msgstr "Chaidh am facal-faire agad atharrachadh." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Cuir a-steach an seann fhacal-faire agad ri linn tèarainteachd agus cuir a-" -"steach am facal-faire ùr agad dà thuras an uairsin ach an dearbhaich sinn " -"nach do rinn thu mearachd sgrìobhaidh." - -msgid "Change my password" -msgstr "Atharraich am facal-faire agam" - -msgid "Password reset" -msgstr "Ath-shuidheachadh an fhacail-fhaire" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Chaidh am facal-faire agad a shuidheachadh. Faodaidh tu clàradh a-steach a-" -"nis." - -msgid "Password reset confirmation" -msgstr "Dearbhadh air ath-shuidheachadh an fhacail-fhaire" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Cuir a-steach am facal-faire ùr agad dà thuras ach an dearbhaich sinn nach " -"do rinn thu mearachd sgrìobhaidh." - -msgid "New password:" -msgstr "Am facal-faire ùr:" - -msgid "Confirm password:" -msgstr "Dearbhaich am facal-faire:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Bha an ceangal gus am facal-faire ath-suidheachadh mì-dhligheach; ’s dòcha " -"gun deach a chleachdadh mar-thà. Iarr ath-shuidheachadh an fhacail-fhaire às " -"ùr." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Chuir sinn stiùireadh thugad air mar a dh’ath-shuidhicheas tu am facal-faire " -"agad air a’ phost-d dhan chunntas puist-d a chuir thu a-steach. Bu chòir " -"dhut fhaighinn a dh’aithghearr." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Mura faigh thu post-d, dèan cinnteach gun do chuir thu a-steach an seòladh " -"puist-d leis an do chlàraich thu agus thoir sùil air pasgan an spama agad." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Fhuair thu am post-d seo air sgàth ’s gun do dh’iarr thu ath-shuidheachadh " -"an fhacail-fhaire agad airson a’ chunntais cleachdaiche agad air " -"%(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Tadhail air an duilleag seo is tagh facal-faire ùr:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" -"Seo an t-ainm-cleachdaiche agad air eagal ’s gun do dhìochuimhnich thu e:" - -msgid "Thanks for using our site!" -msgstr "Mòran taing airson an làrach againn a chleachdadh!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Sgioba %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Na dhìochuimhnich thu am facal-faire agad? Cuir a-steach an seòladh puist-d " -"agad gu h-ìosal agus cuiridh sinn stiùireadh thugad gus fear ùr a " -"shuidheachadh air a’ phost-d." - -msgid "Email address:" -msgstr "Seòladh puist-d:" - -msgid "Reset my password" -msgstr "Ath-shuidhich am facal-faire agam" - -msgid "All dates" -msgstr "A h-uile ceann-là" - -#, python-format -msgid "Select %s" -msgstr "Tagh %s" - -#, python-format -msgid "Select %s to change" -msgstr "Tagh %s gus atharrachadh" - -#, python-format -msgid "Select %s to view" -msgstr "Tagh %s gus a shealltainn" - -msgid "Date:" -msgstr "Ceann-là:" - -msgid "Time:" -msgstr "Àm:" - -msgid "Lookup" -msgstr "Lorg" - -msgid "Currently:" -msgstr "An-dràsta:" - -msgid "Change:" -msgstr "Atharrachadh:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 661e42e..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.po deleted file mode 100644 index f8b6c1f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,286 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# GunChleoc, 2015-2016 -# GunChleoc, 2015 -# GunChleoc, 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-07-15 10:43+0000\n" -"Last-Translator: GunChleoc\n" -"Language-Team: Gaelic, Scottish (http://www.transifex.com/django/django/" -"language/gd/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: gd\n" -"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " -"(n > 2 && n < 20) ? 2 : 3;\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s ri am faighinn" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Seo liosta de %s a tha ri am faighinn. Gus feadhainn a thaghadh, tagh iad sa " -"bhogsa gu h-ìosal agus briog air an t-saighead “Tagh” eadar an dà bhogsa an " -"uair sin." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Sgrìobh sa bhogsa seo gus an liosta de %s ri am faighinn a chriathradh." - -msgid "Filter" -msgstr "Criathraich" - -msgid "Choose all" -msgstr "Tagh na h-uile" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Briog gus a h-uile %s a thaghadh aig an aon àm." - -msgid "Choose" -msgstr "Tagh" - -msgid "Remove" -msgstr "Thoir air falbh" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s a chaidh a thaghadh" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Seo liosta de %s a chaidh a thaghadh. Gus feadhainn a thoirt air falbh, tagh " -"iad sa bhogsa gu h-ìosal agus briog air an t-saighead “Thoir air falbh” " -"eadar an dà bhogsa an uair sin." - -msgid "Remove all" -msgstr "Thoir air falbh na h-uile" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Briog gus a h-uile %s a chaidh a thaghadh a thoirt air falbh." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "Chaidh %(sel)s à %(cnt)s a thaghadh" -msgstr[1] "Chaidh %(sel)s à %(cnt)s a thaghadh" -msgstr[2] "Chaidh %(sel)s à %(cnt)s a thaghadh" -msgstr[3] "Chaidh %(sel)s à %(cnt)s a thaghadh" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tha atharraichean gun sàbhaladh agad ann an raon no dhà fa leth a ghabhas " -"deasachadh. Ma ruitheas tu gnìomh, thèid na dh’atharraich thu gun a " -"shàbhaladh air chall." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Thagh thu gnìomh ach cha do shàbhail thu na dh’atharraich thu ann an " -"raointean fa leth. Briog air “Ceart ma-thà” gus seo a shàbhaladh. Feumaidh " -"tu an gnìomh a ruith a-rithist." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Thagh thu gnìomh agus cha do rinn thu atharrachadh air ran fa leth sam bith. " -"’S dòcha gu bheil thu airson am putan “Siuthad” a chleachdadh seach am putan " -"“Sàbhail”." - -msgid "Now" -msgstr "An-dràsta" - -msgid "Midnight" -msgstr "Meadhan-oidhche" - -msgid "6 a.m." -msgstr "6m" - -msgid "Noon" -msgstr "Meadhan-latha" - -msgid "6 p.m." -msgstr "6f" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -"An aire: Tha thu %s uair a thìde air thoiseach àm an fhrithealaiche." -msgstr[1] "" -"An aire: Tha thu %s uair a thìde air thoiseach àm an fhrithealaiche." -msgstr[2] "" -"An aire: Tha thu %s uairean a thìde air thoiseach àm an fhrithealaiche." -msgstr[3] "" -"An aire: Tha thu %s uair a thìde air thoiseach àm an fhrithealaiche." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -"An aire: Tha thu %s uair a thìde air dheireadh àm an fhrithealaiche." -msgstr[1] "" -"An aire: Tha thu %s uair a thìde air dheireadh àm an fhrithealaiche." -msgstr[2] "" -"An aire: Tha thu %s uairean a thìde air dheireadh àm an fhrithealaiche." -msgstr[3] "" -"An aire: Tha thu %s uair a thìde air dheireadh àm an fhrithealaiche." - -msgid "Choose a Time" -msgstr "Tagh àm" - -msgid "Choose a time" -msgstr "Tagh àm" - -msgid "Cancel" -msgstr "Sguir dheth" - -msgid "Today" -msgstr "An-diugh" - -msgid "Choose a Date" -msgstr "Tagh ceann-là" - -msgid "Yesterday" -msgstr "An-dè" - -msgid "Tomorrow" -msgstr "A-màireach" - -msgid "January" -msgstr "Am Faoilleach" - -msgid "February" -msgstr "An Gearran" - -msgid "March" -msgstr "Am Màrt" - -msgid "April" -msgstr "An Giblean" - -msgid "May" -msgstr "An Cèitean" - -msgid "June" -msgstr "An t-Ògmhios" - -msgid "July" -msgstr "An t-Iuchar" - -msgid "August" -msgstr "An Lùnastal" - -msgid "September" -msgstr "An t-Sultain" - -msgid "October" -msgstr "An Dàmhair" - -msgid "November" -msgstr "An t-Samhain" - -msgid "December" -msgstr "An Dùbhlachd" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Faoi" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Gearr" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Màrt" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Gibl" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Cèit" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Ògmh" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Iuch" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Lùna" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sult" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Dàmh" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Samh" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dùbh" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Dò" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Lu" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Mà" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Ci" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Da" - -msgctxt "one letter Friday" -msgid "F" -msgstr "hA" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Sa" - -msgid "Show" -msgstr "Seall" - -msgid "Hide" -msgstr "Falaich" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.mo deleted file mode 100644 index 10f5612..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.po deleted file mode 100644 index 71ab186..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/django.po +++ /dev/null @@ -1,762 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Denís Bermúdez Delgado , 2021 -# fasouto , 2011-2012 -# fonso , 2011,2013 -# fasouto , 2017 -# Jannis Leidel , 2011 -# Leandro Regueiro , 2013 -# 948a55bc37dd6d642f1875bb84258fff_07a28cc , 2011-2012 -# Pablo, 2015 -# X Bello , 2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: X Bello , 2023\n" -"Language-Team: Galician (http://www.transifex.com/django/django/language/" -"gl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: gl\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Borrar %(verbose_name_plural)s seleccionados." - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Borrado exitosamente %(count)d %(items)s" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Non foi posíble eliminar %(name)s" - -msgid "Are you sure?" -msgstr "¿Está seguro?" - -msgid "Administration" -msgstr "Administración" - -msgid "All" -msgstr "Todo" - -msgid "Yes" -msgstr "Si" - -msgid "No" -msgstr "Non" - -msgid "Unknown" -msgstr "Descoñecido" - -msgid "Any date" -msgstr "Calquera data" - -msgid "Today" -msgstr "Hoxe" - -msgid "Past 7 days" -msgstr "Últimos 7 días" - -msgid "This month" -msgstr "Este mes" - -msgid "This year" -msgstr "Este ano" - -msgid "No date" -msgstr "Sen data" - -msgid "Has date" -msgstr "Ten data" - -msgid "Empty" -msgstr "Baleiro" - -msgid "Not empty" -msgstr "Non baleiro" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Por favor, insira os %(username)s e contrasinal dunha conta de persoal. Teña " -"en conta que ambos os dous campos distingues maiúsculas e minúsculas." - -msgid "Action:" -msgstr "Acción:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Engadir outro %(verbose_name)s" - -msgid "Remove" -msgstr "Retirar" - -msgid "Addition" -msgstr "Engadido" - -msgid "Change" -msgstr "Modificar" - -msgid "Deletion" -msgstr "Borrado" - -msgid "action time" -msgstr "hora da acción" - -msgid "user" -msgstr "usuario" - -msgid "content type" -msgstr "tipo de contido" - -msgid "object id" -msgstr "id do obxecto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr do obxecto" - -msgid "action flag" -msgstr "código do tipo de acción" - -msgid "change message" -msgstr "cambiar mensaxe" - -msgid "log entry" -msgstr "entrada de rexistro" - -msgid "log entries" -msgstr "entradas de rexistro" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Engadido %(object)s" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Cambiado “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Eliminado “%(object)s.”" - -msgid "LogEntry Object" -msgstr "Obxecto LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Engadido {name} “{object}”." - -msgid "Added." -msgstr "Engadido." - -msgid "and" -msgstr "e" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Cambiados {fields} por {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Cambiados {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Eliminado {name} “{object}”." - -msgid "No fields changed." -msgstr "Non se modificou ningún campo." - -msgid "None" -msgstr "Ningún" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -" Para seleccionar máis dunha entrada, manteña premida a tecla “Control”, ou " -"“Comando” nun Mac." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Engadiuse correctamente {name} “{obj}”." - -msgid "You may edit it again below." -msgstr "Pode editalo outra vez abaixo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"Engadiuse correctamente {name} “{obj}”. Pode engadir outro {name} abaixo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "Modificouse correctamente {name} “{obj}”. Pode editalo de novo abaixo." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "Engadiuse correctamente {name} “{obj}”. Pode editalo de novo abaixo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"Modificouse correctamente {name} “{obj}”. Pode engadir outro {name} abaixo." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "Modificouse correctamente {name} “{obj}”." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Debe seleccionar ítems para poder facer accións con eles. Ningún ítem foi " -"cambiado." - -msgid "No action selected." -msgstr "Non se elixiu ningunha acción." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "Eliminouse correctamente %(name)s “%(obj)s”." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "Non existe %(name)s ca ID “%(key)s”. Ó mellor foi borrado?" - -#, python-format -msgid "Add %s" -msgstr "Engadir %s" - -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -#, python-format -msgid "View %s" -msgstr "Ver %s" - -msgid "Database error" -msgstr "Erro da base de datos" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s foi cambiado satisfactoriamente." -msgstr[1] "%(count)s %(name)s foron cambiados satisfactoriamente." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s seleccionado." -msgstr[1] "Tódolos %(total_count)s seleccionados." - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 de %(cnt)s seleccionados." - -#, python-format -msgid "Change history: %s" -msgstr "Histórico de cambios: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"O borrado de %(class_name)s %(instance)s precisaría borrar os seguintes " -"obxetos relacionados: %(related_objects)s" - -msgid "Django site admin" -msgstr "Administración de sitio Django" - -msgid "Django administration" -msgstr "Administración de Django" - -msgid "Site administration" -msgstr "Administración do sitio" - -msgid "Log in" -msgstr "Iniciar sesión" - -#, python-format -msgid "%(app)s administration" -msgstr "administración de %(app)s " - -msgid "Page not found" -msgstr "Páxina non atopada" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Sentímolo, pero non se atopou a páxina solicitada." - -msgid "Home" -msgstr "Inicio" - -msgid "Server error" -msgstr "Erro no servidor" - -msgid "Server error (500)" -msgstr "Erro no servidor (500)" - -msgid "Server Error (500)" -msgstr "Erro no servidor (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ocorreu un erro. Os administradores do sitio foron informados por email e " -"debería ser arranxado pronto. Grazas pola súa paciencia." - -msgid "Run the selected action" -msgstr "Executar a acción seleccionada" - -msgid "Go" -msgstr "Ir" - -msgid "Click here to select the objects across all pages" -msgstr "Fai clic aquí para seleccionar os obxectos en tódalas páxinas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Seleccionar todos os %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Limpar selección" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelos na aplicación %(name)s" - -msgid "Add" -msgstr "Engadir" - -msgid "View" -msgstr "Vista" - -msgid "You don’t have permission to view or edit anything." -msgstr "Non ten permiso para ver ou editar nada." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Primeiro insira un nome de usuario e un contrasinal. Despois poderá editar " -"máis opcións de usuario." - -msgid "Enter a username and password." -msgstr "Introduza un nome de usuario e contrasinal." - -msgid "Change password" -msgstr "Cambiar contrasinal" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Por favor corrixa o erro de abaixo." -msgstr[1] "Por favor corrixa o erro de abaixo." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Insira un novo contrasinal para o usuario %(username)s." - -msgid "Skip to main content" -msgstr "Saltar ó contido principal" - -msgid "Welcome," -msgstr "Benvido," - -msgid "View site" -msgstr "Ver sitio" - -msgid "Documentation" -msgstr "Documentación" - -msgid "Log out" -msgstr "Rematar sesión" - -msgid "Breadcrumbs" -msgstr "Migas de pan" - -#, python-format -msgid "Add %(name)s" -msgstr "Engadir %(name)s" - -msgid "History" -msgstr "Historial" - -msgid "View on site" -msgstr "Ver no sitio" - -msgid "Filter" -msgstr "Filtro" - -msgid "Clear all filters" -msgstr "Borrar tódolos filtros" - -msgid "Remove from sorting" -msgstr "Eliminar da clasificación" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioridade de clasificación: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Activar clasificación" - -msgid "Toggle theme (current theme: auto)" -msgstr "Escoller tema (tema actual: auto)" - -msgid "Toggle theme (current theme: light)" -msgstr "Escoller tema (tema actual: claro)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Escoller tema (tema actual: escuro)" - -msgid "Delete" -msgstr "Eliminar" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Borrar o %(object_name)s '%(escaped_object)s' resultaría na eliminación de " -"elementos relacionados, pero a súa conta non ten permiso para borrar os " -"seguintes tipos de elementos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Para borrar o obxecto %(object_name)s '%(escaped_object)s' requiriríase " -"borrar os seguintes obxectos protexidos relacionados:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Seguro que quere borrar o %(object_name)s \"%(escaped_object)s\"? " -"Eliminaranse os seguintes obxectos relacionados:" - -msgid "Objects" -msgstr "Obxectos" - -msgid "Yes, I’m sure" -msgstr "Sí, estou seguro" - -msgid "No, take me back" -msgstr "Non, lévame de volta" - -msgid "Delete multiple objects" -msgstr "Eliminar múltiples obxectos" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Borrar os obxectos %(objects_name)s seleccionados resultaría na eliminación " -"de obxectos relacionados, pero a súa conta non ten permiso para borrar os " -"seguintes tipos de obxecto:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Para borrar os obxectos %(objects_name)s relacionados requiriríase eliminar " -"os seguintes obxectos protexidos relacionados:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Está seguro de que quere borrar os obxectos %(objects_name)s seleccionados? " -"Serán eliminados todos os seguintes obxectos e elementos relacionados on " -"eles:" - -msgid "Delete?" -msgstr "¿Eliminar?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Por %(filter_title)s " - -msgid "Summary" -msgstr "Sumario" - -msgid "Recent actions" -msgstr "Accións recentes" - -msgid "My actions" -msgstr "As miñas accións" - -msgid "None available" -msgstr "Ningunha dispoñíbel" - -msgid "Unknown content" -msgstr "Contido descoñecido" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Hai un problema coa súa instalación de base de datos. Asegúrese de que se " -"creasen as táboas axeitadas na base de datos, e de que o usuario apropiado " -"teña permisos para lela." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Está identificado como %(username)s, pero non está autorizado para acceder a " -"esta páxina. Gustaríalle identificarse con una conta diferente?" - -msgid "Forgotten your password or username?" -msgstr "¿Olvidou o usuario ou contrasinal?" - -msgid "Toggle navigation" -msgstr "Activar navegación" - -msgid "Sidebar" -msgstr "Barra lateral" - -msgid "Start typing to filter…" -msgstr "Comece a escribir para filtrar…" - -msgid "Filter navigation items" -msgstr "Filtrar ítems de navegación" - -msgid "Date/time" -msgstr "Data/hora" - -msgid "User" -msgstr "Usuario" - -msgid "Action" -msgstr "Acción" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "entrada" -msgstr[1] "entradas" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Este obxecto non ten histórico de cambios. Posibelmente non se creou usando " -"este sitio de administración." - -msgid "Show all" -msgstr "Amosar todo" - -msgid "Save" -msgstr "Gardar" - -msgid "Popup closing…" -msgstr "Pechando popup…" - -msgid "Search" -msgstr "Busca" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultado. " -msgstr[1] "%(counter)s resultados." - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s en total" - -msgid "Save as new" -msgstr "Gardar como novo" - -msgid "Save and add another" -msgstr "Gardar e engadir outro" - -msgid "Save and continue editing" -msgstr "Gardar e seguir modificando" - -msgid "Save and view" -msgstr "Gardar e ver" - -msgid "Close" -msgstr "Pechar" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Cambiar %(model)s seleccionado" - -#, python-format -msgid "Add another %(model)s" -msgstr "Engadir outro %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Eliminar %(model)s seleccionado" - -#, python-format -msgid "View selected %(model)s" -msgstr "Ver %(model)s seleccionado" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Grazas polo tempo que dedicou ao sitio web." - -msgid "Log in again" -msgstr "Entrar de novo" - -msgid "Password change" -msgstr "Cambiar o contrasinal" - -msgid "Your password was changed." -msgstr "Cambiouse o seu contrasinal." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Por razóns de seguridade, introduza o contrasinal actual, e despois " -"introduza o novo contrasinal dúas veces para verificar que o escribiu " -"correctamente." - -msgid "Change my password" -msgstr "Cambiar o contrasinal" - -msgid "Password reset" -msgstr "Recuperar o contrasinal" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"A túa clave foi gardada.\n" -"Xa podes entrar." - -msgid "Password reset confirmation" -msgstr "Confirmación de reseteo da contrasinal" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Por favor insira a súa contrasinal dúas veces para que podamos verificar se " -"a escribiu correctamente." - -msgid "New password:" -msgstr "Contrasinal novo:" - -msgid "Confirm password:" -msgstr "Confirmar contrasinal:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"A ligazón de reseteo da contrasinal non é válida, posiblemente porque xa foi " -"usada. Por favor pida un novo reseteo da contrasinal." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Acabamos de enviarlle as instrucións para configurar o contrasinal ao " -"enderezo de email que nos indicou. Debería recibilas axiña." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Se non recibe un email, por favor asegúrese de que escribiu a dirección ca " -"que se rexistrou, e comprobe a carpeta de spam." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Recibe este email porque solicitou restablecer o contrasinal para a súa " -"conta de usuario en %(site_name)s" - -msgid "Please go to the following page and choose a new password:" -msgstr "Por favor vaia á seguinte páxina e elixa una nova contrasinal:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "No caso de que o esquecese, o seu nome de usuario é:" - -msgid "Thanks for using our site!" -msgstr "Grazas por usar o noso sitio web!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "O equipo de %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Esqueceu o contrasinal? Insira o seu enderezo de email embaixo e " -"enviarémoslle as instrucións para configurar un novo." - -msgid "Email address:" -msgstr "Enderezo de correo electrónico:" - -msgid "Reset my password" -msgstr "Recuperar o meu contrasinal" - -msgid "All dates" -msgstr "Todas as datas" - -#, python-format -msgid "Select %s" -msgstr "Seleccione un/unha %s" - -#, python-format -msgid "Select %s to change" -msgstr "Seleccione %s que modificar" - -#, python-format -msgid "Select %s to view" -msgstr "Seleccione %s para ver" - -msgid "Date:" -msgstr "Data:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Procurar" - -msgid "Currently:" -msgstr "Actualmente:" - -msgid "Change:" -msgstr "Modificar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 29d8896..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.po deleted file mode 100644 index 200faec..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,280 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# fasouto , 2011 -# fonso , 2011,2013 -# Jannis Leidel , 2011 -# Leandro Regueiro , 2013 -# X Bello , 2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: X Bello , 2023\n" -"Language-Team: Galician (http://www.transifex.com/django/django/language/" -"gl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: gl\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s dispoñíbeis" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Esta é unha lista de %s dispoñíbeis. Pode escoller algúns seleccionándoos na " -"caixa inferior e a continuación facendo clic na frecha \"Escoller\" situada " -"entre as dúas caixas." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Escriba nesta caixa para filtrar a lista de %s dispoñíbeis." - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Escoller todo" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Prema para escoller todos/as os/as '%s' dunha vez." - -msgid "Choose" -msgstr "Escoller" - -msgid "Remove" -msgstr "Retirar" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s escollido/a(s)" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Esta é a lista de %s escollidos/as. Pode eliminar algúns seleccionándoos na " -"caixa inferior e a continuación facendo clic na frecha \"Eliminar\" situada " -"entre as dúas caixas." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Escriba nesta caixa para filtrar a lista de %s seleccionados." - -msgid "Remove all" -msgstr "Retirar todos" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Faga clic para eliminar da lista todos/as os/as '%s' escollidos/as." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s opción seleccionada non visible" -msgstr[1] "%s opcións seleccionadas non visibles" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s escollido" -msgstr[1] "%(sel)s de %(cnt)s escollidos" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tes cambios sen guardar en campos editables individuales. Se executas unha " -"acción, os cambios non gardados perderanse." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Escolleu unha acción, pero aínda non gardou os cambios nos campos " -"individuais. Prema OK para gardar. Despois terá que volver executar a acción." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Escolleu unha acción, pero aínda non gardou os cambios nos campos " -"individuais. Probablemente estea buscando o botón Ir no canto do botón " -"Gardar." - -msgid "Now" -msgstr "Agora" - -msgid "Midnight" -msgstr "Medianoite" - -msgid "6 a.m." -msgstr "6 da mañá" - -msgid "Noon" -msgstr "Mediodía" - -msgid "6 p.m." -msgstr "6 da tarde" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Nota: Está %s hora por diante da hora do servidor." -msgstr[1] "Nota: Está %s horas por diante da hora do servidor." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Nota: Está %s hora por detrás da hora do servidor." -msgstr[1] "Nota: Está %s horas por detrás da hora do servidor." - -msgid "Choose a Time" -msgstr "Escolla unha Hora" - -msgid "Choose a time" -msgstr "Escolla unha hora" - -msgid "Cancel" -msgstr "Cancelar" - -msgid "Today" -msgstr "Hoxe" - -msgid "Choose a Date" -msgstr "Escolla unha Data" - -msgid "Yesterday" -msgstr "Onte" - -msgid "Tomorrow" -msgstr "Mañá" - -msgid "January" -msgstr "Xaneiro" - -msgid "February" -msgstr "Febreiro" - -msgid "March" -msgstr "Marzo" - -msgid "April" -msgstr "Abril" - -msgid "May" -msgstr "Maio" - -msgid "June" -msgstr "Xuño" - -msgid "July" -msgstr "Xullo" - -msgid "August" -msgstr "Agosto" - -msgid "September" -msgstr "Setembro" - -msgid "October" -msgstr "Outubro" - -msgid "November" -msgstr "Novembro" - -msgid "December" -msgstr "Decembro" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Xan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Abr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Maio" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Xuñ" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Xul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Ago" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Set" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Out" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "L" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "M" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "M" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "X" - -msgctxt "one letter Friday" -msgid "F" -msgstr "V" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Amosar" - -msgid "Hide" -msgstr "Esconder" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.mo deleted file mode 100644 index 74a428d..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.po deleted file mode 100644 index ac68336..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/django.po +++ /dev/null @@ -1,717 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# 534b44a19bf18d20b71ecc4eb77c572f_db336e9 , 2011 -# Jannis Leidel , 2011 -# Meir Kriheli , 2011-2015,2017,2019-2020 -# Menachem G., 2021 -# Yaron Shahrabani , 2020-2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-02 07:48+0000\n" -"Last-Translator: Menachem G.\n" -"Language-Team: Hebrew (http://www.transifex.com/django/django/language/he/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: he\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % " -"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "מחק %(verbose_name_plural)s שנבחרו" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s נמחקו בהצלחה." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "לא ניתן למחוק %(name)s" - -msgid "Are you sure?" -msgstr "להמשיך?" - -msgid "Administration" -msgstr "ניהול" - -msgid "All" -msgstr "הכול" - -msgid "Yes" -msgstr "כן" - -msgid "No" -msgstr "לא" - -msgid "Unknown" -msgstr "לא ידוע" - -msgid "Any date" -msgstr "כל תאריך" - -msgid "Today" -msgstr "היום" - -msgid "Past 7 days" -msgstr "בשבוע האחרון" - -msgid "This month" -msgstr "החודש" - -msgid "This year" -msgstr "השנה" - -msgid "No date" -msgstr "ללא תאריך" - -msgid "Has date" -msgstr "עם תאריך" - -msgid "Empty" -msgstr "ריק" - -msgid "Not empty" -msgstr "לא ריק" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"נא להזין את %(username)s והסיסמה הנכונים לחשבון איש צוות. נא לשים לב כי שני " -"השדות רגישים לאותיות גדולות/קטנות." - -msgid "Action:" -msgstr "פעולה" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "הוספת %(verbose_name)s" - -msgid "Remove" -msgstr "להסיר" - -msgid "Addition" -msgstr "הוספה" - -msgid "Change" -msgstr "שינוי" - -msgid "Deletion" -msgstr "מחיקה" - -msgid "action time" -msgstr "זמן פעולה" - -msgid "user" -msgstr "משתמש" - -msgid "content type" -msgstr "סוג תוכן" - -msgid "object id" -msgstr "מזהה אובייקט" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "ייצוג אובייקט" - -msgid "action flag" -msgstr "דגל פעולה" - -msgid "change message" -msgstr "הערה לשינוי" - -msgid "log entry" -msgstr "רישום יומן" - -msgid "log entries" -msgstr "רישומי יומן" - -#, python-format -msgid "Added “%(object)s”." -msgstr "„%(object)s” נוסף." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "„%(object)s” נמחקו." - -msgid "LogEntry Object" -msgstr "אובייקט LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "נוסף." - -msgid "and" -msgstr "ו" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr " {fields} שונו." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "אף שדה לא השתנה." - -msgid "None" -msgstr "ללא" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "יש להחזיק \"Control\" או \"Command\" במק, כדי לבחור יותר מאחד." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "ניתן לערוך שוב מתחת." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "יש לסמן פריטים כדי לבצע עליהם פעולות. לא שונו פריטים." - -msgid "No action selected." -msgstr "לא נבחרה פעולה." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "הוספת %s" - -#, python-format -msgid "Change %s" -msgstr "שינוי %s" - -#, python-format -msgid "View %s" -msgstr "צפיה ב%s" - -msgid "Database error" -msgstr "שגיאת בסיס נתונים" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "שינוי %(count)s %(name)s בוצע בהצלחה." -msgstr[1] "שינוי %(count)s %(name)s בוצע בהצלחה." -msgstr[2] "שינוי %(count)s %(name)s בוצע בהצלחה." -msgstr[3] "שינוי %(count)s %(name)s בוצע בהצלחה." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s נבחר" -msgstr[1] "כל ה־%(total_count)s נבחרו" -msgstr[2] "כל ה־%(total_count)s נבחרו" -msgstr[3] "כל ה־%(total_count)s נבחרו" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 מ %(cnt)s נבחרים" - -#, python-format -msgid "Change history: %s" -msgstr "היסטוריית שינוי: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"מחיקת %(class_name)s %(instance)s תדרוש מחיקת האובייקטים הקשורים והמוגנים " -"הבאים: %(related_objects)s" - -msgid "Django site admin" -msgstr "ניהול אתר Django" - -msgid "Django administration" -msgstr "ניהול Django" - -msgid "Site administration" -msgstr "ניהול אתר" - -msgid "Log in" -msgstr "כניסה" - -#, python-format -msgid "%(app)s administration" -msgstr "ניהול %(app)s" - -msgid "Page not found" -msgstr "דף לא קיים" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "אנו מתנצלים, העמוד המבוקש אינו קיים." - -msgid "Home" -msgstr "דף הבית" - -msgid "Server error" -msgstr "שגיאת שרת" - -msgid "Server error (500)" -msgstr "שגיאת שרת (500)" - -msgid "Server Error (500)" -msgstr "שגיאת שרת (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "הפעל את הפעולה שבחרת בה." - -msgid "Go" -msgstr "בצע" - -msgid "Click here to select the objects across all pages" -msgstr "לחיצה כאן תבחר את האובייקטים בכל העמודים" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "בחירת כל %(total_count)s ה־%(module_name)s" - -msgid "Clear selection" -msgstr "איפוס בחירה" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "מודלים ביישום %(name)s" - -msgid "Add" -msgstr "הוספה" - -msgid "View" -msgstr "צפיה" - -msgid "You don’t have permission to view or edit anything." -msgstr "אין לך כלל הרשאות צפיה או עריכה." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"ראשית יש להזין שם משתמש וססמה. לאחר מכן ניתן יהיה לערוך אפשרויות משתמש " -"נוספות." - -msgid "Enter a username and password." -msgstr "נא לשים שם משתמש וסיסמה." - -msgid "Change password" -msgstr "שינוי סיסמה" - -msgid "Please correct the error below." -msgstr "נא לתקן את השגיאה מתחת." - -msgid "Please correct the errors below." -msgstr "נא לתקן את השגיאות מתחת." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "יש להזין סיסמה חדשה עבור המשתמש %(username)s." - -msgid "Welcome," -msgstr "שלום," - -msgid "View site" -msgstr "צפיה באתר" - -msgid "Documentation" -msgstr "תיעוד" - -msgid "Log out" -msgstr "יציאה" - -#, python-format -msgid "Add %(name)s" -msgstr "הוספת %(name)s" - -msgid "History" -msgstr "היסטוריה" - -msgid "View on site" -msgstr "צפיה באתר" - -msgid "Filter" -msgstr "סינון" - -msgid "Clear all filters" -msgstr "ניקוי כל הסינונים" - -msgid "Remove from sorting" -msgstr "הסרה ממיון" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "עדיפות מיון: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "החלף כיוון מיון" - -msgid "Delete" -msgstr "מחיקה" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"מחיקת %(object_name)s '%(escaped_object)s' מצריכה מחיקת אובייקטים מקושרים, " -"אך לחשבון שלך אין הרשאות למחיקת סוגי האובייקטים הבאים:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"מחיקת ה%(object_name)s '%(escaped_object)s' תדרוש מחיקת האובייקטים הקשורים " -"והמוגנים הבאים:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"האם ברצונך למחוק את %(object_name)s \"%(escaped_object)s\"? כל הפריטים " -"הקשורים הבאים יימחקו:" - -msgid "Objects" -msgstr "אובייקטים" - -msgid "Yes, I’m sure" -msgstr "כן, בבטחה" - -msgid "No, take me back" -msgstr "לא, קח אותי חזרה." - -msgid "Delete multiple objects" -msgstr "מחק כמה פריטים" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"מחיקת ב%(objects_name)s הנבחרת תביא במחיקת אובייקטים קשורים, אבל החשבון שלך " -"אינו הרשאה למחוק את הסוגים הבאים של אובייקטים:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"מחיקת ה%(objects_name)s אשר סימנת תדרוש מחיקת האובייקטים הקשורים והמוגנים " -"הבאים:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"האם אתה בטוח שאתה רוצה למחוק את ה%(objects_name)s הנבחר? כל האובייקטים הבאים " -"ופריטים הקשורים להם יימחקו:" - -msgid "Delete?" -msgstr "מחיקה ?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " לפי %(filter_title)s " - -msgid "Summary" -msgstr "סיכום" - -msgid "Recent actions" -msgstr "פעולות אחרונות" - -msgid "My actions" -msgstr "הפעולות שלי" - -msgid "None available" -msgstr "לא נמצאו" - -msgid "Unknown content" -msgstr "תוכן לא ידוע" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"משהו שגוי בהתקנת בסיס הנתונים שלך. יש לוודא יצירת הטבלאות המתאימות וקיום " -"הרשאות קריאה על בסיס הנתונים עבור המשתמש המתאים." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"התחברת בתור %(username)s, אך אין לך הרשאות גישה לעמוד זה. האם ברצונך להתחבר " -"בתור משתמש אחר?" - -msgid "Forgotten your password or username?" -msgstr "שכחת את שם המשתמש והסיסמה שלך ?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Start typing to filter…" -msgstr "התחל להקליד כדי לסנן..." - -msgid "Filter navigation items" -msgstr "סנן פריטי ניווט" - -msgid "Date/time" -msgstr "תאריך/שעה" - -msgid "User" -msgstr "משתמש" - -msgid "Action" -msgstr "פעולה" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "לאובייקט זה אין היסטוריית שינויים. כנראה לא נוסף דרך ממשק הניהול." - -msgid "Show all" -msgstr "הצג הכל" - -msgid "Save" -msgstr "שמירה" - -msgid "Popup closing…" -msgstr "חלון צץ נסגר..." - -msgid "Search" -msgstr "חיפוש" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "תוצאה %(counter)s" -msgstr[1] "%(counter)s תוצאות" -msgstr[2] "%(counter)s תוצאות" -msgstr[3] "%(counter)s תוצאות" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s סה\"כ" - -msgid "Save as new" -msgstr "שמירה כחדש" - -msgid "Save and add another" -msgstr "שמירה והוספת אחר" - -msgid "Save and continue editing" -msgstr "שמירה והמשך עריכה" - -msgid "Save and view" -msgstr "שמירה וצפיה" - -msgid "Close" -msgstr "סגירה" - -#, python-format -msgid "Change selected %(model)s" -msgstr "שינוי %(model)s הנבחר." - -#, python-format -msgid "Add another %(model)s" -msgstr "הוספת %(model)s נוסף." - -#, python-format -msgid "Delete selected %(model)s" -msgstr "מחיקת %(model)s הנבחר." - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "התחבר/י שוב" - -msgid "Password change" -msgstr "שינוי סיסמה" - -msgid "Your password was changed." -msgstr "סיסמתך שונתה." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"נא להזין את הססמה הישנה שלך, למען האבטחה, ולאחר מכן את הססמה החדשה שלך " -"פעמיים כדי שנוכל לוודא שהקלדת אותה נכון." - -msgid "Change my password" -msgstr "שנה את סיסמתי" - -msgid "Password reset" -msgstr "איפוס סיסמה" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "ססמתך נשמרה. כעת ניתן להתחבר." - -msgid "Password reset confirmation" -msgstr "אימות איפוס סיסמה" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "נא להזין את סיסמתך החדשה פעמיים כדי שנוכל לוודא שהקלדת אותה כראוי." - -msgid "New password:" -msgstr "סיסמה חדשה:" - -msgid "Confirm password:" -msgstr "אימות סיסמה:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"הקישור לאיפוס הסיסמה אינו חוקי. ייתכן והשתמשו בו כבר. נא לבקש איפוס סיסמה " -"חדש." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"שלחנו לך הוראות לקביעת הססמה, בהנחה שקיים חשבון עם כתובת הדואר האלקטרוני " -"שהזנת. ההוראות אמורות להתקבל בקרוב." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"אם לא קיבלת דואר אלקטרוני, נא לוודא שהזנת את הכתובת שנרשמת עימה ושההודעה לא " -"נחתה בתיקיית דואר הזבל." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"הודעה זו נשלחה אליך עקב בקשתך לאיפוס הסיסמה עבור המשתמש שלך באתר " -"%(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "נא להגיע לעמוד הבא ולבחור סיסמה חדשה:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "שם המשתמש שלך במקרה ושכחת:" - -msgid "Thanks for using our site!" -msgstr "תודה על השימוש באתר שלנו!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "צוות %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"שכחת את הססמה שלך? נא להזין את כתובת הדואר האלקטרוני מתחת ואנו נשלח הוראות " -"לקביעת ססמה חדשה." - -msgid "Email address:" -msgstr "כתובת דוא\"ל:" - -msgid "Reset my password" -msgstr "אפס את סיסמתי" - -msgid "All dates" -msgstr "כל התאריכים" - -#, python-format -msgid "Select %s" -msgstr "בחירת %s" - -#, python-format -msgid "Select %s to change" -msgstr "בחירת %s לשינוי" - -#, python-format -msgid "Select %s to view" -msgstr "בחירת %s לצפיה" - -msgid "Date:" -msgstr "תאריך:" - -msgid "Time:" -msgstr "שעה:" - -msgid "Lookup" -msgstr "חפש" - -msgid "Currently:" -msgstr "נוכחי:" - -msgid "Change:" -msgstr "שינוי:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 852d04a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po deleted file mode 100644 index 73788d5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,272 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# 534b44a19bf18d20b71ecc4eb77c572f_db336e9 , 2012 -# Jannis Leidel , 2011 -# Meir Kriheli , 2011-2012,2014-2015,2017,2020 -# Yaron Shahrabani , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-05-17 12:28+0000\n" -"Last-Translator: Yaron Shahrabani \n" -"Language-Team: Hebrew (http://www.transifex.com/django/django/language/he/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: he\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % " -"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" - -#, javascript-format -msgid "Available %s" -msgstr "אפשרויות %s זמינות" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"זו רשימת %s הזמינים לבחירה. ניתן לבחור חלק ע\"י סימון בתיבה מתחת ולחיצה על " -"חץ \"בחר\" בין שתי התיבות." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "ניתן להקליד בתיבה זו כדי לסנן %s." - -msgid "Filter" -msgstr "סינון" - -msgid "Choose all" -msgstr "בחירת הכל" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "בחירת כל ה%s בבת אחת." - -msgid "Choose" -msgstr "בחר" - -msgid "Remove" -msgstr "הסרה" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s אשר נבחרו" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"זו רשימת %s אשר נבחרו. ניתן להסיר חלק ע\"י בחירה בתיבה מתחת ולחיצה על חץ " -"\"הסרה\" בין שתי התיבות." - -msgid "Remove all" -msgstr "הסרת הכל" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "הסרת כל %s אשר נבחרו בבת אחת." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s מ %(cnt)s נבחרות" -msgstr[1] "%(sel)s מ %(cnt)s נבחרות" -msgstr[2] "%(sel)s מ %(cnt)s נבחרות" -msgstr[3] "%(sel)s מ %(cnt)s נבחרות" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"יש לך שינויים שלא נשמרו על שדות יחידות. אם אתה מפעיל פעולה, שינויים שלא " -"נשמרו יאבדו." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"בחרת פעולה, אך לא שמרת עדיין את השינויים לשדות בודדים. נא ללחוץ על אישור כדי " -"לשמור. יהיה עליך להפעיל את הפעולה עוד פעם." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"בחרת פעולה, אך לא ביצעת שינויים בשדות. כנראה חיפשת את כפתור בצע במקום כפתור " -"שמירה." - -msgid "Now" -msgstr "כעת" - -msgid "Midnight" -msgstr "חצות" - -msgid "6 a.m." -msgstr "6 בבוקר" - -msgid "Noon" -msgstr "12 בצהריים" - -msgid "6 p.m." -msgstr "6 אחר הצהריים" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "הערה: את/ה %s שעה לפני זמן השרת." -msgstr[1] "הערה: את/ה %s שעות לפני זמן השרת." -msgstr[2] "הערה: את/ה %s שעות לפני זמן השרת." -msgstr[3] "הערה: את/ה %s שעות לפני זמן השרת." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "הערה: את/ה %s שעה אחרי זמן השרת." -msgstr[1] "הערה: את/ה %s שעות אחרי זמן השרת." -msgstr[2] "הערה: את/ה %s שעות אחרי זמן השרת." -msgstr[3] "הערה: את/ה %s שעות אחרי זמן השרת." - -msgid "Choose a Time" -msgstr "בחירת שעה" - -msgid "Choose a time" -msgstr "בחירת שעה" - -msgid "Cancel" -msgstr "ביטול" - -msgid "Today" -msgstr "היום" - -msgid "Choose a Date" -msgstr "בחירת תאריך" - -msgid "Yesterday" -msgstr "אתמול" - -msgid "Tomorrow" -msgstr "מחר" - -msgid "January" -msgstr "ינואר" - -msgid "February" -msgstr "פברואר" - -msgid "March" -msgstr "מרץ" - -msgid "April" -msgstr "אפריל" - -msgid "May" -msgstr "מאי" - -msgid "June" -msgstr "יוני" - -msgid "July" -msgstr "יולי" - -msgid "August" -msgstr "אוגוסט" - -msgid "September" -msgstr "ספטמבר" - -msgid "October" -msgstr "אוקטובר" - -msgid "November" -msgstr "נובמבר" - -msgid "December" -msgstr "דצמבר" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "ינו׳" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "פבר׳" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "מרץ" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "אפר׳" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "מאי" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "יונ׳" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "יול׳" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "אוג׳" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "ספט׳" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "אוק׳" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "נוב׳" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "דצמ׳" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "ר" - -msgctxt "one letter Monday" -msgid "M" -msgstr "ש" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "ש" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "ר" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "ח" - -msgctxt "one letter Friday" -msgid "F" -msgstr "ש" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "ש" - -msgid "Show" -msgstr "הצג" - -msgid "Hide" -msgstr "הסתר" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo deleted file mode 100644 index a2c4c7d..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.po deleted file mode 100644 index 5193539..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/django.po +++ /dev/null @@ -1,706 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# alkuma , 2013 -# Chandan kumar , 2012 -# Jannis Leidel , 2011 -# Pratik , 2013 -# Sandeep Satavlekar , 2011 -# Vaarun Sinha, 2022 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: Vaarun Sinha\n" -"Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hi\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "चुने हुए %(verbose_name_plural)s हटा दीजिये " - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s सफलतापूर्वक हटा दिया गया है |" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s नहीं हटा सकते" - -msgid "Are you sure?" -msgstr "क्या आप निश्चित हैं?" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "सभी" - -msgid "Yes" -msgstr "हाँ" - -msgid "No" -msgstr "नहीं" - -msgid "Unknown" -msgstr "अनजान" - -msgid "Any date" -msgstr "कोई भी तारीख" - -msgid "Today" -msgstr "आज" - -msgid "Past 7 days" -msgstr "पिछले 7 दिन" - -msgid "This month" -msgstr "इस महीने" - -msgid "This year" -msgstr "इस साल" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -msgid "Empty" -msgstr "" - -msgid "Not empty" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"कृपया कर्मचारी खाते का सही %(username)s व कूटशब्द भरें। भरते समय दीर्घाक्षर और लघु अक्षर " -"का खयाल रखें।" - -msgid "Action:" -msgstr " क्रिया:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "एक और %(verbose_name)s जोड़ें " - -msgid "Remove" -msgstr "निकालें" - -msgid "Addition" -msgstr "" - -msgid "Change" -msgstr "बदलें" - -msgid "Deletion" -msgstr "" - -msgid "action time" -msgstr "कार्य के लिए समय" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "वस्तु की आईडी " - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "वस्तु का निरूपण" - -msgid "action flag" -msgstr "कार्य ध्वज" - -msgid "change message" -msgstr "परिवर्तन सन्देश" - -msgid "log entry" -msgstr "लॉग प्रविष्टि" - -msgid "log entries" -msgstr "लॉग प्रविष्टियाँ" - -#, python-format -msgid "Added “%(object)s”." -msgstr "" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "" - -msgid "LogEntry Object" -msgstr "LogEntry ऑब्जेक्ट" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "और" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "कोई क्षेत्र नहीं बदला" - -msgid "None" -msgstr "कोई नहीं" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "कार्रवाई हेतु आयटम सही अनुक्रम में चुने जाने चाहिए | कोई आइटम नहीं बदले गये हैं." - -msgid "No action selected." -msgstr "कोई कार्रवाई नहीं चुनी है |" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s बढाएं" - -#, python-format -msgid "Change %s" -msgstr "%s बदलो" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "डेटाबेस त्रुटि" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s का परिवर्तन कामयाब हुआ |" -msgstr[1] "%(count)s %(name)s का परिवर्तन कामयाब हुआ |" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s चुने" -msgstr[1] "सभी %(total_count)s चुने " - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s में से 0 चुने" - -#, python-format -msgid "Change history: %s" -msgstr "इतिहास बदलो: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "ज्याँगो साइट प्रशासन" - -msgid "Django administration" -msgstr "ज्याँगो प्रशासन" - -msgid "Site administration" -msgstr "साइट प्रशासन" - -msgid "Log in" -msgstr "लॉगिन" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "पृष्ठ लापता" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "गृह" - -msgid "Server error" -msgstr "सर्वर त्रुटि" - -msgid "Server error (500)" -msgstr "सर्वर त्रुटि (500)" - -msgid "Server Error (500)" -msgstr "सर्वर त्रुटि (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "चयनित कार्रवाई चलाइये" - -msgid "Go" -msgstr "आगे बढ़े" - -msgid "Click here to select the objects across all pages" -msgstr "सभी पृष्ठों पर मौजूद वस्तुओं को चुनने के लिए यहाँ क्लिक करें " - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "तमाम %(total_count)s %(module_name)s चुनें" - -msgid "Clear selection" -msgstr "चयन खालिज किया जाये " - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s अनुप्रयोग के प्रतिरूप" - -msgid "Add" -msgstr "बढाएं" - -msgid "View" -msgstr "" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "उपयोगकर्ता का नाम और कूटशब्द दर्ज करें." - -msgid "Change password" -msgstr "पासवर्ड बदलें" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "%(username)s प्रवोक्ता के लिए नयी कूटशब्द दर्ज करें ।" - -msgid "Welcome," -msgstr "आपका स्वागत है," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "दस्तावेज़ीकरण" - -msgid "Log out" -msgstr "लॉग आउट" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s बढाएं" - -msgid "History" -msgstr "इतिहास" - -msgid "View on site" -msgstr "साइट पे देखें" - -msgid "Filter" -msgstr "छन्नी" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "श्रेणीकरण से हटाये " - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "श्रेणीकरण प्राथमिकता : %(priority_number)s" - -msgid "Toggle sorting" -msgstr "टॉगल श्रेणीकरण" - -msgid "Delete" -msgstr "मिटाएँ" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' को मिटाने पर सम्बंधित वस्तुएँ भी मिटा दी " -"जाएगी, परन्तु आप के खाते में निम्नलिखित प्रकार की वस्तुओं को मिटाने की अनुमति नहीं हैं |" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' को हटाने के लिए उनसे संबंधित निम्नलिखित " -"संरक्षित वस्तुओं को हटाने की आवश्यकता होगी:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"क्या आप %(object_name)s \"%(escaped_object)s\" हटाना चाहते हैं? निम्नलिखित सभी " -"संबंधित वस्तुएँ नष्ट की जाएगी" - -msgid "Objects" -msgstr "" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "अनेक वस्तुएं हटाएँ" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"चयनित %(objects_name)s हटाने पर उस से सम्बंधित वस्तुएं भी हट जाएगी, परन्तु आपके खाते में " -"वस्तुओं के निम्नलिखित प्रकार हटाने की अनुमति नहीं है:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"चयनित %(objects_name)s को हटाने के पश्चात् निम्नलिखित संरक्षित संबंधित वस्तुओं को हटाने " -"की आवश्यकता होगी |" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"क्या आप ने पक्का तय किया हैं की चयनित %(objects_name)s को नष्ट किया जाये ? " -"निम्नलिखित सभी वस्तुएं और उनसे सम्बंधित वस्तुए भी नष्ट की जाएगी:" - -msgid "Delete?" -msgstr "मिटाएँ ?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s द्वारा" - -msgid "Summary" -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr " कोई भी उपलब्ध नहीं" - -msgid "Unknown content" -msgstr "अज्ञात सामग्री" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "अपना पासवर्ड या उपयोगकर्ता नाम भूल गये हैं?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "तिथि / समय" - -msgid "User" -msgstr "उपभोक्ता" - -msgid "Action" -msgstr "कार्य" - -msgid "entry" -msgstr "" - -msgid "entries" -msgstr "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "सभी दिखाएँ" - -msgid "Save" -msgstr "सुरक्षित कीजिये" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "खोज" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s परिणाम" -msgstr[1] "%(counter)s परिणाम" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s कुल परिणाम" - -msgid "Save as new" -msgstr "नये सा सहेजें" - -msgid "Save and add another" -msgstr "सहेजें और एक और जोडें" - -msgid "Save and continue editing" -msgstr "सहेजें और संपादन करें" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "फिर से लॉगिन कीजिए" - -msgid "Password change" -msgstr "कूटशब्द बदलें" - -msgid "Your password was changed." -msgstr "आपके कूटशब्द को बदला गया है" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "कूटशब्द बदलें" - -msgid "Password reset" -msgstr "कूटशब्द पुनस्थाप" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "आपके कूटशब्द को स्थापित किया गया है । अब आप लॉगिन कर सकते है ।" - -msgid "Password reset confirmation" -msgstr "कूटशब्द पुष्टि" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "कृपया आपके नये कूटशब्द को दो बार दर्ज करें ताकि हम उसकी सत्याप्ती कर सकते है ।" - -msgid "New password:" -msgstr "नया कूटशब्द " - -msgid "Confirm password:" -msgstr "कूटशब्द पुष्टि कीजिए" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"कूटशब्द पुनस्थाप संपर्क अमान्य है, संभावना है कि उसे उपयोग किया गया है। कृपया फिर से कूटशब्द " -"पुनस्थाप की आवेदन करें ।" - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"आपको यह डाक इसलिए आई है क्योंकि आप ने %(site_name)s पर अपने खाते का कूटशब्द बदलने का " -"अनुरोध किया था |" - -msgid "Please go to the following page and choose a new password:" -msgstr "कृपया निम्नलिखित पृष्ठ पर नया कूटशब्द चुनिये :" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "हमारे साइट को उपयोग करने के लिए धन्यवाद ।" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s दल" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "डाक पता -" - -msgid "Reset my password" -msgstr " मेरे कूटशब्द की पुनःस्थापना" - -msgid "All dates" -msgstr "सभी तिथियों" - -#, python-format -msgid "Select %s" -msgstr "%s चुनें" - -#, python-format -msgid "Select %s to change" -msgstr "%s के बदली के लिए चयन करें" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "तिथि:" - -msgid "Time:" -msgstr "समय:" - -msgid "Lookup" -msgstr "लुक अप" - -msgid "Currently:" -msgstr "फ़िलहाल - " - -msgid "Change:" -msgstr "बदलाव -" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo deleted file mode 100644 index bb755ad..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.po deleted file mode 100644 index 78b49e7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,217 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Chandan kumar , 2012 -# Jannis Leidel , 2011 -# Sandeep Satavlekar , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hi\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "उपलब्ध %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"यह उपलब्ध %s की सूची है. आप उन्हें नीचे दिए गए बॉक्स में से चयन करके कुछ को चुन सकते हैं और " -"उसके बाद दो बॉक्स के बीच \"चुनें\" तीर पर क्लिक करें." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "इस बॉक्स में टाइप करने के लिए नीचे उपलब्ध %s की सूची को फ़िल्टर करें." - -msgid "Filter" -msgstr "छानना" - -msgid "Choose all" -msgstr "सभी चुनें" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "एक ही बार में सभी %s को चुनने के लिए क्लिक करें." - -msgid "Choose" -msgstr "चुनें" - -msgid "Remove" -msgstr "हटाना" - -#, javascript-format -msgid "Chosen %s" -msgstr "चुनें %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"यह उपलब्ध %s की सूची है. आप उन्हें नीचे दिए गए बॉक्स में से चयन करके कुछ को हटा सकते हैं और " -"उसके बाद दो बॉक्स के बीच \"हटायें\" तीर पर क्लिक करें." - -msgid "Remove all" -msgstr "सभी को हटाएँ" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "एक ही बार में सभी %s को हटाने के लिए क्लिक करें." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s में से %(sel)s चुना गया हैं" -msgstr[1] "%(cnt)s में से %(sel)s चुने गए हैं" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"स्वतंत्र सम्पादनक्षम क्षेत्र/स्तम्भ में किये हुए बदल अभी रक्षित नहीं हैं | अगर आप कुछ कार्रवाई " -"करते हो तो वे खो जायेंगे |" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"आप ने कार्रवाई तो चुनी हैं, पर स्वतंत्र सम्पादनक्षम क्षेत्र/स्तम्भ में किये हुए बदल अभी सुरक्षित " -"नहीं किये हैं| उन्हें सुरक्षित करने के लिए कृपया 'ओके' क्लिक करे | आप को चुनी हुई कार्रवाई " -"दोबारा चलानी होगी |" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"आप ने कार्रवाई चुनी हैं, और आप ने स्वतंत्र सम्पादनक्षम क्षेत्र/स्तम्भ में बदल नहीं किये हैं| " -"संभवतः 'सेव' बटन के बजाय आप 'गो' बटन ढून्ढ रहे हो |" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "अब" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "एक समय चुनें" - -msgid "Midnight" -msgstr "मध्यरात्री" - -msgid "6 a.m." -msgstr "सुबह 6 बजे" - -msgid "Noon" -msgstr "दोपहर" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "रद्द करें" - -msgid "Today" -msgstr "आज" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "कल (बीता)" - -msgid "Tomorrow" -msgstr "कल" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "दिखाओ" - -msgid "Hide" -msgstr " छिपाओ" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.mo deleted file mode 100644 index eb87cd1..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.po deleted file mode 100644 index b919286..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/django.po +++ /dev/null @@ -1,716 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# aljosa , 2011,2013 -# Bojan Mihelač , 2012 -# Filip Cuk , 2016 -# Goran Zugelj , 2018 -# Jannis Leidel , 2011 -# Mislav Cimperšak , 2013,2015-2016 -# Ylodi , 2015 -# Vedran Linić , 2019 -# Ylodi , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-02-19 06:44+0000\n" -"Last-Translator: Vedran Linić \n" -"Language-Team: Croatian (http://www.transifex.com/django/django/language/" -"hr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hr\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Uspješno izbrisano %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Nije moguće izbrisati %(name)s" - -msgid "Are you sure?" -msgstr "Jeste li sigurni?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Izbrišite odabrane %(verbose_name_plural)s" - -msgid "Administration" -msgstr "Administracija" - -msgid "All" -msgstr "Svi" - -msgid "Yes" -msgstr "Da" - -msgid "No" -msgstr "Ne" - -msgid "Unknown" -msgstr "Nepoznat pojam" - -msgid "Any date" -msgstr "Bilo koji datum" - -msgid "Today" -msgstr "Danas" - -msgid "Past 7 days" -msgstr "Prošlih 7 dana" - -msgid "This month" -msgstr "Ovaj mjesec" - -msgid "This year" -msgstr "Ova godina" - -msgid "No date" -msgstr "Nema datuma" - -msgid "Has date" -msgstr "Ima datum" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Molimo unesite ispravno %(username)s i lozinku za pristup. Imajte na umu da " -"oba polja mogu biti velika i mala slova." - -msgid "Action:" -msgstr "Akcija:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Dodaj još jedan %(verbose_name)s" - -msgid "Remove" -msgstr "Ukloni" - -msgid "Addition" -msgstr "" - -msgid "Change" -msgstr "Promijeni" - -msgid "Deletion" -msgstr "" - -msgid "action time" -msgstr "vrijeme akcije" - -msgid "user" -msgstr "korisnik" - -msgid "content type" -msgstr "tip sadržaja" - -msgid "object id" -msgstr "id objekta" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr objekta" - -msgid "action flag" -msgstr "oznaka akcije" - -msgid "change message" -msgstr "promijeni poruku" - -msgid "log entry" -msgstr "zapis" - -msgid "log entries" -msgstr "zapisi" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Dodano \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Promijenjeno \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Obrisano \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "Log zapis" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "Dodano." - -msgid "and" -msgstr "i" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "Nije bilo promjena polja." - -msgid "None" -msgstr "Nijedan" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Držite \"Control\" ili \"Command\" na Mac-u kako bi odabrali više od jednog " -"objekta. " - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Unosi moraju biti odabrani da bi se nad njima mogle izvršiti akcije. Nijedan " -"unos nije promijenjen." - -msgid "No action selected." -msgstr "Nije odabrana akcija." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" uspješno izbrisan." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Novi unos (%s)" - -#, python-format -msgid "Change %s" -msgstr "Promijeni %s" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "Pogreška u bazi" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s uspješno promijenjen." -msgstr[1] "%(count)s %(name)s uspješno promijenjeno." -msgstr[2] "%(count)s %(name)s uspješno promijenjeno." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s odabrano" -msgstr[1] "Svih %(total_count)s odabrano" -msgstr[2] "Svih %(total_count)s odabrano" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 od %(cnt)s odabrano" - -#, python-format -msgid "Change history: %s" -msgstr "Promijeni povijest: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Brisanje %(class_name)s %(instance)s bi zahtjevalo i brisanje sljedećih " -"zaštićenih povezanih objekata: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django administracija stranica" - -msgid "Django administration" -msgstr "Django administracija" - -msgid "Site administration" -msgstr "Administracija stranica" - -msgid "Log in" -msgstr "Prijavi se" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s administracija" - -msgid "Page not found" -msgstr "Stranica nije pronađena" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Ispričavamo se, ali tražena stranica nije pronađena." - -msgid "Home" -msgstr "Početna" - -msgid "Server error" -msgstr "Greška na serveru" - -msgid "Server error (500)" -msgstr "Greška na serveru (500)" - -msgid "Server Error (500)" -msgstr "Greška na serveru (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Dogodila se greška. Administratori su obaviješteni putem elektroničke pošte " -"te bi greška uskoro trebala biti ispravljena. Hvala na strpljenju." - -msgid "Run the selected action" -msgstr "Izvrši odabranu akciju" - -msgid "Go" -msgstr "Idi" - -msgid "Click here to select the objects across all pages" -msgstr "Klikni ovdje da bi odabrao unose kroz sve stranice" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Odaberi svih %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Očisti odabir" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Prvo, unesite korisničko ime i lozinku. Onda možete promijeniti više " -"postavki korisnika." - -msgid "Enter a username and password." -msgstr "Unesite korisničko ime i lozinku." - -msgid "Change password" -msgstr "Promijeni lozinku" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "Molimo ispravite navedene greške." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Unesite novu lozinku za korisnika %(username)s." - -msgid "Welcome," -msgstr "Dobrodošli," - -msgid "View site" -msgstr "Pogledaj stranicu" - -msgid "Documentation" -msgstr "Dokumentacija" - -msgid "Log out" -msgstr "Odjava" - -#, python-format -msgid "Add %(name)s" -msgstr "Novi unos - %(name)s" - -msgid "History" -msgstr "Povijest" - -msgid "View on site" -msgstr "Pogledaj na stranicama" - -msgid "Filter" -msgstr "Filter" - -msgid "Remove from sorting" -msgstr "Odstrani iz sortiranja" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioritet sortiranja: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Preklopi sortiranje" - -msgid "Delete" -msgstr "Izbriši" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Brisanje %(object_name)s '%(escaped_object)s' rezultiralo bi brisanjem " -"povezanih objekta, ali vi nemate privilegije za brisanje navedenih objekta: " - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Brisanje %(object_name)s '%(escaped_object)s' bi zahtijevalo i brisanje " -"sljedećih zaštićenih povezanih objekata:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Jeste li sigurni da želite izbrisati %(object_name)s \"%(escaped_object)s\"? " -"Svi navedeni objekti biti će izbrisani:" - -msgid "Objects" -msgstr "Objekti" - -msgid "Yes, I'm sure" -msgstr "Da, siguran sam" - -msgid "No, take me back" -msgstr "Ne, vrati me natrag" - -msgid "Delete multiple objects" -msgstr "Izbriši više unosa." - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Brisanje odabranog %(objects_name)s rezultiralo bi brisanjem povezanih " -"objekta, ali vaš korisnički račun nema dozvolu za brisanje sljedeće vrste " -"objekata:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Brisanje odabranog %(objects_name)s će zahtijevati brisanje sljedećih " -"zaštićenih povezanih objekata:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Jeste li sigurni da želite izbrisati odabrane %(objects_name)s ? Svi " -"sljedeći objekti i povezane stavke će biti izbrisani:" - -msgid "View" -msgstr "Prikaz" - -msgid "Delete?" -msgstr "Izbriši?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Po %(filter_title)s " - -msgid "Summary" -msgstr "Sažetak" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modeli u aplikaciji %(name)s" - -msgid "Add" -msgstr "Novi unos" - -msgid "You don't have permission to view or edit anything." -msgstr "Nemate dozvole za pregled ili izmjenu." - -msgid "Recent actions" -msgstr "Nedavne promjene" - -msgid "My actions" -msgstr "Moje promjene" - -msgid "None available" -msgstr "Nije dostupno" - -msgid "Unknown content" -msgstr "Sadržaj nepoznat" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Nešto nije uredu sa instalacijom/postavkama baze. Provjerite jesu li " -"potrebne tablice u bazi kreirane i provjerite je li baza dostupna korisniku." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Prijavljeni ste kao %(username)s, ali nemate dopuštenje za pristup traženoj " -"stranici. Želite li se prijaviti drugim korisničkim računom?" - -msgid "Forgotten your password or username?" -msgstr "Zaboravili ste lozinku ili korisničko ime?" - -msgid "Date/time" -msgstr "Datum/vrijeme" - -msgid "User" -msgstr "Korisnik" - -msgid "Action" -msgstr "Akcija" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Ovaj objekt nema povijest promjena. Moguće je da nije dodan korištenjem ove " -"administracije." - -msgid "Show all" -msgstr "Prikaži sve" - -msgid "Save" -msgstr "Spremi" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "Traži" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s rezultat" -msgstr[1] "%(counter)s rezultata" -msgstr[2] "%(counter)s rezultata" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s ukupno" - -msgid "Save as new" -msgstr "Spremi kao novi unos" - -msgid "Save and add another" -msgstr "Spremi i unesi novi unos" - -msgid "Save and continue editing" -msgstr "Spremi i nastavi uređivati" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "Zatvori" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Promijeni označene %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Dodaj još jedan %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Obriši odabrane %(model)s" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Hvala što ste proveli malo kvalitetnog vremena na stranicama danas." - -msgid "Log in again" -msgstr "Prijavite se ponovo" - -msgid "Password change" -msgstr "Promjena lozinke" - -msgid "Your password was changed." -msgstr "Vaša lozinka je promijenjena." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Molim unesite staru lozinku, zbog sigurnosti, i onda unesite novu lozinku " -"dvaput da bi mogli provjeriti jeste li je ispravno unijeli." - -msgid "Change my password" -msgstr "Promijeni moju lozinku" - -msgid "Password reset" -msgstr "Resetiranje lozinke" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Vaša lozinka je postavljena. Sada se možete prijaviti." - -msgid "Password reset confirmation" -msgstr "Potvrda promjene lozinke" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Molimo vas da unesete novu lozinku dvaput da bi mogli provjeriti jeste li je " -"ispravno unijeli." - -msgid "New password:" -msgstr "Nova lozinka:" - -msgid "Confirm password:" -msgstr "Potvrdi lozinku:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Link za resetiranje lozinke je neispravan, vjerojatno jer je već korišten. " -"Molimo zatražite novo resetiranje lozinke." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Elektroničkom poštom smo vam poslali upute za postavljanje Vaše zaporke, ako " -"postoji korisnički račun s e-mail adresom koju ste unijeli. Uskoro bi ih " -"trebali primiti. " - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Ako niste primili e-mail provjerite da li ste ispravno unijeli adresu s " -"kojom ste se registrirali i provjerite spam sandučić." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Primili ste ovu poruku jer ste zatražili postavljanje nove lozinke za svoj " -"korisnički račun na %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Molimo otiđite do sljedeće stranice i odaberite novu lozinku:" - -msgid "Your username, in case you've forgotten:" -msgstr "Vaše korisničko ime, u slučaju da ste zaboravili:" - -msgid "Thanks for using our site!" -msgstr "Hvala šta koristite naše stranice!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s tim" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Zaboravili ste lozinku? Unesite vašu e-mail adresu ispod i poslati ćemo vam " -"upute kako postaviti novu." - -msgid "Email address:" -msgstr "E-mail adresa:" - -msgid "Reset my password" -msgstr "Resetiraj moju lozinku" - -msgid "All dates" -msgstr "Svi datumi" - -#, python-format -msgid "Select %s" -msgstr "Odaberi %s" - -#, python-format -msgid "Select %s to change" -msgstr "Odaberi za promjenu - %s" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Vrijeme:" - -msgid "Lookup" -msgstr "Potraži" - -msgid "Currently:" -msgstr "Trenutno:" - -msgid "Change:" -msgstr "Promijeni:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo deleted file mode 100644 index e8231f6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.po deleted file mode 100644 index 0878d8a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,223 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# aljosa , 2011 -# Bojan Mihelač , 2012 -# Davor Lučić , 2011 -# Jannis Leidel , 2011 -# Mislav Cimperšak , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Croatian (http://www.transifex.com/django/django/language/" -"hr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hr\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" - -#, javascript-format -msgid "Available %s" -msgstr "Dostupno %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ovo je popis dostupnih %s. Možete dodati pojedine na način da ih izaberete u " -"polju ispod i kliknete \"Izaberi\" strelicu između dva polja. " - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Tipkajte u ovo polje da filtrirate listu dostupnih %s." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Odaberi sve" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Kliknite da odabrete sve %s odjednom." - -msgid "Choose" -msgstr "Izaberi" - -msgid "Remove" -msgstr "Ukloni" - -#, javascript-format -msgid "Chosen %s" -msgstr "Odabrano %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ovo je popis odabranih %s. Možete ukloniti pojedine na način da ih izaberete " -"u polju ispod i kliknete \"Ukloni\" strelicu između dva polja. " - -msgid "Remove all" -msgstr "Ukloni sve" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Kliknite da uklonite sve izabrane %s odjednom." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "odabrano %(sel)s od %(cnt)s" -msgstr[1] "odabrano %(sel)s od %(cnt)s" -msgstr[2] "odabrano %(sel)s od %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Neke promjene nisu spremljene na pojedinim polja za uređivanje. Ako " -"pokrenete akciju, nespremljene promjene će biti izgubljene." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Odabrali ste akciju, ali niste još spremili promjene na pojedinim polja. " -"Molimo kliknite OK za spremanje. Morat ćete ponovno pokrenuti akciju." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Odabrali ste akciju, a niste napravili nikakve izmjene na pojedinim poljima. " -"Vjerojatno tražite gumb Idi umjesto gumb Spremi." - -msgid "Now" -msgstr "Sada" - -msgid "Midnight" -msgstr "Ponoć" - -msgid "6 a.m." -msgstr "6 ujutro" - -msgid "Noon" -msgstr "Podne" - -msgid "6 p.m." -msgstr "6 popodne" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -msgid "Choose a Time" -msgstr "Izaberite vrijeme" - -msgid "Choose a time" -msgstr "Izaberite vrijeme" - -msgid "Cancel" -msgstr "Odustani" - -msgid "Today" -msgstr "Danas" - -msgid "Choose a Date" -msgstr "Odaberite datum" - -msgid "Yesterday" -msgstr "Jučer" - -msgid "Tomorrow" -msgstr "Sutra" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Prikaži" - -msgid "Hide" -msgstr "Sakri" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo deleted file mode 100644 index 95ef9d4..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.po deleted file mode 100644 index 8ea634f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/django.po +++ /dev/null @@ -1,759 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Michael Wolf , 2016-2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Michael Wolf , 2016-2023\n" -"Language-Team: Upper Sorbian (http://www.transifex.com/django/django/" -"language/hsb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hsb\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " -"n%100==4 ? 2 : 3);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Wubrane %(verbose_name_plural)s zhašeć" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s je so wuspěšnje zhašało." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s njeda so zhašeć." - -msgid "Are you sure?" -msgstr "Sće wěsty?" - -msgid "Administration" -msgstr "Administracija" - -msgid "All" -msgstr "Wšě" - -msgid "Yes" -msgstr "Haj" - -msgid "No" -msgstr "Ně" - -msgid "Unknown" -msgstr "Njeznaty" - -msgid "Any date" -msgstr "Někajki datum" - -msgid "Today" -msgstr "Dźensa" - -msgid "Past 7 days" -msgstr "Zańdźene 7 dnjow" - -msgid "This month" -msgstr "Tutón měsac" - -msgid "This year" -msgstr "Lětsa" - -msgid "No date" -msgstr "Žadyn datum" - -msgid "Has date" -msgstr "Ma datum" - -msgid "Empty" -msgstr "Prózdny" - -msgid "Not empty" -msgstr "Njeprózdny" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Prošu zapodajće korektne %(username)s a hesło za personalne konto. Dźiwajće " -"na to, zo wobě poli móžetej mjez wulko- a małopisanjom rozeznawać." - -msgid "Action:" -msgstr "Akcija:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Přidajće nowe %(verbose_name)s" - -msgid "Remove" -msgstr "Wotstronić" - -msgid "Addition" -msgstr "Přidaće" - -msgid "Change" -msgstr "Změnić" - -msgid "Deletion" -msgstr "Zhašenje" - -msgid "action time" -msgstr "akciski čas" - -msgid "user" -msgstr "wužiwar" - -msgid "content type" -msgstr "wobsahowy typ" - -msgid "object id" -msgstr "objektowy id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objektowa reprezentacija" - -msgid "action flag" -msgstr "akciske markěrowanje" - -msgid "change message" -msgstr "změnowa powěsć" - -msgid "log entry" -msgstr "protokolowy zapisk" - -msgid "log entries" -msgstr "protokolowe zapiski" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Je so „%(object)s“ přidał." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Je so „%(object)s“ změnił - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Je so „%(object)s“ zhašał." - -msgid "LogEntry Object" -msgstr "Objekt LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Je so {name} „{object}“ přidał." - -msgid "Added." -msgstr "Přidaty." - -msgid "and" -msgstr "a" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Je so {fields} za {name} „{object}“ změnił." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} změnjene." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Je so {name} „{object}“ zhašał." - -msgid "No fields changed." -msgstr "Žane pola změnjene." - -msgid "None" -msgstr "Žadyn" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Dźeržće „ctrl“ abo „cmd“ na Mac stłóčeny, zo byšće wjace hač jedyn wubrał." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} „{obj}“ je so wuspěšnje přidał." - -msgid "You may edit it again below." -msgstr "Móžeće deleka unowa wobdźěłać." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} „{obj}“ je so wuspěšnje přidał. Móžeće deleka dalši {name} přidać." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} „{obj}“ je so wuspěšnje změnił. Móžeće jón deleka wobdźěłować." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} „{obj}“ je so wuspěšnje přidał. Móžeće jón deleka wobdźěłować." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} „{obj}“ je so wuspěšnje změnił. Móžeće deleka dalši {name} přidać." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} „{obj}“ je so wuspěšnje změnił." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Dyrbiće zapiski wubrać, zo byšće akcije z nimi wuwjesć. Zapiski njejsu so " -"změnili." - -msgid "No action selected." -msgstr "žana akcija wubrana." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s „%(obj)s“ je so wuspěšnje zhašał." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s z ID „%(key)s“ njeeksistuje. Je so snano zhašało?" - -#, python-format -msgid "Add %s" -msgstr "%s přidać" - -#, python-format -msgid "Change %s" -msgstr "%s změnić" - -#, python-format -msgid "View %s" -msgstr "%s pokazać" - -msgid "Database error" -msgstr "Zmylk datoweje banki" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s je so wuspěšnje změnił." -msgstr[1] "%(count)s %(name)s stej so wuspěšnje změniłoj." -msgstr[2] "%(count)s %(name)s su so wuspěšnje změnili." -msgstr[3] "%(count)s %(name)s je so wuspěšnje změniło." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s wubrany" -msgstr[1] "%(total_count)s wubranej" -msgstr[2] "%(total_count)s wubrane" -msgstr[3] "%(total_count)s wubranych" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 z %(cnt)s wubranych" - -#, python-format -msgid "Change history: %s" -msgstr "Změnowa historija: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Zo bychu so %(class_name)s %(instance)s zhašeli, dyrbja so slědowace škitane " -"přisłušne objekty zhašeć: %(related_objects)s" - -msgid "Django site admin" -msgstr "Administrator sydła Django" - -msgid "Django administration" -msgstr "Administracija Django" - -msgid "Site administration" -msgstr "Sydłowa administracija" - -msgid "Log in" -msgstr "Přizjewić" - -#, python-format -msgid "%(app)s administration" -msgstr "Administracija %(app)s" - -msgid "Page not found" -msgstr "Strona njeje so namakała" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Je nam žel, ale požadana strona njeda so namakać." - -msgid "Home" -msgstr "Startowa strona" - -msgid "Server error" -msgstr "Serwerowy zmylk" - -msgid "Server error (500)" -msgstr "Serwerowy zmylk (500)" - -msgid "Server Error (500)" -msgstr "Serwerowy zmylk (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Zmylk je wustupił. Je so sydłowym administratoram přez e-mejl zdźělił a " -"dyrbjał so bórze wotstronić. Dźakujemy so za wašu sćerpliwosć." - -msgid "Run the selected action" -msgstr "Wubranu akciju wuwjesć" - -msgid "Go" -msgstr "Start" - -msgid "Click here to select the objects across all pages" -msgstr "Klikńće tu, zo byšće objekty wšěch stronow wubrać" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Wubjerće wšě %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Wuběr wotstronić" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modele w nałoženju %(name)s" - -msgid "Add" -msgstr "Přidać" - -msgid "View" -msgstr "Pokazać" - -msgid "You don’t have permission to view or edit anything." -msgstr "Nimaće prawo něšto pokazać abo wobdźěłać." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Zapodajće najprjedy wužiwarske mjeno a hesło. Potom móžeće dalše wužiwarske " -"nastajenja wobdźěłować." - -msgid "Enter a username and password." -msgstr "Zapodajće wužiwarske mjeno a hesło." - -msgid "Change password" -msgstr "Hesło změnić" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Prošu porjedźće slědowacy zmylk." -msgstr[1] "Prošu porjedźće slědowacej zmylkaj." -msgstr[2] "Prošu porjedźće slědowace zmylki." -msgstr[3] "Prošu porjedźće slědowace zmylki." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Zapodajće nowe hesło za %(username)s." - -msgid "Skip to main content" -msgstr "Dale k hłownemu wobsahej" - -msgid "Welcome," -msgstr "Witajće," - -msgid "View site" -msgstr "Sydło pokazać" - -msgid "Documentation" -msgstr "Dokumentacija" - -msgid "Log out" -msgstr "Wotzjewić" - -msgid "Breadcrumbs" -msgstr "Chlěbowe srjódki" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s přidać" - -msgid "History" -msgstr "Historija" - -msgid "View on site" -msgstr "Na sydle pokazać" - -msgid "Filter" -msgstr "Filtrować" - -msgid "Clear all filters" -msgstr "Wšě filtry zhašeć" - -msgid "Remove from sorting" -msgstr "Ze sortěrowanja wotstronić" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sortěrowanski porjad: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Sortěrowanje přepinać" - -msgid "Toggle theme (current theme: auto)" -msgstr "Drastu změnić (aktualna drasta: auto)" - -msgid "Toggle theme (current theme: light)" -msgstr "Drastu změnić (aktualna drasta: swětła)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Drastu změnić (aktualna drasta: ćmowa)" - -msgid "Delete" -msgstr "Zhašeć" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Hdyž so %(object_name)s '%(escaped_object)s' zhašeja, so tež přisłušne " -"objekty zhašeja, ale waše konto nima prawo slědowace typy objektow zhašeć:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Zo by so %(object_name)s '%(escaped_object)s' zhašało, dyrbja so slědowace " -"přisłušne objekty zhašeć:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Chceće woprawdźe %(object_name)s \"%(escaped_object)s\" zhašeć? Wšě " -"slědowace přisłušne zapiski so zhašeja:" - -msgid "Objects" -msgstr "Objekty" - -msgid "Yes, I’m sure" -msgstr "Haj, sym sej wěsty" - -msgid "No, take me back" -msgstr "Ně, prošu wróćo" - -msgid "Delete multiple objects" -msgstr "Wjacore objekty zhašeć" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Hdyž so wubrany %(objects_name)s zhaša, so přisłušne objekty zhašeja, ale " -"waše konto nima prawo slědowace typy objektow zhašeć: " - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Hdyž so wubrany %(objects_name)s zhaša, so slědowace škitane přisłušne " -"objekty zhašeja:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Chceće woprawdźe wubrane %(objects_name)s zhašeć? Wšě slědowace objekty a " -"jich přisłušne zapiski so zhašeja:" - -msgid "Delete?" -msgstr "Zhašeć?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Po %(filter_title)s " - -msgid "Summary" -msgstr "Zjeće" - -msgid "Recent actions" -msgstr "Najnowše akcije" - -msgid "My actions" -msgstr "Moje akcije" - -msgid "None available" -msgstr "Žadyn k dispoziciji" - -msgid "Unknown content" -msgstr "Njeznaty wobsah" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Něšto je so z instalaciju datoweje banki nimokuliło. Zawěsćće, zo wotpowědne " -"tabele datoweje banki su so wutworili, a, zo datowa banka da so wot " -"wotpowědneho wužiwarja čitać." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Sće jako %(username)s awtentifikowany, ale nimaće přistup na tutu stronu. " -"Chceće so pola druheho konta přizjewić?" - -msgid "Forgotten your password or username?" -msgstr "Sće swoje hesło abo wužiwarske mjeno zabył?" - -msgid "Toggle navigation" -msgstr "Nawigaciju přepinać" - -msgid "Sidebar" -msgstr "Bóčnica" - -msgid "Start typing to filter…" -msgstr "Pisajće, zo byšće filtrował …" - -msgid "Filter navigation items" -msgstr "Nawigaciske zapiski fitrować" - -msgid "Date/time" -msgstr "Datum/čas" - -msgid "User" -msgstr "Wužiwar" - -msgid "Action" -msgstr "Akcija" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "zapisk" -msgstr[1] "zapiskaj" -msgstr[2] "zapiski" -msgstr[3] "zapiskow" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Tutón objekt nima změnowu historiju. Njeje so najskerje přez tute " -"administratorowe sydło přidał." - -msgid "Show all" -msgstr "Wšě pokazać" - -msgid "Save" -msgstr "Składować" - -msgid "Popup closing…" -msgstr "Wuskakowace wokno so začinja…" - -msgid "Search" -msgstr "Pytać" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s wuslědk" -msgstr[1] "%(counter)s wuslědkaj" -msgstr[2] "%(counter)s wuslědki" -msgstr[3] "%(counter)s wuslědkow" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s dohromady" - -msgid "Save as new" -msgstr "Jako nowy składować" - -msgid "Save and add another" -msgstr "Skłaodwac a druhi přidać" - -msgid "Save and continue editing" -msgstr "Składować a dale wobdźěłować" - -msgid "Save and view" -msgstr "Składować a pokazać" - -msgid "Close" -msgstr "Začinić" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Wubrane %(model)s změnić" - -#, python-format -msgid "Add another %(model)s" -msgstr "Druhi %(model)s přidać" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Wubrane %(model)s zhašeć" - -#, python-format -msgid "View selected %(model)s" -msgstr "Wubrany %(model)s pokazać" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" -"Wulki dźak, zo sće sej čas brał, zo byšće kwalitu websydła dźensa " -"přepruwował." - -msgid "Log in again" -msgstr "Znowa přizjewić" - -msgid "Password change" -msgstr "Hesło změnić" - -msgid "Your password was changed." -msgstr "Waše hesło je so změniło." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Prošu zapodajće swoje stare hesło k swojemu škitej a potom swoje nowe hesło " -"dwójce, zo bychmy móhli přepruwować, hač sće jo korektnje zapodał." - -msgid "Change my password" -msgstr "Moje hesło změnić" - -msgid "Password reset" -msgstr "Hesło wróćo stajić" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Waše hesło je so nastajiło. Móžeće pokročować a so nětko přizjewić." - -msgid "Password reset confirmation" -msgstr "Wobkrućenje wróćostajenja hesła" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Prošu zapodajće swoje hesło dwójce, zo bychmy móhli přepruwować, hač sće jo " -"korektnje zapodał." - -msgid "New password:" -msgstr "Nowe hesło:" - -msgid "Confirm password:" -msgstr "Hesło wobkrućić:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Wotkaz za wróćostajenje hesła bě njepłaćiwy, snano dokelž je so hižo wužił. " -"Prošu prošće wo nowe wróćostajenje hesła." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Smy wam e-mejlku z instrukcijemi wo nastajenju wašeho hesła pósłali, jeli " -"konto ze zapodatej e-mejlowej adresu eksistuje. Wy dyrbjał ju bórze dóstać." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Jeli e-mejlku njedóstawaće, přepruwujće prošu adresu, z kotrejž sće so " -"zregistrował a hladajće do swojeho spamoweho rjadowaka." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Dóstawaće tutu e-mejlku, dokelž sće wo wróćostajenje hesła za swoje " -"wužiwarske konto na at %(site_name)s prosył." - -msgid "Please go to the following page and choose a new password:" -msgstr "Prošu dźiće k slědowacej stronje a wubjerće nowe hesło:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Waše wužiwarske mjeno, jeli sće jo zabył:" - -msgid "Thanks for using our site!" -msgstr "Wulki dźak za wužiwanje našeho sydła!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Team %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Sće swoje hesło zabył? Zapodajće deleka swoju e-mejlowu adresu a pósćelemy " -"wam instrukcije za postajenje noweho hesła přez e-mejl." - -msgid "Email address:" -msgstr "E-mejlowa adresa:" - -msgid "Reset my password" -msgstr "Moje hesło wróćo stajić" - -msgid "All dates" -msgstr "Wšě daty" - -#, python-format -msgid "Select %s" -msgstr "%s wubrać" - -#, python-format -msgid "Select %s to change" -msgstr "%s wubrać, zo by so změniło" - -#, python-format -msgid "Select %s to view" -msgstr "%s wubrać, kotryž ma so pokazać" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Čas:" - -msgid "Lookup" -msgstr "Pytanje" - -msgid "Currently:" -msgstr "Tuchylu:" - -msgid "Change:" -msgstr "Změnić:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 0f5f3b5..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.po deleted file mode 100644 index 0499036..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,288 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Michael Wolf , 2016,2020-2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Michael Wolf , 2016,2020-2023\n" -"Language-Team: Upper Sorbian (http://www.transifex.com/django/django/" -"language/hsb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hsb\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " -"n%100==4 ? 2 : 3);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s k dispoziciji" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"To je lisćina k dispoziciji stejacych %s. Móžeće někotre z nich w slědowacym " -"kašćiku wubrać a potom na šipk „Wubrać“ mjez kašćikomaj kliknyć." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Zapisajće do tutoho kašćika, zo byšće někotre z lisćiny k dispoziciji " -"stejacych %s wufiltrował." - -msgid "Filter" -msgstr "Filtrować" - -msgid "Choose all" -msgstr "Wšě wubrać" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klikńće, zo byšće wšě %s naraz wubrał." - -msgid "Choose" -msgstr "Wubrać" - -msgid "Remove" -msgstr "Wotstronić" - -#, javascript-format -msgid "Chosen %s" -msgstr "Wubrane %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"To je lisćina wubranych %s. Móžeće někotre z nich wotstronić, hdyž je w " -"slědowacym kašćiku wuběraće a potom na šipk „Wotstronić“ mjez kašćikomaj " -"kliknjeće." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "" -"Zapisajće do tutoho kašćika, zo byšće někotre z lisćiny wubranych %s " -"wufiltrował." - -msgid "Remove all" -msgstr "Wšě wotstronić" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klikńće, zo byšće wšě wubrane %s naraz wotstronił." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%swubrane nastajenje njewidźomne" -msgstr[1] "%swubranej nastajeni njewidźomnej" -msgstr[2] "%s wubrane nastajenja njewidźomne" -msgstr[3] "%swubranych nastajenjow njewidźomne" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s z %(cnt)s wubrany" -msgstr[1] "%(sel)s z %(cnt)s wubranej" -msgstr[2] "%(sel)s z %(cnt)s wubrane" -msgstr[3] "%(sel)s z %(cnt)s wubranych" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Maće njeskładowane změny za jednotliwe wobdźěłujomne pola. Jeli akciju " -"wuwjedźeće, so waše njeskładowane změny zhubja." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Sće akciju wubrał, ale njejsće hišće swoje změny na jednoliwych polach " -"składował. Prošu klikńće na „W porjadku, zo byšće składował. Dyrbiće akciju " -"znowa wuwjesć." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Sće akciju wubrał, a njejsće žane změny na jednotliwych polach přewjedł. " -"Pytajće najskerje za tłóčatkom „Pósłać“ město tłóčatka „Składować“." - -msgid "Now" -msgstr "Nětko" - -msgid "Midnight" -msgstr "Połnóc" - -msgid "6 a.m." -msgstr "6:00 hodź. dopołdnja" - -msgid "Noon" -msgstr "připołdnjo" - -msgid "6 p.m." -msgstr "6 hodź. popołdnju" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Kedźbu: Waš čas je wo %s hodźinu před serwerowym časom." -msgstr[1] "Kedźbu: Waš čas je wo %s hodźin před serwerowym časom." -msgstr[2] "Kedźbu: Waš čas je wo %s hodźiny před serwerowym časom." -msgstr[3] "Kedźbu: Waš čas je wo %s hodźin před serwerowym časom." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Kedźbu: Waš čas je wo %s hodźinu za serwerowym časom." -msgstr[1] "Kedźbu: Waš čas je wo %s hodźinje za serwerowym časom." -msgstr[2] "Kedźbu: Waš čas je wo %s hodźiny za serwerowym časom." -msgstr[3] "Kedźbu: Waš čas je wo %s hodźin za serwerowym časom." - -msgid "Choose a Time" -msgstr "Wubjerće čas" - -msgid "Choose a time" -msgstr "Wubjerće čas" - -msgid "Cancel" -msgstr "Přetorhnyć" - -msgid "Today" -msgstr "Dźensa" - -msgid "Choose a Date" -msgstr "Wubjerće datum" - -msgid "Yesterday" -msgstr "Wčera" - -msgid "Tomorrow" -msgstr "Jutře" - -msgid "January" -msgstr "Januar" - -msgid "February" -msgstr "Februar" - -msgid "March" -msgstr "Měrc" - -msgid "April" -msgstr "Apryl" - -msgid "May" -msgstr "Meja" - -msgid "June" -msgstr "Junij" - -msgid "July" -msgstr "Julij" - -msgid "August" -msgstr "Awgust" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "Nowember" - -msgid "December" -msgstr "December" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan." - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb." - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Měr." - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr." - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Meja" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun." - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul." - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Awg." - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep." - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt." - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Now." - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dec." - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Nj" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Pó" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Wu" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Sr" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Št" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Pj" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "So" - -msgid "Show" -msgstr "Pokazać" - -msgid "Hide" -msgstr "Schować" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.mo deleted file mode 100644 index 972ab3d..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.po deleted file mode 100644 index 1649564..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/django.po +++ /dev/null @@ -1,731 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ádám Krizsány , 2015 -# Akos Zsolt Hochrein , 2018 -# András Veres-Szentkirályi, 2016,2018-2020 -# Istvan Farkas , 2019 -# Jannis Leidel , 2011 -# János R, 2017 -# János R, 2014 -# Kristóf Gruber <>, 2012 -# slink , 2011 -# Szilveszter Farkas , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-20 07:29+0000\n" -"Last-Translator: András Veres-Szentkirályi\n" -"Language-Team: Hungarian (http://www.transifex.com/django/django/language/" -"hu/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s sikeresen törölve lett." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s törlése nem sikerült" - -msgid "Are you sure?" -msgstr "Biztos benne?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Kiválasztott %(verbose_name_plural)s törlése" - -msgid "Administration" -msgstr "Adminisztráció" - -msgid "All" -msgstr "Mind" - -msgid "Yes" -msgstr "Igen" - -msgid "No" -msgstr "Nem" - -msgid "Unknown" -msgstr "Ismeretlen" - -msgid "Any date" -msgstr "Bármely dátum" - -msgid "Today" -msgstr "Ma" - -msgid "Past 7 days" -msgstr "Utolsó 7 nap" - -msgid "This month" -msgstr "Ez a hónap" - -msgid "This year" -msgstr "Ez az év" - -msgid "No date" -msgstr "Nincs dátuma" - -msgid "Has date" -msgstr "Van dátuma" - -msgid "Empty" -msgstr "Üres" - -msgid "Not empty" -msgstr "Nem üres" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Adja meg egy adminisztrációra jogosult %(username)s és jelszavát. Vegye " -"figyelembe, hogy mindkét mező megkülönböztetheti a kis- és nagybetűket." - -msgid "Action:" -msgstr "Művelet:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Újabb %(verbose_name)s hozzáadása" - -msgid "Remove" -msgstr "Törlés" - -msgid "Addition" -msgstr "Hozzáadás" - -msgid "Change" -msgstr "Módosítás" - -msgid "Deletion" -msgstr "Törlés" - -msgid "action time" -msgstr "művelet időpontja" - -msgid "user" -msgstr "felhasználó" - -msgid "content type" -msgstr "tartalom típusa" - -msgid "object id" -msgstr "objektum id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objektum repr" - -msgid "action flag" -msgstr "művelet jelölés" - -msgid "change message" -msgstr "üzenet módosítása" - -msgid "log entry" -msgstr "naplóbejegyzés" - -msgid "log entries" -msgstr "naplóbejegyzések" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\" hozzáadva." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "\"%(object)s\" módosítva — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "\"%(object)s\" törölve." - -msgid "LogEntry Object" -msgstr "Naplóbejegyzés objektum" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "\"{object}\" {name} hozzáadva." - -msgid "Added." -msgstr "Hozzáadva." - -msgid "and" -msgstr "és" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "\"{object}\" {name} {fields} módosítva." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} módosítva." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "\"{object}\" {name} törölve." - -msgid "No fields changed." -msgstr "Egy mező sem változott." - -msgid "None" -msgstr "Egyik sem" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Több elem kiválasztásához tartsa nyomva a \"Control\" gombot, vagy Mac " -"gépeken a \"Command\" gombot." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "A(z) \"{obj}\" {name} sikeresen hozzáadva." - -msgid "You may edit it again below." -msgstr "Alább ismét szerkesztheti." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"A(z) \"{obj}\" {name} sikeresen hozzáadva. Alább hozzadhat egy új {name} " -"rekordot." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "A(z) \"{obj}\" {name} sikeresen módosítva. Alább újra szerkesztheti." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "A(z) \"{obj}\" {name} sikeresen hozzáadva. Alább újra szerkesztheti." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"A(z) \"{obj}\" {name} sikeresen módosítva. Alább hozzáadhat egy új {name} " -"rekordot." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "A(z) \"{obj}\" {name} sikeresen módosítva." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"A műveletek végrehajtásához ki kell választani legalább egy elemet. Semmi " -"sem lett módosítva." - -msgid "No action selected." -msgstr "Nem választott ki műveletet." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "A(z) \"%(obj)s\" %(name)s törölve lett." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"A(z) \"%(key)s\" azonosítójú %(name)s nem létezik. Esetleg törölve lett?" - -#, python-format -msgid "Add %s" -msgstr "Új %s" - -#, python-format -msgid "Change %s" -msgstr "%s módosítása" - -#, python-format -msgid "View %s" -msgstr "%s megtekintése" - -msgid "Database error" -msgstr "Adatbázishiba" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s sikeresen módosítva lett." -msgstr[1] "%(count)s %(name)s sikeresen módosítva lett." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s kiválasztva" -msgstr[1] "%(total_count)s kiválasztva" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 kiválasztva ennyiből: %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Változások története: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(instance)s %(class_name)s törlése az alábbi kapcsolódó védett objektumok " -"törlését is magával vonná: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django honlapadminisztráció" - -msgid "Django administration" -msgstr "Django adminisztráció" - -msgid "Site administration" -msgstr "Honlap karbantartása" - -msgid "Log in" -msgstr "Bejelentkezés" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s adminisztráció" - -msgid "Page not found" -msgstr "Nincs ilyen oldal" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Sajnáljuk, de a keresett oldal nem található." - -msgid "Home" -msgstr "Kezdőlap" - -msgid "Server error" -msgstr "Szerverhiba" - -msgid "Server error (500)" -msgstr "Szerverhiba (500)" - -msgid "Server Error (500)" -msgstr "Szerverhiba (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Hiba történt. Az oldal kezelőjét e-mailben értesítettük, a hiba rövidesen " -"javítva lesz. Köszönjük a türelmet." - -msgid "Run the selected action" -msgstr "Kiválasztott művelet futtatása" - -msgid "Go" -msgstr "Mehet" - -msgid "Click here to select the objects across all pages" -msgstr "Kattintson ide több oldalnyi objektum kiválasztásához" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Az összes %(module_name)s kiválasztása, összesen %(total_count)s db" - -msgid "Clear selection" -msgstr "Kiválasztás törlése" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s alkalmazásban elérhető modellek." - -msgid "Add" -msgstr "Új" - -msgid "View" -msgstr "Megtekintés" - -msgid "You don’t have permission to view or edit anything." -msgstr "Jelenleg nincs jogosultsága bármit megtekinteni vagy szerkeszteni." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Először adjon meg egy felhasználónevet és jelszót. A mentés után a többi " -"felhasználói adat is szerkeszthető lesz." - -msgid "Enter a username and password." -msgstr "Írjon be egy felhasználónevet és jelszót." - -msgid "Change password" -msgstr "Jelszó megváltoztatása" - -msgid "Please correct the error below." -msgstr "Kérem javítsa a hibát alább." - -msgid "Please correct the errors below." -msgstr "Kérem javítsa ki a lenti hibákat." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Adjon meg egy új jelszót %(username)s nevű felhasználónak." - -msgid "Welcome," -msgstr "Üdvözlöm," - -msgid "View site" -msgstr "Honlap megtekintése" - -msgid "Documentation" -msgstr "Dokumentáció" - -msgid "Log out" -msgstr "Kijelentkezés" - -#, python-format -msgid "Add %(name)s" -msgstr "Új %(name)s" - -msgid "History" -msgstr "Történet" - -msgid "View on site" -msgstr "Megtekintés a honlapon" - -msgid "Filter" -msgstr "Szűrő" - -msgid "Clear all filters" -msgstr "Összes szűrő törlése" - -msgid "Remove from sorting" -msgstr "Eltávolítás a rendezésből" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioritás rendezésnél: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Rendezés megfordítása" - -msgid "Delete" -msgstr "Törlés" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"\"%(escaped_object)s\" %(object_name)s törlése a kapcsolódó objektumok " -"törlését is eredményezi, de a hozzáférése nem engedi a következő típusú " -"objektumok törlését:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"\"%(escaped_object)s\" %(object_name)s törlése az alábbi kapcsolódó " -"objektumok törlését is maga után vonja:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Biztos hogy törli a következőt: \"%(escaped_object)s\" (típus: " -"%(object_name)s)? A összes további kapcsolódó elem is törlődik:" - -msgid "Objects" -msgstr "Objektumok" - -msgid "Yes, I’m sure" -msgstr "Igen, biztos vagyok benne" - -msgid "No, take me back" -msgstr "Nem, forduljunk vissza" - -msgid "Delete multiple objects" -msgstr "Több elem törlése" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"A kiválasztott %(objects_name)s törlése kapcsolódó objektumok törlését vonja " -"maga után, de az alábbi objektumtípusok törléséhez nincs megfelelő " -"jogosultsága:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"A kiválasztott %(objects_name)s törlése az alábbi védett kapcsolódó " -"objektumok törlését is maga után vonja:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Biztosan törölni akarja a kiválasztott %(objects_name)s objektumokat? Minden " -"alábbi objektum, és a hozzájuk kapcsolódóak is törlésre kerülnek:" - -msgid "Delete?" -msgstr "Törli?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s szerint " - -msgid "Summary" -msgstr "Összegzés" - -msgid "Recent actions" -msgstr "Legutóbbi műveletek" - -msgid "My actions" -msgstr "Az én műveleteim" - -msgid "None available" -msgstr "Nincs elérhető" - -msgid "Unknown content" -msgstr "Ismeretlen tartalom" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Valami probléma van az adatbázissal. Kérjük győződjön meg róla, hogy a " -"megfelelő táblák létre lettek hozva, és hogy a megfelelő felhasználónak van " -"rájuk olvasási joga." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Jelenleg be vagy lépve mint %(username)s, de nincs jogod elérni ezt az " -"oldalt. Szeretnél belépni egy másik fiókkal?" - -msgid "Forgotten your password or username?" -msgstr "Elfelejtette jelszavát vagy felhasználónevét?" - -msgid "Toggle navigation" -msgstr "Navigáció megjelenítése/elrejtése" - -msgid "Date/time" -msgstr "Dátum/idő" - -msgid "User" -msgstr "Felhasználó" - -msgid "Action" -msgstr "Művelet" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Ennek az objektumnak nincs változás naplója. Valószínűleg nem az admin " -"felületen keresztül lett rögzítve." - -msgid "Show all" -msgstr "Mutassa mindet" - -msgid "Save" -msgstr "Mentés" - -msgid "Popup closing…" -msgstr "A popup bezáródik…" - -msgid "Search" -msgstr "Keresés" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s találat" -msgstr[1] "%(counter)s találat" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s összesen" - -msgid "Save as new" -msgstr "Mentés újként" - -msgid "Save and add another" -msgstr "Mentés és másik hozzáadása" - -msgid "Save and continue editing" -msgstr "Mentés és a szerkesztés folytatása" - -msgid "Save and view" -msgstr "Mentés és megtekintés" - -msgid "Close" -msgstr "Bezárás" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Kiválasztott %(model)s szerkesztése" - -#, python-format -msgid "Add another %(model)s" -msgstr "Újabb %(model)s hozzáadása" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Kiválasztott %(model)s törlése" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Köszönjük hogy egy kis időt eltöltött ma a honlapunkon." - -msgid "Log in again" -msgstr "Jelentkezzen be újra" - -msgid "Password change" -msgstr "Jelszó megváltoztatása" - -msgid "Your password was changed." -msgstr "Megváltozott a jelszava." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Kérjük a biztoság kedvéért adja meg a jelenlegi jelszavát, majd az újat, " -"kétszer, hogy biztosak lehessünk abban, hogy megfelelően gépelte be." - -msgid "Change my password" -msgstr "Jelszavam megváltoztatása" - -msgid "Password reset" -msgstr "Jelszó beállítása" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Jelszava beállításra került. Most már bejelentkezhet." - -msgid "Password reset confirmation" -msgstr "Jelszó beállítás megerősítése" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Írja be az új jelszavát kétszer, hogy megbizonyosodhassunk annak " -"helyességéről." - -msgid "New password:" -msgstr "Új jelszó:" - -msgid "Confirm password:" -msgstr "Jelszó megerősítése:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"A jelszóbeállító link érvénytelen. Ennek egyik oka az lehet, hogy már " -"felhasználták. Kérem indítson új jelszóbeállítást." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Amennyiben a megadott e-mail címhez tartozik fiók, elküldtük e-mailben a " -"leírást, hogy hogyan tudja megváltoztatni a jelszavát. Hamarosan meg kell " -"érkeznie." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Ha nem kapja meg a levelet, kérjük ellenőrizze, hogy a megfelelő e-mail " -"címet adta-e meg, illetve nézze meg a levélszemét mappában is." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Azért kapja ezt az e-mailt, mert jelszavának visszaállítását kérte ezen a " -"weboldalon: %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Kérjük látogassa meg a következő oldalt, és válasszon egy új jelszót:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "A felhasználóneve, amennyiben nem emlékezne rá:" - -msgid "Thanks for using our site!" -msgstr "Köszönjük, hogy használta honlapunkat!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s csapat" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Elfelejtette jelszavát? Adja meg az e-mail-címet, amellyel regisztrált " -"oldalunkon, és e-mailben elküldjük a leírását, hogy hogyan tud újat " -"beállítani." - -msgid "Email address:" -msgstr "E-mail cím:" - -msgid "Reset my password" -msgstr "Jelszavam törlése" - -msgid "All dates" -msgstr "Minden dátum" - -#, python-format -msgid "Select %s" -msgstr "%s kiválasztása" - -#, python-format -msgid "Select %s to change" -msgstr "Válasszon ki egyet a módosításhoz (%s)" - -#, python-format -msgid "Select %s to view" -msgstr "Válasszon ki egyet a megtekintéshez (%s)" - -msgid "Date:" -msgstr "Dátum:" - -msgid "Time:" -msgstr "Idő:" - -msgid "Lookup" -msgstr "Keresés" - -msgid "Currently:" -msgstr "Jelenleg:" - -msgid "Change:" -msgstr "Módosítás:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 2cc3c16..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po deleted file mode 100644 index 1cd0459..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,269 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# András Veres-Szentkirályi, 2016,2020-2021 -# Attila Nagy <>, 2012 -# Jannis Leidel , 2011 -# János R, 2011 -# Máté Őry , 2012 -# Szilveszter Farkas , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-01 15:16+0000\n" -"Last-Translator: András Veres-Szentkirályi\n" -"Language-Team: Hungarian (http://www.transifex.com/django/django/language/" -"hu/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Elérhető %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ez az elérhető %s listája. Úgy választhat közülük, hogy rákattint az alábbi " -"dobozban, és megnyomja a dobozok közti \"Választás\" nyilat." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Írjon a mezőbe az elérhető %s szűréséhez." - -msgid "Filter" -msgstr "Szűrő" - -msgid "Choose all" -msgstr "Mindet kijelölni" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Kattintson az összes %s kiválasztásához." - -msgid "Choose" -msgstr "Választás" - -msgid "Remove" -msgstr "Eltávolítás" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s kiválasztva" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ez a kiválasztott %s listája. Eltávolíthat közülük, ha rákattint, majd a két " -"doboz közti \"Eltávolítás\" nyílra kattint." - -msgid "Remove all" -msgstr "Összes törlése" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Kattintson az összes %s eltávolításához." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s/%(cnt)s kijelölve" -msgstr[1] "%(sel)s/%(cnt)s kijelölve" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Még el nem mentett módosításai vannak egyes szerkeszthető mezőkön. Ha most " -"futtat egy műveletet, akkor a módosítások elvesznek." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Kiválasztott egy műveletet, de nem mentette az egyes mezőkhöz kapcsolódó " -"módosításait. Kattintson az OK gombra a mentéshez. Újra kell futtatnia az " -"műveletet." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Kiválasztott egy műveletet, és nem módosított egyetlen mezőt sem. " -"Feltehetően a Mehet gombot keresi a Mentés helyett." - -msgid "Now" -msgstr "Most" - -msgid "Midnight" -msgstr "Éjfél" - -msgid "6 a.m." -msgstr "Reggel 6 óra" - -msgid "Noon" -msgstr "Dél" - -msgid "6 p.m." -msgstr "Este 6 óra" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Megjegyzés: %s órával a szerveridő előtt jársz" -msgstr[1] "Megjegyzés: %s órával a szerveridő előtt jársz" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Megjegyzés: %s órával a szerveridő mögött jársz" -msgstr[1] "Megjegyzés: %s órával a szerveridő mögött jársz" - -msgid "Choose a Time" -msgstr "Válassza ki az időt" - -msgid "Choose a time" -msgstr "Válassza ki az időt" - -msgid "Cancel" -msgstr "Mégsem" - -msgid "Today" -msgstr "Ma" - -msgid "Choose a Date" -msgstr "Válassza ki a dátumot" - -msgid "Yesterday" -msgstr "Tegnap" - -msgid "Tomorrow" -msgstr "Holnap" - -msgid "January" -msgstr "január" - -msgid "February" -msgstr "február" - -msgid "March" -msgstr "március" - -msgid "April" -msgstr "április" - -msgid "May" -msgstr "május" - -msgid "June" -msgstr "június" - -msgid "July" -msgstr "július" - -msgid "August" -msgstr "augusztus" - -msgid "September" -msgstr "szeptember" - -msgid "October" -msgstr "október" - -msgid "November" -msgstr "november" - -msgid "December" -msgstr "december" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "már" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "ápr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "máj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "jún" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "júl" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "szep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "V" - -msgctxt "one letter Monday" -msgid "M" -msgstr "H" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "K" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "S" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "C" - -msgctxt "one letter Friday" -msgid "F" -msgstr "P" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Mutat" - -msgid "Hide" -msgstr "Elrejt" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.mo deleted file mode 100644 index 1627b2d..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.po deleted file mode 100644 index b39e1a7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/django.po +++ /dev/null @@ -1,708 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Սմբատ Պետրոսյան , 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-21 14:16-0300\n" -"PO-Revision-Date: 2018-11-01 20:23+0000\n" -"Last-Translator: Ruben Harutyunov \n" -"Language-Team: Armenian (http://www.transifex.com/django/django/language/" -"hy/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hy\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Հաջողությամբ հեռացվել է %(count)d %(items)s։" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Հնարավոր չէ հեռացնել %(name)s" - -msgid "Are you sure?" -msgstr "Համոզված ե՞ք" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Հեռացնել նշված %(verbose_name_plural)sը" - -msgid "Administration" -msgstr "Ադմինիստրավորում" - -msgid "All" -msgstr "Բոլորը" - -msgid "Yes" -msgstr "Այո" - -msgid "No" -msgstr "Ոչ" - -msgid "Unknown" -msgstr "Անհայտ" - -msgid "Any date" -msgstr "Ցանկացած ամսաթիվ" - -msgid "Today" -msgstr "Այսօր" - -msgid "Past 7 days" -msgstr "Անցած 7 օրերին" - -msgid "This month" -msgstr "Այս ամիս" - -msgid "This year" -msgstr "Այս տարի" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "Մուտքագրեք անձնակազմի պրոֆիլի ճիշտ %(username)s և գաղտնաբառ։" - -msgid "Action:" -msgstr "Գործողություն" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Ավելացնել այլ %(verbose_name)s" - -msgid "Remove" -msgstr "Հեռացնել" - -msgid "Addition" -msgstr "" - -msgid "Change" -msgstr "Փոփոխել" - -msgid "Deletion" -msgstr "" - -msgid "action time" -msgstr "գործողության ժամանակ" - -msgid "user" -msgstr "օգտագործող" - -msgid "content type" -msgstr "կոնտենտի տիպ" - -msgid "object id" -msgstr "օբյեկտի id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "օբյեկտի repr" - -msgid "action flag" -msgstr "գործողության դրոշ" - -msgid "change message" -msgstr "փոփոխել հաղորդագրությունը" - -msgid "log entry" -msgstr "log գրառում" - -msgid "log entries" -msgstr "log գրառումներ" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "%(object)s֊ը ավելացվեց " - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "%(object)s֊ը փոփոխվեց ֊ %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "%(object)s-ը հեռացվեց" - -msgid "LogEntry Object" -msgstr "LogEntry օբյեկտ" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "Ավելացվեց։" - -msgid "and" -msgstr "և" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "Ոչ մի դաշտ չփոփոխվեց։" - -msgid "None" -msgstr "Ոչինչ" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Սեղմեք \"Control\", կամ \"Command\" Mac֊ի մրա, մեկից ավելին ընտրելու համար։" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Օբյեկտների հետ գործողություն կատարելու համար նրանք պետք է ընտրվեն․ Ոչ մի " -"օբյեկտ չի փոփոխվել։" - -msgid "No action selected." -msgstr "Գործողությունը ընտրված չէ։" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s %(obj)s֊ը հաջողությամբ հեռացվեց։" - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Ավելացնել %s" - -#, python-format -msgid "Change %s" -msgstr "Փոփոխել %s" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "Տվյալների բազաի սխալ" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s հաջողությամբ փոփոխվեց։" -msgstr[1] "%(count)s %(name)s հաջողությամբ փոփոխվեցին։" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Ընտրված են %(total_count)s" -msgstr[1] "Բոլոր %(total_count)s֊ը ընտրված են " - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s֊ից 0֊ն ընտրված է" - -#, python-format -msgid "Change history: %s" -msgstr "Փոփոխությունների պատմություն %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(instance)s %(class_name)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(instance)s %(class_name)s֊ը հեռացնելու համար անհրաժեշտ է հեռացնել նրա հետ " -"կապված պաշտպանված օբյեկտները՝ %(related_objects)s" - -msgid "Django site admin" -msgstr "Django կայքի ադմինիստրավորման էջ" - -msgid "Django administration" -msgstr "Django ադմինիստրավորում" - -msgid "Site administration" -msgstr "Կայքի ադմինիստրավորում" - -msgid "Log in" -msgstr "Մուտք" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s ադմինիստրավորում" - -msgid "Page not found" -msgstr "Էջը գտնված չէ" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Ներողություն ենք հայցում, բայց հարցվող Էջը գտնված չէ" - -msgid "Home" -msgstr "Գլխավոր" - -msgid "Server error" -msgstr "Սերվերի սխալ" - -msgid "Server error (500)" -msgstr "Սերվերի սխալ (500)" - -msgid "Server Error (500)" -msgstr "Սերվերի սխալ (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Առաջացել է սխալ։ Ադմինիստրատորները տեղեկացվել են դրա մասին էլեկտրոնային " -"փոստի միջոցով և այն կուղղվի կարճ ժամանակահատվածի ընդացքում․ Շնորհակալ ենք " -"ձեր համբերության համար։" - -msgid "Run the selected action" -msgstr "Կատարել ընտրված գործողությունը" - -msgid "Go" -msgstr "Կատարել" - -msgid "Click here to select the objects across all pages" -msgstr "Սեղմեք այստեղ բոլոր էջերից օբյեկտներ ընտրելու համար" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Ընտրել բոլոր %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Չեղարկել ընտրությունը" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Սկզբում մուտքագրեք օգտագործողի անունը և գաղտնաբառը․ Հետո դուք " -"հնարավորություն կունենաք խմբագրել ավելին։" - -msgid "Enter a username and password." -msgstr "Մուտքագրեք օգտագործողի անունը և գաղտնաբառը։" - -msgid "Change password" -msgstr "Փոխել գաղտնաբառը" - -msgid "Please correct the error below." -msgstr "Ուղղեք ստորև նշված սխալը։" - -msgid "Please correct the errors below." -msgstr "Ուղղեք ստորև նշված սխալները․" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Մուտքագրեք նոր գաղտնաբառ %(username)s օգտագործողի համար։" - -msgid "Welcome," -msgstr "Բարի գալուստ, " - -msgid "View site" -msgstr "Դիտել կայքը" - -msgid "Documentation" -msgstr "Դոկումենտացիա" - -msgid "Log out" -msgstr "Դուրս գալ" - -#, python-format -msgid "Add %(name)s" -msgstr "Ավելացնել %(name)s" - -msgid "History" -msgstr "Պատմություն" - -msgid "View on site" -msgstr "Դիտել կայքում" - -msgid "Filter" -msgstr "Ֆիլտրել" - -msgid "Remove from sorting" -msgstr "Հեռացնել դասակարգումից" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Դասակարգման առաջնություն՝ %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Toggle sorting" - -msgid "Delete" -msgstr "Հեռացնել" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s'֊ի հեռացումը կարող է հանգեցնել նրա հետ " -"կապված օբյեկտների հեռացմանը, բայց դուք չունեք իրավունք հեռացնել այդ տիպի " -"օբյեկտներ․" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s'֊ը հեռացնելու համար կարող է անհրաժեշտ " -"լինել հեռացնել նրա հետ կապված պաշտպանված օբյեկտները։" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Համոզված ե՞ք, որ ուզում եք հեռացնել %(object_name)s \"%(escaped_object)s\"֊" -"ը։ նրա հետ կապված այս բոլոր օբյեկտները կհեռացվեն․" - -msgid "Objects" -msgstr "Օբյեկտներ" - -msgid "Yes, I'm sure" -msgstr "Այո, ես համոզված եմ" - -msgid "No, take me back" -msgstr "Ոչ, տարեք ենձ ետ" - -msgid "Delete multiple objects" -msgstr "Հեռացնել մի քանի օբյեկտ" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"%(objects_name)s֊ների հեռացումը կարող է հանգեցնել նրա հետ կապված օբյեկտների " -"հեռացմանը, բայց դուք չունեք իրավունք հեռացնել այդ տիպի օբյեկտներ․" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"%(objects_name)s֊ը հեռացնելու համար կարող է անհրաժեշտ լինել հեռացնել նրա հետ " -"կապված պաշտպանված օբյեկտները։" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Համոզված ե՞ք, որ ուզում եք հեռացնել նշված %(objects_name)s֊ները։ Այս բոլոր " -"օբյեկտները, ինչպես նաև նրանց հետ կապված օբյեկտները կհեռացվեն․" - -msgid "View" -msgstr "" - -msgid "Delete?" -msgstr "Հեռացնե՞լ" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s " - -msgid "Summary" -msgstr "Ամփոփում" - -#, python-format -msgid "Models in the %(name)s application" -msgstr " %(name)s հավելվածի մոդել" - -msgid "Add" -msgstr "Ավելացնել" - -msgid "You don't have permission to view or edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Ոչինք չկա" - -msgid "Unknown content" -msgstr "Անհայտ կոնտենտ" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Ինչ֊որ բան այն չէ ձեր տվյալների բազայի հետ։ Համոզվեք, որ համապատասխան " -"աղյուսակները ստեղծվել են և համոզվեք, որ համապատասխան օգտագործողը կարող է " -"կարդալ բազան։" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Դուք մուտք եք գործել որպես %(username)s, բայց իրավունք չունեք դիտելու այս " -"էջը։ Ցանկանում ե՞ք մուտք գործել որպես այլ օգտագործող" - -msgid "Forgotten your password or username?" -msgstr "Մոռացել ե՞ք օգտագործողի անունը կամ գաղտնաբառը" - -msgid "Date/time" -msgstr "Ամսաթիվ/Ժամանակ" - -msgid "User" -msgstr "Օգտագործող" - -msgid "Action" -msgstr "Գործողություն" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Այս օբյեկտը չունի փոփոխման պատմություն։ Այն հավանաբար ավելացված չէ " -"ադմինիստրավորման էջից։" - -msgid "Show all" -msgstr "Ցույց տալ բոլորը" - -msgid "Save" -msgstr "Պահպանել" - -msgid "Popup closing..." -msgstr "Ելնող պատուհանը փակվում է" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Փոփոխել ընտրված %(model)s տիպի օբյեկտը" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "Ավելացնել այլ %(model)s տիպի օբյեկտ" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Հեռացնել ընտրված %(model)s տիպի օբյեկտը" - -msgid "Search" -msgstr "Փնտրել" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s արդյունք" -msgstr[1] "%(counter)s արդյունքներ" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s ընդհանուր" - -msgid "Save as new" -msgstr "Պահպանել որպես նոր" - -msgid "Save and add another" -msgstr "Պահպանել և ավելացնել նորը" - -msgid "Save and continue editing" -msgstr "Պահպանել և շարունակել խմբագրել" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Շնորհակալություն մեր կայքում ինչ֊որ ժամանակ ծախսելու համար։" - -msgid "Log in again" -msgstr "Մուտք գործել նորից" - -msgid "Password change" -msgstr "Փոխել գաղտնաբառը" - -msgid "Your password was changed." -msgstr "Ձեր գաղտնաբառը փոխվել է" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Մուտքագրեք ձեր հին գաղտնաբառը։ Անվտանգության նկատառումներով մուտքագրեք ձեր " -"նոր գաղտնաբառը երկու անգամ, որպեսզի մենք համոզված լինենք, որ այն ճիշտ է " -"հավաքված։" - -msgid "Change my password" -msgstr "Փոխել իմ գաղտնաբառը" - -msgid "Password reset" -msgstr "Գաղտնաբառի փոփոխում" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Ձեր գաղտնաբառը պահպանված է․ Կարող եք մուտք գործել։" - -msgid "Password reset confirmation" -msgstr "Գաղտնաբառի փոփոխման հաստատում" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Մուտքագրեք ձեր նոր գաղտնաբառը երկու անգամ, որպեսզի մենք համոզված լինենք, որ " -"այն ճիշտ է հավաքված։" - -msgid "New password:" -msgstr "Նոր գաղտնաբառ․" - -msgid "Confirm password:" -msgstr "Նոր գաղտնաբառը նորից․" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Գաղտնաբառի փոփոխման հղում է սխալ է, հավանաբար այն արդեն օգտագործվել է․ Դուք " -"կարող եք ստանալ նոր հղում։" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Մենք ուղարկեցինք ձեր էլեկտրոնային փոստի հասցեին գաղտնաբառը փոփոխելու " -"հրահանգներ․ Դուք շուտով կստանաք դրանք։" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Եթե դուք չեք ստացել էլեկտրոնային նամակ, համոզվեք, որ հավաքել եք այն հասցեն, " -"որով գրանցվել եք և ստուգեք ձեր սպամի թղթապանակը։" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Դուք ստացել եք այս նամակը, քանի որ ցանկացել եք փոխել ձեր գաղտնաբառը " -"%(site_name)s կայքում։" - -msgid "Please go to the following page and choose a new password:" -msgstr "Բացեք հետևյալ էջը և ընտրեք նոր գաղտնաբառ։" - -msgid "Your username, in case you've forgotten:" -msgstr "Եթե դուք մոռացել եք ձեր օգտագործողի անունը․" - -msgid "Thanks for using our site!" -msgstr "Շնորհակալություն մեր կայքից օգտվելու համար։" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s կայքի թիմ" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Մոռացել ե՞ք ձեր գաղտնաբառը Մուտքագրեք ձեր էլեկտրոնային փոստի հասցեն և մենք " -"կուղարկենք ձեզ հրահանգներ նորը ստանալու համար։" - -msgid "Email address:" -msgstr "Email հասցե․" - -msgid "Reset my password" -msgstr "Փոխել գաղտնաբառը" - -msgid "All dates" -msgstr "Բոլոր ամսաթվերը" - -#, python-format -msgid "Select %s" -msgstr "Ընտրեք %s" - -#, python-format -msgid "Select %s to change" -msgstr "Ընտրեք %s փոխելու համար" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "Ամսաթիվ․" - -msgid "Time:" -msgstr "Ժամանակ․" - -msgid "Lookup" -msgstr "Որոնում" - -msgid "Currently:" -msgstr "Հիմա․" - -msgid "Change:" -msgstr "Փոփոխել" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo deleted file mode 100644 index b9a8fa2..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po deleted file mode 100644 index e209f54..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,219 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ruben Harutyunov , 2018 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2019-01-15 10:40+0100\n" -"Last-Translator: Ruben Harutyunov \n" -"Language-Team: Armenian (http://www.transifex.com/django/django/language/" -"hy/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: hy\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Հասանելի %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Սա հասանելի %s ցուցակ է։ Դուք կարող եք ընտրել նրանցից որոշները ընտրելով " -"դրանք ստորև գտնվող վանդակում և սեղմելով երկու վանդակների միջև գտնվող \"Ընտրել" -"\" սլաքը։" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Մուտքագրեք այս դաշտում հասանելի %s ցուցակը ֆիլտրելու համար։" - -msgid "Filter" -msgstr "Ֆիլտրել" - -msgid "Choose all" -msgstr "Ընտրել բոլորը" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Սեղմեք բոլոր %sը ընտրելու համար։" - -msgid "Choose" -msgstr "Ընտրել" - -msgid "Remove" -msgstr "Հեռացնել" - -#, javascript-format -msgid "Chosen %s" -msgstr "Ընտրված %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Սա հասանելի %sի ցուցակ է։ Դուք կարող եք հեռացնել նրանցից որոշները ընտրելով " -"դրանք ստորև գտնվող վանդակում և սեղմելով երկու վանդակների միջև գտնվող " -"\"Հեռացնել\" սլաքը։" - -msgid "Remove all" -msgstr "Հեռացնել բոլորը" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Սեղմեք բոլոր %sը հեռացնելու համար։" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "Ընտրված է %(cnt)s-ից %(sel)s-ը" -msgstr[1] "Ընտրված է %(cnt)s-ից %(sel)s-ը" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Դուք ունեք չպահպանված անհատական խմբագրելի դաշտեր։ Եթե դուք կատարեք " -"գործողությունը, ձեր չպահպանված փոփոխությունները կկորեն։" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Դուք ընտրել եք գործողություն, բայց դեռ չեք պահպանել անհատական խմբագրելի " -"դաշտերի փոփոխությունները Սեղմեք OK պահպանելու համար։ Անհրաժեշտ կլինի " -"վերագործարկել գործողությունը" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Դուք ընտրել եք գործողություն, բայց դեռ չեք կատարել որևէ անհատական խմբագրելի " -"դաշտերի փոփոխություն Ձեզ հավանաբար պետք է Կատարել կոճակը, Պահպանել կոճակի " -"փոխարեն" - -msgid "Now" -msgstr "Հիմա" - -msgid "Midnight" -msgstr "Կեսգիշեր" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Կեսօր" - -msgid "6 p.m." -msgstr "6 p.m." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Ձեր ժամը առաջ է սերվերի ժամանակից %s ժամով" -msgstr[1] "Ձեր ժամը առաջ է սերվերի ժամանակից %s ժամով" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Ձեր ժամը հետ է սերվերի ժամանակից %s ժամով" -msgstr[1] "Ձեր ժամը հետ է սերվերի ժամանակից %s ժամով" - -msgid "Choose a Time" -msgstr "Ընտրեք ժամանակ" - -msgid "Choose a time" -msgstr "Ընտրեք ժամանակ" - -msgid "Cancel" -msgstr "Չեղարկել" - -msgid "Today" -msgstr "Այսօր" - -msgid "Choose a Date" -msgstr "Ընտրեք ամսաթիվ" - -msgid "Yesterday" -msgstr "Երեկ" - -msgid "Tomorrow" -msgstr "Վաղը" - -msgid "January" -msgstr "Հունվար" - -msgid "February" -msgstr "Փետրվար" - -msgid "March" -msgstr "Մարտ" - -msgid "April" -msgstr "Ապրիլ" - -msgid "May" -msgstr "Մայիս" - -msgid "June" -msgstr "Հունիս" - -msgid "July" -msgstr "Հուլիս" - -msgid "August" -msgstr "Օգոստոս" - -msgid "September" -msgstr "Սեպտեմբեր" - -msgid "October" -msgstr "Հոկտեմբեր" - -msgid "November" -msgstr "Նոյեմբեր" - -msgid "December" -msgstr "Դեկտեմբեր" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Կ" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Ե" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Ե" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Չ" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Հ" - -msgctxt "one letter Friday" -msgid "F" -msgstr "ՈՒ" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Շ" - -msgid "Show" -msgstr "Ցույց տալ" - -msgid "Hide" -msgstr "Թաքցնել" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.mo deleted file mode 100644 index 06ddd42..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.po deleted file mode 100644 index f7986c9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/django.po +++ /dev/null @@ -1,664 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Martijn Dekker , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Interlingua (http://www.transifex.com/django/django/language/" -"ia/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ia\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s delite con successo." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Non pote deler %(name)s" - -msgid "Are you sure?" -msgstr "Es tu secur?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Deler le %(verbose_name_plural)s seligite" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "Totes" - -msgid "Yes" -msgstr "Si" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Incognite" - -msgid "Any date" -msgstr "Omne data" - -msgid "Today" -msgstr "Hodie" - -msgid "Past 7 days" -msgstr "Ultime 7 dies" - -msgid "This month" -msgstr "Iste mense" - -msgid "This year" -msgstr "Iste anno" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "Action:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Adder un altere %(verbose_name)s" - -msgid "Remove" -msgstr "Remover" - -msgid "action time" -msgstr "hora de action" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "id de objecto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "repr de objecto" - -msgid "action flag" -msgstr "marca de action" - -msgid "change message" -msgstr "message de cambio" - -msgid "log entry" -msgstr "entrata de registro" - -msgid "log entries" -msgstr "entratas de registro" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "\"%(object)s\" addite." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "\"%(object)s\" cambiate - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "\"%(object)s\" delite." - -msgid "LogEntry Object" -msgstr "Objecto LogEntry" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "e" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "Nulle campo cambiate." - -msgid "None" -msgstr "Nulle" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Es necessari seliger elementos pro poter exequer actiones. Nulle elemento ha " -"essite cambiate." - -msgid "No action selected." -msgstr "Nulle action seligite." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "Le %(name)s \"%(obj)s\" ha essite delite con successo." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Adder %s" - -#, python-format -msgid "Change %s" -msgstr "Cambiar %s" - -msgid "Database error" -msgstr "Error in le base de datos" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s cambiate con successo." -msgstr[1] "%(count)s %(name)s cambiate con successo." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s seligite" -msgstr[1] "Tote le %(total_count)s seligite" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 de %(cnt)s seligite" - -#, python-format -msgid "Change history: %s" -msgstr "Historia de cambiamentos: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "Administration del sito Django" - -msgid "Django administration" -msgstr "Administration de Django" - -msgid "Site administration" -msgstr "Administration del sito" - -msgid "Log in" -msgstr "Aperir session" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "Pagina non trovate" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Regrettabilemente, le pagina requestate non poteva esser trovate." - -msgid "Home" -msgstr "Initio" - -msgid "Server error" -msgstr "Error del servitor" - -msgid "Server error (500)" -msgstr "Error del servitor (500)" - -msgid "Server Error (500)" -msgstr "Error del servitor (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Exequer le action seligite" - -msgid "Go" -msgstr "Va" - -msgid "Click here to select the objects across all pages" -msgstr "Clicca hic pro seliger le objectos in tote le paginas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Seliger tote le %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Rader selection" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Primo, specifica un nomine de usator e un contrasigno. Postea, tu potera " -"modificar plus optiones de usator." - -msgid "Enter a username and password." -msgstr "Specifica un nomine de usator e un contrasigno." - -msgid "Change password" -msgstr "Cambiar contrasigno" - -msgid "Please correct the error below." -msgstr "Per favor corrige le errores sequente." - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Specifica un nove contrasigno pro le usator %(username)s." - -msgid "Welcome," -msgstr "Benvenite," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "Documentation" - -msgid "Log out" -msgstr "Clauder session" - -#, python-format -msgid "Add %(name)s" -msgstr "Adder %(name)s" - -msgid "History" -msgstr "Historia" - -msgid "View on site" -msgstr "Vider in sito" - -msgid "Filter" -msgstr "Filtro" - -msgid "Remove from sorting" -msgstr "Remover del ordination" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioritate de ordination: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Alternar le ordination" - -msgid "Delete" -msgstr "Deler" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Deler le %(object_name)s '%(escaped_object)s' resultarea in le deletion de " -"objectos associate, me tu conto non ha le permission de deler objectos del " -"sequente typos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Deler le %(object_name)s '%(escaped_object)s' necessitarea le deletion del " -"sequente objectos associate protegite:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Es tu secur de voler deler le %(object_name)s \"%(escaped_object)s\"? Tote " -"le sequente objectos associate essera delite:" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "Si, io es secur" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "Deler plure objectos" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Deler le %(objects_name)s seligite resultarea in le deletion de objectos " -"associate, ma tu conto non ha le permission de deler objectos del sequente " -"typos:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Deler le %(objects_name)s seligite necessitarea le deletion del sequente " -"objectos associate protegite:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Es tu secur de voler deler le %(objects_name)s seligite? Tote le sequente " -"objectos e le objectos associate a illo essera delite:" - -msgid "Change" -msgstr "Cambiar" - -msgid "Delete?" -msgstr "Deler?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Per %(filter_title)s " - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "Adder" - -msgid "You don't have permission to edit anything." -msgstr "Tu non ha le permission de modificar alcun cosa." - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Nihil disponibile" - -msgid "Unknown content" -msgstr "Contento incognite" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Il ha un problema con le installation del base de datos. Assecura te que le " -"tabellas correcte ha essite create, e que le base de datos es legibile pro " -"le usator appropriate." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "Contrasigno o nomine de usator oblidate?" - -msgid "Date/time" -msgstr "Data/hora" - -msgid "User" -msgstr "Usator" - -msgid "Action" -msgstr "Action" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Iste objecto non ha un historia de cambiamentos. Illo probabilemente non " -"esseva addite per medio de iste sito administrative." - -msgid "Show all" -msgstr "Monstrar toto" - -msgid "Save" -msgstr "Salveguardar" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "Cercar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultato" -msgstr[1] "%(counter)s resultatos" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s in total" - -msgid "Save as new" -msgstr "Salveguardar como nove" - -msgid "Save and add another" -msgstr "Salveguardar e adder un altere" - -msgid "Save and continue editing" -msgstr "Salveguardar e continuar le modification" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Gratias pro haber passate un tempore agradabile con iste sito web." - -msgid "Log in again" -msgstr "Aperir session de novo" - -msgid "Password change" -msgstr "Cambio de contrasigno" - -msgid "Your password was changed." -msgstr "Tu contrasigno ha essite cambiate." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Per favor specifica tu ancian contrasigno, pro securitate, e postea " -"specifica tu nove contrasigno duo vices pro verificar que illo es scribite " -"correctemente." - -msgid "Change my password" -msgstr "Cambiar mi contrasigno" - -msgid "Password reset" -msgstr "Reinitialisar contrasigno" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Tu contrasigno ha essite reinitialisate. Ora tu pote aperir session." - -msgid "Password reset confirmation" -msgstr "Confirmation de reinitialisation de contrasigno" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Per favor scribe le nove contrasigno duo vices pro verificar que illo es " -"scribite correctemente." - -msgid "New password:" -msgstr "Nove contrasigno:" - -msgid "Confirm password:" -msgstr "Confirma contrasigno:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Le ligamine pro le reinitialisation del contrasigno esseva invalide, forsan " -"perque illo ha jam essite usate. Per favor submitte un nove demanda de " -"reinitialisation del contrasigno." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "Per favor va al sequente pagina pro eliger un nove contrasigno:" - -msgid "Your username, in case you've forgotten:" -msgstr "Tu nomine de usator, in caso que tu lo ha oblidate:" - -msgid "Thanks for using our site!" -msgstr "Gratias pro usar nostre sito!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Le equipa de %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "Reinitialisar mi contrasigno" - -msgid "All dates" -msgstr "Tote le datas" - -#, python-format -msgid "Select %s" -msgstr "Selige %s" - -#, python-format -msgid "Select %s to change" -msgstr "Selige %s a modificar" - -msgid "Date:" -msgstr "Data:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Recerca" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 4c9eccc..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po deleted file mode 100644 index 8285097..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,216 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Martijn Dekker , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Interlingua (http://www.transifex.com/django/django/language/" -"ia/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ia\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s disponibile" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ecce le lista de %s disponibile. Tu pote seliger alcunes in le quadro " -"sequente; postea clicca le flecha \"Seliger\" inter le duo quadros." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Scribe in iste quadro pro filtrar le lista de %s disponibile." - -msgid "Filter" -msgstr "Filtrar" - -msgid "Choose all" -msgstr "Seliger totes" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Clicca pro seliger tote le %s immediatemente." - -msgid "Choose" -msgstr "Seliger" - -msgid "Remove" -msgstr "Remover" - -#, javascript-format -msgid "Chosen %s" -msgstr "Le %s seligite" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ecce le lista de %s seligite. Tu pote remover alcunes per seliger los in le " -"quadro sequente e cliccar le flecha \"Remover\" inter le duo quadros." - -msgid "Remove all" -msgstr "Remover totes" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Clicca pro remover tote le %s seligite immediatemente." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s seligite" -msgstr[1] "%(sel)s de %(cnt)s seligite" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Il ha cambiamentos non salveguardate in certe campos modificabile. Si tu " -"exeque un action, iste cambiamentos essera perdite." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Tu ha seligite un action, ma tu non ha salveguardate le cambiamentos in " -"certe campos. Per favor clicca OK pro salveguardar los. Tu debera re-exequer " -"le action." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Tu ha seligite un action, e tu non ha facite cambiamentos in alcun campo. Tu " -"probabilemente cerca le button Va e non le button Salveguardar." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "Ora" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "Selige un hora" - -msgid "Midnight" -msgstr "Medienocte" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Mediedie" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "Cancellar" - -msgid "Today" -msgstr "Hodie" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "Heri" - -msgid "Tomorrow" -msgstr "Deman" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Monstrar" - -msgid "Hide" -msgstr "Celar" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.mo deleted file mode 100644 index baef24f..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.po deleted file mode 100644 index c3a984b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/django.po +++ /dev/null @@ -1,742 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Claude Paroz , 2014 -# Fery Setiawan , 2015-2019,2021-2022 -# Jannis Leidel , 2011 -# M Asep Indrayana , 2015 -# oon arfiandwi , 2016,2020 -# rodin , 2011-2013 -# rodin , 2013-2017 -# sag᠎e , 2019 -# Sutrisno Efendi , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: Fery Setiawan \n" -"Language-Team: Indonesian (http://www.transifex.com/django/django/language/" -"id/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: id\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Hapus %(verbose_name_plural)s yang dipilih" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Sukses menghapus %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Tidak dapat menghapus %(name)s" - -msgid "Are you sure?" -msgstr "Yakin?" - -msgid "Administration" -msgstr "Administrasi" - -msgid "All" -msgstr "Semua" - -msgid "Yes" -msgstr "Ya" - -msgid "No" -msgstr "Tidak" - -msgid "Unknown" -msgstr "Tidak diketahui" - -msgid "Any date" -msgstr "Kapanpun" - -msgid "Today" -msgstr "Hari ini" - -msgid "Past 7 days" -msgstr "Tujuh hari terakhir" - -msgid "This month" -msgstr "Bulan ini" - -msgid "This year" -msgstr "Tahun ini" - -msgid "No date" -msgstr "Tidak ada tanggal" - -msgid "Has date" -msgstr "Ada tanggal" - -msgid "Empty" -msgstr "Kosong" - -msgid "Not empty" -msgstr "Tidak kosong" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Masukkan nama pengguna %(username)s dan sandi yang benar untuk akun staf. " -"Huruf besar/kecil pada bidang ini berpengaruh." - -msgid "Action:" -msgstr "Aksi:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Tambahkan %(verbose_name)s lagi" - -msgid "Remove" -msgstr "Hapus" - -msgid "Addition" -msgstr "Tambahan" - -msgid "Change" -msgstr "Ubah" - -msgid "Deletion" -msgstr "Penghapusan" - -msgid "action time" -msgstr "waktu aksi" - -msgid "user" -msgstr "pengguna" - -msgid "content type" -msgstr "jenis isi" - -msgid "object id" -msgstr "id objek" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "representasi objek" - -msgid "action flag" -msgstr "jenis aksi" - -msgid "change message" -msgstr "ganti pesan" - -msgid "log entry" -msgstr "entri pencatatan" - -msgid "log entries" -msgstr "entri pencatatan" - -#, python-format -msgid "Added “%(object)s”." -msgstr "“%(object)s” ditambahkan." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "“%(object)s” diubah — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "“%(object)s” dihapus." - -msgid "LogEntry Object" -msgstr "Objek LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} “{object}” ditambahkan." - -msgid "Added." -msgstr "Ditambahkan." - -msgid "and" -msgstr "dan" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{fields} diubah untuk {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} berubah." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} “{object}” dihapus." - -msgid "No fields changed." -msgstr "Tidak ada bidang yang berubah." - -msgid "None" -msgstr "None" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Tekan “Control”, atau “Command” pada Mac, untuk memilih lebih dari satu." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” berhasil ditambahkan." - -msgid "You may edit it again below." -msgstr "Anda dapat menyunting itu kembali di bawah." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}” berhasil ditambahkan. Anda dapat menambahkan {name} lain di " -"bawah." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” berhasil diubah. Anda dapat mengeditnya kembali di bawah." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” berhasil ditambahkan. Anda dapat mengeditnya kembali di bawah." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} “{obj}” berhasil diubah. Anda dapat menambahkan {name} lain di bawah." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” berhasil diubah." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Objek harus dipilih sebelum dimanipulasi. Tidak ada objek yang berubah." - -msgid "No action selected." -msgstr "Tidak ada aksi yang dipilih." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” berhasil dihapus." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s dengan ID “%(key)s” tidak ada. Mungkin telah dihapus?" - -#, python-format -msgid "Add %s" -msgstr "Tambahkan %s" - -#, python-format -msgid "Change %s" -msgstr "Ubah %s" - -#, python-format -msgid "View %s" -msgstr "Lihat %s" - -msgid "Database error" -msgstr "Galat basis data" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s berhasil diubah." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s dipilih" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 dari %(cnt)s dipilih" - -#, python-format -msgid "Change history: %s" -msgstr "Ubah riwayat: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Menghapus %(class_name)s %(instance)s memerlukan penghapusanobjek " -"terlindungi yang terkait sebagai berikut: %(related_objects)s" - -msgid "Django site admin" -msgstr "Admin situs Django" - -msgid "Django administration" -msgstr "Administrasi Django" - -msgid "Site administration" -msgstr "Administrasi situs" - -msgid "Log in" -msgstr "Masuk" - -#, python-format -msgid "%(app)s administration" -msgstr "Administrasi %(app)s" - -msgid "Page not found" -msgstr "Laman tidak ditemukan" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Maaf, laman yang Anda minta tidak ditemukan." - -msgid "Home" -msgstr "Beranda" - -msgid "Server error" -msgstr "Galat server" - -msgid "Server error (500)" -msgstr "Galat server (500)" - -msgid "Server Error (500)" -msgstr "Galat Server (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Terjadi sebuah galat dan telah dilaporkan ke administrator situs melalui " -"surel untuk diperbaiki. Terima kasih atas pengertian Anda." - -msgid "Run the selected action" -msgstr "Jalankan aksi terpilih" - -msgid "Go" -msgstr "Buka" - -msgid "Click here to select the objects across all pages" -msgstr "Klik di sini untuk memilih semua objek pada semua laman" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Pilih seluruh %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Bersihkan pilihan" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Model pada aplikasi %(name)s" - -msgid "Add" -msgstr "Tambah" - -msgid "View" -msgstr "Lihat" - -msgid "You don’t have permission to view or edit anything." -msgstr "Anda tidak memiliki izin untuk melihat atau mengedit apa pun." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Pertama-tama, masukkan nama pengguna dan sandi. Anda akan dapat mengubah " -"opsi pengguna lebih lengkap setelah itu." - -msgid "Enter a username and password." -msgstr "Masukkan nama pengguna dan sandi." - -msgid "Change password" -msgstr "Ganti sandi" - -msgid "Please correct the error below." -msgstr "Mohon perbaiki kesalahan di bawah ini." - -msgid "Please correct the errors below." -msgstr "Perbaiki galat di bawah ini." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Masukkan sandi baru untuk pengguna %(username)s." - -msgid "Welcome," -msgstr "Selamat datang," - -msgid "View site" -msgstr "Lihat situs" - -msgid "Documentation" -msgstr "Dokumentasi" - -msgid "Log out" -msgstr "Keluar" - -#, python-format -msgid "Add %(name)s" -msgstr "Tambahkan %(name)s" - -msgid "History" -msgstr "Riwayat" - -msgid "View on site" -msgstr "Lihat di situs" - -msgid "Filter" -msgstr "Filter" - -msgid "Clear all filters" -msgstr "Hapus semua penyaringan" - -msgid "Remove from sorting" -msgstr "Dihapus dari pengurutan" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioritas pengurutan: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Ubah pengurutan" - -msgid "Delete" -msgstr "Hapus" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Menghapus %(object_name)s '%(escaped_object)s' akan menghapus objek lain " -"yang terkait, tetapi akun Anda tidak memiliki izin untuk menghapus objek " -"dengan tipe berikut:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Menghapus %(object_name)s '%(escaped_object)s' memerlukan penghapusan objek " -"terlindungi yang terkait sebagai berikut:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Yakin ingin menghapus %(object_name)s \"%(escaped_object)s\"? Semua objek " -"lain yang terkait juga akan dihapus:" - -msgid "Objects" -msgstr "Objek" - -msgid "Yes, I’m sure" -msgstr "Ya, saya yakin" - -msgid "No, take me back" -msgstr "Tidak, bawa saya kembali" - -msgid "Delete multiple objects" -msgstr "Hapus beberapa objek sekaligus" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Menghapus %(objects_name)s terpilih akan menghapus objek yang terkait, " -"tetapi akun Anda tidak memiliki izin untuk menghapus objek dengan tipe " -"berikut:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Menghapus %(objects_name)s terpilih memerlukan penghapusan objek terlindungi " -"yang terkait sebagai berikut:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Yakin akan menghapus %(objects_name)s terpilih? Semua objek berikut beserta " -"objek terkait juga akan dihapus:" - -msgid "Delete?" -msgstr "Hapus?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Berdasarkan %(filter_title)s " - -msgid "Summary" -msgstr "Ringkasan" - -msgid "Recent actions" -msgstr "Tindakan terbaru" - -msgid "My actions" -msgstr "Tindakan saya" - -msgid "None available" -msgstr "Tidak ada yang tersedia" - -msgid "Unknown content" -msgstr "Konten tidak diketahui" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Ada masalah dengan instalasi basis data Anda. Pastikan tabel yang sesuai " -"pada basis data telah dibuat dan dapat dibaca oleh pengguna yang sesuai." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Anda diautentikasi sebagai %(username)s, tapi tidak diperbolehkan untuk " -"mengakses halaman ini. Ingin mencoba mengakses menggunakan akun yang lain?" - -msgid "Forgotten your password or username?" -msgstr "Lupa nama pengguna atau sandi?" - -msgid "Toggle navigation" -msgstr "Alihkan navigasi" - -msgid "Start typing to filter…" -msgstr "Mulai mengetik untuk menyaring..." - -msgid "Filter navigation items" -msgstr "Navigasi pencarian barang" - -msgid "Date/time" -msgstr "Tanggal/waktu" - -msgid "User" -msgstr "Pengguna" - -msgid "Action" -msgstr "Aksi" - -msgid "entry" -msgstr "masukan" - -msgid "entries" -msgstr "masukan" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Objek ini tidak memiliki riwayat perubahan. Mungkin objek ini tidak " -"ditambahkan melalui situs administrasi ini." - -msgid "Show all" -msgstr "Tampilkan semua" - -msgid "Save" -msgstr "Simpan" - -msgid "Popup closing…" -msgstr "Menutup jendela sembulan..." - -msgid "Search" -msgstr "Cari" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s buah" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s total" - -msgid "Save as new" -msgstr "Simpan sebagai baru" - -msgid "Save and add another" -msgstr "Simpan dan tambahkan lagi" - -msgid "Save and continue editing" -msgstr "Simpan dan terus mengedit" - -msgid "Save and view" -msgstr "Simpan dan tampilkan" - -msgid "Close" -msgstr "Tutup" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Ubah %(model)s yang dipilih" - -#, python-format -msgid "Add another %(model)s" -msgstr "Tambahkan %(model)s yang lain" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Hapus %(model)s yang dipilih" - -#, python-format -msgid "View selected %(model)s" -msgstr "Menampilkan %(model)s terpilih" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" -"Terima kasih untuk meluangkan waktu berkualitas dengan jaringan situs hari " -"ini." - -msgid "Log in again" -msgstr "Masuk kembali" - -msgid "Password change" -msgstr "Ubah sandi" - -msgid "Your password was changed." -msgstr "Sandi Anda telah diubah." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Masukkan sandi lama Anda, demi alasan keamanan, dan masukkan sandi baru Anda " -"dua kali untuk memastikan Anda tidak salah mengetikkannya." - -msgid "Change my password" -msgstr "Ubah sandi saya" - -msgid "Password reset" -msgstr "Setel ulang sandi" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Sandi Anda telah diperbarui. Silakan masuk." - -msgid "Password reset confirmation" -msgstr "Konfirmasi penyetelan ulang sandi" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Masukkan sandi baru dua kali untuk memastikan Anda tidak salah " -"mengetikkannya." - -msgid "New password:" -msgstr "Sandi baru:" - -msgid "Confirm password:" -msgstr "Konfirmasi sandi:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Tautan penyetelan ulang sandi tidak valid. Kemungkinan karena tautan " -"tersebut telah dipakai sebelumnya. Ajukan permintaan penyetelan sandi sekali " -"lagi." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Kami telah mengirimi Anda surel berisi petunjuk untuk mengatur sandi Anda, " -"jika ada akun dengan alamat surel yang sesuai. Anda seharusnya menerima " -"surel tersebut sesaat lagi." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Jika Anda tidak menerima surel, pastikan Anda telah memasukkan alamat yang " -"digunakan saat pendaftaran serta periksa folder spam Anda." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Anda menerima email ini karena Anda meminta penyetelan ulang sandi untuk " -"akun pengguna di %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Kunjungi laman di bawah ini dan ketikkan sandi baru:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Nama pengguna Anda, jika lupa:" - -msgid "Thanks for using our site!" -msgstr "Terima kasih telah menggunakan situs kami!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Tim %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Lupa sandi Anda? Masukkan alamat surel Anda di bawah ini dan kami akan " -"mengirimkan petunjuk untuk mengatur sandi baru Anda." - -msgid "Email address:" -msgstr "Alamat email:" - -msgid "Reset my password" -msgstr "Setel ulang sandi saya" - -msgid "All dates" -msgstr "Semua tanggal" - -#, python-format -msgid "Select %s" -msgstr "Pilih %s" - -#, python-format -msgid "Select %s to change" -msgstr "Pilih %s untuk diubah" - -#, python-format -msgid "Select %s to view" -msgstr "Pilih %s untuk melihat" - -msgid "Date:" -msgstr "Tanggal:" - -msgid "Time:" -msgstr "Waktu:" - -msgid "Lookup" -msgstr "Cari" - -msgid "Currently:" -msgstr "Saat ini:" - -msgid "Change:" -msgstr "Ubah:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo deleted file mode 100644 index cf46777..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po deleted file mode 100644 index 8bd2c6b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,274 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Fery Setiawan , 2015-2016,2021-2022 -# Jannis Leidel , 2011 -# oon arfiandwi , 2020 -# rodin , 2011-2012 -# rodin , 2014,2016 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-07-25 07:59+0000\n" -"Last-Translator: Fery Setiawan \n" -"Language-Team: Indonesian (http://www.transifex.com/django/django/language/" -"id/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: id\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s yang tersedia" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Berikut adalah daftar %s yang tersedia. Anda dapat memilih satu atau lebih " -"dengan memilihnya pada kotak di bawah, lalu mengeklik tanda panah \"Pilih\" " -"di antara kedua kotak." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Ketik pada kotak ini untuk menyaring daftar %s yang tersedia." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Pilih semua" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Pilih untuk memilih seluruh %s sekaligus." - -msgid "Choose" -msgstr "Pilih" - -msgid "Remove" -msgstr "Hapus" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s terpilih" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Berikut adalah daftar %s yang terpilih. Anda dapat menghapus satu atau lebih " -"dengan memilihnya pada kotak di bawah, lalu mengeklik tanda panah \"Hapus\" " -"di antara kedua kotak." - -msgid "Remove all" -msgstr "Hapus semua" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klik untuk menghapus semua pilihan %s sekaligus." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s dari %(cnt)s terpilih" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Beberapa perubahan bidang yang Anda lakukan belum tersimpan. Perubahan yang " -"telah dilakukan akan hilang." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Anda telah memilih tindakan, tetapi Anda belum menyimpan perubahan ke masing-" -"masing bidang. Silakan klik OK untuk menyimpan. Anda harus menjalankan " -"kembali tindakan tersebut." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Anda telah memilih tindakan, dan Anda belum membuat perubahan apa pun di " -"setiap bidang. Anda mungkin mencari tombol Buka daripada tombol Simpan." - -msgid "Now" -msgstr "Sekarang" - -msgid "Midnight" -msgstr "Tengah malam" - -msgid "6 a.m." -msgstr "6 pagi" - -msgid "Noon" -msgstr "Siang" - -msgid "6 p.m." -msgstr "18.00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Catatan: Waktu Anda lebih cepat %s jam dibandingkan waktu server." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Catatan: Waktu Anda lebih lambat %s jam dibandingkan waktu server." - -msgid "Choose a Time" -msgstr "Pilih Waktu" - -msgid "Choose a time" -msgstr "Pilih waktu" - -msgid "Cancel" -msgstr "Batal" - -msgid "Today" -msgstr "Hari ini" - -msgid "Choose a Date" -msgstr "Pilih Tanggal" - -msgid "Yesterday" -msgstr "Kemarin" - -msgid "Tomorrow" -msgstr "Besok" - -msgid "January" -msgstr "Januari" - -msgid "February" -msgstr "Februari" - -msgid "March" -msgstr "Maret" - -msgid "April" -msgstr "April" - -msgid "May" -msgstr "Mei" - -msgid "June" -msgstr "Juni" - -msgid "July" -msgstr "Juli" - -msgid "August" -msgstr "Agustus" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "November" - -msgid "December" -msgstr "Desember" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Mei" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Agu" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Des" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "M" - -msgctxt "one letter Monday" -msgid "M" -msgstr "S" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "S" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "R" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "K" - -msgctxt "one letter Friday" -msgid "F" -msgstr "J" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "" -"Anda telah mengajukan formulir ini. Apakah anda yakin ingin mengajukannya " -"kembali?" - -msgid "Show" -msgstr "Bentangkan" - -msgid "Hide" -msgstr "Ciutkan" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.mo deleted file mode 100644 index abe5bb5..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.po deleted file mode 100644 index ddf09c2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/django.po +++ /dev/null @@ -1,668 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Viko Bartero , 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-20 01:58+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Ido (http://www.transifex.com/django/django/language/io/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: io\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s eliminesis sucesoze." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Onu ne povas eliminar %(name)s" - -msgid "Are you sure?" -msgstr "Ka vu esas certa?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Eliminar selektita %(verbose_name_plural)s" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "Omni" - -msgid "Yes" -msgstr "Yes" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Nekonocato" - -msgid "Any date" -msgstr "Irga dato" - -msgid "Today" -msgstr "Hodie" - -msgid "Past 7 days" -msgstr "7 antea dii" - -msgid "This month" -msgstr "Ca monato" - -msgid "This year" -msgstr "Ca yaro" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Skribez la korekta %(username)s e pasvorto di kelka staff account. Remarkez " -"ke both feldi darfas rikonocar miniskulo e mayuskulo." - -msgid "Action:" -msgstr "Ago:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Agregar altra %(verbose_name)s" - -msgid "Remove" -msgstr "Eliminar" - -msgid "action time" -msgstr "horo dil ago" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "id dil objekto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "repr dil objekto" - -msgid "action flag" -msgstr "flago dil ago" - -msgid "change message" -msgstr "chanjar mesajo" - -msgid "log entry" -msgstr "logo informo" - -msgid "log entries" -msgstr "logo informi" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "\"%(object)s\" agregesis." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "\"%(object)s\" chanjesis - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "\"%(object)s\" eliminesis." - -msgid "LogEntry Object" -msgstr "LogEntry Objekto" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "e" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "Nula feldo chanjesis." - -msgid "None" -msgstr "Nula" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Onu devas selektar la objekti por aplikar oli irga ago. Nula objekto " -"chanjesis." - -msgid "No action selected." -msgstr "Nula ago selektesis." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "La %(name)s \"%(obj)s\" eliminesis sucesoze." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Agregar %s" - -#, python-format -msgid "Change %s" -msgstr "Chanjar %s" - -msgid "Database error" -msgstr "Eroro del datumaro" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s chanjesis sucesoze." -msgstr[1] "%(count)s %(name)s chanjesis sucesoze." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s selektita" -msgstr[1] "La %(total_count)s selektita" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Selektita 0 di %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Modifikuro historio: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Por eliminar %(class_name)s %(instance)s on mustas eliminar la sequanta " -"protektita objekti relatita: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django situo admin" - -msgid "Django administration" -msgstr "Django administreyo" - -msgid "Site administration" -msgstr "Administrayo dil ret-situo" - -msgid "Log in" -msgstr "Startar sesiono" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "La pagino ne renkontresis" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Pardonez, ma la demandita pagino ne renkontresis." - -msgid "Home" -msgstr "Hemo" - -msgid "Server error" -msgstr "Eroro del servilo" - -msgid "Server error (500)" -msgstr "Eroro del servilo (500)" - -msgid "Server Error (500)" -msgstr "Eroro del servilo (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Eroro eventis. Ico informesis per e-posto a la administranti dil ret-situo e " -"la eroro esos korektigata balde. Danko pro vua pacienteso." - -msgid "Run the selected action" -msgstr "Exekutar la selektita ago" - -msgid "Go" -msgstr "Irar" - -msgid "Click here to select the objects across all pages" -msgstr "Kliktez hike por selektar la objekti di omna pagini" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Selektar omna %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Desfacar selekto" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Unesme, skribez uzer-nomo ed pasvorto. Pos, vu povos modifikar altra uzer-" -"selekto." - -msgid "Enter a username and password." -msgstr "Skribez uzer-nomo ed pasvorto." - -msgid "Change password" -msgstr "Chanjar pasvorto" - -msgid "Please correct the error below." -msgstr "Korektigez la eroro infre." - -msgid "Please correct the errors below." -msgstr "Korektigez la erori infre." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Skribez nova pasvorto por la uzero %(username)s." - -msgid "Welcome," -msgstr "Bonvenez," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "Dokumento" - -msgid "Log out" -msgstr "Klozar sesiono" - -#, python-format -msgid "Add %(name)s" -msgstr "Agregar %(name)s" - -msgid "History" -msgstr "Historio" - -msgid "View on site" -msgstr "Vidar en la ret-situo" - -msgid "Filter" -msgstr "Filtrar" - -msgid "Remove from sorting" -msgstr "Eskartar de klasifiko" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Precedo dil klasifiko: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Aktivar/desaktivar klasifiko" - -msgid "Delete" -msgstr "Eliminar" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eliminar la %(object_name)s '%(escaped_object)s' eliminos relatita objekti, " -"ma vua account ne havas permiso por eliminar la sequanta objekti:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Eliminar la %(object_name)s '%(escaped_object)s' eliminus la sequanta " -"protektita objekti relatita:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ka vu volas eliminar la %(object_name)s \"%(escaped_object)s\"? Omna " -"sequanta objekti relatita eliminesos:" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "Yes, me esas certa" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "Eliminar multopla objekti" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Eliminar la selektita %(objects_name)s eliminos relatita objekti, ma vua " -"account ne havas permiso por eliminar la sequanta objekti:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Eliminar la selektita %(objects_name)s eliminos la sequanta protektita " -"objekti relatita:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ka vu volas eliminar la selektita %(objects_name)s? Omna sequanta objekti ed " -"olia relatita objekti eliminesos:" - -msgid "Change" -msgstr "Modifikar" - -msgid "Delete?" -msgstr "Ka eliminar?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Per %(filter_title)s " - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modeli en la %(name)s apliko" - -msgid "Add" -msgstr "Agregar" - -msgid "You don't have permission to edit anything." -msgstr "Vu ne havas permiso por facar modifiki." - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Nulo disponebla" - -msgid "Unknown content" -msgstr "Nekonocata kontenajo" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Vua datumaro instaluro esas defektiva. Verifikez ke la datumaro tabeli " -"kreadesis e ke la uzero havas permiso por lektar la datumaro." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "Ka vu obliviis vua pasvorto od uzer-nomo?" - -msgid "Date/time" -msgstr "Dato/horo" - -msgid "User" -msgstr "Uzero" - -msgid "Action" -msgstr "Ago" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Ica objekto ne havas chanjo-historio. Olu forsan ne agregesis per ica " -"administrala ret-situo." - -msgid "Show all" -msgstr "Montrar omni" - -msgid "Save" -msgstr "Salvar" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "Serchar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resulto" -msgstr[1] "%(counter)s resulti" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s totala" - -msgid "Save as new" -msgstr "Salvar kom nova" - -msgid "Save and add another" -msgstr "Salvar ed agregar altra" - -msgid "Save and continue editing" -msgstr "Salvar e durar la modifiko" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Danko pro vua spensita tempo en la ret-situo hodie." - -msgid "Log in again" -msgstr "Ristartar sesiono" - -msgid "Password change" -msgstr "Pasvorto chanjo" - -msgid "Your password was changed." -msgstr "Vua pasvorto chanjesis." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Por kauciono, skribez vua anta pasvorto e pos skribez vua nova pasvorto " -"dufoye por verifikar ke olu skribesis korekte." - -msgid "Change my password" -msgstr "Modifikar mea pasvorto" - -msgid "Password reset" -msgstr "Pasvorto chanjo" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Vua pasvorto chanjesis. Vu darfas startar sesiono nun." - -msgid "Password reset confirmation" -msgstr "Pasvorto chanjo konfirmo" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Skribez vua nova pasvorto dufoye por verifikar ke olu skribesis korekte." - -msgid "New password:" -msgstr "Nova pasvorto:" - -msgid "Confirm password:" -msgstr "Konfirmez pasvorto:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"La link por chanjar pasvorto ne esis valida, forsan pro ke olu ja uzesis. " -"Demandez nova pasvorto chanjo." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Se vu ne recevas mesajo, verifikez ke vu skribis la sama e-posto adreso " -"uzita por vua registro e lektez vua spam mesaji." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Vu esas recevanta ica mesajo pro ke vu demandis pasvorto chanjo por vua " -"uzero account che %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Irez al sequanta pagino e selektez nova pasvorto:" - -msgid "Your username, in case you've forgotten:" -msgstr "Vua uzernomo, se vu obliviis olu:" - -msgid "Thanks for using our site!" -msgstr "Danko pro uzar nia ret-situo!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "La equipo di %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Ka vu obliviis vua pasvorto? Skribez vua e-posto adreso infre e ni sendos " -"instrucioni por kreadar nova pasvorto." - -msgid "Email address:" -msgstr "E-postala adreso:" - -msgid "Reset my password" -msgstr "Chanjar mea pasvorto" - -msgid "All dates" -msgstr "Omna dati" - -#, python-format -msgid "Select %s" -msgstr "Selektar %s" - -#, python-format -msgid "Select %s to change" -msgstr "Selektar %s por chanjar" - -msgid "Date:" -msgstr "Dato:" - -msgid "Time:" -msgstr "Horo:" - -msgid "Lookup" -msgstr "Serchado" - -msgid "Currently:" -msgstr "Aktuale" - -msgid "Change:" -msgstr "Chanjo:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo deleted file mode 100644 index fba64da..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po deleted file mode 100644 index d7be82e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,145 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2014-10-05 20:11+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Ido (http://www.transifex.com/projects/p/django/language/" -"io/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: io\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Choose all" -msgstr "" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "" - -#, javascript-format -msgid "Chosen %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "" - -msgid "Clock" -msgstr "" - -msgid "Choose a time" -msgstr "" - -msgid "Midnight" -msgstr "" - -msgid "6 a.m." -msgstr "" - -msgid "Noon" -msgstr "" - -msgid "Cancel" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Calendar" -msgstr "" - -msgid "Yesterday" -msgstr "" - -msgid "Tomorrow" -msgstr "" - -msgid "" -"January February March April May June July August September October November " -"December" -msgstr "" - -msgid "S M T W T F S" -msgstr "" - -msgid "Show" -msgstr "" - -msgid "Hide" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.mo deleted file mode 100644 index 5532968..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.po deleted file mode 100644 index 868a452..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/django.po +++ /dev/null @@ -1,720 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Dagur Ammendrup , 2019 -# Hafsteinn Einarsson , 2011-2012 -# Jannis Leidel , 2011 -# 479d446b5da12875beba10cac54e9faf_a7ca1e7 , 2013 -# Thordur Sigurdsson , 2016-2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-14 22:38+0000\n" -"Last-Translator: Transifex Bot <>\n" -"Language-Team: Icelandic (http://www.transifex.com/django/django/language/" -"is/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: is\n" -"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Eyddi %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Get ekki eytt %(name)s" - -msgid "Are you sure?" -msgstr "Ertu viss?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Eyða völdum %(verbose_name_plural)s" - -msgid "Administration" -msgstr "Vefstjórn" - -msgid "All" -msgstr "Allt" - -msgid "Yes" -msgstr "Já" - -msgid "No" -msgstr "Nei" - -msgid "Unknown" -msgstr "Óþekkt" - -msgid "Any date" -msgstr "Allar dagsetningar" - -msgid "Today" -msgstr "Dagurinn í dag" - -msgid "Past 7 days" -msgstr "Síðustu 7 dagar" - -msgid "This month" -msgstr "Þessi mánuður" - -msgid "This year" -msgstr "Þetta ár" - -msgid "No date" -msgstr "Engin dagsetning" - -msgid "Has date" -msgstr "Hefur dagsetningu" - -msgid "Empty" -msgstr "Tómt" - -msgid "Not empty" -msgstr "Ekki tómt" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Vinsamlegast sláðu inn rétt %(username)s og lykilorð fyrir starfsmanna " -"aðgang. Takið eftir að í báðum reitum skipta há- og lágstafir máli." - -msgid "Action:" -msgstr "Aðgerð:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Bæta við öðrum %(verbose_name)s" - -msgid "Remove" -msgstr "Fjarlægja" - -msgid "Addition" -msgstr "Viðbót" - -msgid "Change" -msgstr "Breyta" - -msgid "Deletion" -msgstr "Eyðing" - -msgid "action time" -msgstr "tími aðgerðar" - -msgid "user" -msgstr "notandi" - -msgid "content type" -msgstr "efnistag" - -msgid "object id" -msgstr "kenni hlutar" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "framsetning hlutar" - -msgid "action flag" -msgstr "aðgerðarveifa" - -msgid "change message" -msgstr "breyta skilaboði" - -msgid "log entry" -msgstr "kladdafærsla" - -msgid "log entries" -msgstr "kladdafærslur" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Bætti við „%(object)s“." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Breytti „%(object)s“ — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Eyddi „%(object)s.“" - -msgid "LogEntry Object" -msgstr "LogEntry hlutur" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Bætti við {name} „{object}“." - -msgid "Added." -msgstr "Bætti við." - -msgid "and" -msgstr "og" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Breytti {fields} fyrir {name} „{object}“." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Breytti {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Eyddi {name} „{object}“." - -msgid "No fields changed." -msgstr "Engum reitum breytt." - -msgid "None" -msgstr "Ekkert" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Haltu inni „Control“, eða „Command“ á Mac til þess að velja fleira en eitt." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} „{obj}“ var bætt við." - -msgid "You may edit it again below." -msgstr "Þú mátt breyta þessu aftur hér að neðan." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} „{obj}“ hefur verið bætt við. Þú getur bætt við öðru {name} að neðan." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} „{obj}“ hefur verið breytt. Þú getur breytt því aftur að neðan." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} „{obj}“ hefur verið bætt við. Þú getur breytt því aftur að neðan." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} \"{obj}\" hefur verið breytt. Þú getur bætt við öðru {name} að neðan." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} „{obj}“ hefur verið breytt." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Hlutir verða að vera valdir til að framkvæma aðgerðir á þeim. Engu hefur " -"verið breytt." - -msgid "No action selected." -msgstr "Engin aðgerð valin." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s „%(obj)s“ var eytt." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s með ID \"%(key)s\" er ekki til. Var því mögulega eytt?" - -#, python-format -msgid "Add %s" -msgstr "Bæta við %s" - -#, python-format -msgid "Change %s" -msgstr "Breyta %s" - -#, python-format -msgid "View %s" -msgstr "Skoða %s" - -msgid "Database error" -msgstr "Gagnagrunnsvilla" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s var breytt." -msgstr[1] "%(count)s %(name)s var breytt." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Allir %(total_count)s valdir" -msgstr[1] "Allir %(total_count)s valdir" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 af %(cnt)s valin" - -#, python-format -msgid "Change history: %s" -msgstr "Breytingarsaga: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Að eyða %(class_name)s %(instance)s þyrfti að eyða eftirfarandi tengdum " -"hlutum: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django vefstjóri" - -msgid "Django administration" -msgstr "Django vefstjórn" - -msgid "Site administration" -msgstr "Vefstjóri" - -msgid "Log in" -msgstr "Skrá inn" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s vefstjórn" - -msgid "Page not found" -msgstr "Síða fannst ekki" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Því miður fannst umbeðin síða ekki." - -msgid "Home" -msgstr "Heim" - -msgid "Server error" -msgstr "Kerfisvilla" - -msgid "Server error (500)" -msgstr "Kerfisvilla (500)" - -msgid "Server Error (500)" -msgstr "Kerfisvilla (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Villa kom upp. Hún hefur verið tilkynnt til vefstjóra með tölvupósti og ætti " -"að lagast fljótlega. Þökkum þolinmæðina." - -msgid "Run the selected action" -msgstr "Keyra valda aðgerð" - -msgid "Go" -msgstr "Áfram" - -msgid "Click here to select the objects across all pages" -msgstr "Smelltu hér til að velja alla hluti" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Velja alla %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Hreinsa val" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Módel í appinu %(name)s" - -msgid "Add" -msgstr "Bæta við" - -msgid "View" -msgstr "Skoða" - -msgid "You don’t have permission to view or edit anything." -msgstr "Þú hefur ekki réttindi til að skoða eða breyta neinu." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Fyrst, settu inn notendanafn og lykilorð. Svo geturðu breytt öðrum " -"notendamöguleikum." - -msgid "Enter a username and password." -msgstr "Sláðu inn notandanafn og lykilorð." - -msgid "Change password" -msgstr "Breyta lykilorði" - -msgid "Please correct the error below." -msgstr "Vinsamlegast lagfærðu villuna fyrir neðan." - -msgid "Please correct the errors below." -msgstr "Vinsamlegast leiðréttu villurnar hér að neðan." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Settu inn nýtt lykilorð fyrir notandann %(username)s." - -msgid "Welcome," -msgstr "Velkomin(n)," - -msgid "View site" -msgstr "Skoða vef" - -msgid "Documentation" -msgstr "Skjölun" - -msgid "Log out" -msgstr "Skrá út" - -#, python-format -msgid "Add %(name)s" -msgstr "Bæta við %(name)s" - -msgid "History" -msgstr "Saga" - -msgid "View on site" -msgstr "Skoða á vef" - -msgid "Filter" -msgstr "Sía" - -msgid "Clear all filters" -msgstr "Hreinsa allar síur" - -msgid "Remove from sorting" -msgstr "Taka úr röðun" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Forgangur röðunar: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Röðun af/á" - -msgid "Delete" -msgstr "Eyða" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eyðing á %(object_name)s „%(escaped_object)s“ hefði í för með sér eyðingu á " -"tengdum hlutum en þú hefur ekki réttindi til að eyða eftirfarandi hlutum:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Að eyða %(object_name)s „%(escaped_object)s“ þyrfti að eyða eftirfarandi " -"tengdum hlutum:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ertu viss um að þú viljir eyða %(object_name)s „%(escaped_object)s“? Öllu " -"eftirfarandi verður eytt:" - -msgid "Objects" -msgstr "Hlutir" - -msgid "Yes, I’m sure" -msgstr "Já ég er viss." - -msgid "No, take me back" -msgstr "Nei, fara til baka" - -msgid "Delete multiple objects" -msgstr "Eyða mörgum hlutum." - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Að eyða völdu %(objects_name)s leiðir til þess að skyldum hlutum er eytt, en " -"þinn aðgangur hefur ekki réttindi til að eyða eftirtöldum hlutum:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Að eyða völdum %(objects_name)s myndi leiða til þess að eftirtöldum skyldum " -"hlutum yrði eytt:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ertu viss um að þú viljir eyða völdum %(objects_name)s? Öllum eftirtöldum " -"hlutum og skyldum hlutum verður eytt:" - -msgid "Delete?" -msgstr "Eyða?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Eftir %(filter_title)s " - -msgid "Summary" -msgstr "Samantekt" - -msgid "Recent actions" -msgstr "Nýlegar aðgerðir" - -msgid "My actions" -msgstr "Mínar aðgerðir" - -msgid "None available" -msgstr "Engin fáanleg" - -msgid "Unknown content" -msgstr "Óþekkt innihald" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Eitthvað er að gagnagrunnsuppsetningu. Gakktu úr skugga um að allar töflur " -"séu til staðar og að notandinn hafi aðgang að grunninum." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Þú ert skráður inn sem %(username)s, en ert ekki með réttindi að þessari " -"síðu. Viltu skrá þig inn sem annar notandi?" - -msgid "Forgotten your password or username?" -msgstr "Gleymt notandanafn eða lykilorð?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Date/time" -msgstr "Dagsetning/tími" - -msgid "User" -msgstr "Notandi" - -msgid "Action" -msgstr "Aðgerð" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Þessi hlutur hefur enga breytingasögu. Hann var líklega ekki búinn til á " -"þessu stjórnunarsvæði." - -msgid "Show all" -msgstr "Sýna allt" - -msgid "Save" -msgstr "Vista" - -msgid "Popup closing…" -msgstr "Sprettigluggi lokast..." - -msgid "Search" -msgstr "Leita" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s niðurstaða" -msgstr[1] "%(counter)s niðurstöður" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s í heildina" - -msgid "Save as new" -msgstr "Vista sem nýtt" - -msgid "Save and add another" -msgstr "Vista og búa til nýtt" - -msgid "Save and continue editing" -msgstr "Vista og halda áfram að breyta" - -msgid "Save and view" -msgstr "Vista og skoða" - -msgid "Close" -msgstr "Loka" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Breyta völdu %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Bæta við %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Eyða völdu %(model)s" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Takk fyrir að verja tíma í vefsíðuna í dag." - -msgid "Log in again" -msgstr "Skráðu þig inn aftur" - -msgid "Password change" -msgstr "Breyta lykilorði" - -msgid "Your password was changed." -msgstr "Lykilorði þínu var breytt" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Vinsamlegast skrifaðu gamla lykilorðið þitt til öryggis. Sláðu svo nýja " -"lykilorðið tvisvar inn svo að hægt sé að ganga úr skugga um að þú hafir ekki " -"gert innsláttarvillu." - -msgid "Change my password" -msgstr "Breyta lykilorðinu mínu" - -msgid "Password reset" -msgstr "Endurstilla lykilorð" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Lykilorðið var endurstillt. Þú getur núna skráð þig inn á vefsvæðið." - -msgid "Password reset confirmation" -msgstr "Staðfesting endurstillingar lykilorðs" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Vinsamlegast settu inn nýja lykilorðið tvisvar til að forðast " -"innsláttarvillur." - -msgid "New password:" -msgstr "Nýtt lykilorð:" - -msgid "Confirm password:" -msgstr "Staðfestu lykilorð:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Endurstilling lykilorðs tókst ekki. Slóðin var ógild. Hugsanlega hefur hún " -"nú þegar verið notuð. Vinsamlegast biddu um nýja endurstillingu." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Við höfum sent þér tölvupóst með leiðbeiningum til að endurstilla lykilorðið " -"þitt, sé aðgangur til með netfanginu sem þú slóst inn. Þú ættir að fá " -"leiðbeiningarnar fljótlega. " - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Ef þú færð ekki tölvupóstinn, gakktu úr skugga um að netfangið sem þú slóst " -"inn sé það sama og þú notaðir til að stofna aðganginn og að það hafi ekki " -"lent í spamsíu." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Þú ert að fá þennan tölvupóst því þú baðst um endurstillingu á lykilorði " -"fyrir aðganginn þinn á %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Vinsamlegast farðu á eftirfarandi síðu og veldu nýtt lykilorð:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Notandanafnið þitt ef þú skyldir hafa gleymt því:" - -msgid "Thanks for using our site!" -msgstr "Takk fyrir að nota vefinn okkar!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s hópurinn" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Hefurðu gleymt lykilorðinu þínu? Sláðu inn netfangið þitt hér að neðan og " -"við sendum þér tölvupóst með leiðbeiningum til að setja nýtt lykilorð. " - -msgid "Email address:" -msgstr "Netfang:" - -msgid "Reset my password" -msgstr "Endursstilla lykilorðið mitt" - -msgid "All dates" -msgstr "Allar dagsetningar" - -#, python-format -msgid "Select %s" -msgstr "Veldu %s" - -#, python-format -msgid "Select %s to change" -msgstr "Veldu %s til að breyta" - -#, python-format -msgid "Select %s to view" -msgstr "Veldu %s til að skoða" - -msgid "Date:" -msgstr "Dagsetning:" - -msgid "Time:" -msgstr "Tími:" - -msgid "Lookup" -msgstr "Fletta upp" - -msgid "Currently:" -msgstr "Eins og er:" - -msgid "Change:" -msgstr "Breyta:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 29c2bc1..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po deleted file mode 100644 index 5ddb17c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,267 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# gudbergur , 2012 -# Hafsteinn Einarsson , 2011-2012 -# Jannis Leidel , 2011 -# Matt R, 2018 -# Thordur Sigurdsson , 2016-2017,2020-2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-06 17:37+0000\n" -"Last-Translator: Thordur Sigurdsson \n" -"Language-Team: Icelandic (http://www.transifex.com/django/django/language/" -"is/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: is\n" -"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Fáanleg %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Þetta er listi af því %s sem er í boði. Þú getur ákveðið hluti með því að " -"velja þá í boxinu að neðan og ýta svo á \"Velja\" örina milli boxana tveggja." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Skrifaðu í boxið til að sía listann af því %s sem er í boði." - -msgid "Filter" -msgstr "Sía" - -msgid "Choose all" -msgstr "Velja öll" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Smelltu til að velja allt %s í einu." - -msgid "Choose" -msgstr "Veldu" - -msgid "Remove" -msgstr "Fjarlægja" - -#, javascript-format -msgid "Chosen %s" -msgstr "Valin %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Þetta er listinn af völdu %s. Þú getur fjarlægt hluti með því að velja þá í " -"boxinu að neðan og ýta svo á \"Eyða\" örina á milli boxana tveggja." - -msgid "Remove all" -msgstr "Eyða öllum" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Smelltu til að fjarlægja allt valið %s í einu." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] " %(sel)s í %(cnt)s valin" -msgstr[1] " %(sel)s í %(cnt)s valin" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Enn eru óvistaðar breytingar í reitum. Ef þú keyrir aðgerð munu breytingar " -"ekki verða vistaðar." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Þú hefur valið aðgerð en hefur ekki vistað breytingar á reitum. Vinsamlegast " -"veldu 'Í lagi' til að vista. Þú þarft að endurkeyra aðgerðina." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Þú hefur valið aðgerð en hefur ekki gert breytingar á reitum. Þú ert líklega " -"að leita að 'Fara' hnappnum frekar en 'Vista' hnappnum." - -msgid "Now" -msgstr "Núna" - -msgid "Midnight" -msgstr "Miðnætti" - -msgid "6 a.m." -msgstr "6 f.h." - -msgid "Noon" -msgstr "Hádegi" - -msgid "6 p.m." -msgstr "6 e.h." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Athugaðu að þú ert %s klukkustund á undan tíma vefþjóns." -msgstr[1] "Athugaðu að þú ert %s klukkustundum á undan tíma vefþjóns." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Athugaðu að þú ert %s klukkustund á eftir tíma vefþjóns." -msgstr[1] "Athugaðu að þú ert %s klukkustundum á eftir tíma vefþjóns." - -msgid "Choose a Time" -msgstr "Veldu tíma" - -msgid "Choose a time" -msgstr "Veldu tíma" - -msgid "Cancel" -msgstr "Hætta við" - -msgid "Today" -msgstr "Í dag" - -msgid "Choose a Date" -msgstr "Veldu dagsetningu" - -msgid "Yesterday" -msgstr "Í gær" - -msgid "Tomorrow" -msgstr "Á morgun" - -msgid "January" -msgstr "janúar" - -msgid "February" -msgstr "febrúar" - -msgid "March" -msgstr "mars" - -msgid "April" -msgstr "apríl" - -msgid "May" -msgstr "maí" - -msgid "June" -msgstr "júní" - -msgid "July" -msgstr "júlí" - -msgid "August" -msgstr "ágúst" - -msgid "September" -msgstr "september" - -msgid "October" -msgstr "október" - -msgid "November" -msgstr "nóvember" - -msgid "December" -msgstr "desember" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Maí" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jún" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Júl" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Ágú" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nóv" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Des" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "S" - -msgctxt "one letter Monday" -msgid "M" -msgstr "M" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Þ" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "M" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "F" - -msgctxt "one letter Friday" -msgid "F" -msgstr "F" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "L" - -msgid "Show" -msgstr "Sýna" - -msgid "Hide" -msgstr "Fela" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.mo deleted file mode 100644 index aef74f5..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.po deleted file mode 100644 index a6ab010..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/django.po +++ /dev/null @@ -1,775 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# 0d21a39e384d88c2313b89b5042c04cb, 2017 -# Carlo Miron , 2018-2019 -# Davide Targa , 2021 -# Denis Darii , 2011 -# Flavio Curella , 2013 -# Jannis Leidel , 2011 -# Luciano De Falco Alfano, 2016 -# Marco Bonetti, 2014 -# Mirco Grillo , 2018,2020 -# Nicola Larosa , 2013 -# palmux , 2014-2015,2021 -# Paolo Melchiorre , 2022-2023 -# Mattia Procopio , 2015 -# Stefano Brentegani , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Paolo Melchiorre , 2022-2023\n" -"Language-Team: Italian (http://www.transifex.com/django/django/language/" -"it/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: it\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Cancella %(verbose_name_plural)s selezionati" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Cancellati/e con successo %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Impossibile cancellare %(name)s " - -msgid "Are you sure?" -msgstr "Confermi?" - -msgid "Administration" -msgstr "Amministrazione" - -msgid "All" -msgstr "Tutti" - -msgid "Yes" -msgstr "Sì" - -msgid "No" -msgstr "No" - -msgid "Unknown" -msgstr "Sconosciuto" - -msgid "Any date" -msgstr "Qualsiasi data" - -msgid "Today" -msgstr "Oggi" - -msgid "Past 7 days" -msgstr "Ultimi 7 giorni" - -msgid "This month" -msgstr "Questo mese" - -msgid "This year" -msgstr "Quest'anno" - -msgid "No date" -msgstr "Senza data" - -msgid "Has date" -msgstr "Ha la data" - -msgid "Empty" -msgstr "Vuoto" - -msgid "Not empty" -msgstr "Non vuoto" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Inserisci %(username)s e password corretti per un account di staff. Nota che " -"entrambi i campi distinguono maiuscole e minuscole." - -msgid "Action:" -msgstr "Azione:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Aggiungi un altro %(verbose_name)s." - -msgid "Remove" -msgstr "Elimina" - -msgid "Addition" -msgstr "Aggiunta " - -msgid "Change" -msgstr "Modifica" - -msgid "Deletion" -msgstr "Eliminazione" - -msgid "action time" -msgstr "momento dell'azione" - -msgid "user" -msgstr "utente" - -msgid "content type" -msgstr "content type" - -msgid "object id" -msgstr "id dell'oggetto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "rappr. dell'oggetto" - -msgid "action flag" -msgstr "flag di azione" - -msgid "change message" -msgstr "messaggio di modifica" - -msgid "log entry" -msgstr "voce di log" - -msgid "log entries" -msgstr "voci di log" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\" aggiunto." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "%(object)s%(changes)s modificati" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "\"%(object)s\" cancellato." - -msgid "LogEntry Object" -msgstr "Oggetto LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Aggiunto {name} \"{object}\"." - -msgid "Added." -msgstr "Aggiunto." - -msgid "and" -msgstr "e" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Modificati {fields} per {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Modificati {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Eliminato {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Nessun campo modificato." - -msgid "None" -msgstr "Nessuno" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Il {name} \"{obj}\" è stato aggiunto con successo." - -msgid "You may edit it again below." -msgstr "Puoi modificarlo di nuovo qui sotto." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"Il {name} \"{obj}\" è stato aggiunto con successo. Puoi aggiungere un altro " -"{name} qui sotto." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"Il {name} \"{obj}\" è stato modificato con successo. Puoi modificarlo " -"nuovamente qui sotto." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"Il {name} \"{obj}\" è stato aggiunto con successo. Puoi modificarlo " -"nuovamente qui sotto." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"Il {name} \"{obj}\" è stato modificato con successo. Puoi aggiungere un " -"altro {name} qui sotto." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "Il {name} \"{obj}\" è stato modificato con successo." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Occorre selezionare degli oggetti per potervi eseguire azioni. Nessun " -"oggetto è stato cambiato." - -msgid "No action selected." -msgstr "Nessuna azione selezionata." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s \"%(obj)s\" cancellato correttamente." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"%(name)s con ID \"%(key)s\" non esiste. Probabilmente è stato cancellato?" - -#, python-format -msgid "Add %s" -msgstr "Aggiungi %s" - -#, python-format -msgid "Change %s" -msgstr "Modifica %s" - -#, python-format -msgid "View %s" -msgstr "Vista %s" - -msgid "Database error" -msgstr "Errore del database" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s modificato correttamente." -msgstr[1] "%(count)s %(name)s modificati correttamente." -msgstr[2] "%(count)s %(name)s modificati correttamente." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s selezionato" -msgstr[1] "Tutti i %(total_count)s selezionati" -msgstr[2] "Tutti i %(total_count)s selezionati" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 di %(cnt)s selezionati" - -#, python-format -msgid "Change history: %s" -msgstr "Tracciato delle modifiche: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"La cancellazione di %(class_name)s %(instance)s richiederebbe l'eliminazione " -"dei seguenti oggetti protetti correlati: %(related_objects)s" - -msgid "Django site admin" -msgstr "Amministrazione sito Django" - -msgid "Django administration" -msgstr "Amministrazione Django" - -msgid "Site administration" -msgstr "Amministrazione sito" - -msgid "Log in" -msgstr "Accedi" - -#, python-format -msgid "%(app)s administration" -msgstr "Amministrazione %(app)s" - -msgid "Page not found" -msgstr "Pagina non trovata" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Spiacenti, ma la pagina richiesta non è stata trovata." - -msgid "Home" -msgstr "Pagina iniziale" - -msgid "Server error" -msgstr "Errore del server" - -msgid "Server error (500)" -msgstr "Errore del server (500)" - -msgid "Server Error (500)" -msgstr "Errore del server (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Si è verificato un errore. Gli amministratori del sito ne sono stati " -"informati per email, e vi porranno rimedio a breve. Grazie per la vostra " -"pazienza." - -msgid "Run the selected action" -msgstr "Esegui l'azione selezionata" - -msgid "Go" -msgstr "Vai" - -msgid "Click here to select the objects across all pages" -msgstr "Clicca qui per selezionare gli oggetti da tutte le pagine." - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Seleziona tutti %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Annulla la selezione" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelli nell'applicazione %(name)s" - -msgid "Add" -msgstr "Aggiungi" - -msgid "View" -msgstr "Vista" - -msgid "You don’t have permission to view or edit anything." -msgstr "Non hai i permessi per visualizzare o modificare nulla." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Prima di tutto inserisci nome utente e password. Poi potrai modificare le " -"altre impostazioni utente." - -msgid "Enter a username and password." -msgstr "Inserisci nome utente e password." - -msgid "Change password" -msgstr "Modifica password" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Si prega di correggere l'errore sottostante." -msgstr[1] "Si prega di correggere gli errori sottostanti." -msgstr[2] "Si prega di correggere gli errori sottostanti." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Inserisci una nuova password per l'utente %(username)s." - -msgid "Skip to main content" -msgstr "Passa al contenuto principale" - -msgid "Welcome," -msgstr "Benvenuto," - -msgid "View site" -msgstr "Visualizza il sito" - -msgid "Documentation" -msgstr "Documentazione" - -msgid "Log out" -msgstr "Annulla l'accesso" - -msgid "Breadcrumbs" -msgstr "Breadcrumbs" - -#, python-format -msgid "Add %(name)s" -msgstr "Aggiungi %(name)s" - -msgid "History" -msgstr "Storia" - -msgid "View on site" -msgstr "Vedi sul sito" - -msgid "Filter" -msgstr "Filtra" - -msgid "Clear all filters" -msgstr "Cancella tutti i filtri" - -msgid "Remove from sorting" -msgstr "Elimina dall'ordinamento" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Priorità d'ordinamento: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Abilita/disabilita ordinamento" - -msgid "Toggle theme (current theme: auto)" -msgstr "Cambia tema (tema corrente: auto)" - -msgid "Toggle theme (current theme: light)" -msgstr "Cambia tema (tema corrente: chiaro)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Cambia tema (tema corrente: scuro)" - -msgid "Delete" -msgstr "Cancella" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"La cancellazione di %(object_name)s '%(escaped_object)s' causerebbe la " -"cancellazione di oggetti collegati, ma questo account non ha i permessi per " -"cancellare i seguenti tipi di oggetti:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"La cancellazione di %(object_name)s '%(escaped_object)s' richiederebbe " -"l'eliminazione dei seguenti oggetti protetti correlati:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Sicuro di voler cancellare %(object_name)s \"%(escaped_object)s\"? Tutti i " -"seguenti oggetti collegati verranno cancellati:" - -msgid "Objects" -msgstr "Oggetti" - -msgid "Yes, I’m sure" -msgstr "Sì, sono sicuro" - -msgid "No, take me back" -msgstr "No, torna indietro" - -msgid "Delete multiple objects" -msgstr "Cancella più oggetti" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Per eliminare l'elemento %(objects_name)s selezionato è necessario rimuovere " -"anche gli oggetti correlati, ma il tuo account non dispone " -"dell'autorizzazione a eliminare i seguenti tipi di oggetti:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"L'eliminazione dell'elemento %(objects_name)s selezionato richiederebbe la " -"rimozione dei seguenti oggetti protetti correlati:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Confermi la cancellazione dell'elemento %(objects_name)s selezionato? " -"Saranno rimossi tutti i seguenti oggetti e le loro voci correlate:" - -msgid "Delete?" -msgstr "Cancellare?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Per %(filter_title)s " - -msgid "Summary" -msgstr "Riepilogo" - -msgid "Recent actions" -msgstr "Azioni recenti" - -msgid "My actions" -msgstr "Le mie azioni" - -msgid "None available" -msgstr "Nulla disponibile" - -msgid "Unknown content" -msgstr "Contenuto sconosciuto" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Qualcosa non è andato a buon fine nell'installazione del database. " -"Assicurati che le tabelle del database siano state create, e che il database " -"sia leggibile dall'utente corretto." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Ti sei autenticato come %(username)s, ma non sei autorizzato ad accedere a " -"questa pagina. Vorresti autenticarti con un altro account?" - -msgid "Forgotten your password or username?" -msgstr "Hai dimenticato la password o lo username?" - -msgid "Toggle navigation" -msgstr "Abilita/disabilita navigazione" - -msgid "Sidebar" -msgstr "Barra laterale" - -msgid "Start typing to filter…" -msgstr "Inizia a scrivere per filtrare..." - -msgid "Filter navigation items" -msgstr "Filtra gli oggetti di navigazione" - -msgid "Date/time" -msgstr "Data/ora" - -msgid "User" -msgstr "Utente" - -msgid "Action" -msgstr "Azione" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "voce" -msgstr[1] "voci" -msgstr[2] "voci" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Questo oggetto non ha cambiamenti registrati. Probabilmente non è stato " -"creato con questo sito di amministrazione." - -msgid "Show all" -msgstr "Mostra tutto" - -msgid "Save" -msgstr "Salva" - -msgid "Popup closing…" -msgstr "Chiusura popup..." - -msgid "Search" -msgstr "Cerca" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s risultato" -msgstr[1] "%(counter)s risultati" -msgstr[2] "%(counter)s risultati" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s in tutto" - -msgid "Save as new" -msgstr "Salva come nuovo" - -msgid "Save and add another" -msgstr "Salva e aggiungi un altro" - -msgid "Save and continue editing" -msgstr "Salva e continua le modifiche" - -msgid "Save and view" -msgstr "Salva e visualizza" - -msgid "Close" -msgstr "Chiudi" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Modifica la selezione %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Aggiungi un altro %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Elimina la selezione %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Visualizza il %(model)s selezionato" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Grazie per avere trascorso del tempo di qualità sul sito oggi." - -msgid "Log in again" -msgstr "Accedi di nuovo" - -msgid "Password change" -msgstr "Cambio password" - -msgid "Your password was changed." -msgstr "La tua password è stata cambiata." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Inserisci la password attuale, per ragioni di sicurezza, e poi la nuova " -"password due volte, per verificare di averla scritta correttamente." - -msgid "Change my password" -msgstr "Modifica la mia password" - -msgid "Password reset" -msgstr "Reimposta la password" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "La tua password è stata impostata. Ora puoi effettuare l'accesso." - -msgid "Password reset confirmation" -msgstr "Conferma reimpostazione password" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Inserisci la nuova password due volte, per verificare di averla scritta " -"correttamente." - -msgid "New password:" -msgstr "Nuova password:" - -msgid "Confirm password:" -msgstr "Conferma la password:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Il link per la reimpostazione della password non era valido, forse perché " -"era già stato usato. Richiedi una nuova reimpostazione della password." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Abbiamo inviato istruzioni per impostare la password, se esiste un account " -"valido all'indirizzo email che hai indicato. Dovresti riceverle a breve." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Se non ricevi un messaggio email, accertati di aver inserito l'indirizzo con " -"cui ti sei registrato, e controlla la cartella dello spam." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Ricevi questa mail perché hai richiesto di reimpostare la password del tuo " -"account utente presso %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Vai alla pagina seguente e scegli una nuova password:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Il tuo nome utente, in caso tu l'abbia dimenticato:" - -msgid "Thanks for using our site!" -msgstr "Grazie per aver usato il nostro sito!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Il team di %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Password dimenticata? Inserisci il tuo indirizzo email qui sotto e ti " -"invieremo le istruzioni per impostarne una nuova." - -msgid "Email address:" -msgstr "Indirizzo email:" - -msgid "Reset my password" -msgstr "Reimposta la mia password" - -msgid "All dates" -msgstr "Tutte le date" - -#, python-format -msgid "Select %s" -msgstr "Scegli %s" - -#, python-format -msgid "Select %s to change" -msgstr "Scegli %s da modificare" - -#, python-format -msgid "Select %s to view" -msgstr "Seleziona %s per visualizzarlo" - -msgid "Date:" -msgstr "Data:" - -msgid "Time:" -msgstr "Ora:" - -msgid "Lookup" -msgstr "Consultazione" - -msgid "Currently:" -msgstr "Attualmente:" - -msgid "Change:" -msgstr "Modifica:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 5b0c281..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po deleted file mode 100644 index 73a00fd..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,287 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Denis Darii , 2011 -# Jannis Leidel , 2011 -# Luciano De Falco Alfano, 2016 -# Marco Bonetti, 2014 -# Mirco Grillo , 2020 -# Nicola Larosa , 2011-2012 -# palmux , 2015,2021 -# Paolo Melchiorre , 2022-2023 -# Stefano Brentegani , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Paolo Melchiorre , 2022-2023\n" -"Language-Team: Italian (http://www.transifex.com/django/django/language/" -"it/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: it\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s disponibili" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Questa è la lista dei %s disponibili. Puoi sceglierne alcuni selezionandoli " -"nella casella qui sotto e poi facendo clic sulla freccia \"Scegli\" tra le " -"due caselle." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Scrivi in questa casella per filtrare l'elenco dei %s disponibili." - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Scegli tutto" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Fai clic per scegliere tutti i %s in una volta." - -msgid "Choose" -msgstr "Scegli" - -msgid "Remove" -msgstr "Elimina" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s scelti" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Questa è la lista dei %s scelti. Puoi eliminarne alcuni selezionandoli nella " -"casella qui sotto e poi facendo clic sulla freccia \"Elimina\" tra le due " -"caselle." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Scrivi in questa casella per filtrare l'elenco dei %s selezionati." - -msgid "Remove all" -msgstr "Elimina tutti" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Fai clic per eliminare tutti i %s in una volta." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s opzione selezionata non visibile" -msgstr[1] "%s opzioni selezionate non visibili" -msgstr[2] "%s opzioni selezionate non visibili" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s di %(cnt)s selezionato" -msgstr[1] "%(sel)s di %(cnt)s selezionati" -msgstr[2] "%(sel)s di %(cnt)s selezionati" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Ci sono aggiornamenti non salvati su singoli campi modificabili. Se esegui " -"un'azione, le modifiche non salvate andranno perse." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Hai selezionato un'azione, ma non hai ancora salvato le modifiche apportate " -"a campi singoli. Fai clic su OK per salvare. Poi dovrai rieseguire l'azione." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Hai selezionato un'azione e non hai ancora apportato alcuna modifica ai " -"campi singoli. Probabilmente stai cercando il pulsante Vai, invece di Salva." - -msgid "Now" -msgstr "Adesso" - -msgid "Midnight" -msgstr "Mezzanotte" - -msgid "6 a.m." -msgstr "6 del mattino" - -msgid "Noon" -msgstr "Mezzogiorno" - -msgid "6 p.m." -msgstr "6 del pomeriggio" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Nota: Sei %s ora in anticipo rispetto al server." -msgstr[1] "Nota: Sei %s ore in anticipo rispetto al server." -msgstr[2] "Nota: Sei %s ore in anticipo rispetto al server." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Nota: Sei %s ora in ritardo rispetto al server." -msgstr[1] "Nota: Sei %s ore in ritardo rispetto al server." -msgstr[2] "Nota: Sei %s ore in ritardo rispetto al server." - -msgid "Choose a Time" -msgstr "Scegli un orario" - -msgid "Choose a time" -msgstr "Scegli un orario" - -msgid "Cancel" -msgstr "Annulla" - -msgid "Today" -msgstr "Oggi" - -msgid "Choose a Date" -msgstr "Scegli una data" - -msgid "Yesterday" -msgstr "Ieri" - -msgid "Tomorrow" -msgstr "Domani" - -msgid "January" -msgstr "Gennaio" - -msgid "February" -msgstr "Febbraio" - -msgid "March" -msgstr "Marzo" - -msgid "April" -msgstr "Aprile" - -msgid "May" -msgstr "Maggio" - -msgid "June" -msgstr "Giugno" - -msgid "July" -msgstr "Luglio" - -msgid "August" -msgstr "Agosto" - -msgid "September" -msgstr "Settembre" - -msgid "October" -msgstr "Ottobre" - -msgid "November" -msgstr "Novembre" - -msgid "December" -msgstr "Dicembre" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Gen" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Mag" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Giu" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Lug" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Ago" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Set" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Ott" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dic" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "L" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Ma" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Me" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "G" - -msgctxt "one letter Friday" -msgid "F" -msgstr "V" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Mostra" - -msgid "Hide" -msgstr "Nascondi" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo deleted file mode 100644 index 59b5667..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.po deleted file mode 100644 index 26feab5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/django.po +++ /dev/null @@ -1,751 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# akiyoko , 2020 -# Claude Paroz , 2016 -# Goto Hayato , 2019 -# Hiroki Sawano, 2022 -# Jannis Leidel , 2011 -# Masaya, 2023 -# Shinichi Katsumata , 2019 -# Shinya Okano , 2012-2018,2021,2023 -# Taichi Taniguchi, 2022 -# Takuro Onoue , 2020 -# Takuya N , 2020 -# Tetsuya Morimoto , 2011 -# 上田慶祐 , 2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Shinya Okano , 2012-2018,2021,2023\n" -"Language-Team: Japanese (http://www.transifex.com/django/django/language/" -"ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "選択された %(verbose_name_plural)s の削除" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d 個の %(items)s を削除しました。" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s が削除できません" - -msgid "Are you sure?" -msgstr "よろしいですか?" - -msgid "Administration" -msgstr "管理" - -msgid "All" -msgstr "全て" - -msgid "Yes" -msgstr "はい" - -msgid "No" -msgstr "いいえ" - -msgid "Unknown" -msgstr "不明" - -msgid "Any date" -msgstr "いつでも" - -msgid "Today" -msgstr "今日" - -msgid "Past 7 days" -msgstr "過去 7 日間" - -msgid "This month" -msgstr "今月" - -msgid "This year" -msgstr "今年" - -msgid "No date" -msgstr "日付なし" - -msgid "Has date" -msgstr "日付あり" - -msgid "Empty" -msgstr "空" - -msgid "Not empty" -msgstr "空でない" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"スタッフアカウントの正しい%(username)sとパスワードを入力してください。どちら" -"のフィールドも大文字と小文字は区別されます。" - -msgid "Action:" -msgstr "操作:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "%(verbose_name)s の追加" - -msgid "Remove" -msgstr "削除" - -msgid "Addition" -msgstr "追加" - -msgid "Change" -msgstr "変更" - -msgid "Deletion" -msgstr "削除" - -msgid "action time" -msgstr "操作時刻" - -msgid "user" -msgstr "ユーザー" - -msgid "content type" -msgstr "コンテンツタイプ" - -msgid "object id" -msgstr "オブジェクト ID" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "オブジェクトの文字列表現" - -msgid "action flag" -msgstr "操作種別" - -msgid "change message" -msgstr "変更メッセージ" - -msgid "log entry" -msgstr "ログエントリー" - -msgid "log entries" -msgstr "ログエントリー" - -#, python-format -msgid "Added “%(object)s”." -msgstr "“%(object)s” を追加しました。" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "“%(object)s” を変更しました — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "“%(object)s” を削除しました。" - -msgid "LogEntry Object" -msgstr "ログエントリー オブジェクト" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} “{object}” を追加しました。" - -msgid "Added." -msgstr "追加されました。" - -msgid "and" -msgstr "と" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{name} “{object}” の {fields} を変更しました。" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} を変更しました。" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} “{object}” を削除しました。" - -msgid "No fields changed." -msgstr "変更はありませんでした。" - -msgid "None" -msgstr "None" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"複数選択するときには Control キーを押したまま選択してください。Mac は " -"Command キーを使ってください" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” を追加しました。" - -msgid "You may edit it again below." -msgstr "以下で再度編集できます。" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "{name} “{obj}” を追加しました。別の {name} を以下から追加できます。" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} “{obj}” を変更しました。以下から再度編集できます。" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} “{obj}” を追加しました。続けて編集できます。" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} “{obj}” を変更しました。 別の {name} を以下から追加できます。" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” を変更しました。" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"操作を実行するには、対象を選択する必要があります。何も変更されませんでした。" - -msgid "No action selected." -msgstr "操作が選択されていません。" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” を削除しました。" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"ID “%(key)s” の%(name)sは見つかりませんでした。削除された可能性があります。" - -#, python-format -msgid "Add %s" -msgstr "%s を追加" - -#, python-format -msgid "Change %s" -msgstr "%s を変更" - -#, python-format -msgid "View %s" -msgstr "%sを表示" - -msgid "Database error" -msgstr "データベースエラー" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s 個の %(name)s を変更しました。" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s 個選択されました" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s個の内ひとつも選択されていません" - -#, python-format -msgid "Change history: %s" -msgstr "変更履歴: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(class_name)s %(instance)s を削除するには以下の保護された関連オブジェクトを" -"削除することになります: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django サイト管理" - -msgid "Django administration" -msgstr "Django 管理サイト" - -msgid "Site administration" -msgstr "サイト管理" - -msgid "Log in" -msgstr "ログイン" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s 管理" - -msgid "Page not found" -msgstr "ページが見つかりません" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "申し訳ありませんが、お探しのページは見つかりませんでした。" - -msgid "Home" -msgstr "ホーム" - -msgid "Server error" -msgstr "サーバーエラー" - -msgid "Server error (500)" -msgstr "サーバーエラー (500)" - -msgid "Server Error (500)" -msgstr "サーバーエラー (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"エラーが発生しました。サイト管理者にメールで報告されたので、修正されるまでし" -"ばらくお待ちください。" - -msgid "Run the selected action" -msgstr "選択された操作を実行" - -msgid "Go" -msgstr "実行" - -msgid "Click here to select the objects across all pages" -msgstr "全ページの項目を選択するにはここをクリック" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "%(total_count)s個ある%(module_name)s を全て選択" - -msgid "Clear selection" -msgstr "選択を解除" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s アプリケーション内のモデル" - -msgid "Add" -msgstr "追加" - -msgid "View" -msgstr "表示" - -msgid "You don’t have permission to view or edit anything." -msgstr "表示または変更のためのパーミッションがありません。" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"まずユーザー名とパスワードを登録してください。その後詳細情報が編集可能になり" -"ます。" - -msgid "Enter a username and password." -msgstr "ユーザー名とパスワードを入力してください。" - -msgid "Change password" -msgstr "パスワードの変更" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "下記のエラーを修正してください。" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"%(username)sさんの新しいパスワードを入力してください。" - -msgid "Skip to main content" -msgstr "スキップしてメインコンテンツへ" - -msgid "Welcome," -msgstr "ようこそ" - -msgid "View site" -msgstr "サイトを表示" - -msgid "Documentation" -msgstr "ドキュメント" - -msgid "Log out" -msgstr "ログアウト" - -msgid "Breadcrumbs" -msgstr "パンくずリスト" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s を追加" - -msgid "History" -msgstr "履歴" - -msgid "View on site" -msgstr "サイト上で表示" - -msgid "Filter" -msgstr "フィルター" - -msgid "Clear all filters" -msgstr "全てのフィルターを解除" - -msgid "Remove from sorting" -msgstr "ソート条件から外します" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "ソート優先順位: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "昇順降順を切り替えます" - -msgid "Toggle theme (current theme: auto)" -msgstr "テーマを切り替え (現在のテーマ: 自動)" - -msgid "Toggle theme (current theme: light)" -msgstr "テーマを切り替え (現在のテーマ: ライト)" - -msgid "Toggle theme (current theme: dark)" -msgstr "テーマを切り替え (現在のテーマ: ダーク)" - -msgid "Delete" -msgstr "削除" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' の削除時に関連づけられたオブジェクトも削" -"除しようとしましたが、あなたのアカウントには以下のタイプのオブジェクトを削除" -"するパーミッションがありません:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' を削除するには以下の保護された関連オブ" -"ジェクトを削除することになります:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"%(object_name)s \"%(escaped_object)s\"を削除しますか? 関連づけられている以下" -"のオブジェクトも全て削除されます:" - -msgid "Objects" -msgstr "オブジェクト" - -msgid "Yes, I’m sure" -msgstr "はい、大丈夫です" - -msgid "No, take me back" -msgstr "戻る" - -msgid "Delete multiple objects" -msgstr "複数のオブジェクトを削除します" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"選択した %(objects_name)s を削除すると関連するオブジェクトも削除しますが、あ" -"なたのアカウントは以下のオブジェクト型を削除する権限がありません:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"選択した %(objects_name)s を削除すると以下の保護された関連オブジェクトを削除" -"することになります:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"本当に選択した %(objects_name)s を削除しますか? 以下の全てのオブジェクトと関" -"連する要素が削除されます:" - -msgid "Delete?" -msgstr "削除しますか?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s で絞り込む" - -msgid "Summary" -msgstr "概要" - -msgid "Recent actions" -msgstr "最近行った操作" - -msgid "My actions" -msgstr "自分の操作" - -msgid "None available" -msgstr "利用不可" - -msgid "Unknown content" -msgstr "不明なコンテント" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"データベースのインストールに問題があります。適切なデータベーステーブルが作ら" -"れているか、適切なユーザーがデータベースを読み込み可能かを確認してください。" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"あなたは %(username)s として認証されましたが、このページへのアクセス許可があ" -"りません。他のアカウントでログインしますか?" - -msgid "Forgotten your password or username?" -msgstr "パスワードまたはユーザー名を忘れましたか?" - -msgid "Toggle navigation" -msgstr "ナビゲーションを切り替えます" - -msgid "Sidebar" -msgstr "サイドバー" - -msgid "Start typing to filter…" -msgstr "絞り込みの入力..." - -msgid "Filter navigation items" -msgstr "ナビゲーション項目の絞り込み" - -msgid "Date/time" -msgstr "日付/時刻" - -msgid "User" -msgstr "ユーザー" - -msgid "Action" -msgstr "操作" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "エントリー" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"このオブジェクトには変更履歴がありません。おそらくこの管理サイトで追加したも" -"のではありません。" - -msgid "Show all" -msgstr "全件表示" - -msgid "Save" -msgstr "保存" - -msgid "Popup closing…" -msgstr "ポップアップを閉じています..." - -msgid "Search" -msgstr "検索" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "結果 %(counter)s" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "全 %(full_result_count)s 件" - -msgid "Save as new" -msgstr "新規保存" - -msgid "Save and add another" -msgstr "保存してもう一つ追加" - -msgid "Save and continue editing" -msgstr "保存して編集を続ける" - -msgid "Save and view" -msgstr "保存して表示" - -msgid "Close" -msgstr "閉じる" - -#, python-format -msgid "Change selected %(model)s" -msgstr "選択された %(model)s の変更" - -#, python-format -msgid "Add another %(model)s" -msgstr "%(model)s の追加" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "選択された %(model)s を削除" - -#, python-format -msgid "View selected %(model)s" -msgstr "選択された %(model)s を表示" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "ご利用ありがとうございました。" - -msgid "Log in again" -msgstr "もう一度ログイン" - -msgid "Password change" -msgstr "パスワードの変更" - -msgid "Your password was changed." -msgstr "あなたのパスワードは変更されました" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"セキュリティ上の理由から元のパスワードの入力が必要です。新しいパスワードは正" -"しく入力したか確認できるように二度入力してください。" - -msgid "Change my password" -msgstr "パスワードの変更" - -msgid "Password reset" -msgstr "パスワードをリセット" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "パスワードがセットされました。ログインしてください。" - -msgid "Password reset confirmation" -msgstr "パスワードリセットの確認" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "確認のために、新しいパスワードを二回入力してください。" - -msgid "New password:" -msgstr "新しいパスワード:" - -msgid "Confirm password:" -msgstr "新しいパスワード (確認用) :" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"パスワードリセットのリンクが不正です。おそらくこのリンクは既に使われていま" -"す。もう一度パスワードリセットしてください。" - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"入力されたメールアドレスを持つアカウントが存在する場合、パスワードを設定する" -"ためのメールを送信しました。すぐに届くはずです。" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"メールが届かない場合は、登録したメールアドレスを入力したか確認し、スパムフォ" -"ルダに入っていないか確認してください。" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"このメールは %(site_name)s で、あなたのアカウントのパスワードリセットが要求さ" -"れたため、送信されました。" - -msgid "Please go to the following page and choose a new password:" -msgstr "次のページで新しいパスワードを選んでください:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "あなたのユーザー名 (もし忘れていたら):" - -msgid "Thanks for using our site!" -msgstr "ご利用ありがとうございました!" - -#, python-format -msgid "The %(site_name)s team" -msgstr " %(site_name)s チーム" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"パスワードを忘れましたか? メールアドレスを以下に入力すると、新しいパスワード" -"の設定方法をお知らせします。" - -msgid "Email address:" -msgstr "メールアドレス:" - -msgid "Reset my password" -msgstr "パスワードをリセット" - -msgid "All dates" -msgstr "いつでも" - -#, python-format -msgid "Select %s" -msgstr "%s を選択" - -#, python-format -msgid "Select %s to change" -msgstr "変更する %s を選択" - -#, python-format -msgid "Select %s to view" -msgstr "表示する%sを選択" - -msgid "Date:" -msgstr "日付:" - -msgid "Time:" -msgstr "時刻:" - -msgid "Lookup" -msgstr "検索" - -msgid "Currently:" -msgstr "現在の値:" - -msgid "Change:" -msgstr "変更後:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 29d5a21..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.po deleted file mode 100644 index 8328ba4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,273 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Goto Hayato , 2021 -# Jannis Leidel , 2011 -# Shinya Okano , 2012,2014-2016,2023 -# Taichi Taniguchi, 2022 -# Takuro Onoue , 2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Shinya Okano , 2012,2014-2016,2023\n" -"Language-Team: Japanese (http://www.transifex.com/django/django/language/" -"ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "利用可能 %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"これが使用可能な %s のリストです。下のボックスで項目を選択し、2つのボックス間" -"の \"選択\"の矢印をクリックして、いくつかを選択することができます。" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "使用可能な %s のリストを絞り込むには、このボックスに入力します。" - -msgid "Filter" -msgstr "フィルター" - -msgid "Choose all" -msgstr "全て選択" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "クリックするとすべての %s を選択します。" - -msgid "Choose" -msgstr "選択" - -msgid "Remove" -msgstr "削除" - -#, javascript-format -msgid "Chosen %s" -msgstr "選択された %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"これが選択された %s のリストです。下のボックスで選択し、2つのボックス間の " -"\"削除\"矢印をクリックして一部を削除することができます。" - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "選択された%sのリストを絞り込むには、このボックスに入力します。" - -msgid "Remove all" -msgstr "すべて削除" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "クリックするとすべての %s を選択から削除します。" - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "選択された%s件のオプションは非表示です。" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s個中%(sel)s個選択" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"フィールドに未保存の変更があります。操作を実行すると未保存の変更は失われま" -"す。" - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"操作を選択しましたが、フィールドに未保存の変更があります。OKをクリックして保" -"存してください。その後、操作を再度実行する必要があります。" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"操作を選択しましたが、フィールドに変更はありませんでした。もしかして保存ボタ" -"ンではなくて実行ボタンをお探しですか。" - -msgid "Now" -msgstr "現在" - -msgid "Midnight" -msgstr "0時" - -msgid "6 a.m." -msgstr "午前 6 時" - -msgid "Noon" -msgstr "12時" - -msgid "6 p.m." -msgstr "午後 6 時" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "ノート: あなたの環境はサーバー時間より、%s時間進んでいます。" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "ノート: あなたの環境はサーバー時間より、%s時間遅れています。" - -msgid "Choose a Time" -msgstr "時間を選択" - -msgid "Choose a time" -msgstr "時間を選択" - -msgid "Cancel" -msgstr "キャンセル" - -msgid "Today" -msgstr "今日" - -msgid "Choose a Date" -msgstr "日付を選択" - -msgid "Yesterday" -msgstr "昨日" - -msgid "Tomorrow" -msgstr "明日" - -msgid "January" -msgstr "1月" - -msgid "February" -msgstr "2月" - -msgid "March" -msgstr "3月" - -msgid "April" -msgstr "4月" - -msgid "May" -msgstr "5月" - -msgid "June" -msgstr "6月" - -msgid "July" -msgstr "7月" - -msgid "August" -msgstr "8月" - -msgid "September" -msgstr "9月" - -msgid "October" -msgstr "10月" - -msgid "November" -msgstr "11月" - -msgid "December" -msgstr "12月" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "1月" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "2月" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "3月" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "4月" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "5月" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "6月" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "7月" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "8月" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "9月" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "10月" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "11月" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "12月" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "日" - -msgctxt "one letter Monday" -msgid "M" -msgstr "月" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "火" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "水" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "木" - -msgctxt "one letter Friday" -msgid "F" -msgstr "金" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "土" - -msgid "Show" -msgstr "表示" - -msgid "Hide" -msgstr "非表示" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.mo deleted file mode 100644 index ed45180..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.po deleted file mode 100644 index 75aee9c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/django.po +++ /dev/null @@ -1,699 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# André Bouatchidzé , 2013-2015 -# David A. , 2011 -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-01-18 00:36+0000\n" -"Last-Translator: Ramiro Morales\n" -"Language-Team: Georgian (http://www.transifex.com/django/django/language/" -"ka/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ka\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s წარმატებით წაიშალა." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s ვერ იშლება" - -msgid "Are you sure?" -msgstr "დარწმუნებული ხართ?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "არჩეული %(verbose_name_plural)s-ის წაშლა" - -msgid "Administration" -msgstr "ადმინისტრირება" - -msgid "All" -msgstr "ყველა" - -msgid "Yes" -msgstr "კი" - -msgid "No" -msgstr "არა" - -msgid "Unknown" -msgstr "გაურკვეველი" - -msgid "Any date" -msgstr "ნებისმიერი თარიღი" - -msgid "Today" -msgstr "დღეს" - -msgid "Past 7 days" -msgstr "ბოლო 7 დღე" - -msgid "This month" -msgstr "მიმდინარე თვე" - -msgid "This year" -msgstr "მიმდინარე წელი" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"გთხოვთ, შეიყვანოთ სწორი %(username)s და პაროლი პერსონალის ანგარიშისთვის. " -"იქონიეთ მხედველობაში, რომ ორივე ველი ითვალისწინებს მთავრულს." - -msgid "Action:" -msgstr "მოქმედება:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "კიდევ ერთი %(verbose_name)s-ის დამატება" - -msgid "Remove" -msgstr "წაშლა" - -msgid "Addition" -msgstr "" - -msgid "Change" -msgstr "შეცვლა" - -msgid "Deletion" -msgstr "" - -msgid "action time" -msgstr "მოქმედების დრო" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "ობიექტის id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "ობიექტის წარმ." - -msgid "action flag" -msgstr "მოქმედების დროშა" - -msgid "change message" -msgstr "შეცვლის შეტყობინება" - -msgid "log entry" -msgstr "ლოგის ერთეული" - -msgid "log entries" -msgstr "ლოგის ერთეულები" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "დამატებულია \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "შეცვლილია \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "წაშლილია \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "ჟურნალის ჩანაწერის ობიექტი" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "და" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "არცერთი ველი არ შეცვლილა." - -msgid "None" -msgstr "არცერთი" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"ობიექტებზე მოქმედებების შესასრულებლად ისინი არჩეული უნდა იყოს. არცერთი " -"ობიექტი არჩეული არ არის." - -msgid "No action selected." -msgstr "მოქმედება არჩეული არ არის." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" წარმატებით წაიშალა." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "დავამატოთ %s" - -#, python-format -msgid "Change %s" -msgstr "შევცვალოთ %s" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "მონაცემთა ბაზის შეცდომა" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s წარმატებით შეიცვალა." -msgstr[1] "%(count)s %(name)s წარმატებით შეიცვალა." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s-ია არჩეული" -msgstr[1] "%(total_count)s-ია არჩეული" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s-დან არცერთი არჩეული არ არის" - -#, python-format -msgid "Change history: %s" -msgstr "ცვლილებების ისტორია: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "Django-ს ადმინისტრირების საიტი" - -msgid "Django administration" -msgstr "Django-ს ადმინისტრირება" - -msgid "Site administration" -msgstr "საიტის ადმინისტრირება" - -msgid "Log in" -msgstr "შესვლა" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s ადმინისტრირება" - -msgid "Page not found" -msgstr "გვერდი ვერ მოიძებნა" - -msgid "We're sorry, but the requested page could not be found." -msgstr "უკაცრავად, მოთხოვნილი გვერდი ვერ მოიძებნა." - -msgid "Home" -msgstr "საწყისი გვერდი" - -msgid "Server error" -msgstr "სერვერის შეცდომა" - -msgid "Server error (500)" -msgstr "სერვერის შეცდომა (500)" - -msgid "Server Error (500)" -msgstr "სერვერის შეცდომა (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"მოხდა შეცდომა. ინფორმაცია მასზე გადაეცა საიტის ადმინისტრატორებს ელ. ფოსტით " -"და ის უნდა შესწორდეს უმოკლეს ვადებში. გმადლობთ მოთმინებისთვის." - -msgid "Run the selected action" -msgstr "არჩეული მოქმედების შესრულება" - -msgid "Go" -msgstr "გადასვლა" - -msgid "Click here to select the objects across all pages" -msgstr "ყველა გვერდზე არსებული ობიექტის მოსანიშნად დააწკაპეთ აქ" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "ყველა %(total_count)s %(module_name)s-ის მონიშვნა" - -msgid "Clear selection" -msgstr "მონიშვნის გასუფთავება" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"ჯერ შეიყვანეთ მომხმარებლის სახელი და პაროლი. ამის შემდეგ თქვენ გექნებათ " -"მომხმარებლის სხვა ოპციების რედაქტირების შესაძლებლობა." - -msgid "Enter a username and password." -msgstr "შეიყვანეთ მომხმარებლის სახელი და პაროლი" - -msgid "Change password" -msgstr "პაროლის შეცვლა" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "გთხოვთ, შეასწოროთ ქვემოთმოყვანილი შეცდომები." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"შეიყვანეთ ახალი პაროლი მომხმარებლისათვის %(username)s." - -msgid "Welcome," -msgstr "კეთილი იყოს თქვენი მობრძანება," - -msgid "View site" -msgstr "საიტის ნახვა" - -msgid "Documentation" -msgstr "დოკუმენტაცია" - -msgid "Log out" -msgstr "გამოსვლა" - -#, python-format -msgid "Add %(name)s" -msgstr "დავამატოთ %(name)s" - -msgid "History" -msgstr "ისტორია" - -msgid "View on site" -msgstr "წარმოდგენა საიტზე" - -msgid "Filter" -msgstr "ფილტრი" - -msgid "Remove from sorting" -msgstr "დალაგებიდან მოშორება" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "დალაგების პრიორიტეტი: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "დალაგების გადართვა" - -msgid "Delete" -msgstr "წავშალოთ" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"ობიექტების წაშლა: %(object_name)s '%(escaped_object)s' გამოიწვევს " -"დაკავშირებული ობიექტების წაშლას, მაგრამ თქვენ არა გაქვთ შემდეგი ტიპების " -"ობიექტების წაშლის უფლება:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s ტიპის '%(escaped_object)s' ობიექტის წაშლა მოითხოვს ასევე " -"შემდეგი დაკავშირებული ობიექტების წაშლას:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"ნამდვილად გსურთ, წაშალოთ %(object_name)s \"%(escaped_object)s\"? ყველა " -"ქვემოთ მოყვანილი დაკავშირებული ობიექტი წაშლილი იქნება:" - -msgid "Objects" -msgstr "ობიექტები" - -msgid "Yes, I'm sure" -msgstr "კი, ნამდვილად" - -msgid "No, take me back" -msgstr "არა, დამაბრუნეთ უკან" - -msgid "Delete multiple objects" -msgstr "რამდენიმე ობიექტის წაშლა" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"%(objects_name)s ტიპის ობიექტის წაშლა ითხოვს ასევე შემდეგი ობიექტების " -"წაშლას, მაგრამ თქვენ არ გაქვთ ამის ნებართვა:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"არჩეული %(objects_name)s ობიექტის წაშლა მოითხოვს ასევე შემდეგი დაცული " -"დაკავშირეული ობიექტების წაშლას:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"დარწმუნებული ხართ, რომ გსურთ %(objects_name)s ობიექტის წაშლა? ყველა შემდეგი " -"ობიექტი, და მათზე დამოკიდებული ჩანაწერები წაშლილი იქნება:" - -msgid "View" -msgstr "" - -msgid "Delete?" -msgstr "წავშალოთ?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s მიხედვით " - -msgid "Summary" -msgstr "შეჯამება" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "მოდელები %(name)s აპლიკაციაში" - -msgid "Add" -msgstr "დამატება" - -msgid "You don't have permission to view or edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "არ არის მისაწვდომი" - -msgid "Unknown content" -msgstr "უცნობი შიგთავსი" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"თქვენი მონაცემთა ბაზის ინსტალაცია არაკორექტულია. დარწმუნდით, რომ მონაცემთა " -"ბაზის შესაბამისი ცხრილები შექმნილია, და მონაცემთა ბაზის წაკითხვა შეუძლია " -"შესაბამის მომხმარებელს." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "დაგავიწყდათ თქვენი პაროლი ან მომხმარებლის სახელი?" - -msgid "Date/time" -msgstr "თარიღი/დრო" - -msgid "User" -msgstr "მომხმარებელი" - -msgid "Action" -msgstr "მოქმედება" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"ამ ობიექტს ცვლილებების ისტორია არა აქვს. როგორც ჩანს, იგი არ იყო დამატებული " -"ადმინისტრირების საიტის მეშვეობით." - -msgid "Show all" -msgstr "ვაჩვენოთ ყველა" - -msgid "Save" -msgstr "შევინახოთ" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "ძებნა" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s შედეგი" -msgstr[1] "%(counter)s შედეგი" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "სულ %(full_result_count)s" - -msgid "Save as new" -msgstr "შევინახოთ, როგორც ახალი" - -msgid "Save and add another" -msgstr "შევინახოთ და დავამატოთ ახალი" - -msgid "Save and continue editing" -msgstr "შევინახოთ და გავაგრძელოთ რედაქტირება" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "მონიშნული %(model)s-ის შეცვლა" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "მონიშნული %(model)s-ის წაშლა" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "გმადლობთ, რომ დღეს ამ საიტთან მუშაობას დაუთმეთ დრო." - -msgid "Log in again" -msgstr "ხელახლა შესვლა" - -msgid "Password change" -msgstr "პაროლის შეცვლა" - -msgid "Your password was changed." -msgstr "თქვენი პაროლი შეიცვალა." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"გთხოვთ, უსაფრთხოების დაცვის მიზნით, შეიყვანოთ თქვენი ძველი პაროლი, შემდეგ კი " -"ახალი პაროლი ორჯერ, რათა დარწმუნდეთ, რომ იგი შეყვანილია სწორად." - -msgid "Change my password" -msgstr "შევცვალოთ ჩემი პაროლი" - -msgid "Password reset" -msgstr "პაროლის აღდგენა" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"თქვენი პაროლი დაყენებულია. ახლა შეგიძლიათ გადახვიდეთ შემდეგ გვერდზე და " -"შეხვიდეთ სისტემაში." - -msgid "Password reset confirmation" -msgstr "პაროლი შეცვლის დამოწმება" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"გთხოვთ, შეიყვანეთ თქვენი ახალი პაროლი ორჯერ, რათა დავრწმუნდეთ, რომ იგი " -"სწორად ჩაბეჭდეთ." - -msgid "New password:" -msgstr "ახალი პაროლი:" - -msgid "Confirm password:" -msgstr "პაროლის დამოწმება:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"პაროლის აღდგენის ბმული არასწორი იყო, შესაძლოა იმის გამო, რომ იგი უკვე ყოფილა " -"გამოყენებული. გთხოვთ, კიდევ ერთხელ სცადოთ პაროლის აღდგენა." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"თქვენ მიიღეთ ეს წერილი იმიტომ, რომ გააკეთეთ პაროლის თავიდან დაყენების " -"მოთხოვნა თქვენი მომხმარებლის ანგარიშისთვის %(site_name)s-ზე." - -msgid "Please go to the following page and choose a new password:" -msgstr "გთხოვთ, გადახვიდეთ შემდეგ გვერდზე და აირჩიოთ ახალი პაროლი:" - -msgid "Your username, in case you've forgotten:" -msgstr "თქვენი მომხმარებლის სახელი (თუ დაგავიწყდათ):" - -msgid "Thanks for using our site!" -msgstr "გმადლობთ, რომ იყენებთ ჩვენს საიტს!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s საიტის გუნდი" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"დაგავიწყდათ თქვენი პაროლი? შეიყვანეთ თქვენი ელ. ფოსტის მისამართი ქვემოთ და " -"ჩვენ გამოგიგზავნით მითითებებს ახალი პაროლის დასაყენებლად." - -msgid "Email address:" -msgstr "ელ. ფოსტის მისამართი:" - -msgid "Reset my password" -msgstr "აღვადგინოთ ჩემი პაროლი" - -msgid "All dates" -msgstr "ყველა თარიღი" - -#, python-format -msgid "Select %s" -msgstr "ავირჩიოთ %s" - -#, python-format -msgid "Select %s to change" -msgstr "აირჩიეთ %s შესაცვლელად" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "თარიღი;" - -msgid "Time:" -msgstr "დრო:" - -msgid "Lookup" -msgstr "ძიება" - -msgid "Currently:" -msgstr "ამჟამად:" - -msgid "Change:" -msgstr "შეცვლა:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo deleted file mode 100644 index a66299c..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.po deleted file mode 100644 index 65ee60f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,218 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# André Bouatchidzé , 2013,2015 -# David A. , 2011 -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Georgian (http://www.transifex.com/django/django/language/" -"ka/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ka\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "მისაწვდომი %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"ეს არის მისაწვდომი %s-ის სია. ზოგიერთი მათგანის ასარჩევად, მონიშვნით ისინი " -"ქვედა სარკმელში და დააწკაპუნეთ ორ სარკმელს შორის მდებარე ისარზე \"არჩევა\" ." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "აკრიფეთ ამ სარკმელში მისაწვდომი %s-ის სიის გასაფილტრად." - -msgid "Filter" -msgstr "ფილტრი" - -msgid "Choose all" -msgstr "ავირჩიოთ ყველა" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "დააწკაპუნეთ ერთდროულად ყველა %s-ის ასარჩევად." - -msgid "Choose" -msgstr "არჩევა" - -msgid "Remove" -msgstr "წავშალოთ" - -#, javascript-format -msgid "Chosen %s" -msgstr "არჩეული %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"ეს არის არჩეული %s-ის სია. ზოგიერთი მათგანის მოსაშორებლად, მონიშვნით ისინი " -"ქვედა სარკმელში და დააწკაპუნეთ ორ სარკმელს შორის მდებარე ისარზე \"მოშორება" -"\" ." - -msgid "Remove all" -msgstr "ყველას მოშორება" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "დააწკაპუნეთ ყველა არჩეული %s-ის ერთდროულად მოსაშორებლად." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s-დან არჩეულია %(sel)s" -msgstr[1] "%(cnt)s-დან არჩეულია %(sel)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"ცალკეულ ველებში შეუნახავი ცვლილებები გაქვთ! თუ მოქმედებას შეასრულებთ, " -"შეუნახავი ცვლილებები დაიკარაგება." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"აგირჩევიათ მოქმედება, მაგრამ ცალკეული ველები ჯერ არ შეგინახიათ! გთხოვთ, " -"შენახვისთვის დააჭიროთ OK. მოქმედების ხელახლა გაშვება მოგიწევთ." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"აგირჩევიათ მოქმედება, მაგრამ ცალკეულ ველებში ცვლილებები არ გაგიკეთებიათ! " -"სავარაუდოდ, ეძებთ ღილაკს \"Go\", და არა \"შენახვა\"" - -msgid "Now" -msgstr "ახლა" - -msgid "Midnight" -msgstr "შუაღამე" - -msgid "6 a.m." -msgstr "დილის 6 სთ" - -msgid "Noon" -msgstr "შუადღე" - -msgid "6 p.m." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "შენიშვნა: თქვენ ხართ %s საათით წინ სერვერის დროზე." -msgstr[1] "შენიშვნა: თქვენ ხართ %s საათით წინ სერვერის დროზე." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "შენიშვნა: თქვენ ხართ %s საათით უკან სერვერის დროზე." -msgstr[1] "შენიშვნა: თქვენ ხართ %s საათით უკან სერვერის დროზე." - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "ავირჩიოთ დრო" - -msgid "Cancel" -msgstr "უარი" - -msgid "Today" -msgstr "დღეს" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "გუშინ" - -msgid "Tomorrow" -msgstr "ხვალ" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "ვაჩვენოთ" - -msgid "Hide" -msgstr "დავმალოთ" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.mo deleted file mode 100644 index d095721..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.po deleted file mode 100644 index b3d8958..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/django.po +++ /dev/null @@ -1,631 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-10-06 11:59+0000\n" -"Last-Translator: Muḥend Belqasem \n" -"Language-Team: Kabyle (http://www.transifex.com/django/django/language/" -"kab/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: kab\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "Tebɣiḍ?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "Tadbelt" - -msgid "All" -msgstr "Akkw" - -msgid "Yes" -msgstr "Ih" - -msgid "No" -msgstr "Uhu" - -msgid "Unknown" -msgstr "Arussin" - -msgid "Any date" -msgstr "Yal azemz" - -msgid "Today" -msgstr "Ass-a" - -msgid "Past 7 days" -msgstr "Di 7 n wussan ineggura" - -msgid "This month" -msgstr "Aggur-agi" - -msgid "This year" -msgstr "Aseggass-agi" - -msgid "No date" -msgstr "Ulac azemz" - -msgid "Has date" -msgstr "Ɣur-s azemz" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "Tigawt:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Remove" -msgstr "Kkes" - -msgid "action time" -msgstr "akud n tigawt" - -msgid "user" -msgstr "aseqdac" - -msgid "content type" -msgstr "anaw n ugbur" - -msgid "object id" -msgstr "asulay n tɣawsa" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "" - -msgid "action flag" -msgstr "anay n tigawt" - -msgid "change message" -msgstr "" - -msgid "log entry" -msgstr "anekcum n uɣmis" - -msgid "log entries" -msgstr "inekcam n uɣmis" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "yettwarna." - -msgid "and" -msgstr "akked" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "" - -msgid "None" -msgstr "Ula yiwen" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Rnu %s" - -#, python-format -msgid "Change %s" -msgstr "" - -msgid "Database error" -msgstr "Agul n database" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "" - -msgid "Django administration" -msgstr "" - -msgid "Site administration" -msgstr "Asmel n tedbelt" - -msgid "Log in" -msgstr "Kcem" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "Asebtar ulac-it" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Ad nesḥissef imi asebter i d-sutreḍ ulac-it." - -msgid "Home" -msgstr "Agejdan" - -msgid "Server error" -msgstr "Tuccḍa n uqeddac" - -msgid "Server error (500)" -msgstr "" - -msgid "Server Error (500)" -msgstr "" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "Ẓer" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "Beddel awal n tbaḍnit" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "Anṣuf," - -msgid "View site" -msgstr "Wali asmel" - -msgid "Documentation" -msgstr "Tasemlit" - -msgid "Log out" -msgstr "Asenser" - -#, python-format -msgid "Add %(name)s" -msgstr "" - -msgid "History" -msgstr "Amazray" - -msgid "View on site" -msgstr "Wali deg usmel" - -msgid "Filter" -msgstr "Tastayt" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "Mḥu" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "Tiɣawsiwin" - -msgid "Yes, I'm sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "Beddel" - -msgid "Delete?" -msgstr "Kkes?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "Agzul" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "Rnu" - -msgid "You don't have permission to edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "Tigawin-iw" - -msgid "None available" -msgstr "" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "Azemz/asrag" - -msgid "User" -msgstr "Amseqdac" - -msgid "Action" -msgstr "Tigawt" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "Sken akk" - -msgid "Save" -msgstr "Sekles" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "Anadi" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -msgid "Save as new" -msgstr "Sekles d amaynut:" - -msgid "Save and add another" -msgstr "" - -msgid "Save and continue editing" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "" - -msgid "Log in again" -msgstr "" - -msgid "Password change" -msgstr "Abeddel n wawal uffir" - -msgid "Your password was changed." -msgstr "" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "" - -msgid "Password reset" -msgstr "Awennez n wawal uffir" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "Asentem n uwennez n wawal uffir" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "Awal n tbaḍnit amaynut:" - -msgid "Confirm password:" -msgstr "Sentem awal uffir" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "" - -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "Tansa e-mail :" - -msgid "Reset my password" -msgstr "Wennez awal-iw uffir" - -msgid "All dates" -msgstr "Izemzen merra" - -#, python-format -msgid "Select %s" -msgstr "Fren %s" - -#, python-format -msgid "Select %s to change" -msgstr "" - -msgid "Date:" -msgstr "Azemz:" - -msgid "Time:" -msgstr "Akud:" - -msgid "Lookup" -msgstr "Anadi" - -msgid "Currently:" -msgstr "Tura:" - -msgid "Change:" -msgstr "Beddel:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 755849a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po deleted file mode 100644 index 57f70c9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,204 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-10-06 08:10+0000\n" -"Last-Translator: Muḥend Belqasem \n" -"Language-Team: Kabyle (http://www.transifex.com/django/django/language/" -"kab/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: kab\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Yella %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "Tastayt" - -msgid "Choose all" -msgstr "Fren akk" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "Fren" - -msgid "Remove" -msgstr "kkes" - -#, javascript-format -msgid "Chosen %s" -msgstr "Ifren %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "Kkes akk" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s si %(cnt)s yettwafren" -msgstr[1] "%(sel)s si %(cnt)s ttwafernen" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "Tura" - -msgid "Choose a Time" -msgstr "Fren akud:" - -msgid "Choose a time" -msgstr "Fren akud" - -msgid "Midnight" -msgstr "Ttnaṣfa n yiḍ" - -msgid "6 a.m." -msgstr "6 f.t." - -msgid "Noon" -msgstr "Ttnaṣfa n uzal" - -msgid "6 p.m." -msgstr "6 m.d." - -msgid "Cancel" -msgstr "Sefsex" - -msgid "Today" -msgstr "Ass-a" - -msgid "Choose a Date" -msgstr "Fren azemz" - -msgid "Yesterday" -msgstr "Iḍelli" - -msgid "Tomorrow" -msgstr "Azekka" - -msgid "January" -msgstr "Yennayer" - -msgid "February" -msgstr "Fuṛaṛ" - -msgid "March" -msgstr "Meɣres" - -msgid "April" -msgstr "Yebrir" - -msgid "May" -msgstr "Mayyu" - -msgid "June" -msgstr "Yunyu" - -msgid "July" -msgstr "Yulyu" - -msgid "August" -msgstr "Ɣuct" - -msgid "September" -msgstr "Ctamber" - -msgid "October" -msgstr "Tuber" - -msgid "November" -msgstr "Wamber" - -msgid "December" -msgstr "Dujamber" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Sken" - -msgid "Hide" -msgstr "Ffer" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.mo deleted file mode 100644 index abc3c54..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.po deleted file mode 100644 index 6d9625a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/django.po +++ /dev/null @@ -1,695 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Baurzhan Muftakhidinov , 2015 -# Leo Trubach , 2017 -# Nurlan Rakhimzhanov , 2011 -# yun_man_ger , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-01-18 00:36+0000\n" -"Last-Translator: Ramiro Morales\n" -"Language-Team: Kazakh (http://www.transifex.com/django/django/language/kk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: kk\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Таңдалған %(count)d %(items)s элемент өшірілді." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s өшіру мүмкін емес" - -msgid "Are you sure?" -msgstr "Осыған сенімдісіз бе?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Таңдалған %(verbose_name_plural)s өшірілді" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "Барлығы" - -msgid "Yes" -msgstr "Иә" - -msgid "No" -msgstr "Жоқ" - -msgid "Unknown" -msgstr "Белгісіз" - -msgid "Any date" -msgstr "Кез келген күн" - -msgid "Today" -msgstr "Бүгін" - -msgid "Past 7 days" -msgstr "Өткен 7 күн" - -msgid "This month" -msgstr "Осы ай" - -msgid "This year" -msgstr "Осы жыл" - -msgid "No date" -msgstr "Күні жоқ" - -msgid "Has date" -msgstr "Күні бар" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "Әрекет:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Тағы басқа %(verbose_name)s кос" - -msgid "Remove" -msgstr "Өшіру" - -msgid "Addition" -msgstr "" - -msgid "Change" -msgstr "Өзгетру" - -msgid "Deletion" -msgstr "" - -msgid "action time" -msgstr "әрекет уақыты" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "объекттің id-i" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "объекттің repr-i" - -msgid "action flag" -msgstr "әрекет белгісі" - -msgid "change message" -msgstr "хабарламаны өзгерту" - -msgid "log entry" -msgstr "Жорнал жазуы" - -msgid "log entries" -msgstr "Жорнал жазулары" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "және" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "Ешқандай толтырма өзгермеді." - -msgid "None" -msgstr "Ешнәрсе" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Бірнәрсені өзгерту үшін бірінші оларды таңдау керек. Ешнәрсе өзгертілмеді." - -msgid "No action selected." -msgstr "Ешқандай әрекет таңдалмады." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" сәтті өшірілді." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s қосу" - -#, python-format -msgid "Change %s" -msgstr "%s өзгету" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "Мәліметтер базасының қатесі" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -"one: %(count)s %(name)s өзгертілді.\n" -"\n" -"other: %(count)s %(name)s таңдалғандарының барі өзгертілді." -msgstr[1] "" -"one: %(count)s %(name)s өзгертілді.\n" -"\n" -"other: %(count)s %(name)s таңдалғандарының барі өзгертілді." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -"one: %(total_count)s таңдалды\n" -"\n" -"other: Барлығы %(total_count)s таңдалды" -msgstr[1] "" -"one: %(total_count)s таңдалды\n" -"\n" -"other: Барлығы %(total_count)s таңдалды" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 of %(cnt)s-ден 0 таңдалды" - -#, python-format -msgid "Change history: %s" -msgstr "Өзгерес тарихы: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "Даңғо сайтының әкімі" - -msgid "Django administration" -msgstr "Даңғо әкімшілігі" - -msgid "Site administration" -msgstr "Сайт әкімшілігі" - -msgid "Log in" -msgstr "Кіру" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "Бет табылмады" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Кешірім сұраймыз, сіздің сұраған бетіңіз табылмады." - -msgid "Home" -msgstr "Негізгі" - -msgid "Server error" -msgstr "Сервердің қатесі" - -msgid "Server error (500)" -msgstr "Сервердің қатесі (500)" - -msgid "Server Error (500)" -msgstr "Сервердің қатесі (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Таңдалған әрәкетті іске қосу" - -msgid "Go" -msgstr "Алға" - -msgid "Click here to select the objects across all pages" -msgstr "Осы беттегі барлық объекттерді таңдау үшін осы жерді шертіңіз" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Осылардың %(total_count)s %(module_name)s барлығын таңдау" - -msgid "Clear selection" -msgstr "Белгілерді өшіру" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Алдымен, пайдаланушының атын және құпия сөзді енгізіңіз. Содан соң, тағы " -"басқа пайдаланушы параметрлерін енгізе аласыз." - -msgid "Enter a username and password." -msgstr "Пайдаланушының атын және құпия сөзді енгізіңіз." - -msgid "Change password" -msgstr "Құпия сөзді өзгерту" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"%(username)s пайдаланушы үшін жаңа құпия сөзді енгізіңіз." - -msgid "Welcome," -msgstr "Қош келдіңіз," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "Құжаттама" - -msgid "Log out" -msgstr "Шығу" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s қосу" - -msgid "History" -msgstr "Тарих" - -msgid "View on site" -msgstr "Сайтта көру" - -msgid "Filter" -msgstr "Сүзгіз" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "Өшіру" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' объектты өшіруы байланысты объекттерін " -"өшіруді қажет етеді, бырақ сізде осындай объектерді өшіру рұқсаты жоқ:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' объектті өшіру осындай байлансты " -"объекттерды өшіруді қажет етеді:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"%(object_name)s \"%(escaped_object)s\" объекттерді өшіруге сенімдісіз бе? " -"Бұл байланысты элементтер де өшіріледі:" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "Иә, сенімдімін" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "Бірнеше объекттерді өшіру" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"%(objects_name)s объектты өшіруы байланысты объекттерін өшіруді қажет етеді, " -"бырақ сізде осындай объектерді өшіру рұқсаты жоқ:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Таңдалған %(objects_name)s-ді(ы) өшіру, онымен байланыстағы қорғалған " -"объектілердің барлығын жояды:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Таңдаған %(objects_name)s объектіңізді өшіруге сенімдісіз бе? Себебі, " -"таңдағын объектіліріңіз және онымен байланыстағы барлық элементтер жойылады:" - -msgid "View" -msgstr "" - -msgid "Delete?" -msgstr "Өшіру?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s " - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "Қосу" - -msgid "You don't have permission to view or edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Қол жетімдісі жоқ" - -msgid "Unknown content" -msgstr "Белгісіз мазмұн" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Дерекқор орнатуыңызда бір қате бар. Дерекқор кестелері дұрыс құрылғаның және " -"дерекқор көрсетілген дерекқор пайдаланушыда оқұ рұқсаты бар." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "Өшіру/Уақыт" - -msgid "User" -msgstr "Қолданушы" - -msgid "Action" -msgstr "Әрекет" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Бұл объекттың өзгерту тарихы жоқ. Мүмкін ол бұл сайт арқылы енгізілген жоқ." - -msgid "Show all" -msgstr "Барлығын көрсету" - -msgid "Save" -msgstr "Сақтау" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "Іздеу" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s нәтиже" -msgstr[1] "%(counter)s нәтиже" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "Барлығы %(full_result_count)s" - -msgid "Save as new" -msgstr "Жаңадан сақтау" - -msgid "Save and add another" -msgstr "Сақта және жаңасын қос" - -msgid "Save and continue editing" -msgstr "Сақта және өзгертуді жалғастыр" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Бүгін Веб-торапқа уақыт бөлгеніңіз үшін рахмет." - -msgid "Log in again" -msgstr "Қайтадан кіріңіз" - -msgid "Password change" -msgstr "Құпия сөзді өзгерту" - -msgid "Your password was changed." -msgstr "Құпия сөзіңіз өзгертілді." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Ескі құпия сөзіңізді енгізіңіз, содан сон сенімді болу үшін жаңа құпия " -"сөзіңізді екі рет енгізіңіз." - -msgid "Change my password" -msgstr "Құпия сөзімді өзгерту" - -msgid "Password reset" -msgstr "Құпия сөзді өзгерту" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Сіздің құпия сөзіңіз енгізілді. Жүйеге кіруіңізге болады." - -msgid "Password reset confirmation" -msgstr "Құпия сөзді өзгерту растау" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "Сенімді болу үшін жаңа құпия сөзіңізді екі рет енгізіңіз." - -msgid "New password:" -msgstr "Жаңа құпия сөз:" - -msgid "Confirm password:" -msgstr "Құпия сөз (растау):" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Құпия сөзді өзгерту байланыс дұрыс емес, мүмкін ол осыған дейін " -"пайдаланылды. Жаңа құпия сөзді өзгерту сұрау жіберіңіз." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "Жаңа құпия сөзді тандау үшін мынау бетке кіріңіз:" - -msgid "Your username, in case you've forgotten:" -msgstr "Егер ұмытып қалған болсаңыз, пайдалануш атыңыз:" - -msgid "Thanks for using our site!" -msgstr "Біздің веб-торабын қолданғаныңыз үшін рахмет!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s тобы" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "Құпия сөзді жаңала" - -msgid "All dates" -msgstr "Барлық мерзімдер" - -#, python-format -msgid "Select %s" -msgstr "%s таңда" - -#, python-format -msgid "Select %s to change" -msgstr "%s өзгерту үщін таңда" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "Күнтізбелік күн:" - -msgid "Time:" -msgstr "Уақыт:" - -msgid "Lookup" -msgstr "Іздеу" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 0b65151..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po deleted file mode 100644 index 9c51f35..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,210 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Nurlan Rakhimzhanov , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Kazakh (http://www.transifex.com/django/django/language/kk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: kk\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s бар" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "Сүзгіш" - -msgid "Choose all" -msgstr "" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "Өшіру(жою)" - -#, javascript-format -msgid "Chosen %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s-ң %(sel)s-ы(і) таңдалды" -msgstr[1] "%(cnt)s-ң %(sel)s-ы(і) таңдалды" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Сіздің төмендегі өзгермелі алаңдарда(fields) өзгерістеріңіз бар. Егер артық " -"әрекет жасасаңызб сіз өзгерістеріңізді жоғалтасыз." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Сіз өз өзгерістеріңізді сақтамай, әрекет жасадыңыз. Өтініш, сақтау үшін ОК " -"батырмасын басыңыз және өз әрекетіңізді қайта жасап көріңіз. " - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Сіз Сақтау батырмасына қарағанда, Go(Алға) батырмасын іздеп отырған " -"боларсыз, себебі ешқандай өзгеріс жасамай, әрекет жасадыңыз." - -msgid "Now" -msgstr "Қазір" - -msgid "Midnight" -msgstr "Түн жарым" - -msgid "6 a.m." -msgstr "06" - -msgid "Noon" -msgstr "Талтүс" - -msgid "6 p.m." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "Уақытты таңда" - -msgid "Cancel" -msgstr "Болдырмау" - -msgid "Today" -msgstr "Бүгін" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "Кеше" - -msgid "Tomorrow" -msgstr "Ертең" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Көрсету" - -msgid "Hide" -msgstr "Жасыру" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.mo deleted file mode 100644 index a50821c..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.po deleted file mode 100644 index 8b16d1f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/django.po +++ /dev/null @@ -1,636 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Khmer (http://www.transifex.com/django/django/language/km/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: km\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "តើលោកអ្នកប្រាកដទេ?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "ទាំងអស់" - -msgid "Yes" -msgstr "យល់ព្រម" - -msgid "No" -msgstr "មិនយល់ព្រម" - -msgid "Unknown" -msgstr "មិន​ដឹង" - -msgid "Any date" -msgstr "កាល​បរិច្ឆេទណាមួយ" - -msgid "Today" -msgstr "ថ្ងៃនេះ" - -msgid "Past 7 days" -msgstr "៧​ថ្ងៃ​កន្លង​មក" - -msgid "This month" -msgstr "ខែ​នេះ" - -msgid "This year" -msgstr "ឆ្នាំ​នេះ" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Remove" -msgstr "លប់ចេញ" - -msgid "action time" -msgstr "ពេលវេលាប្រតិបត្តិការ" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "លេខ​សំគាល់​កម្មវិធី (object id)" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "object repr" - -msgid "action flag" -msgstr "សកម្មភាព" - -msgid "change message" -msgstr "ផ្លាស់ប្តូរ" - -msgid "log entry" -msgstr "កំណត់ហេតុ" - -msgid "log entries" -msgstr "កំណត់ហេតុ" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "និង" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "ពុំមានទិន្នន័យត្រូវបានផ្លាស់ប្តូរ។" - -msgid "None" -msgstr "" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "ឈ្មោះកម្មវិធី %(name)s \"%(obj)s\" ត្រូវបានលប់ដោយជោគជ័យ។" - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "បន្ថែម %s" - -#, python-format -msgid "Change %s" -msgstr "ផ្លាស់ប្តូរ %s" - -msgid "Database error" -msgstr "ទិន្នន័យមូលដ្ឋានមានបញ្ហា" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "សកម្មភាពផ្លាស់ប្តូរកន្លងមក : %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "ទំព័រគ្រប់គ្រងរបស់ Django" - -msgid "Django administration" -msgstr "ការ​គ្រប់គ្រង​របស់ ​Django" - -msgid "Site administration" -msgstr "ទំព័រគ្រប់គ្រង" - -msgid "Log in" -msgstr "ពិនិត្យចូល" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "ទំព័រ​ដែល​លោកអ្នកចង់​រក​នេះពុំមាន​នៅក្នុងម៉ាស៊ីនរបស់យើងខ្ញុំទេ" - -msgid "We're sorry, but the requested page could not be found." -msgstr "សួមអភ័យទោស ទំព័រ​ដែល​លោកអ្នកចង់​រក​នេះពុំមាន​នឹងក្នុងម៉ាស៊ីនរបស់យើងខ្ញុំទេ" - -msgid "Home" -msgstr "គេហទំព័រ" - -msgid "Server error" -msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា" - -msgid "Server error (500)" -msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា (៥០០)" - -msgid "Server Error (500)" -msgstr "ម៉ាស៊ីនផ្តល់សេវាកម្ម​ មានបញ្ហា  (៥០០)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "ស្វែងរក" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"តំបូងសូមបំពេញ ឈ្មោះជាសមាជិក និង ពាក្យសំងាត់​។ បន្ទាប់មកលោកអ្នកអាចបំពេញបន្ថែមជំរើសផ្សេងៗទៀតបាន។ " - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "សូមស្វាគមន៏" - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "ឯកសារ" - -msgid "Log out" -msgstr "ចាកចេញ" - -#, python-format -msgid "Add %(name)s" -msgstr "បន្ថែម %(name)s" - -msgid "History" -msgstr "សកម្មភាព​កន្លង​មក" - -msgid "View on site" -msgstr "មើលនៅលើគេហទំព័រដោយផ្ទាល់" - -msgid "Filter" -msgstr "ស្វែងរកជាមួយ" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "លប់" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"ការលប់ %(object_name)s '%(escaped_object)s' អាចធ្វើអោយ​កម្មវិធីដែលពាក់​ព័ន្ធបាត់បង់ ។" -" ក៏ប៉ន្តែលោកអ្នក​ពុំមាន​សិទ្ធិលប់​កម្មវិធី​ប្រភេទនេះទេ។" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"តើលោកអ្នកប្រាកដជាចង់លប់ %(object_name)s \"%(escaped_object)s" -"\"? ការលប់ %(object_name)s '%(escaped_object)s' អាចធ្វើអោយ​កម្មវិធីដែលពាក់​ព័ន្ធបាត់បង់។" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "ខ្ញុំច្បាស់​ជាចង់លប់" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "ផ្លាស់ប្តូរ" - -msgid "Delete?" -msgstr "" - -#, python-format -msgid " By %(filter_title)s " -msgstr "ដោយ​  %(filter_title)s " - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "បន្ថែម" - -msgid "You don't have permission to edit anything." -msgstr "លោកអ្នកពុំមានសិទ្ធិ ផ្លាស់​ប្តូរ ទេ។" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "គ្មាន" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"មូលដ្ឋាន​ទិន្នន័យ​​​ របស់លោកអ្នក មានបញ្ហា។ តើ លោកអ្នកបាន បង្កើត តារាង​ របស់មូលដ្ឋានទិន្នន័យ​" -" ហើយឬនៅ? តើ​ លោកអ្នកប្រាកដថាសមាជិកអាចអានមូលដ្ឋានទិន្នន័យនេះ​​បានឬទេ? " - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "Date/time" - -msgid "User" -msgstr "សមាជិក" - -msgid "Action" -msgstr "សកម្មភាព" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"កម្មវិធីនេះមិនមានសកម្មភាព​កន្លងមកទេ។ ប្រហែលជាសកម្មភាពទាំងនេះមិនបានធ្វើនៅទំព័រគ្រប់គ្រងនេះ។" - -msgid "Show all" -msgstr "បង្ហាញទាំងអស់" - -msgid "Save" -msgstr "រក្សាទុក" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "សរុបទាំងអស់ %(full_result_count)s" - -msgid "Save as new" -msgstr "រក្សាទុក" - -msgid "Save and add another" -msgstr "រក្សាទុក ហើយ បន្ថែម​ថ្មី" - -msgid "Save and continue editing" -msgstr "រក្សាទុក ហើយ កែឯកសារដដែល" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "សូមថ្លែងអំណរគុណ ដែលបានចំណាយ ពេលវេលាដ៏មានតំលៃ របស់លោកអ្នកមកទស្សនាគេហទំព័ររបស់យើងខ្ញុំ" - -msgid "Log in again" -msgstr "ពិនិត្យចូលម្តងទៀត" - -msgid "Password change" -msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់" - -msgid "Your password was changed." -msgstr "ពាក្យសំងាត់របស់លោកអ្នកបានផ្លាស់ប្តូរហើយ" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "សូមបំពេញពាក្យសំងាត់ចាស់របស់លោកអ្នក។ ដើម្បីសុវត្ថភាព សូមបំពេញពាក្យសំងាត់ថ្មីខាងក្រោមពីរដង។" - -msgid "Change my password" -msgstr "ផ្លាស់ប្តូរពាក្យសំងាត់" - -msgid "Password reset" -msgstr "ពាក្យសំងាត់បានកំណត់សារជាថ្មី" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "ពាក្យសំងាត់ថ្មី" - -msgid "Confirm password:" -msgstr "បំពេញពាក្យសំងាត់ថ្មីម្តងទៀត" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "ឈ្មោះជាសមាជិកក្នុងករណីភ្លេច:" - -msgid "Thanks for using our site!" -msgstr "សូមអរគុណដែលបានប្រើប្រាស់សេវាកម្មរបស់យើងខ្ញុំ" - -#, python-format -msgid "The %(site_name)s team" -msgstr "ក្រុមរបស់គេហទំព័រ %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "កំណត់ពាក្យសំងាត់សារជាថ្មី" - -msgid "All dates" -msgstr "កាលបរិច្ឆេទទាំងអស់" - -#, python-format -msgid "Select %s" -msgstr "ជ្រើសរើស %s" - -#, python-format -msgid "Select %s to change" -msgstr "ជ្រើសរើស %s ដើម្បីផ្លាស់ប្តូរ" - -msgid "Date:" -msgstr "កាលបរិច្ឆេទ" - -msgid "Time:" -msgstr "ម៉ោង" - -msgid "Lookup" -msgstr "" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo deleted file mode 100644 index c0b94c1..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po deleted file mode 100644 index fbe0ae1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,201 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Khmer (http://www.transifex.com/django/django/language/km/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: km\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s ដែលអាច​ជ្រើសរើសបាន" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "ស្វែងរកជាមួយ" - -msgid "Choose all" -msgstr "ជ្រើសរើសទាំងអស់" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "លប់ចេញ" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s ដែលបានជ្រើសរើស" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" - -msgid "Now" -msgstr "ឥឡូវនេះ" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "ជ្រើសរើសម៉ោង" - -msgid "Midnight" -msgstr "អធ្រាត្រ" - -msgid "6 a.m." -msgstr "ម៉ោង ៦ ព្រឹក" - -msgid "Noon" -msgstr "ពេលថ្ងែត្រង់" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "លប់ចោល" - -msgid "Today" -msgstr "ថ្ងៃនេះ" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "ម្សិលមិញ" - -msgid "Tomorrow" -msgstr "ថ្ងៃស្អែក" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "" - -msgid "Hide" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.mo deleted file mode 100644 index 3740da2..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.po deleted file mode 100644 index 06e63dc..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/django.po +++ /dev/null @@ -1,639 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Kannada (http://www.transifex.com/django/django/language/" -"kn/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: kn\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "ಖಚಿತಪಡಿಸುವಿರಾ? " - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "ಎಲ್ಲಾ" - -msgid "Yes" -msgstr "ಹೌದು" - -msgid "No" -msgstr "ಇಲ್ಲ" - -msgid "Unknown" -msgstr "ಗೊತ್ತಿಲ್ಲ(ದ/ದ್ದು)" - -msgid "Any date" -msgstr "ಯಾವುದೇ ದಿನಾಂಕ" - -msgid "Today" -msgstr "ಈದಿನ" - -msgid "Past 7 days" -msgstr "ಕಳೆದ ೭ ದಿನಗಳು" - -msgid "This month" -msgstr "ಈ ತಿಂಗಳು" - -msgid "This year" -msgstr "ಈ ವರ್ಷ" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Remove" -msgstr "ತೆಗೆದು ಹಾಕಿ" - -msgid "action time" -msgstr "ಕ್ರಮದ(ಕ್ರಿಯೆಯ) ಸಮಯ" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "ವಸ್ತುವಿನ ಐಡಿ" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "ವಸ್ತು ಪ್ರಾತಿನಿಧ್ಯ" - -msgid "action flag" -msgstr "ಕ್ರಮದ(ಕ್ರಿಯೆಯ) ಪತಾಕೆ" - -msgid "change message" -msgstr "ಬದಲಾವಣೆಯ ಸಂದೇಶ/ಸಂದೇಶ ಬದಲಿಸಿ" - -msgid "log entry" -msgstr "ಲಾಗ್ ದಾಖಲೆ" - -msgid "log entries" -msgstr "ಲಾಗ್ ದಾಖಲೆಗಳು" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "ಮತ್ತು" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "ಯಾವುದೇ ಅಂಶಗಳು ಬದಲಾಗಲಿಲ್ಲ." - -msgid "None" -msgstr "" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಯಿತು." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s ಸೇರಿಸಿ" - -#, python-format -msgid "Change %s" -msgstr "%s ಅನ್ನು ಬದಲಿಸು" - -msgid "Database error" -msgstr "ದತ್ತಸಂಚಯದ ದೋಷ" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "ಬದಲಾವಣೆಗಳ ಇತಿಹಾಸ: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "ಜಾಂಗೋ ತಾಣದ ಆಡಳಿತಗಾರರು" - -msgid "Django administration" -msgstr "ಜಾಂಗೋ ಆಡಳಿತ" - -msgid "Site administration" -msgstr "ತಾಣ ನಿರ್ವಹಣೆ" - -msgid "Log in" -msgstr "ಒಳಗೆ ಬನ್ನಿ" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "ಪುಟ ಸಿಗಲಿಲ್ಲ" - -msgid "We're sorry, but the requested page could not be found." -msgstr "ಕ್ಷಮಿಸಿ, ನೀವು ಕೇಳಿದ ಪುಟ ಸಿಗಲಿಲ್ಲ" - -msgid "Home" -msgstr "ಪ್ರಾರಂಭಸ್ಥಳ(ಮನೆ)" - -msgid "Server error" -msgstr "ಸರ್ವರ್ ದೋಷ" - -msgid "Server error (500)" -msgstr "ಸರ್ವರ್ ದೋಷ(೫೦೦)" - -msgid "Server Error (500)" -msgstr "ಸರ್ವರ್ ದೋಷ(೫೦೦)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "ಹೋಗಿ" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"ಮೊದಲು ಬಳಕೆದಾರ-ಹೆಸರು ಮತ್ತು ಪ್ರವೇಶಪದವನ್ನು ಕೊಡಿರಿ. ನಂತರ, ನೀವು ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳನ್ನು " -"ಬದಲಿಸಬಹುದಾಗಿದೆ." - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "ಪ್ರವೇಶಪದ ಬದಲಿಸಿ" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "ಸುಸ್ವಾಗತ." - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "ವಿವರಮಾಹಿತಿ" - -msgid "Log out" -msgstr "ಹೊರಕ್ಕೆ ಹೋಗಿ" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s ಸೇರಿಸಿ" - -msgid "History" -msgstr "ಚರಿತ್ರೆ" - -msgid "View on site" -msgstr "ತಾಣದಲ್ಲಿ ನೋಡಿ" - -msgid "Filter" -msgstr "ಸೋಸಕ" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "ಅಳಿಸಿಹಾಕಿ" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"'%(escaped_object)s' %(object_name)s ಅನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ ಸಂಬಂಧಿತ ವಸ್ತುಗಳೂ " -"ಕಳೆದುಹೋಗುತ್ತವೆ. ಆದರೆ ನಿಮ್ಮ ಖಾತೆಗೆ ಕೆಳಕಂಡ ಬಗೆಗಳ ವಸ್ತುಗಳನ್ನು ತೆಗೆದುಹಾಕಲು " -"ಅನುಮತಿಯಿಲ್ಲ." - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "ಹೌದು,ನನಗೆ ಖಚಿತವಿದೆ" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "ಬದಲಿಸಿ/ಬದಲಾವಣೆ" - -msgid "Delete?" -msgstr "" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s ಇಂದ" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "ಸೇರಿಸಿ" - -msgid "You don't have permission to edit anything." -msgstr "ಯಾವುದನ್ನೂ ತಿದ್ದಲು ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ ." - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "ಯಾವುದೂ ಲಭ್ಯವಿಲ್ಲ" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"ಡಾಟಾಬೇಸನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ಸೂಕ್ತ ಡಾಟಾಬೇಸ್ ಕೋಷ್ಟಕಗಳು ರಚನೆಯಾಗಿ ಅರ್ಹ " -"ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ಓದಬಹುದಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ಖಾತರಿ ಪಡಿಸಿಕೊಳ್ಳಿ." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "ದಿನಾಂಕ/ಸಮಯ" - -msgid "User" -msgstr "ಬಳಕೆದಾರ" - -msgid "Action" -msgstr "ಕ್ರಮ(ಕ್ರಿಯೆ)" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"ಈ ವಸ್ತುವಿಗೆ ಬದಲಾವಣೆಯ ಇತಿಹಾಸವಿಲ್ಲ. ಅದು ಬಹುಶಃ ಈ ಆಡಳಿತತಾಣದ ಮೂಲಕ ಸೇರಿಸಲ್ಪಟ್ಟಿಲ್ಲ." - -msgid "Show all" -msgstr "ಎಲ್ಲವನ್ನೂ ತೋರಿಸು" - -msgid "Save" -msgstr "ಉಳಿಸಿ" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "ಒಟ್ಟು %(full_result_count)s" - -msgid "Save as new" -msgstr "ಹೊಸದರಂತೆ ಉಳಿಸಿ" - -msgid "Save and add another" -msgstr "ಉಳಿಸಿ ಮತ್ತು ಇನ್ನೊಂದನ್ನು ಸೇರಿಸಿ" - -msgid "Save and continue editing" -msgstr "ಉಳಿಸಿ ಮತ್ತು ತಿದ್ದುವುದನ್ನು ಮುಂದುವರಿಸಿರಿ." - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "ಈದಿನ ತಮ್ಮ ಅತ್ಯಮೂಲ್ಯವಾದ ಸಮಯವನ್ನು ನಮ್ಮ ತಾಣದಲ್ಲಿ ಕಳೆದುದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು." - -msgid "Log in again" -msgstr "ಮತ್ತೆ ಒಳಬನ್ನಿ" - -msgid "Password change" -msgstr "ಪ್ರವೇಶಪದ ಬದಲಾವಣೆ" - -msgid "Your password was changed." -msgstr "ನಿಮ್ಮ ಪ್ರವೇಶಪದ ಬದಲಾಯಿಸಲಾಗಿದೆ" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"ಭದ್ರತೆಯ ದೃಷ್ಟಿಯಿಂದ ದಯವಿಟ್ಟು ನಿಮ್ಮ ಹಳೆಯ ಪ್ರವೇಶಪದವನ್ನು ಸೂಚಿಸಿರಿ. ಆನಂತರ ನೀವು ಸರಿಯಾಗಿ " -"ಬರೆದಿದ್ದೀರೆಂದು ನಾವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಹೊಸ ಪ್ರವೇಶಪದವನ್ನು ಎರಡು ಬಾರಿ ಬರೆಯಿರಿ." - -msgid "Change my password" -msgstr "ನನ್ನ ಪ್ರವೇಶಪದ ಬದಲಿಸಿ" - -msgid "Password reset" -msgstr "ಪ್ರವೇಶಪದವನ್ನು ಬದಲಿಸುವಿಕೆ" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "ಹೊಸ ಪ್ರವೇಶಪದ:" - -msgid "Confirm password:" -msgstr "ಪ್ರವೇಶಪದವನ್ನು ಖಚಿತಪಡಿಸಿ:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "ನೀವು ಮರೆತಿದ್ದಲ್ಲಿ , ನಿಮ್ಮ ಬಳಕೆದಾರ-ಹೆಸರು" - -msgid "Thanks for using our site!" -msgstr "ನಮ್ಮ ತಾಣವನ್ನು ಬಳಸಿದ್ದಕ್ದಾಗಿ ಧನ್ಯವಾದಗಳು!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s ತಂಡ" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "ನನ್ನ ಪ್ರವೇಶಪದವನ್ನು ಮತ್ತೆ ನಿರ್ಧರಿಸಿ " - -msgid "All dates" -msgstr "ಎಲ್ಲಾ ದಿನಾಂಕಗಳು" - -#, python-format -msgid "Select %s" -msgstr "%s ಆಯ್ದುಕೊಳ್ಳಿ" - -#, python-format -msgid "Select %s to change" -msgstr "ಬದಲಾಯಿಸಲು %s ಆಯ್ದುಕೊಳ್ಳಿ" - -msgid "Date:" -msgstr "ದಿನಾಂಕ:" - -msgid "Time:" -msgstr "ಸಮಯ:" - -msgid "Lookup" -msgstr "" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo deleted file mode 100644 index fa49be6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po deleted file mode 100644 index 0a651bc..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,261 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# karthikbgl , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Kannada (http://www.transifex.com/django/django/language/" -"kn/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: kn\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "ಲಭ್ಯ %s " - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "ಶೋಧಕ" - -msgid "Choose all" -msgstr "ಎಲ್ಲವನ್ನೂ ಆಯ್ದುಕೊಳ್ಳಿ" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "ತೆಗೆದು ಹಾಕಿ" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s ಆಯ್ದುಕೊಳ್ಳಲಾಗಿದೆ" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "ಎಲ್ಲಾ ತೆಗೆದುಹಾಕಿ" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"ನೀವು ಪ್ರತ್ಯೇಕ ತಿದ್ದಬಲ್ಲ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಬದಲಾವಣೆ ಉಳಿಸಿಲ್ಲ. ನಿಮ್ಮ ಉಳಿಸದ ಬದಲಾವಣೆಗಳು " -"ನಾಶವಾಗುತ್ತವೆ" - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "ಈಗ" - -msgid "Midnight" -msgstr "ಮಧ್ಯರಾತ್ರಿ" - -msgid "6 a.m." -msgstr "ಬೆಳಗಿನ ೬ ಗಂಟೆ " - -msgid "Noon" -msgstr "ಮಧ್ಯಾಹ್ನ" - -msgid "6 p.m." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "ಸಮಯವೊಂದನ್ನು ಆರಿಸಿ" - -msgid "Cancel" -msgstr "ರದ್ದುಗೊಳಿಸಿ" - -msgid "Today" -msgstr "ಈ ದಿನ" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "ನಿನ್ನೆ" - -msgid "Tomorrow" -msgstr "ನಾಳೆ" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "" - -msgid "Show" -msgstr "ಪ್ರದರ್ಶನ" - -msgid "Hide" -msgstr "ಮರೆಮಾಡಲು" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo deleted file mode 100644 index f734d93..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.po deleted file mode 100644 index 88f0236..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/django.po +++ /dev/null @@ -1,768 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jiyoon, Ha , 2016 -# DONGHO JEONG , 2020 -# 코딩 영, 2021 -# Geonho Kim / Leo Kim , 2019 -# Gihun Ham , 2018 -# Hang Park , 2019 -# Hoseok Lee , 2016 -# Ian Y. Choi , 2015,2019 -# Jaehong Kim , 2011 -# Jannis Leidel , 2011 -# Jay Oh , 2020 -# Le Tartuffe , 2014,2016 -# LEE Hwanyong , 2023 -# Seho Noh , 2018 -# Seacbyul Lee , 2017 -# Taesik Yoon , 2015 -# 정훈 이, 2021 -# 박태진, 2021 -# Yang Chan Woo , 2019 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: LEE Hwanyong , 2023\n" -"Language-Team: Korean (http://www.transifex.com/django/django/language/ko/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ko\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "선택된 %(verbose_name_plural)s 을/를 삭제합니다." - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d개의 %(items)s 을/를 성공적으로 삭제하였습니다." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s를 삭제할 수 없습니다." - -msgid "Are you sure?" -msgstr "확실합니까?" - -msgid "Administration" -msgstr "관리" - -msgid "All" -msgstr "모두" - -msgid "Yes" -msgstr "예" - -msgid "No" -msgstr "아니오" - -msgid "Unknown" -msgstr "알 수 없습니다." - -msgid "Any date" -msgstr "언제나" - -msgid "Today" -msgstr "오늘" - -msgid "Past 7 days" -msgstr "지난 7일" - -msgid "This month" -msgstr "이번 달" - -msgid "This year" -msgstr "이번 해" - -msgid "No date" -msgstr "날짜 없음" - -msgid "Has date" -msgstr "날짜 있음" - -msgid "Empty" -msgstr "비어 있음" - -msgid "Not empty" -msgstr "비어 있지 않음" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"관리자 계정의 %(username)s 와 비밀번호를 입력해주세요. 대소문자를 구분해서 입" -"력해주세요." - -msgid "Action:" -msgstr "액션:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "%(verbose_name)s 더 추가하기" - -msgid "Remove" -msgstr "삭제하기" - -msgid "Addition" -msgstr "추가" - -msgid "Change" -msgstr "변경" - -msgid "Deletion" -msgstr "삭제" - -msgid "action time" -msgstr "액션 타임" - -msgid "user" -msgstr "사용자" - -msgid "content type" -msgstr "콘텐츠 타입" - -msgid "object id" -msgstr "오브젝트 아이디" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "오브젝트 표현" - -msgid "action flag" -msgstr "액션 플래그" - -msgid "change message" -msgstr "메시지 변경" - -msgid "log entry" -msgstr "로그 엔트리" - -msgid "log entries" -msgstr "로그 엔트리" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\"이/가 추가되었습니다." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "\"%(object)s\"이/가 \"%(changes)s\"(으)로 변경되었습니다." - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "%(object)s를 삭제했습니다." - -msgid "LogEntry Object" -msgstr "로그 엔트리 객체" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} “{object}개체”를 추가했습니다." - -msgid "Added." -msgstr "추가되었습니다." - -msgid "and" -msgstr "또한" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{name} “{object}개체”의 {fields}필드를 변경했습니다." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields}가 변경되었습니다." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} “{object}개체”를 삭제했습니다." - -msgid "No fields changed." -msgstr "변경된 필드가 없습니다." - -msgid "None" -msgstr "없음" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"하나 이상을 선택하려면 \"Control\" 키를 누른 채로 선택해주세요. Mac의 경우에" -"는 \"Command\" 키를 눌러주세요." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\"가 성공적으로 추가되었습니다." - -msgid "You may edit it again below." -msgstr "아래 내용을 수정해야 합니다." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} \"{obj}\"가 성공적으로 추가되었습니다. 아래에서 다른 {name}을 추가할 " -"수 있습니다." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\"가 성공적으로 변경되었습니다. 아래에서 다시 수정할 수 있습니" -"다." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\"가 성공적으로 추가되었습니다. 아래에서 다시 수정할 수 있습니" -"다." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} \"{obj}\"가 성공적으로 변경되었습니다. 아래에서 다른 {name}을 추가할 " -"수 있습니다." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\"가 성공적으로 변경되었습니다." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"항목들에 액션을 적용하기 위해선 먼저 항목들이 선택되어 있어야 합니다. 아무 항" -"목도 변경되지 않았습니다." - -msgid "No action selected." -msgstr "액션이 선택되지 않았습니다." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s \"%(obj)s\"이/가 성공적으로 삭제되었습니다." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"ID \"%(key)s\"을/를 지닌%(name)s이/가 존재하지 않습니다. 삭제된 값이 아닌지 " -"확인해주세요." - -#, python-format -msgid "Add %s" -msgstr "%s 추가" - -#, python-format -msgid "Change %s" -msgstr "%s 변경" - -#, python-format -msgid "View %s" -msgstr "뷰 %s" - -msgid "Database error" -msgstr "데이터베이스 오류" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s개의 %(name)s이/가 변경되었습니다." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "총 %(total_count)s개가 선택되었습니다." - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s 중 아무것도 선택되지 않았습니다." - -#, python-format -msgid "Change history: %s" -msgstr "변경 히스토리: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(class_name)s %(instance)s 을/를 삭제하려면 다음 보호상태의 연관된 오브젝트" -"들을 삭제해야 합니다: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django 사이트 관리" - -msgid "Django administration" -msgstr "Django 관리" - -msgid "Site administration" -msgstr "사이트 관리" - -msgid "Log in" -msgstr "로그인" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s 관리" - -msgid "Page not found" -msgstr "페이지를 찾을 수 없습니다." - -msgid "We’re sorry, but the requested page could not be found." -msgstr "죄송합니다, 요청한 페이지를 찾을 수 없습니다." - -msgid "Home" -msgstr "홈" - -msgid "Server error" -msgstr "서버 오류" - -msgid "Server error (500)" -msgstr "서버 오류 (500)" - -msgid "Server Error (500)" -msgstr "서버 오류 (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"오류가 발생했습니다. 사이트 관리자들에게 이메일로 보고되었고 단시일 내에 수정" -"될 것입니다. 기다려주셔서 감사합니다." - -msgid "Run the selected action" -msgstr "선택한 액션을 실행합니다." - -msgid "Go" -msgstr "실행" - -msgid "Click here to select the objects across all pages" -msgstr "모든 페이지의 항목들을 선택하려면 여기를 클릭하세요." - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "%(total_count)s개의 %(module_name)s 모두를 선택합니다." - -msgid "Clear selection" -msgstr "선택 해제" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s 애플리케이션의 모델" - -msgid "Add" -msgstr "추가" - -msgid "View" -msgstr "보기" - -msgid "You don’t have permission to view or edit anything." -msgstr "독자는 뷰 및 수정 권한이 없습니다." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"첫 번째로, 사용자명과 비밀번호를 입력하세요. 그 후, 독자는 더 많은 사용자 옵" -"션을 수정할 수 있습니다. " - -msgid "Enter a username and password." -msgstr "사용자 이름과 비밀번호를 입력하세요." - -msgid "Change password" -msgstr "비밀번호 변경" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "아래 오류를 수정하기 바랍니다. " - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "%(username)s 새로운 비밀번호를 입력하세요." - -msgid "Skip to main content" -msgstr "메인 콘텐츠로 이동" - -msgid "Welcome," -msgstr "환영합니다," - -msgid "View site" -msgstr "사이트 보기" - -msgid "Documentation" -msgstr "문서" - -msgid "Log out" -msgstr "로그아웃" - -msgid "Breadcrumbs" -msgstr "사용자 위치" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s 추가" - -msgid "History" -msgstr "히스토리" - -msgid "View on site" -msgstr "사이트에서 보기" - -msgid "Filter" -msgstr "필터" - -msgid "Clear all filters" -msgstr "모든 필터 삭제" - -msgid "Remove from sorting" -msgstr "정렬에서 " - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "정렬 조건 : %(priority_number)s" - -msgid "Toggle sorting" -msgstr "정렬 " - -msgid "Toggle theme (current theme: auto)" -msgstr "테마 토글 (현재 테마:자동)" - -msgid "Toggle theme (current theme: light)" -msgstr "테마 토글 (현재 테마: 밝음)" - -msgid "Toggle theme (current theme: dark)" -msgstr "테마 토글 (현재 테마: 어두움)" - -msgid "Delete" -msgstr "삭제" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s \"%(escaped_object)s\" 을/를 삭제하면서관련 오브젝트를 제거하" -"고자 했으나, 지금 사용하시는 계정은 다음 타입의 오브젝트를 제거할 권한이 없습" -"니다. :" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s'를 삭제하려면 다음 보호상태의 연관된 오브" -"젝트들을 삭제해야 합니다." - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"정말로 %(object_name)s \"%(escaped_object)s\"을/를 삭제하시겠습니까? 다음의 " -"관련 항목들이 모두 삭제됩니다. :" - -msgid "Objects" -msgstr "오브젝트" - -msgid "Yes, I’m sure" -msgstr "네, 확신합니다. " - -msgid "No, take me back" -msgstr "아뇨, 돌려주세요." - -msgid "Delete multiple objects" -msgstr "여러 개의 오브젝트 삭제" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"연관 오브젝트 삭제로 선택한 %(objects_name)s의 삭제 중, 그러나 당신의 계정은 " -"다음 오브젝트의 삭제 권한이 없습니다. " - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"%(objects_name)s를 삭제하려면 다음 보호상태의 연관된 오브젝트들을 삭제해야 합" -"니다." - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"선택한 %(objects_name)s를 정말 삭제하시겠습니까? 다음의 오브젝트와 연관 아이" -"템들이 모두 삭제됩니다:" - -msgid "Delete?" -msgstr "삭제" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s (으)로" - -msgid "Summary" -msgstr "개요" - -msgid "Recent actions" -msgstr "최근 활동" - -msgid "My actions" -msgstr "나의 활동" - -msgid "None available" -msgstr "이용할 수 없습니다." - -msgid "Unknown content" -msgstr "알 수 없는 형식입니다." - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"당신의 데이터베이스 설치, 설치본에 오류가 있습니다. \n" -"적합한 데이터베이스 테이블이 생성되었는지 확인하고, 데이터베이스가 적합한 사" -"용자가 열람할 수 있는 지 확인하십시오. " - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"%(username)s 로 인증되어 있지만, 이 페이지에 접근 가능한 권한이 없습니다. 다" -"른 계정으로 로그인하시겠습니까?" - -msgid "Forgotten your password or username?" -msgstr "아이디 또는 비밀번호를 분실하였습니까?" - -msgid "Toggle navigation" -msgstr "토글 메뉴" - -msgid "Sidebar" -msgstr "사이드바" - -msgid "Start typing to filter…" -msgstr "필터에 타이핑 시작..." - -msgid "Filter navigation items" -msgstr "탐색 항목 필터링" - -msgid "Date/time" -msgstr "날짜/시간" - -msgid "User" -msgstr "사용자" - -msgid "Action" -msgstr "액션" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "항목" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"이 개체는 변경 기록이 없습니다. 아마도 이 관리자 사이트를 통해 추가되지 않았" -"을 것입니다. " - -msgid "Show all" -msgstr "모두 표시" - -msgid "Save" -msgstr "저장" - -msgid "Popup closing…" -msgstr "팝업 닫는중..." - -msgid "Search" -msgstr "검색" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "결과 %(counter)s개 나옴" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "총 %(full_result_count)s건" - -msgid "Save as new" -msgstr "새로 저장" - -msgid "Save and add another" -msgstr "저장 및 다른 이름으로 추가" - -msgid "Save and continue editing" -msgstr "저장 및 편집 계속" - -msgid "Save and view" -msgstr "저장하고 조회하기" - -msgid "Close" -msgstr "닫기" - -#, python-format -msgid "Change selected %(model)s" -msgstr "선택된 %(model)s 변경" - -#, python-format -msgid "Add another %(model)s" -msgstr "%(model)s 추가" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "선택된 %(model)s 제거" - -#, python-format -msgid "View selected %(model)s" -msgstr "선택된 %(model)s 보기" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "사이트를 이용해 주셔서 고맙습니다." - -msgid "Log in again" -msgstr "다시 로그인하기" - -msgid "Password change" -msgstr "비밀번호 변경" - -msgid "Your password was changed." -msgstr "비밀번호가 변경되었습니다." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"독자의 과거 비밀번호를 입력한 후, 보안을 위해 새로운 비밀번호을 두 번 입력하" -"여 옳은 입력인 지 확인할 수 있도록 하십시오." - -msgid "Change my password" -msgstr "비밀번호 변경" - -msgid "Password reset" -msgstr "비밀번호 초기화" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "비밀번호가 설정되었습니다. 이제 로그인하세요." - -msgid "Password reset confirmation" -msgstr "비밀번호 초기화 확인" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"새로운 비밀번호를 정확히 입력했는지 확인할 수 있도록 두 번 입력하시기 바랍니" -"다." - -msgid "New password:" -msgstr "새로운 비밀번호:" - -msgid "Confirm password:" -msgstr "새로운 비밀번호 (확인):" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"비밀번호 초기화 링크가 이미 사용되어 올바르지 않습니다. 비밀번호 초기화를 다" -"시 해주세요." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"계정이 존재한다면, 독자가 입력한 이메일로 비밀번호 설정 안내문을 발송했습니" -"다. 곧 수신할 수 있을 것입니다. " - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"만약 이메일을 받지 못하였다면, 등록하신 이메일을 다시 확인하시거나 스팸 메일" -"함을 확인해주세요." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"%(site_name)s의 계정 비밀번호를 초기화하기 위한 요청으로 이 이메일이 전송되었" -"습니다." - -msgid "Please go to the following page and choose a new password:" -msgstr "다음 페이지에서 새 비밀번호를 선택하세요." - -msgid "Your username, in case you’ve forgotten:" -msgstr "사용자명:" - -msgid "Thanks for using our site!" -msgstr "사이트를 이용해 주셔서 고맙습니다." - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s 팀" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"비밀번호를 잊어버렸나요? 이메일 주소를 아래에 입력하시면 새로운 비밀번호를 설" -"정하는 절차를 이메일로 보내드리겠습니다." - -msgid "Email address:" -msgstr "이메일 주소:" - -msgid "Reset my password" -msgstr "비밀번호 초기화" - -msgid "All dates" -msgstr "언제나" - -#, python-format -msgid "Select %s" -msgstr "%s 선택" - -#, python-format -msgid "Select %s to change" -msgstr "변경할 %s 선택" - -#, python-format -msgid "Select %s to view" -msgstr "보기위한 1%s 를(을) 선택" - -msgid "Date:" -msgstr "날짜:" - -msgid "Time:" -msgstr "시각:" - -msgid "Lookup" -msgstr "찾아보기" - -msgid "Currently:" -msgstr "현재:" - -msgid "Change:" -msgstr "변경:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 94395ff..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.po deleted file mode 100644 index 9a0e552..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,276 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# DaHae Sung , 2016 -# Hoseok Lee , 2016 -# Jaehong Kim , 2011 -# Jannis Leidel , 2011 -# Jay Oh , 2020 -# Le Tartuffe , 2014 -# LEE Hwanyong , 2023 -# minsung kang, 2015 -# Yang Chan Woo , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: LEE Hwanyong , 2023\n" -"Language-Team: Korean (http://www.transifex.com/django/django/language/ko/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ko\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "이용 가능한 %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"사용 가능한 %s 의 리스트 입니다. 아래의 상자에서 선택하고 두 상자 사이의 " -"\"선택\" 화살표를 클릭하여 몇 가지를 선택할 수 있습니다." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "사용 가능한 %s 리스트를 필터링하려면 이 상자에 입력하세요." - -msgid "Filter" -msgstr "필터" - -msgid "Choose all" -msgstr "모두 선택" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "한번에 모든 %s 를 선택하려면 클릭하세요." - -msgid "Choose" -msgstr "선택" - -msgid "Remove" -msgstr "삭제" - -#, javascript-format -msgid "Chosen %s" -msgstr "선택된 %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"선택된 %s 리스트 입니다. 아래의 상자에서 선택하고 두 상자 사이의 \"제거\" 화" -"살표를 클릭하여 일부를 제거 할 수 있습니다." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "선택된 %s의 리스트를 필터링 하려면 이 박스에 입력 하세요 ." - -msgid "Remove all" -msgstr "모두 제거" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "한번에 선택된 모든 %s 를 제거하려면 클릭하세요." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s개가 %(cnt)s개 중에 선택됨." - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"개별 편집 가능한 필드에 저장되지 않은 값이 있습니다. 액션을 수행하면 저장되" -"지 않은 값들을 잃어버리게 됩니다." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"개별 필드의 값들을 저장하지 않고 액션을 선택했습니다. OK를 누르면 저장되며, " -"액션을 한 번 더 실행해야 합니다." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"개별 필드에 아무런 변경이 없는 상태로 액션을 선택했습니다. 저장 버튼이 아니" -"라 진행 버튼을 찾아보세요." - -msgid "Now" -msgstr "현재" - -msgid "Midnight" -msgstr "자정" - -msgid "6 a.m." -msgstr "오전 6시" - -msgid "Noon" -msgstr "정오" - -msgid "6 p.m." -msgstr "오후 6시" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Note: 서버 시간보다 %s 시간 빠릅니다." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Note: 서버 시간보다 %s 시간 늦은 시간입니다." - -msgid "Choose a Time" -msgstr "시간 선택" - -msgid "Choose a time" -msgstr "시간 선택" - -msgid "Cancel" -msgstr "취소" - -msgid "Today" -msgstr "오늘" - -msgid "Choose a Date" -msgstr "시간 선택" - -msgid "Yesterday" -msgstr "어제" - -msgid "Tomorrow" -msgstr "내일" - -msgid "January" -msgstr "1월" - -msgid "February" -msgstr "2월" - -msgid "March" -msgstr "3월" - -msgid "April" -msgstr "4월" - -msgid "May" -msgstr "5월" - -msgid "June" -msgstr "6월" - -msgid "July" -msgstr "7월" - -msgid "August" -msgstr "8월" - -msgid "September" -msgstr "9월" - -msgid "October" -msgstr "10월" - -msgid "November" -msgstr "11월" - -msgid "December" -msgstr "12월" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "1월" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "2월" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "3월" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "4월" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "5월" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "6월" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "7월" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "8월" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "9월" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "10월" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "11월" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "12월" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "일" - -msgctxt "one letter Monday" -msgid "M" -msgstr "월" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "화" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "수" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "목" - -msgctxt "one letter Friday" -msgid "F" -msgstr "금" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "토" - -msgid "Show" -msgstr "보기" - -msgid "Hide" -msgstr "감추기" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.mo deleted file mode 100644 index 71d5e5b..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.po deleted file mode 100644 index 683480c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/django.po +++ /dev/null @@ -1,711 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Belek , 2016 -# Chyngyz Monokbaev , 2016 -# Soyuzbek Orozbek uulu , 2020-2021 -# Soyuzbek Orozbek uulu , 2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-27 14:12+0000\n" -"Last-Translator: Soyuzbek Orozbek uulu \n" -"Language-Team: Kyrgyz (http://www.transifex.com/django/django/language/ky/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ky\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Тандалган %(verbose_name_plural)s элементтерин өчүрүү" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s ийгиликтүү өчүрүлдү." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s өчүрүү мүмкүн эмес" - -msgid "Are you sure?" -msgstr "Чечимиңиз аныкпы?" - -msgid "Administration" -msgstr "Башкаруу" - -msgid "All" -msgstr "Баары" - -msgid "Yes" -msgstr "Ооба" - -msgid "No" -msgstr "Жок" - -msgid "Unknown" -msgstr "Такталбаган" - -msgid "Any date" -msgstr "Кааалаган бир күн" - -msgid "Today" -msgstr "Бүгүн" - -msgid "Past 7 days" -msgstr "Өткөн 7 күн" - -msgid "This month" -msgstr "Бул айда" - -msgid "This year" -msgstr "Бул жылда" - -msgid "No date" -msgstr "Күн белгиленген эмес" - -msgid "Has date" -msgstr "Күн белгиленген" - -msgid "Empty" -msgstr "Бош" - -msgid "Not empty" -msgstr "Бош эмес" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Сураныч кызматкердин %(username)s жана сыр сөзүн туура жазыңыз. Эки " -"талаага тең баш тамга же кичүү тамга менен жазганыңыз маанилүү экенин эске " -"тутуңуз." - -msgid "Action:" -msgstr "Аракет" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Дагы %(verbose_name)s кошуу" - -msgid "Remove" -msgstr "Алып таштоо" - -msgid "Addition" -msgstr "Кошумча" - -msgid "Change" -msgstr "Өзгөртүү" - -msgid "Deletion" -msgstr "Өчүрүү" - -msgid "action time" -msgstr "аракет убактысы" - -msgid "user" -msgstr "колдонуучу" - -msgid "content type" -msgstr "Контент тиби" - -msgid "object id" -msgstr "объекттин id-си" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "объекттин repr-и" - -msgid "action flag" -msgstr "аракет белгиси" - -msgid "change message" -msgstr "билдирүүнү өзгөртүү" - -msgid "log entry" -msgstr "Жазуу журналы" - -msgid "log entries" -msgstr "Жазуу журналдары" - -#, python-format -msgid "Added “%(object)s”." -msgstr "“%(object)s” кошулду" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "“%(object)s” — %(changes)s өзгөрдү" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "“%(object)s.” өчүрүлдү" - -msgid "LogEntry Object" -msgstr "LogEntry обектиси" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} “{object}” кошулду" - -msgid "Added." -msgstr "Кошулду." - -msgid "and" -msgstr "жана" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{name} “{object}” үчүн {fields} өзгөртүлдү." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} өзгөртүлдү." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} “{object}” өчүрүлдү." - -msgid "No fields changed." -msgstr "Эч бир талаа өзгөртүлгөн жок" - -msgid "None" -msgstr "Эчбир" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "Көбүрөөк тандоо үчүн “CTRL”, же макбук үчүн “Cmd” кармап туруңуз." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\" ийгиликтүү кошулду." - -msgid "You may edit it again below." -msgstr "Сиз муну төмөндө кайра өзгөртүшүңүз мүмкүн." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "{name} \"{obj}\" ийгиликтүү кошулду. Сиз башка {name} кошо аласыз." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} “{obj}” ийгиликтүү өзгөрдү. Сиз аны төмөндө өзгөртө аласыз." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} “{obj}” ийгиликтүү кошулду. Сиз аны төмөндө өзгөртө аласыз." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} “{obj}” ийгиликтүү өзгөрдү. Төмөндө башка {name} кошсоңуз болот." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\" ийгиликтүү өзгөрдү." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Нерселердин үстүнөн аракет кылуудан мурда алар тандалуусу керек. Эч " -"нерсеөзгөргөн жок." - -msgid "No action selected." -msgstr "Аракет тандалган жок." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s \"%(obj)s\" ийгиликтүү өчүрүлдү" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"ID си %(key)s\" болгон %(name)s табылган жок. Ал өчүрүлгөн болуп жүрбөсүн?" - -#, python-format -msgid "Add %s" -msgstr "%s кошуу" - -#, python-format -msgid "Change %s" -msgstr "%s өзгөртүү" - -#, python-format -msgid "View %s" -msgstr "%s көрүү" - -msgid "Database error" -msgstr "Берилиштер базасында ката" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s%(name)s ийгиликтүү өзгөртүлдү." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Бүт %(total_count)s тандалды" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s нерседен эчтемке тандалган жок" - -#, python-format -msgid "Change history: %s" -msgstr "%s тарыхын өзгөртүү" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(class_name)s %(instance)s өчүрүлүүсү үчүн %(related_objects)s да " -"өчүрүлүүсү талап кылынат." - -msgid "Django site admin" -msgstr "Жанго башкарма сайты" - -msgid "Django administration" -msgstr "Жанго башкармасы" - -msgid "Site administration" -msgstr "Сайт башкармасы" - -msgid "Log in" -msgstr "Кирүү" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s башкармасы" - -msgid "Page not found" -msgstr "Барак табылган жок" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Кечирим сурайбыз, сиз сураган барак табылбады." - -msgid "Home" -msgstr "Башкы" - -msgid "Server error" -msgstr "Сервер катасы" - -msgid "Server error (500)" -msgstr "Сервер (500) катасы" - -msgid "Server Error (500)" -msgstr "Сервер (500) катасы" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ката кетти. Сайт башкармасына экат менен кайрылсаңыз тез арада маселе " -"чечилиши мүмкүн. Түшүнгөнүңүз үчүн рахмат." - -msgid "Run the selected action" -msgstr "Тандалган аракетти иштетиңиз" - -msgid "Go" -msgstr "Жөнө" - -msgid "Click here to select the objects across all pages" -msgstr "Барак боюнча бүт обекттерди тандоо үчүн чыкылдатыңыз" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Бүт %(total_count)s %(module_name)s тандаңыз" - -msgid "Clear selection" -msgstr "Тандоону бошотуу" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s колдонмосундагы моделдер" - -msgid "Add" -msgstr "Кошуу" - -msgid "View" -msgstr "Көрүү" - -msgid "You don’t have permission to view or edit anything." -msgstr "Сиз эчнерсени көрүүгө же өзгөртүүгө жеткиңиз жок." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Оболу колдонуучу атыңызды жана сырсөздү териңиз. Ошондо гана башка " -"маалыматтарын өзгөртө аласыз." - -msgid "Enter a username and password." -msgstr "колдонуучу атыңызды жана сырсөз киргизиңиз." - -msgid "Change password" -msgstr "Сырсөз өзгөртүү" - -msgid "Please correct the error below." -msgstr "Төмөнкү катаны оңдоңуз." - -msgid "Please correct the errors below." -msgstr "Төмөнкү каталарды оңдоңуз" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "%(username)s үчүн жаңы сырсөз териңиз." - -msgid "Welcome," -msgstr "Кош келиңиз," - -msgid "View site" -msgstr "Сайтты ачуу" - -msgid "Documentation" -msgstr "Түшүндүрмө" - -msgid "Log out" -msgstr "Чыгуу" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s кошуу" - -msgid "History" -msgstr "Тарых" - -msgid "View on site" -msgstr "Сайтта көрүү" - -msgid "Filter" -msgstr "Чыпкалоо" - -msgid "Clear all filters" -msgstr "Бүт чыпкаларды алып салуу" - -msgid "Remove from sorting" -msgstr "Ирээттөөдөн алып салуу" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Ирээттөө абзелдүүлүгү: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Ирээтти алмаштыруу" - -msgid "Delete" -msgstr "Өчүрүү" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s өчүрүү үчүн башка байланышкан " -"обекттерди өчүрүү да талап кылынат. Бирок сиздин буга жеткиңиз жок:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s өчүрүү үчүн башка байланышкан " -"обекттерди өчүрүү да талап кылат:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Сиз чындап эле %(object_name)s \"%(escaped_object)s\" өчүрүүнү каалайсызбы? " -"Бүт байланышкан нерселер өчүрүлөт:" - -msgid "Objects" -msgstr "Обекттер" - -msgid "Yes, I’m sure" -msgstr "Ооба, мен чындап эле" - -msgid "No, take me back" -msgstr "Жок, мени аркага кайтар" - -msgid "Delete multiple objects" -msgstr "обекттерди өчүр" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"%(objects_name)s өчүрүү үчүн башка байланышкан обекттерди өчүрүү да талап " -"кылат. Бирок сиздин буга жеткиңиз жок:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"%(objects_name)s өчүрүү үчүн башка байланышкан обекттерди өчүрүү да талап " -"кылат:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"чындап эле %(objects_name)s өчүрүүнү каалайсызбы? Бүт байланышкан нерселер " -"өчүрүлөт:" - -msgid "Delete?" -msgstr "Өчүрөлүбү?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s боюнча" - -msgid "Summary" -msgstr "Жалпысынан" - -msgid "Recent actions" -msgstr "Акыркы аракеттер" - -msgid "My actions" -msgstr "Менин аракеттерим" - -msgid "None available" -msgstr "Мүмкүн эмес" - -msgid "Unknown content" -msgstr "Белгисиз мазмун" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Сиздин базаңызды орнотуу боюнча ката кетти. Керектүү база жадыбалдары " -"түзүлгөндүгүн жана тиешелүү колдонуучунун жеткиси барлыгын текшериңиз." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Сиз %(username)s катары киргенсиз, бирок сиздин бул баракка жеткиңиз жок. " -"Сиз башка колдонуучу катары киресизби?" - -msgid "Forgotten your password or username?" -msgstr "Колдонуучу атыңыз же сырсөздү унутуп калдыңызбы?" - -msgid "Toggle navigation" -msgstr "Навигацияны алмаштыруу" - -msgid "Start typing to filter…" -msgstr "чыпкалоо үчүн жазып башта" - -msgid "Filter navigation items" -msgstr "Навигация элементтерин чыпкалоо" - -msgid "Date/time" -msgstr "Күн/убакыт" - -msgid "User" -msgstr "Колдонуучу" - -msgid "Action" -msgstr "Аракет" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "Бул обекттин өзгөрүү тарыхы жок." - -msgid "Show all" -msgstr "Баарын көрсөтүү" - -msgid "Save" -msgstr "Сактоо" - -msgid "Popup closing…" -msgstr "Жалтаң жабылуу..." - -msgid "Search" -msgstr "Издөө" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "жыйынтыгы:%(counter)s" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "жалпысынан %(full_result_count)s" - -msgid "Save as new" -msgstr "Жаңы катары сактоо" - -msgid "Save and add another" -msgstr "Сакта жана башкасын кош" - -msgid "Save and continue editing" -msgstr "Сакта жана өзгөртүүнү улант" - -msgid "Save and view" -msgstr "Сактап туруп көрүү" - -msgid "Close" -msgstr "Жабуу" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Тандалган %(model)s өзгөртүү" - -#, python-format -msgid "Add another %(model)s" -msgstr "Башка %(model)s кошуу" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Тандалган %(model)s обеттерин өчүрүү" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Сайтта бираз убакыт өткөргөн үчүн ыраазычылык." - -msgid "Log in again" -msgstr "Кайрадан кирүү" - -msgid "Password change" -msgstr "Сырсөз өзгөрт" - -msgid "Your password was changed." -msgstr "Сиздин сырсөз өзгөрдү." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Коопсуздуктан улам эски сырсөздү териңиз, жана биз коошкондугун текшерүү " -"үчүн жаңы сырсөздү эки жолу териңиз." - -msgid "Change my password" -msgstr "Сырсөздү өзгөрт" - -msgid "Password reset" -msgstr "Сырсөздү кыйратуу" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Сиздин сырсөз орнотулду. Эми сиз алдыга карай жылып, кирүү аткарсаңыз болот." - -msgid "Password reset confirmation" -msgstr "Сырсөздү кыйратуу тастыктамасы" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Тууралыгын жана коошкондугун текшере алышыбыз үчүн сырсөздү эки жолу териңиз." - -msgid "New password:" -msgstr "Жаңы сырсөз" - -msgid "Confirm password:" -msgstr "Сырсөз тастыктоосу:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Сырсөз кыйратуу шилтемеси жараксыз, мурдатан эле колдонулган болушу мүмкүн. " -"Башка шилтеме сурап көрүңүз." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Сырсөз тууралуу сизге кат жөнөттүк. Эгер мындай аккаунт бар болсо аны тез " -"арада ала аласыз." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Эгер сиз екат албасаңыз даректин тууралыган текшериңиз жана спам папкасын " -"текшериңиз." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "Сиз %(site_name)s боюнча сырсөз сураган үчүн бул экат келди." - -msgid "Please go to the following page and choose a new password:" -msgstr "Төмөнкү баракка кириңиз да жаңы сырсөз тандаңыз." - -msgid "Your username, in case you’ve forgotten:" -msgstr "Сиздин колдонуучу атыңыз, унутуп калсаңыз керек болот." - -msgid "Thanks for using our site!" -msgstr "Биздин сайтты колдонгонуңуз үчүн рахмат!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s жамааты" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "Сырсөз унуттуңузбу? едарек териңиз сизге сырсөз боюнча экат жөнөтөбүз." - -msgid "Email address:" -msgstr "едарек:" - -msgid "Reset my password" -msgstr "Сырсөзүмдү кыйрат" - -msgid "All dates" -msgstr "Бүт күндөр" - -#, python-format -msgid "Select %s" -msgstr "%s тандоо" - -#, python-format -msgid "Select %s to change" -msgstr "%s обекттерин өзгөртүү үчүн тандоо" - -#, python-format -msgid "Select %s to view" -msgstr "%s обекттерин көрүү үчүн тандоо" - -msgid "Date:" -msgstr "Күн:" - -msgid "Time:" -msgstr "Убак:" - -msgid "Lookup" -msgstr "Көз чаптыруу" - -msgid "Currently:" -msgstr "Азыркы:" - -msgid "Change:" -msgstr "Өзгөртүү:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 037e5fd..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.po deleted file mode 100644 index 76ca738..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,260 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Soyuzbek Orozbek uulu , 2020-2021 -# Soyuzbek Orozbek uulu , 2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-04-02 11:44+0000\n" -"Last-Translator: Soyuzbek Orozbek uulu \n" -"Language-Team: Kyrgyz (http://www.transifex.com/django/django/language/ky/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ky\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s даана жеткиликтүү" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Бул жеткиликтүү тизмеси %s даана . Сиз төмөндө кутудан кээ бирлерин \"Тандоо" -"\" баскычын басуу менен тандап алсаңыз болот." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Жеткиликтүү %s даана тизмесин чыпкалоо үчүн төмөнкү кутуга жазыңыз." - -msgid "Filter" -msgstr "Чыпкалоо" - -msgid "Choose all" -msgstr "Баарын тандоо" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Бүт %s даананы заматта тандоо үчүн чыкылдатыңыз." - -msgid "Choose" -msgstr "Тандоо" - -msgid "Remove" -msgstr "Алып таштоо" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s даана тандалды" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Бул тандалган %s даана. Сиз алардын каалаганын төмөндө кутудан \"Өчүр\" " -"баскычын басуу менен өчүрө аласыз." - -msgid "Remove all" -msgstr "Баарын алып ташта" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Тандалган %s даананын баарын өчүрүү үчүн басыңыз" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)sнерседен %(sel)sтандалды" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Сиз өзүнчө аймактарда сакталбаган өзгөртүүлөргө ээсиз. Эгер сиз бул аракетти " -"жасасаңыз сакталбаган өзгөрүүлөр текке кетет." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Сиз аракетти тандадыңыз бирок өзүнчө аймактарды сактай элексиз. Сактоо үчүн " -"ОК ту басыңыз. Сиз аракетти кайталашыңыз керек." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Сиз аракетти тандадыңыз жана өзүнчө аймактарда өзгөртүү киргизген жоксуз. " -"Сиз Сактоонун ордуна Жөнө баскычын басууңуз керек." - -msgid "Now" -msgstr "Азыр" - -msgid "Midnight" -msgstr "Түнүчү" - -msgid "6 a.m." -msgstr "саарлап саат 6" - -msgid "Noon" -msgstr "Түш" - -msgid "6 p.m." -msgstr "Кэч саат 6" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Эскертүү: Сиз серверден %s саат алдыда жүрөсүз." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Эскертүү: Сиз серверден %s саат аркада жүрөсүз." - -msgid "Choose a Time" -msgstr "Толук убак танда" - -msgid "Choose a time" -msgstr "Кыска убак танда" - -msgid "Cancel" -msgstr "Жокко чыгар" - -msgid "Today" -msgstr "Бүгүн" - -msgid "Choose a Date" -msgstr "Күн танда" - -msgid "Yesterday" -msgstr "Кечээ" - -msgid "Tomorrow" -msgstr "Эртең" - -msgid "January" -msgstr "Январь" - -msgid "February" -msgstr "Февраль" - -msgid "March" -msgstr "Март" - -msgid "April" -msgstr "Апрель" - -msgid "May" -msgstr "Май" - -msgid "June" -msgstr "Июнь" - -msgid "July" -msgstr "Июль" - -msgid "August" -msgstr "Август" - -msgid "September" -msgstr "Сентябрь" - -msgid "October" -msgstr "Октябрь" - -msgid "November" -msgstr "Ноябрь" - -msgid "December" -msgstr "Декабрь" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Янв" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Фев" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Мар" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Апр" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Май" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Июн" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Июл" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Авг" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Сен" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Окт" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Ноя" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Дек" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Жек" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Дүй" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Шей" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Шар" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Бей" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Жума" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Ише" - -msgid "Show" -msgstr "Көрсөт" - -msgid "Hide" -msgstr "Жашыр" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.mo deleted file mode 100644 index f989aed..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.po deleted file mode 100644 index 5e2e794..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/django.po +++ /dev/null @@ -1,632 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# sim0n , 2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Luxembourgish (http://www.transifex.com/django/django/" -"language/lb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: lb\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "All" - -msgid "Yes" -msgstr "Jo" - -msgid "No" -msgstr "Nee" - -msgid "Unknown" -msgstr "Onbekannt" - -msgid "Any date" -msgstr "Iergendeen Datum" - -msgid "Today" -msgstr "Haut" - -msgid "Past 7 days" -msgstr "Läscht 7 Deeg" - -msgid "This month" -msgstr "Dëse Mount" - -msgid "This year" -msgstr "Dëst Joer" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "Aktioun:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Remove" -msgstr "" - -msgid "action time" -msgstr "" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "" - -msgid "action flag" -msgstr "" - -msgid "change message" -msgstr "" - -msgid "log entry" -msgstr "" - -msgid "log entries" -msgstr "" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "" - -msgid "None" -msgstr "" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "" - -#, python-format -msgid "Change %s" -msgstr "" - -msgid "Database error" -msgstr "" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "" - -msgid "Django administration" -msgstr "" - -msgid "Site administration" -msgstr "" - -msgid "Log in" -msgstr "" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "" - -msgid "We're sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "" - -msgid "Server error" -msgstr "" - -msgid "Server error (500)" -msgstr "" - -msgid "Server Error (500)" -msgstr "" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "" - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "" - -msgid "Log out" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "" - -msgid "History" -msgstr "" - -msgid "View on site" -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "Läschen" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "Änner" - -msgid "Delete?" -msgstr "" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "" - -msgid "You don't have permission to edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "" - -msgid "User" -msgstr "" - -msgid "Action" -msgstr "" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "" - -msgid "Save" -msgstr "" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -msgid "Save as new" -msgstr "" - -msgid "Save and add another" -msgstr "" - -msgid "Save and continue editing" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "" - -msgid "Log in again" -msgstr "" - -msgid "Password change" -msgstr "" - -msgid "Your password was changed." -msgstr "" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "" - -msgid "Password reset" -msgstr "" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "" - -msgid "Confirm password:" -msgstr "" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "" - -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "" - -msgid "All dates" -msgstr "" - -#, python-format -msgid "Select %s" -msgstr "" - -#, python-format -msgid "Select %s to change" -msgstr "" - -msgid "Date:" -msgstr "" - -msgid "Time:" -msgstr "" - -msgid "Lookup" -msgstr "" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 5b7937f..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po deleted file mode 100644 index e1c4a6a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,145 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2014-10-05 20:12+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Luxembourgish (http://www.transifex.com/projects/p/django/" -"language/lb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: lb\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Choose all" -msgstr "" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "" - -#, javascript-format -msgid "Chosen %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "" - -msgid "Clock" -msgstr "" - -msgid "Choose a time" -msgstr "" - -msgid "Midnight" -msgstr "" - -msgid "6 a.m." -msgstr "" - -msgid "Noon" -msgstr "" - -msgid "Cancel" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Calendar" -msgstr "" - -msgid "Yesterday" -msgstr "" - -msgid "Tomorrow" -msgstr "" - -msgid "" -"January February March April May June July August September October November " -"December" -msgstr "" - -msgid "S M T W T F S" -msgstr "" - -msgid "Show" -msgstr "" - -msgid "Hide" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.mo deleted file mode 100644 index b225f66..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.po deleted file mode 100644 index 0c93418..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/django.po +++ /dev/null @@ -1,720 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# lauris , 2011 -# Matas Dailyda , 2015-2019 -# Nikolajus Krauklis , 2013 -# Simonas Kazlauskas , 2012-2013 -# sirex , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-01-18 10:32+0000\n" -"Last-Translator: Matas Dailyda \n" -"Language-Team: Lithuanian (http://www.transifex.com/django/django/language/" -"lt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: lt\n" -"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " -"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " -"1 : n % 1 != 0 ? 2: 3);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Sėkmingai ištrinta %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Ištrinti %(name)s negalima" - -msgid "Are you sure?" -msgstr "Ar esate tikras?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Ištrinti pasirinktus %(verbose_name_plural)s " - -msgid "Administration" -msgstr "Administravimas" - -msgid "All" -msgstr "Visi" - -msgid "Yes" -msgstr "Taip" - -msgid "No" -msgstr "Ne" - -msgid "Unknown" -msgstr "Nežinomas" - -msgid "Any date" -msgstr "Betkokia data" - -msgid "Today" -msgstr "Šiandien" - -msgid "Past 7 days" -msgstr "Paskutinės 7 dienos" - -msgid "This month" -msgstr "Šį mėnesį" - -msgid "This year" -msgstr "Šiais metais" - -msgid "No date" -msgstr "Nėra datos" - -msgid "Has date" -msgstr "Turi datą" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Prašome įvesti tinkamą personalo paskyros %(username)s ir slaptažodį. " -"Atminkite, kad abu laukeliai yra jautrūs raidžių dydžiui." - -msgid "Action:" -msgstr "Veiksmas:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Pridėti dar viena %(verbose_name)s" - -msgid "Remove" -msgstr "Pašalinti" - -msgid "Addition" -msgstr "Pridėjimas" - -msgid "Change" -msgstr "Pakeisti" - -msgid "Deletion" -msgstr "Pašalinimas" - -msgid "action time" -msgstr "veiksmo laikas" - -msgid "user" -msgstr "vartotojas" - -msgid "content type" -msgstr "turinio tipas" - -msgid "object id" -msgstr "objekto id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objekto repr" - -msgid "action flag" -msgstr "veiksmo žymė" - -msgid "change message" -msgstr "pakeisti žinutę" - -msgid "log entry" -msgstr "log įrašas" - -msgid "log entries" -msgstr "log įrašai" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "„%(object)s“ pridėti." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Pakeisti „%(object)s“ - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "„%(object)s“ ištrinti." - -msgid "LogEntry Object" -msgstr "LogEntry objektas" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "Pridėtas {name} \"{object}\"." - -msgid "Added." -msgstr "Pridėta." - -msgid "and" -msgstr "ir" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "Pakeisti {fields} arba {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Pakeisti {fields}." - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "Pašalintas {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Nei vienas laukas nepakeistas" - -msgid "None" -msgstr "None" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Nuspauskite \"Control\", arba \"Command\" Mac kompiuteriuose, kad pasirinkti " -"daugiau nei vieną." - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "{name} \"{obj}\" buvo sėkmingai pridėtas." - -msgid "You may edit it again below." -msgstr "Galite tai dar kartą redaguoti žemiau." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" -"{name} \"{obj}\" buvo sėkmingai pridėtas. Galite pridėti kitą {name} žemiau." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "{name} \"{obj}\" buvo sėkmingai pakeistas. Galite jį koreguoti žemiau." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\" buvo sėkmingai pridėtas. Galite jį vėl redaguoti žemiau." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} \"{obj}\" buvo sėkmingai pakeistas. Galite pridėti kitą {name} žemiau." - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "{name} \"{obj}\" buvo sėkmingai pakeistas." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Įrašai turi būti pasirinkti, kad būtų galima atlikti veiksmus. Įrašai " -"pakeisti nebuvo." - -msgid "No action selected." -msgstr "Veiksmai atlikti nebuvo." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" sėkmingai ištrintas." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "%(name)s su ID \"%(key)s\" neegzistuoja. Gal tai buvo ištrinta?" - -#, python-format -msgid "Add %s" -msgstr "Pridėti %s" - -#, python-format -msgid "Change %s" -msgstr "Pakeisti %s" - -#, python-format -msgid "View %s" -msgstr "Peržiūrėti %s" - -msgid "Database error" -msgstr "Duomenų bazės klaida" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s sėkmingai pakeistas." -msgstr[1] "%(count)s %(name)s sėkmingai pakeisti." -msgstr[2] "%(count)s %(name)s " -msgstr[3] "%(count)s %(name)s " - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s pasirinktas" -msgstr[1] "%(total_count)s pasirinkti" -msgstr[2] "Visi %(total_count)s pasirinkti" -msgstr[3] "Visi %(total_count)s pasirinkti" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 iš %(cnt)s pasirinkta" - -#, python-format -msgid "Change history: %s" -msgstr "Pakeitimų istorija: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(class_name)s %(instance)s šalinimas reikalautų pašalinti apsaugotus " -"susijusius objektus: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django tinklalapio administravimas" - -msgid "Django administration" -msgstr "Django administravimas" - -msgid "Site administration" -msgstr "Tinklalapio administravimas" - -msgid "Log in" -msgstr "Prisijungti" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s administravimas" - -msgid "Page not found" -msgstr "Puslapis nerastas" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Atsiprašome, bet prašytas puslapis nerastas." - -msgid "Home" -msgstr "Pradinis" - -msgid "Server error" -msgstr "Serverio klaida" - -msgid "Server error (500)" -msgstr "Serverio klaida (500)" - -msgid "Server Error (500)" -msgstr "Serverio klaida (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Netikėta klaida. Apie ją buvo pranešta administratoriams el. paštu ir ji " -"turėtų būti greitai sutvarkyta. Dėkui už kantrybę." - -msgid "Run the selected action" -msgstr "Vykdyti pasirinktus veiksmus" - -msgid "Go" -msgstr "Vykdyti" - -msgid "Click here to select the objects across all pages" -msgstr "Spauskite čia norėdami pasirinkti visus įrašus" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Pasirinkti visus %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Atstatyti į pradinę būseną" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Pirmiausia įveskite naudotojo vardą ir slaptažodį. Tada galėsite keisti " -"daugiau naudotojo nustatymų." - -msgid "Enter a username and password." -msgstr "Įveskite naudotojo vardą ir slaptažodį." - -msgid "Change password" -msgstr "Keisti slaptažodį" - -msgid "Please correct the error below." -msgstr "Prašome ištaisyti žemiau esančią klaidą." - -msgid "Please correct the errors below." -msgstr "Ištaisykite žemiau esančias klaidas." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Įveskite naują slaptažodį naudotojui %(username)s." - -msgid "Welcome," -msgstr "Sveiki," - -msgid "View site" -msgstr "Peržiūrėti tinklalapį" - -msgid "Documentation" -msgstr "Dokumentacija" - -msgid "Log out" -msgstr "Atsijungti" - -#, python-format -msgid "Add %(name)s" -msgstr "Naujas %(name)s" - -msgid "History" -msgstr "Istorija" - -msgid "View on site" -msgstr "Matyti tinklalapyje" - -msgid "Filter" -msgstr "Filtras" - -msgid "Remove from sorting" -msgstr "Pašalinti iš rikiavimo" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Rikiavimo prioritetas: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Perjungti rikiavimą" - -msgid "Delete" -msgstr "Ištrinti" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Trinant %(object_name)s '%(escaped_object)s' turi būti ištrinti ir susiję " -"objektai, bet tavo vartotojas neturi teisių ištrinti šių objektų:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Ištrinant %(object_name)s '%(escaped_object)s' būtų ištrinti šie apsaugoti " -"ir susiję objektai:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ar este tikri, kad norite ištrinti %(object_name)s \"%(escaped_object)s\"? " -"Visi susiję objektai bus ištrinti:" - -msgid "Objects" -msgstr "Objektai" - -msgid "Yes, I'm sure" -msgstr "Taip, esu tikras" - -msgid "No, take me back" -msgstr "Ne, grįžti atgal" - -msgid "Delete multiple objects" -msgstr "Ištrinti kelis objektus" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Ištrinant pasirinktą %(objects_name)s būtų ištrinti susiję objektai, tačiau " -"jūsų vartotojas neturi reikalingų teisių ištrinti šiuos objektų tipus:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Ištrinant pasirinktus %(objects_name)s būtų ištrinti šie apsaugoti ir susiję " -"objektai:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ar esate tikri, kad norite ištrinti pasirinktus %(objects_name)s? Sekantys " -"pasirinkti bei susiję objektai bus ištrinti:" - -msgid "View" -msgstr "Peržiūrėti" - -msgid "Delete?" -msgstr "Ištrinti?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Pagal %(filter_title)s " - -msgid "Summary" -msgstr "Santrauka" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s aplikacijos modeliai" - -msgid "Add" -msgstr "Pridėti" - -msgid "You don't have permission to view or edit anything." -msgstr "Jūs neturite teisių peržiūrai ir redagavimui." - -msgid "Recent actions" -msgstr "Paskutiniai veiksmai" - -msgid "My actions" -msgstr "Mano veiksmai" - -msgid "None available" -msgstr "Nėra prieinamų" - -msgid "Unknown content" -msgstr "Nežinomas turinys" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Kažkas yra negerai su jūsų duomenų bazės instaliacija. Įsitikink, kad visos " -"reikalingos lentelės sukurtos ir vartotojas turi teises skaityti duomenų " -"bazę." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Jūs esate prisijungęs kaip %(username)s, bet neturite teisių patekti į šį " -"puslapį. Ar norėtumete prisijungti su kitu vartotoju?" - -msgid "Forgotten your password or username?" -msgstr "Pamiršote slaptažodį ar vartotojo vardą?" - -msgid "Date/time" -msgstr "Data/laikas" - -msgid "User" -msgstr "Naudotojas" - -msgid "Action" -msgstr "Veiksmas" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Šis objektas neturi pakeitimų istorijos. Tikriausiai jis buvo pridėtas ne " -"per administravimo puslapį." - -msgid "Show all" -msgstr "Rodyti visus" - -msgid "Save" -msgstr "Išsaugoti" - -msgid "Popup closing…" -msgstr "Iškylantysis langas užsidaro..." - -msgid "Search" -msgstr "Ieškoti" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s rezultatas" -msgstr[1] "%(counter)s rezultatai" -msgstr[2] "%(counter)s rezultatai" -msgstr[3] "%(counter)s rezultatai" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s iš viso" - -msgid "Save as new" -msgstr "Išsaugoti kaip naują" - -msgid "Save and add another" -msgstr "Išsaugoti ir pridėti naują" - -msgid "Save and continue editing" -msgstr "Išsaugoti ir tęsti redagavimą" - -msgid "Save and view" -msgstr "Išsaugoti ir peržiūrėti" - -msgid "Close" -msgstr "Uždaryti" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Keisti pasirinktus %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Pridėti dar vieną %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Pašalinti pasirinktus %(model)s" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Dėkui už šiandien tinklalapyje turiningai praleistą laiką." - -msgid "Log in again" -msgstr "Prisijungti dar kartą" - -msgid "Password change" -msgstr "Slaptažodžio keitimas" - -msgid "Your password was changed." -msgstr "Jūsų slaptažodis buvo pakeistas." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Saugumo sumetimais įveskite seną slaptažodį ir tada du kartus naują, kad " -"įsitikinti, jog nesuklydote rašydamas" - -msgid "Change my password" -msgstr "Keisti mano slaptažodį" - -msgid "Password reset" -msgstr "Slaptažodžio atstatymas" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Jūsų slaptažodis buvo išsaugotas. Dabas galite prisijungti." - -msgid "Password reset confirmation" -msgstr "Slaptažodžio atstatymo patvirtinimas" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Įveskite naująjį slaptažodį du kartus, taip užtikrinant, jog nesuklydote " -"rašydami." - -msgid "New password:" -msgstr "Naujasis slaptažodis:" - -msgid "Confirm password:" -msgstr "Slaptažodžio patvirtinimas:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Slaptažodžio atstatymo nuoroda buvo negaliojanti, nes ji tikriausiai jau " -"buvo panaudota. Prašykite naujo slaptažodžio pakeitimo." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Jei egzistuoja vartotojas su jūsų įvestu elektroninio pašto adresu, " -"išsiųsime jums slaptažodžio nustatymo instrukcijas . Instrukcijas turėtumėte " -"gauti netrukus." - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Jei el. laiško negavote, prašome įsitikinti ar įvedėte tą el. pašto adresą " -"kuriuo registravotės ir patikrinkite savo šlamšto aplanką." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Jūs gaunate šį laišką nes prašėte paskyros slaptažodžio atkūrimo " -"%(site_name)s svetainėje." - -msgid "Please go to the following page and choose a new password:" -msgstr "Prašome eiti į šį puslapį ir pasirinkti naują slaptažodį:" - -msgid "Your username, in case you've forgotten:" -msgstr "Jūsų naudotojo vardas, jei netyčia jį užmiršote:" - -msgid "Thanks for using our site!" -msgstr "Dėkui, kad naudojatės mūsų tinklalapiu!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s komanda" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Pamiršote slaptažodį? Įveskite savo el. pašto adresą ir mes išsiųsime laišką " -"su instrukcijomis kaip nustatyti naują slaptažodį." - -msgid "Email address:" -msgstr "El. pašto adresas:" - -msgid "Reset my password" -msgstr "Atstatyti slaptažodį" - -msgid "All dates" -msgstr "Visos datos" - -#, python-format -msgid "Select %s" -msgstr "Pasirinkti %s" - -#, python-format -msgid "Select %s to change" -msgstr "Pasirinkite %s kurį norite keisti" - -#, python-format -msgid "Select %s to view" -msgstr "Pasirinkti %s peržiūrai" - -msgid "Date:" -msgstr "Data:" - -msgid "Time:" -msgstr "Laikas:" - -msgid "Lookup" -msgstr "Paieška" - -msgid "Currently:" -msgstr "Šiuo metu:" - -msgid "Change:" -msgstr "Pakeisti:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 77922d3..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.po deleted file mode 100644 index a922bd6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,236 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Kostas , 2011 -# Matas Dailyda , 2015-2016 -# Povilas Balzaravičius , 2011 -# Simonas Kazlauskas , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Matas Dailyda \n" -"Language-Team: Lithuanian (http://www.transifex.com/django/django/language/" -"lt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: lt\n" -"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " -"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " -"1 : n % 1 != 0 ? 2: 3);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Galimi %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Tai yra sąrašas prieinamų %s. Dėžutėje žemiau pažymėdami keletą iš jų ir " -"paspausdami „Pasirinkti“ rodyklę tarp dviejų dėžučių jūs galite pasirinkti " -"keletą iš jų." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Rašykite į šią dėžutę, kad išfiltruotumėte prieinamų %s sąrašą." - -msgid "Filter" -msgstr "Filtras" - -msgid "Choose all" -msgstr "Pasirinkti visus" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Spustelėkite, kad iš karto pasirinktumėte visus %s." - -msgid "Choose" -msgstr "Pasirinkti" - -msgid "Remove" -msgstr "Pašalinti" - -#, javascript-format -msgid "Chosen %s" -msgstr "Pasirinktas %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Tai yra sąrašas pasirinktų %s. Dėžutėje žemiau pažymėdami keletą iš jų ir " -"paspausdami „Pašalinti“ rodyklę tarp dviejų dėžučių jūs galite pašalinti " -"keletą iš jų." - -msgid "Remove all" -msgstr "Pašalinti visus" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Spustelėkite, kad iš karto pašalintumėte visus pasirinktus %s." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "pasirinktas %(sel)s iš %(cnt)s" -msgstr[1] "pasirinkti %(sel)s iš %(cnt)s" -msgstr[2] "pasirinkti %(sel)s iš %(cnt)s" -msgstr[3] "pasirinkti %(sel)s iš %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Turite neišsaugotų pakeitimų. Jeigu tęsite, Jūsų pakeitimai bus prarasti." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Pasirinkote veiksmą, bet dar neesate išsaugoję pakeitimų. Nuspauskite Gerai " -"norėdami išsaugoti. Jus reikės iš naujo paleisti veiksmą." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Pasirinkote veiksmą, bet neesate pakeitę laukų reikšmių. Jūs greičiausiai " -"ieškote mygtuko Vykdyti, o ne mygtuko Saugoti." - -msgid "Now" -msgstr "Dabar" - -msgid "Midnight" -msgstr "Vidurnaktis" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Vidurdienis" - -msgid "6 p.m." -msgstr "18:00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -"Pastaba: Jūsų laikrodis rodo %s valanda daugiau nei serverio laikrodis." -msgstr[1] "" -"Pastaba: Jūsų laikrodis rodo %s valandomis daugiau nei serverio laikrodis." -msgstr[2] "" -"Pastaba: Jūsų laikrodis rodo %s valandų daugiau nei serverio laikrodis." -msgstr[3] "" -"Pastaba: Jūsų laikrodis rodo %s valandų daugiau nei serverio laikrodis." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -"Pastaba: Jūsų laikrodis rodo %s valanda mažiau nei serverio laikrodis." -msgstr[1] "" -"Pastaba: Jūsų laikrodis rodo %s valandomis mažiau nei serverio laikrodis." -msgstr[2] "" -"Pastaba: Jūsų laikrodis rodo %s valandų mažiau nei serverio laikrodis." -msgstr[3] "" -"Pastaba: Jūsų laikrodis rodo %s valandų mažiau nei serverio laikrodis." - -msgid "Choose a Time" -msgstr "Pasirinkite laiką" - -msgid "Choose a time" -msgstr "Pasirinkite laiką" - -msgid "Cancel" -msgstr "Atšaukti" - -msgid "Today" -msgstr "Šiandien" - -msgid "Choose a Date" -msgstr "Pasirinkite datą" - -msgid "Yesterday" -msgstr "Vakar" - -msgid "Tomorrow" -msgstr "Rytoj" - -msgid "January" -msgstr "Sausis" - -msgid "February" -msgstr "Vasaris" - -msgid "March" -msgstr "Kovas" - -msgid "April" -msgstr "Balandis" - -msgid "May" -msgstr "Gegužė" - -msgid "June" -msgstr "Birželis" - -msgid "July" -msgstr "Liepa" - -msgid "August" -msgstr "Rugpjūtis" - -msgid "September" -msgstr "Rugsėjis" - -msgid "October" -msgstr "Spalis" - -msgid "November" -msgstr "Lapkritis" - -msgid "December" -msgstr "Gruodis" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "S" - -msgctxt "one letter Monday" -msgid "M" -msgstr "P" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "A" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "T" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "K" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Pn" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Š" - -msgid "Show" -msgstr "Parodyti" - -msgid "Hide" -msgstr "Slėpti" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo deleted file mode 100644 index 47ffd4d..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.po deleted file mode 100644 index f74f3ae..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/django.po +++ /dev/null @@ -1,757 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# edgars , 2011 -# Edgars Voroboks , 2023 -# Edgars Voroboks , 2017,2022 -# Edgars Voroboks , 2018 -# Jannis Leidel , 2011 -# Māris Nartišs , 2016 -# Edgars Voroboks , 2019-2021 -# peterisb , 2016 -# Pēteris Caune, 2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Pēteris Caune, 2023\n" -"Language-Team: Latvian (http://www.transifex.com/django/django/language/" -"lv/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: lv\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " -"2);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Izdzēst izvēlēto %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Veiksmīgi izdzēsti %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Nevar izdzēst %(name)s" - -msgid "Are you sure?" -msgstr "Vai esat pārliecināts?" - -msgid "Administration" -msgstr "Administrācija" - -msgid "All" -msgstr "Visi" - -msgid "Yes" -msgstr "Jā" - -msgid "No" -msgstr "Nē" - -msgid "Unknown" -msgstr "Nezināms" - -msgid "Any date" -msgstr "Jebkurš datums" - -msgid "Today" -msgstr "Šodien" - -msgid "Past 7 days" -msgstr "Pēdējās 7 dienas" - -msgid "This month" -msgstr "Šomēnes" - -msgid "This year" -msgstr "Šogad" - -msgid "No date" -msgstr "Nav datums" - -msgid "Has date" -msgstr "Ir datums" - -msgid "Empty" -msgstr "Tukšs" - -msgid "Not empty" -msgstr "Nav tukšs" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Lūdzu ievadi korektu %(username)s un paroli personāla kontam. Ņem vērā, ka " -"abi ievades lauki ir reģistrjutīgi." - -msgid "Action:" -msgstr "Darbība:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Pievienot vēl %(verbose_name)s" - -msgid "Remove" -msgstr "Dzēst" - -msgid "Addition" -msgstr "Pievienošana" - -msgid "Change" -msgstr "Izmainīt" - -msgid "Deletion" -msgstr "Dzēšana" - -msgid "action time" -msgstr "darbības laiks" - -msgid "user" -msgstr "lietotājs" - -msgid "content type" -msgstr "satura tips" - -msgid "object id" -msgstr "objekta id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objekta attēlojums" - -msgid "action flag" -msgstr "darbības atzīme" - -msgid "change message" -msgstr "izmaiņas teksts" - -msgid "log entry" -msgstr "žurnāla ieraksts" - -msgid "log entries" -msgstr "žurnāla ieraksti" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Pievienots “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Labots “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Dzēsts “%(object)s.”" - -msgid "LogEntry Object" -msgstr "LogEntry Objekts" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Pievienots {name} “{object}”." - -msgid "Added." -msgstr "Pievienots." - -msgid "and" -msgstr "un" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Laboti {fields} {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Mainīts {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Dzēsts {name} “{object}”." - -msgid "No fields changed." -msgstr "Lauki nav izmainīti" - -msgid "None" -msgstr "nekas" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Turiet nospiestu “Control”, vai “Command” uz Mac, lai iezīmētu vairāk par " -"vienu." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” veiksmīgi pievienots." - -msgid "You may edit it again below." -msgstr "Jūs varat to atkal labot zemāk. " - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "{name} “{obj}” veiksmīgi pievienots. Zemāk varat pievienot vēl {name}." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} “{obj}” veiksmīgi labots. Zemāk to varat atkal labot." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} “{obj}” veiksmīgi pievienots. Zemāk to varat atkal labot." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} “{obj}” veiksmīgi labots. Zemāk varat pievienot vēl {name}." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” veiksmīgi labots." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "Lai veiktu darbību, jāizvēlas rindas. Rindas nav izmainītas." - -msgid "No action selected." -msgstr "Nav izvēlēta darbība." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” veiksmīgi dzēsts." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s ar ID “%(key)s” neeksistē. Varbūt tas ir dzēsts?" - -#, python-format -msgid "Add %s" -msgstr "Pievienot %s" - -#, python-format -msgid "Change %s" -msgstr "Labot %s" - -#, python-format -msgid "View %s" -msgstr "Apskatīt %s" - -msgid "Database error" -msgstr "Datubāzes kļūda" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s ir laboti sekmīgi" -msgstr[1] "%(count)s %(name)s ir sekmīgi rediģēts" -msgstr[2] "%(count)s %(name)s ir sekmīgi rediģēti." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s izvēlēti" -msgstr[1] "%(total_count)s izvēlēts" -msgstr[2] "%(total_count)s izvēlēti" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 no %(cnt)s izvēlēti" - -#, python-format -msgid "Change history: %s" -msgstr "Izmaiņu vēsture: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(class_name)s %(instance)s dzēšanai ir nepieciešams izdzēst sekojošus " -"aizsargātus saistītos objektus: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django administrācijas lapa" - -msgid "Django administration" -msgstr "Django administrācija" - -msgid "Site administration" -msgstr "Lapas administrācija" - -msgid "Log in" -msgstr "Pieslēgties" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s administrācija" - -msgid "Page not found" -msgstr "Lapa nav atrasta" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Atvainojiet, pieprasītā lapa neeksistē." - -msgid "Home" -msgstr "Sākums" - -msgid "Server error" -msgstr "Servera kļūda" - -msgid "Server error (500)" -msgstr "Servera kļūda (500)" - -msgid "Server Error (500)" -msgstr "Servera kļūda (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Notika kļūda. Lapas administratoriem ir nosūtīts e-pasts un kļūda tuvākajā " -"laikā tiks novērsta. Paldies par pacietību." - -msgid "Run the selected action" -msgstr "Izpildīt izvēlēto darbību" - -msgid "Go" -msgstr "Aiziet!" - -msgid "Click here to select the objects across all pages" -msgstr "Spiest šeit, lai iezīmētu objektus no visām lapām" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Izvēlēties visus %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Atcelt iezīmēto" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modeļi %(name)s lietotnē" - -msgid "Add" -msgstr "Pievienot" - -msgid "View" -msgstr "Apskatīt" - -msgid "You don’t have permission to view or edit anything." -msgstr "Jums nav tiesību neko skatīt vai labot." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Vispirms ievadiet lietotāja vārdu un paroli. Tad varēsiet labot pārējos " -"lietotāja uzstādījumus." - -msgid "Enter a username and password." -msgstr "Ievadi lietotājvārdu un paroli." - -msgid "Change password" -msgstr "Paroles maiņa" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Lūdzu, izlabojiet zemāk norādītās kļūdas." -msgstr[1] "Lūdzu, izlabojiet zemāk norādīto kļūdu." -msgstr[2] "Lūdzu, izlabojiet zemāk norādītās kļūdas." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Ievadiet jaunu paroli lietotājam %(username)s." - -msgid "Skip to main content" -msgstr "Pāriet uz galveno saturu" - -msgid "Welcome," -msgstr "Sveicināti," - -msgid "View site" -msgstr "Apskatīt lapu" - -msgid "Documentation" -msgstr "Dokumentācija" - -msgid "Log out" -msgstr "Atslēgties" - -msgid "Breadcrumbs" -msgstr "Atpakaļceļi" - -#, python-format -msgid "Add %(name)s" -msgstr "Pievienot %(name)s" - -msgid "History" -msgstr "Vēsture" - -msgid "View on site" -msgstr "Apskatīt lapā" - -msgid "Filter" -msgstr "Filtrs" - -msgid "Clear all filters" -msgstr "Notīrīt visus filtrus" - -msgid "Remove from sorting" -msgstr "Izņemt no kārtošanas" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Kārtošanas prioritāte: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Pārslēgt kārtošanu" - -msgid "Toggle theme (current theme: auto)" -msgstr "Pārslēgt motīvu (pašreizējais motīvs: automātisks)" - -msgid "Toggle theme (current theme: light)" -msgstr "Pārslēgt motīvu (pašreizējais motīvs: gaišs)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Pārslēgt motīvu (pašreizējais motīvs: tumšs)" - -msgid "Delete" -msgstr "Dzēst" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Izdzēšot objektu %(object_name)s '%(escaped_object)s', tiks dzēsti visi " -"saistītie objekti, bet jums nav tiesību dzēst sekojošus objektu tipus:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' dzēšanai ir nepieciešams izdzēst " -"sekojošus aizsargātus saistītos objektus:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Vai esat pārliecināts, ka vēlaties dzēst %(object_name)s " -"\"%(escaped_object)s\"? Tiks dzēsti arī sekojoši saistītie objekti:" - -msgid "Objects" -msgstr "Objekti" - -msgid "Yes, I’m sure" -msgstr "Jā, esmu pārliecināts" - -msgid "No, take me back" -msgstr "Nē, ved mani atpakaļ" - -msgid "Delete multiple objects" -msgstr "Dzēst vairākus objektus" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Izdzēšot izvēlēto %(objects_name)s, tiks dzēsti visi saistītie objekti, bet " -"jums nav tiesību dzēst sekojošus objektu tipus:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Izvēlēto %(objects_name)s objektu dzēšanai ir nepieciešams izdzēst sekojošus " -"aizsargātus saistītos objektus:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Vai esat pārliecināts, ka vēlaties dzēst izvēlētos %(objects_name)s " -"objektus? Visi sekojošie objekti un tiem piesaistītie objekti tiks izdzēsti:" - -msgid "Delete?" -msgstr "Dzēst?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Pēc %(filter_title)s " - -msgid "Summary" -msgstr "Kopsavilkums" - -msgid "Recent actions" -msgstr "Nesenās darbības" - -msgid "My actions" -msgstr "Manas darbības" - -msgid "None available" -msgstr "Nav pieejams" - -msgid "Unknown content" -msgstr "Nezināms saturs" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Problēma ar datubāzes instalāciju. Pārliecinieties, ka attiecīgās tabulas ir " -"izveidotas un attiecīgajam lietotājam ir tiesības tai piekļūt." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Jūs esat autentificējies kā %(username)s, bet jums nav tiesību piekļūt šai " -"lapai. Vai vēlaties pieteikties citā kontā?" - -msgid "Forgotten your password or username?" -msgstr "Aizmirsi paroli vai lietotājvārdu?" - -msgid "Toggle navigation" -msgstr "Pārslēgt navigāciju" - -msgid "Sidebar" -msgstr "Sānjosla" - -msgid "Start typing to filter…" -msgstr "Sāciet rakstīt, lai atlasītu…" - -msgid "Filter navigation items" -msgstr "Atlasīt navigācijas vienības" - -msgid "Date/time" -msgstr "Datums/laiks" - -msgid "User" -msgstr "Lietotājs" - -msgid "Action" -msgstr "Darbība" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "ieraksti" -msgstr[1] "ieraksts" -msgstr[2] "ieraksti" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Objektam nav izmaiņu vēstures. Tas visdrīzāk netika pievienots, izmantojot " -"šo administrācijas rīku." - -msgid "Show all" -msgstr "Rādīt visu" - -msgid "Save" -msgstr "Saglabāt" - -msgid "Popup closing…" -msgstr "Logs aizveras..." - -msgid "Search" -msgstr "Meklēt" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s rezultāti" -msgstr[1] "%(counter)s rezultāts" -msgstr[2] "%(counter)s rezultāti" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "kopā - %(full_result_count)s" - -msgid "Save as new" -msgstr "Saglabāt kā jaunu" - -msgid "Save and add another" -msgstr "Saglabāt un pievienot vēl vienu" - -msgid "Save and continue editing" -msgstr "Saglabāt un turpināt labošanu" - -msgid "Save and view" -msgstr "Saglabāt un apskatīt" - -msgid "Close" -msgstr "Aizvērt" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Mainīt izvēlēto %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Pievienot citu %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Dzēst izvēlēto %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Apskatīt atzīmētos %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Paldies, ka šodien vietnei veltījāt kvalitatīvu laiku." - -msgid "Log in again" -msgstr "Pieslēgties vēlreiz" - -msgid "Password change" -msgstr "Paroles maiņa" - -msgid "Your password was changed." -msgstr "Jūsu parole tika nomainīta." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Drošības nolūkos ievadiet veco paroli un pēc tam divreiz jauno paroli, lai " -"mēs varētu pārbaudīt, ka tā ir ievadīta pareizi." - -msgid "Change my password" -msgstr "Nomainīt manu paroli" - -msgid "Password reset" -msgstr "Paroles atiestatīšana" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Jūsu parole ir iestatīta. Varat pieslēgties." - -msgid "Password reset confirmation" -msgstr "Paroles atiestatīšanas apstiprinājums" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Lūdzu ievadiet jauno paroli divreiz, lai varētu pārbaudīt, ka tā ir " -"uzrakstīta pareizi." - -msgid "New password:" -msgstr "Jaunā parole:" - -msgid "Confirm password:" -msgstr "Apstiprināt paroli:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Paroles atiestatīšanas saite bija nekorekta, iespējams, tā jau ir izmantota. " -"Lūdzu pieprasiet paroles pārstatīšanu vēlreiz." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Ja sistēmā ir konts ar jūsu e-pasta adresi, tad mēs jums tikko nosūtījām e-" -"pasta ziņojumu ar paroles iestatīšanas instrukciju. Jums to tūlīt vajadzētu " -"saņemt." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Ja nesaņemat e-pastu, lūdzu, pārliecinieties, vai esat ievadījis reģistrētu " -"adresi un pārbaudiet savu mēstuļu mapi." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Jūs saņemat šo e-pasta ziņojumu, jo pieprasījāt atiestatīt lietotāja konta " -"paroli vietnē %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Lūdzu apmeklējiet sekojošo lapu un ievadiet jaunu paroli:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Jūsu lietotājvārds, gadījumā ja tas ir aizmirsts:" - -msgid "Thanks for using our site!" -msgstr "Paldies par mūsu lapas lietošanu!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s komanda" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Aizmirsāt savu paroli? Ievadiet jūsu e-pasta adresi un jums tiks nosūtīta " -"instrukcija, kā iestatīt jaunu paroli." - -msgid "Email address:" -msgstr "E-pasta adrese:" - -msgid "Reset my password" -msgstr "Paroles atiestatīšana" - -msgid "All dates" -msgstr "Visi datumi" - -#, python-format -msgid "Select %s" -msgstr "Izvēlēties %s" - -#, python-format -msgid "Select %s to change" -msgstr "Izvēlēties %s, lai izmainītu" - -#, python-format -msgid "Select %s to view" -msgstr "Izvēlēties %s, lai apskatītu" - -msgid "Date:" -msgstr "Datums:" - -msgid "Time:" -msgstr "Laiks:" - -msgid "Lookup" -msgstr "Pārlūkot" - -msgid "Currently:" -msgstr "Valūta:" - -msgid "Change:" -msgstr "Izmaiņa:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo deleted file mode 100644 index eafafc5..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po deleted file mode 100644 index ede9249..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,286 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Edgars Voroboks , 2023 -# Edgars Voroboks , 2017,2022 -# Jannis Leidel , 2011 -# Edgars Voroboks , 2020-2021 -# peterisb , 2016 -# Pēteris Caune, 2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Pēteris Caune, 2023\n" -"Language-Team: Latvian (http://www.transifex.com/django/django/language/" -"lv/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: lv\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " -"2);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Pieejams %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Šis ir saraksts ar pieejamajiem %s. Tev ir jāizvēlas atbilstošās vērtības " -"atzīmējot izvēlēs zemāk esošajā sarakstā un pēc tam spiežot pogu " -"\"Izvēlēties\", lai pārvietotu starp izvēļu sarakstiem." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Raksti šajā logā, lai filtrētu zemāk esošo sarakstu ar pieejamajiem %s." - -msgid "Filter" -msgstr "Filtrs" - -msgid "Choose all" -msgstr "Izvēlēties visu" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Izvēlies, lai pievienotu visas %s izvēles vienā reizē." - -msgid "Choose" -msgstr "Izvēlies" - -msgid "Remove" -msgstr "Izņemt" - -#, javascript-format -msgid "Chosen %s" -msgstr "Izvēlies %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Šis ir saraksts ar izvēlētajiem %s. Tev ir jāizvēlas atbilstošās vērtības " -"atzīmējot izvēlēs zemāk esošajā sarakstā un pēc tam spiežot pogu \"Izņemt\", " -"lai izņemtu no izvēlēto ierakstu saraksta." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Rakstiet šajā laukā, lai filtrētu atlasīto %s sarakstu." - -msgid "Remove all" -msgstr "Izņemt visu" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Izvēlies, lai izņemtu visas %s izvēles vienā reizē." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s atlasītās opcijas nav redzamas" -msgstr[1] "%s atlasītā opcija nav redzama" -msgstr[2] "%s atlasītās opcijas nav redzamas" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s no %(cnt)s izvēlēts" -msgstr[1] "%(sel)s no %(cnt)s izvēlēti" -msgstr[2] "%(sel)s no %(cnt)s izvēlēti" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Jūs neesat saglabājis izmaiņas rediģējamiem laukiem. Ja jūs tagad " -"izpildīsiet izvēlēto darbību, šīs izmaiņas netiks saglabātas." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Jūs esiet izvēlējies veikt darbību, bet neesiet saglabājis veiktās izmaiņas. " -"Lūdzu nospiediet OK, lai saglabātu. Šo darbību jums nāksies izpildīt vēlreiz." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Jūs esiet izvēlējies veikt darbību un neesiet mainījis nevienu lauku. Jūs " -"droši vien meklējiet pogu 'Aiziet' nevis 'Saglabāt'." - -msgid "Now" -msgstr "Tagad" - -msgid "Midnight" -msgstr "Pusnakts" - -msgid "6 a.m." -msgstr "06.00" - -msgid "Noon" -msgstr "Pusdienas laiks" - -msgid "6 p.m." -msgstr "6:00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Piezīme: Tavs laiks ir %s stundas pirms servera laika." -msgstr[1] "Piezīme: Tavs laiks ir %s stundu pirms servera laika." -msgstr[2] "Piezīme: Tavs laiks ir %s stundas pirms servera laika." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Piezīme: Tavs laiks ir %s stundas pēc servera laika." -msgstr[1] "Piezīme: Tavs laiks ir %s stundu pēc servera laika." -msgstr[2] "Piezīme: Tavs laiks ir %s stundas pēc servera laika." - -msgid "Choose a Time" -msgstr "Izvēlies laiku" - -msgid "Choose a time" -msgstr "Izvēlieties laiku" - -msgid "Cancel" -msgstr "Atcelt" - -msgid "Today" -msgstr "Šodien" - -msgid "Choose a Date" -msgstr "Izvēlies datumu" - -msgid "Yesterday" -msgstr "Vakar" - -msgid "Tomorrow" -msgstr "Rīt" - -msgid "January" -msgstr "janvāris" - -msgid "February" -msgstr "februāris" - -msgid "March" -msgstr "marts" - -msgid "April" -msgstr "aprīlis" - -msgid "May" -msgstr "maijs" - -msgid "June" -msgstr "jūnijs" - -msgid "July" -msgstr "jūlijs" - -msgid "August" -msgstr "augusts" - -msgid "September" -msgstr "septembris" - -msgid "October" -msgstr "oktobris" - -msgid "November" -msgstr "novembris" - -msgid "December" -msgstr "decembris" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Mai" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jūn" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jūl" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Sv" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Pr" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "O" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "T" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "C" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Pk" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Se" - -msgid "Show" -msgstr "Parādīt" - -msgid "Hide" -msgstr "Slēpt" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo deleted file mode 100644 index 9f4d6e4..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.po deleted file mode 100644 index 676173c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/django.po +++ /dev/null @@ -1,726 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Dimce Grozdanoski , 2021 -# dekomote , 2015 -# Jannis Leidel , 2011 -# Martino Nikolovski, 2022 -# Vasil Vangelovski , 2016-2017,2019,2021 -# Vasil Vangelovski , 2013-2015 -# Vasil Vangelovski , 2011-2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-05-25 07:05+0000\n" -"Last-Translator: Martino Nikolovski, 2022\n" -"Language-Team: Macedonian (http://www.transifex.com/django/django/language/" -"mk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: mk\n" -"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Избриши ги избраните %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Успешно беа избришани %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Не може да се избрише %(name)s" - -msgid "Are you sure?" -msgstr "Сигурни сте?" - -msgid "Administration" -msgstr "Администрација" - -msgid "All" -msgstr "Сите" - -msgid "Yes" -msgstr "Да" - -msgid "No" -msgstr "Не" - -msgid "Unknown" -msgstr "Непознато" - -msgid "Any date" -msgstr "Било кој датум" - -msgid "Today" -msgstr "Денеска" - -msgid "Past 7 days" -msgstr "Последните 7 дена" - -msgid "This month" -msgstr "Овој месец" - -msgid "This year" -msgstr "Оваа година" - -msgid "No date" -msgstr "Нема датум" - -msgid "Has date" -msgstr "Има датум" - -msgid "Empty" -msgstr "Празно" - -msgid "Not empty" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Ве молиме внесете ги точните %(username)s и лозинка за член на сајтот. " -"Внимавајте, двете полиња се осетливи на големи и мали букви." - -msgid "Action:" -msgstr "Акција:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Додади уште %(verbose_name)s" - -msgid "Remove" -msgstr "Отстрани" - -msgid "Addition" -msgstr "Додавање" - -msgid "Change" -msgstr "Измени" - -msgid "Deletion" -msgstr "Бришење" - -msgid "action time" -msgstr "време на акција" - -msgid "user" -msgstr "корисник" - -msgid "content type" -msgstr "тип на содржина" - -msgid "object id" -msgstr "идентификационен број на објект" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "репрезентација на објект" - -msgid "action flag" -msgstr "знакче за акција" - -msgid "change message" -msgstr "измени ја пораката" - -msgid "log entry" -msgstr "ставка во записникот" - -msgid "log entries" -msgstr "ставки во записникот" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Додадено “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Избришано “%(object)s.”" - -msgid "LogEntry Object" -msgstr "Запис во дневник" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "Додадено." - -msgid "and" -msgstr "и" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Изменети {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Избришан {name} “{object}”." - -msgid "No fields changed." -msgstr "Не е изменето ниедно поле." - -msgid "None" -msgstr "Ништо" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "Држете “Control” или “Command” на Mac за да изберете повеќе." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Успешно беше додадено {name} “{obj}”." - -msgid "You may edit it again below." -msgstr "Можете повторно да го промените подолу." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Мора да се одберат предмети за да се изврши акција врз нив. Ниеден предмет " -"не беше променет." - -msgid "No action selected." -msgstr "Ниедна акција не е одбрана." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Додади %s" - -#, python-format -msgid "Change %s" -msgstr "Измени %s" - -#, python-format -msgid "View %s" -msgstr "Погледни %s" - -msgid "Database error" -msgstr "Грешка во базата на податоци" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s ставка %(name)s беше успешно изменета." -msgstr[1] "%(count)s ставки %(name)s беа успешно изменети." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s одбран" -msgstr[1] "Сите %(total_count)s одбрани" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 од %(cnt)s избрани" - -#, python-format -msgid "Change history: %s" -msgstr "Историја на измени: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Бришењето на %(class_name)s %(instance)s бара бришење на следните заштитени " -"поврзани објекти: %(related_objects)s" - -msgid "Django site admin" -msgstr "Администрација на Џанго сајт" - -msgid "Django administration" -msgstr "Џанго администрација" - -msgid "Site administration" -msgstr "Администрација на сајт" - -msgid "Log in" -msgstr "Најава" - -#, python-format -msgid "%(app)s administration" -msgstr "Администрација на %(app)s" - -msgid "Page not found" -msgstr "Страницата не е најдена" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Се извинуваме, страница која ја побаравте не е пронајдена" - -msgid "Home" -msgstr "Дома" - -msgid "Server error" -msgstr "Грешка со серверот" - -msgid "Server error (500)" -msgstr "Грешка со серверот (500)" - -msgid "Server Error (500)" -msgstr "Грешка со серверот (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Наидовте на грешка. Известени се администраторите на страницата преку имејл " -"и би требало наскоро да биде поправена. Ви благодариме на трпението." - -msgid "Run the selected action" -msgstr "Изврши ја избраната акција" - -msgid "Go" -msgstr "Оди" - -msgid "Click here to select the objects across all pages" -msgstr "Кликнете тука за да изберете објекти низ сите страници" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Избери ги сите %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Откажи го изборот" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Модели во %(name)s апликација" - -msgid "Add" -msgstr "Додади" - -msgid "View" -msgstr "Погледни" - -msgid "You don’t have permission to view or edit anything." -msgstr "Немате дозвола да прегледате или промените ништо" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Прво внесете корисничко име и лозинка па потоа ќе можете да уредувате повеќе " -"опции за корисникот" - -msgid "Enter a username and password." -msgstr "Внесете корисничко име и лозинка." - -msgid "Change password" -msgstr "Промени лозинка" - -msgid "Please correct the error below." -msgstr "Ве молиме поправете ја грешката подолу." - -msgid "Please correct the errors below." -msgstr "Ве молам поправете ги грешките подолу." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Внесете нова лозинка за корисникот %(username)s." - -msgid "Welcome," -msgstr "Добредојдовте," - -msgid "View site" -msgstr "Посети го сајтот" - -msgid "Documentation" -msgstr "Документација" - -msgid "Log out" -msgstr "Одјава" - -#, python-format -msgid "Add %(name)s" -msgstr "Додади %(name)s" - -msgid "History" -msgstr "Историја" - -msgid "View on site" -msgstr "Погледни на сајтот" - -msgid "Filter" -msgstr "Филтер" - -msgid "Clear all filters" -msgstr "Ресетирај ги сите филтри" - -msgid "Remove from sorting" -msgstr "Отстрани од сортирање" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Приоритет на сортирање: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Вклучи/исклучи сортирање" - -msgid "Delete" -msgstr "Избриши" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Бришење на %(object_name)s '%(escaped_object)s' ќе резултира со бришење на " -"поврзаните објекти, но со вашата сметка немате доволно привилегии да ги " -"бришете следните типови на објекти:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Бришење на %(object_name)s '%(escaped_object)s' ќе резултира со бришење на " -"следниве заштитени објекти:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Сигурне сте дека сакате да ги бришете %(object_name)s „%(escaped_object)s“? " -"Сите овие ставки ќе бидат избришани:" - -msgid "Objects" -msgstr "Предмети" - -msgid "Yes, I’m sure" -msgstr "Да, сигурен сум" - -msgid "No, take me back" -msgstr "Не, врати ме назад" - -msgid "Delete multiple objects" -msgstr "Избриши повеќе ставки" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Бришење на избраните %(objects_name)s ќе резултира со бришење на поврзани " -"објекти, но немате одобрување да ги избришете следниве типови објекти:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Бришење на избраните %(objects_name)s бара бришење на следните поврзани " -"објекти кои се заштитени:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Дали сте сигурни дека сакате да го избришете избраниот %(objects_name)s? " -"Сите овие објекти и оние поврзани со нив ќе бидат избришани:" - -msgid "Delete?" -msgstr "Избриши?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Според %(filter_title)s " - -msgid "Summary" -msgstr "Резиме" - -msgid "Recent actions" -msgstr "Последни акции" - -msgid "My actions" -msgstr "Мои акции" - -msgid "None available" -msgstr "Ништо не е достапно" - -msgid "Unknown content" -msgstr "Непозната содржина" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Нешто не е во ред со инсталацијата на базата на податоци. Уверете се дека " -"соодветните табели се создадени, и дека базата на податоци е пристапна до " -"соодветниот корисник." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Најавени сте како %(username)s, но не сте авторизирани да пристапите до " -"оваа страна. Сакате ли да се најавите како друг корисник?" - -msgid "Forgotten your password or username?" -msgstr "Ја заборавивте вашата лозинка или корисничко име?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Start typing to filter…" -msgstr "Започнете со пишување за да филтрирате..." - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Датум/час" - -msgid "User" -msgstr "Корисник" - -msgid "Action" -msgstr "Акција" - -msgid "entry" -msgstr "" - -msgid "entries" -msgstr "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "Прикажи ги сите" - -msgid "Save" -msgstr "Сними" - -msgid "Popup closing…" -msgstr "Попапот се затвара..." - -msgid "Search" -msgstr "Барај" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s резултат" -msgstr[1] "%(counter)s резултати" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "вкупно %(full_result_count)s" - -msgid "Save as new" -msgstr "Сними како нова" - -msgid "Save and add another" -msgstr "Сними и додади уште" - -msgid "Save and continue editing" -msgstr "Сними и продолжи со уредување" - -msgid "Save and view" -msgstr "Сними и прегледај" - -msgid "Close" -msgstr "Затвори" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Промени ги избраните %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Додади уште %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Избриши ги избраните %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Најавете се повторно" - -msgid "Password change" -msgstr "Измена на лозинка" - -msgid "Your password was changed." -msgstr "Вашата лозинка беше сменета." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "Промени ја мојата лозинка" - -msgid "Password reset" -msgstr "Ресетирање на лозинка" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Вашата лозинка беше поставена. Сега можете да се најавите." - -msgid "Password reset confirmation" -msgstr "Одобрување за ресетирање на лозинка" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Ве молам внесете ја вашата нова лозинка двапати за да може да бидете сигурни " -"дека правилно сте ја внеле." - -msgid "New password:" -msgstr "Нова лозинка:" - -msgid "Confirm password:" -msgstr "Потврди лозинка:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Врската за ресетирање на лозинката беше невалидна, најверојатно бидејќи веќе " -"била искористена. Ве молам повторно побарајте ресетирање на вашата лозинката." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Го примате овој email бидејќи побаравте ресетирање на лозинка како корисник " -"на %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Ве молам одете на следната страница и внесете нова лозинка:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Вашето корисничко име, во случај да сте заборавиле:" - -msgid "Thanks for using our site!" -msgstr "Ви благодариме што го користите овој сајт!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Тимот на %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Ја заборавивте вашата лозинка? Внесете го вашиот имејл и ќе ви пратиме " -"инструкции да подесите нова лозинка. " - -msgid "Email address:" -msgstr "Email адреса:" - -msgid "Reset my password" -msgstr "Ресетирај ја мојата лозинка" - -msgid "All dates" -msgstr "Сите датуми" - -#, python-format -msgid "Select %s" -msgstr "Изберете %s" - -#, python-format -msgid "Select %s to change" -msgstr "Изберете %s за измена" - -#, python-format -msgid "Select %s to view" -msgstr "Изберете %s за прегледување" - -msgid "Date:" -msgstr "Датум:" - -msgid "Time:" -msgstr "Време:" - -msgid "Lookup" -msgstr "Побарај" - -msgid "Currently:" -msgstr "Моментално:" - -msgid "Change:" -msgstr "Измени:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo deleted file mode 100644 index c87ddf6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po deleted file mode 100644 index bd72010..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,262 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Vasil Vangelovski , 2016 -# Vasil Vangelovski , 2014 -# Vasil Vangelovski , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-15 11:28+0000\n" -"Last-Translator: Transifex Bot <>\n" -"Language-Team: Macedonian (http://www.transifex.com/django/django/language/" -"mk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: mk\n" -"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" - -#, javascript-format -msgid "Available %s" -msgstr "Достапно %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ова е листа на достапни %s. Можете да изберете неколку кликајќи на нив во " -"полето подолу и со кликање на стрелката \"Одбери\" помеѓу двете полиња." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Пишувајте во ова поле за да ја филтрирате листата на достапни %s." - -msgid "Filter" -msgstr "Филтер" - -msgid "Choose all" -msgstr "Одбери ги сите ги сите" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Кликнете за да ги одберете сите %s од еднаш." - -msgid "Choose" -msgstr "Одбери" - -msgid "Remove" -msgstr "Отстрани" - -#, javascript-format -msgid "Chosen %s" -msgstr "Одбрано %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ова е листа на избрани %s. Можете да отстраните неколку кликајќи на нив во " -"полето подолу и со кликање на стрелката \"Отстрани\" помеѓу двете полиња." - -msgid "Remove all" -msgstr "Отстрани ги сите" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Кликнете за да ги отстраните сите одбрани %s одеднаш." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "избрано %(sel)s од %(cnt)s" -msgstr[1] "одбрани %(sel)s од %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Имате незачувани промени на поединечни полиња. Ако извршите акција вашите " -"незачувани промени ќе бидат изгубени." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "Сега" - -msgid "Midnight" -msgstr "Полноќ" - -msgid "6 a.m." -msgstr "6 наутро" - -msgid "Noon" -msgstr "Пладне" - -msgid "6 p.m." -msgstr "6 попладне" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Забелешка: Вие сте %s час понапред од времето на серверот." -msgstr[1] "Забелешка: Вие сте %s часа понапред од времето на серверот." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Забелешка: Вие сте %s час поназад од времето на серверот." -msgstr[1] "Забелешка: Вие сте %s часа поназад од времето на серверот." - -msgid "Choose a Time" -msgstr "Одбери време" - -msgid "Choose a time" -msgstr "Одбери време" - -msgid "Cancel" -msgstr "Откажи" - -msgid "Today" -msgstr "Денеска" - -msgid "Choose a Date" -msgstr "Одбери датум" - -msgid "Yesterday" -msgstr "Вчера" - -msgid "Tomorrow" -msgstr "Утре" - -msgid "January" -msgstr "Јануари" - -msgid "February" -msgstr "Февруари" - -msgid "March" -msgstr "Март" - -msgid "April" -msgstr "Април" - -msgid "May" -msgstr "Мај" - -msgid "June" -msgstr "Јуни" - -msgid "July" -msgstr "Јули" - -msgid "August" -msgstr "Август" - -msgid "September" -msgstr "Септември" - -msgid "October" -msgstr "Октомври" - -msgid "November" -msgstr "Ноември" - -msgid "December" -msgstr "Декември" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Н" - -msgctxt "one letter Monday" -msgid "M" -msgstr "П" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "В" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "С" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Ч" - -msgctxt "one letter Friday" -msgid "F" -msgstr "П" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "С" - -msgid "Show" -msgstr "Прикажи" - -msgid "Hide" -msgstr "Сокриј" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.mo deleted file mode 100644 index f75d3d6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.po deleted file mode 100644 index d96aab9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/django.po +++ /dev/null @@ -1,700 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Aby Thomas , 2014 -# Hrishikesh , 2019-2020 -# Jannis Leidel , 2011 -# JOMON THOMAS LOBO , 2019 -# Junaid , 2012 -# MUHAMMED RAMEEZ , 2019 -# Rajeesh Nair , 2011-2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-14 22:38+0000\n" -"Last-Translator: Transifex Bot <>\n" -"Language-Team: Malayalam (http://www.transifex.com/django/django/language/" -"ml/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ml\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)sവിജയകയരമായി നീക്കം ചെയ്തു." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s നീക്കം ചെയ്യാന്‍ കഴിയില്ല." - -msgid "Are you sure?" -msgstr "തീര്‍ച്ചയാണോ?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "തെരഞ്ഞെടുത്ത %(verbose_name_plural)s നീക്കം ചെയ്യുക." - -msgid "Administration" -msgstr "കാര്യനിർവഹണം" - -msgid "All" -msgstr "മുഴുവനും" - -msgid "Yes" -msgstr "അതെ" - -msgid "No" -msgstr "അല്ല" - -msgid "Unknown" -msgstr "അറിയില്ല" - -msgid "Any date" -msgstr "ഏതെങ്കിലും തീയ്യതി" - -msgid "Today" -msgstr "ഇന്ന്" - -msgid "Past 7 days" -msgstr "കഴിഞ്ഞ 7 ദിവസങ്ങൾ" - -msgid "This month" -msgstr "ഈ മാസം" - -msgid "This year" -msgstr "ഈ വര്‍ഷം" - -msgid "No date" -msgstr "തിയ്യതിയില്ല " - -msgid "Has date" -msgstr "തിയ്യതിയുണ്ട്" - -msgid "Empty" -msgstr "കാലി" - -msgid "Not empty" -msgstr "കാലിയല്ല" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"ദയവായി സ്റ്റാഫ് അക്കൗണ്ടിനുവേണ്ടിയുള്ള ശരിയായ %(username)s പാസ്‌വേഡ് എന്നിവ നൽകുക. രണ്ടു " -"കള്ളികളിലും അക്ഷരങ്ങള്‍ വലിയക്ഷരമോ ചെറിയക്ഷരമോ എന്നത് പ്രധാനമാണെന്നത് ശ്രദ്ധിയ്ക്കുക." - -msgid "Action:" -msgstr "ആക്ഷന്‍" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "മറ്റൊരു %(verbose_name)s കൂടി ചേര്‍ക്കുക" - -msgid "Remove" -msgstr "കളയുക" - -msgid "Addition" -msgstr "ചേർക്കുക" - -msgid "Change" -msgstr "മാറ്റുക" - -msgid "Deletion" -msgstr "കളയുക" - -msgid "action time" -msgstr "നടന്ന സമയം" - -msgid "user" -msgstr "ഉപയോക്താവ്" - -msgid "content type" -msgstr "കണ്ടന്റ് ടൈപ്പ്" - -msgid "object id" -msgstr "ഒബ്ജക്റ്റിന്റെ ഐഡി" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "ഒബ്ജെക്ട് റെപ്രസന്റേഷൻ" - -msgid "action flag" -msgstr "ആക്ഷന്‍ ഫ്ളാഗ്" - -msgid "change message" -msgstr "സന്ദേശം മാറ്റുക" - -msgid "log entry" -msgstr "ലോഗ് എൻട്രി" - -msgid "log entries" -msgstr "ലോഗ് എൻട്രികള്‍" - -#, python-format -msgid "Added “%(object)s”." -msgstr "“%(object)s” ചേർത്തു." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "“%(object)s” മാറ്റം വരുത്തി — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "" - -msgid "LogEntry Object" -msgstr "ലോഗ്‌എന്‍ട്രി ഒബ്ജെക്റ്റ്" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "ചേര്‍ത്തു." - -msgid "and" -msgstr "കൂടാതെ" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "ഒരു മാറ്റവുമില്ല." - -msgid "None" -msgstr "ഒന്നുമില്ല" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "താഴെ നിങ്ങൾക്കിത് വീണ്ടും എഡിറ്റുചെയ്യാം" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "ആക്ഷന്‍ നടപ്പിലാക്കേണ്ട വകകള്‍ തെരഞ്ഞെടുക്കണം. ഒന്നിലും മാറ്റങ്ങൾ വരുത്തിയിട്ടില്ല." - -msgid "No action selected." -msgstr "ആക്ഷനൊന്നും തെരഞ്ഞെടുത്തിട്ടില്ല." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s ചേര്‍ക്കുക" - -#, python-format -msgid "Change %s" -msgstr "%s മാറ്റാം" - -#, python-format -msgid "View %s" -msgstr "%s കാണുക" - -msgid "Database error" -msgstr "ഡേറ്റാബേസ് എറർ." - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s ല്‍ മാറ്റം വരുത്തി." -msgstr[1] "%(count)s %(name)s വിജയകരമായി മാറ്റി" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s തെരഞ്ഞെടുത്തു." -msgstr[1] "%(total_count)sമൊത്തമായി തെരഞ്ഞെടുത്തു." - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s ല്‍ 0 തിരഞ്ഞെടുത്തിരിക്കുന്നു" - -#, python-format -msgid "Change history: %s" -msgstr "%s ലെ മാറ്റങ്ങള്‍." - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -" %(class_name)s %(instance)s നീക്കം ചെയ്യണമെങ്കിൽ അതിനോട് ബന്ധപ്പെട്ടതായ താഴെപ്പറയുന്ന " -"എല്ലാ വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്: %(related_objects)s" - -msgid "Django site admin" -msgstr "ജാംഗോ സൈറ്റ് അഡ്മിന്‍" - -msgid "Django administration" -msgstr "ജാംഗോ കാര്യനിർവഹണം" - -msgid "Site administration" -msgstr "സൈറ്റ് കാര്യനിർവഹണം" - -msgid "Log in" -msgstr "ലോഗിൻ" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s കാര്യനിർവഹണം" - -msgid "Page not found" -msgstr "പേജ് കണ്ടെത്താനായില്ല" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "ക്ഷമിക്കണം, ആവശ്യപ്പെട്ട പേജ് കണ്ടെത്താന്‍ കഴിഞ്ഞില്ല." - -msgid "Home" -msgstr "പൂമുഖം" - -msgid "Server error" -msgstr "സെര്‍വറിൽ എന്തോ പ്രശ്നം" - -msgid "Server error (500)" -msgstr "സെര്‍വറിൽ എന്തോ പ്രശ്നം (500)" - -msgid "Server Error (500)" -msgstr "സെര്‍വറിൽ എന്തോ പ്രശ്നം (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "തെരഞ്ഞെടുത്ത ആക്ഷന്‍ നടപ്പിലാക്കുക" - -msgid "Go" -msgstr "തുടരുക" - -msgid "Click here to select the objects across all pages" -msgstr "എല്ലാ പേജിലേയും ഒബ്ജക്റ്റുകൾ തെരഞ്ഞെടുക്കാന്‍ ഇവിടെ ക്ലിക് ചെയ്യുക." - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "മുഴുവന്‍ %(total_count)s %(module_name)s ഉം തെരഞ്ഞെടുക്കുക" - -msgid "Clear selection" -msgstr "തെരഞ്ഞെടുത്തത് റദ്ദാക്കുക." - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s മാതൃകയിലുള്ള" - -msgid "Add" -msgstr "ചേര്‍ക്കുക" - -msgid "View" -msgstr "കാണുക" - -msgid "You don’t have permission to view or edit anything." -msgstr "നിങ്ങൾക്ക് ഒന്നും കാണാനോ തിരുത്താനോ ഉള്ള അനുമതിയില്ല." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"ആദ്യമായി ഒരു യൂസർനെയിമും പാസ്‌‌വേഡും നൽകുക. തുടർന്ന്, നിങ്ങൾക്ക് കൂടുതൽ കാര്യങ്ങളിൽ മാറ്റം " -"വരുത്താവുന്നതാണ്" - -msgid "Enter a username and password." -msgstr "Enter a username and password." - -msgid "Change password" -msgstr "പാസ് വേര്‍ഡ് മാറ്റുക." - -msgid "Please correct the error below." -msgstr "താഴെ പറയുന്ന തെറ്റുകൾ തിരുത്തുക " - -msgid "Please correct the errors below." -msgstr "ദയവായി താഴെയുള്ള തെറ്റുകള്‍ പരിഹരിക്കുക." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "%(username)s ന് പുതിയ പാസ് വേര്‍ഡ് നല്കുക." - -msgid "Welcome," -msgstr "സ്വാഗതം, " - -msgid "View site" -msgstr "സൈറ്റ് കാണുക " - -msgid "Documentation" -msgstr "സഹായക്കുറിപ്പുകള്‍" - -msgid "Log out" -msgstr "പുറത്ത് കടക്കുക." - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s ചേര്‍ക്കുക" - -msgid "History" -msgstr "ചരിത്രം" - -msgid "View on site" -msgstr "View on site" - -msgid "Filter" -msgstr "അരിപ്പ" - -msgid "Clear all filters" -msgstr "എല്ലാ ഫിൽറ്ററുകളും ഒഴിവാക്കുക" - -msgid "Remove from sorting" -msgstr "ക്രമീകരണത്തില്‍ നിന്നും ഒഴിവാക്കുക" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "ക്രമീകരണത്തിനുള്ള മുന്‍ഗണന: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "ക്രമീകരണം വിപരീത ദിശയിലാക്കുക." - -msgid "Delete" -msgstr "നീക്കം ചെയ്യുക" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s ഡിലീറ്റ് ചെയ്യുമ്പോള്‍ അതുമായി ബന്ധമുള്ള " -"വസ്തുക്കളുംഡിലീറ്റ് ആവും. പക്ഷേ നിങ്ങള്‍ക്ക് താഴെ പറഞ്ഞ തരം വസ്തുക്കള്‍ ഡിലീറ്റ് ചെയ്യാനുള്ള അനുമതി " -"ഇല്ല:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"തിരഞ്ഞെടുക്കപ്പെട്ട %(object_name)s '%(escaped_object)s' നീക്കം ചെയ്യണമെങ്കിൽ അതിനോട് " -"ബന്ധപ്പെട്ടതായ താഴെപ്പറയുന്ന എല്ലാ വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"%(object_name)s \"%(escaped_object)s\" നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?അതുമായി ബന്ധമുള്ള " -"താഴെപ്പറയുന്ന വസ്തുക്കളെല്ലാം നീക്കം ചെയ്യുന്നതാണ്:" - -msgid "Objects" -msgstr "വസ്തുക്കൾ" - -msgid "Yes, I’m sure" -msgstr "അതെ, എനിക്കുറപ്പാണ്" - -msgid "No, take me back" -msgstr "ഇല്ല, എന്നെ തിരിച്ചെടുക്കൂ" - -msgid "Delete multiple objects" -msgstr "ഒന്നിലേറെ വസ്തുക്കള്‍ നീക്കം ചെയ്യുക" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"തിരഞ്ഞെടുക്കപ്പെട്ട %(objects_name)s നീക്കം ചെയ്താൽ അതിനോട് ബന്ധപ്പെട്ടതായ താഴെപ്പറയുന്ന " -"എല്ലാ വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്, പക്ഷെ അതിനുളള അവകാശം അക്കൗണ്ടിനില്ല:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"തിരഞ്ഞെടുക്കപ്പെട്ട %(objects_name)s നീക്കം ചെയ്യണമെങ്കിൽ അതിനോട് ബന്ധപ്പെട്ടതായ " -"താഴെപ്പറയുന്ന എല്ലാ വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"തിരഞ്ഞെടുക്കപ്പെട്ട %(objects_name)s നീക്കം ചെയ്യണമെന്നു ഉറപ്പാണോ ? തിരഞ്ഞെടുക്കപ്പെട്ടതും " -"അതിനോട് ബന്ധപ്പെട്ടതും ആയ എല്ലാ താഴെപ്പറയുന്ന വസ്തുക്കളും നീക്കം ചെയ്യുന്നതാണ്:" - -msgid "Delete?" -msgstr "ഡിലീറ്റ് ചെയ്യട്ടെ?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s ആൽ" - -msgid "Summary" -msgstr "ചുരുക്കം" - -msgid "Recent actions" -msgstr "സമീപകാല പ്രവൃത്തികൾ" - -msgid "My actions" -msgstr "എന്റെ പ്രവർത്തനം" - -msgid "None available" -msgstr "ഒന്നും ലഭ്യമല്ല" - -msgid "Unknown content" -msgstr "ഉള്ളടക്കം അറിയില്ല." - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"താങ്കൾ ലോഗിൻ ചെയ്തിരിക്കുന്ന %(username)s, നു ഈ പേജ് കാണാൻ അനുവാദം ഇല്ല . താങ്കൾ " -"മറ്റൊരു അക്കൗണ്ടിൽ ലോഗിൻ ചെയ്യാന് ആഗ്രഹിക്കുന്നുവോ ?" - -msgid "Forgotten your password or username?" -msgstr "രഹസ്യവാക്കോ ഉപയോക്തൃനാമമോ മറന്നുപോയോ?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Date/time" -msgstr "തീയതി/സമയം" - -msgid "User" -msgstr "ഉപയോക്താവ്" - -msgid "Action" -msgstr "പ്രവർത്തി" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "എല്ലാം കാണട്ടെ" - -msgid "Save" -msgstr "സേവ് ചെയ്യണം" - -msgid "Popup closing…" -msgstr "പോപ്പ് അപ്പ് അടക്കുക " - -msgid "Search" -msgstr "പരതുക" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s results" -msgstr[1] "%(counter)s ഫലം" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "ആകെ %(full_result_count)s" - -msgid "Save as new" -msgstr "പുതിയതായി സേവ് ചെയ്യണം" - -msgid "Save and add another" -msgstr "സേവ് ചെയ്ത ശേഷം വേറെ ചേര്‍ക്കണം" - -msgid "Save and continue editing" -msgstr "സേവ് ചെയ്ത ശേഷം മാറ്റം വരുത്താം" - -msgid "Save and view" -msgstr "സേവ് ചെയ്‌തതിന്‌ ശേഷം കാണുക " - -msgid "Close" -msgstr "അടയ്ക്കുക" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "തിരഞ്ഞെടുത്തത് ഇല്ലാതാക്കുക%(model)s" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "ഈ വെബ് സൈറ്റില്‍ കുറെ നല്ല സമയം ചെലവഴിച്ചതിനു നന്ദി." - -msgid "Log in again" -msgstr "വീണ്ടും ലോഗ്-ഇന്‍ ചെയ്യുക." - -msgid "Password change" -msgstr "പാസ് വേര്‍ഡ് മാറ്റം" - -msgid "Your password was changed." -msgstr "നിങ്ങളുടെ പാസ് വേര്‍ഡ് മാറ്റിക്കഴിഞ്ഞു." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "എന്റെ പാസ് വേര്‍ഡ് മാറ്റണം" - -msgid "Password reset" -msgstr "പാസ് വേര്‍ഡ് പുനസ്ഥാപിക്കല്‍" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "നിങ്ങളുടെ പാസ് വേര്‍ഡ് തയ്യാര്‍. ഇനി ലോഗ്-ഇന്‍ ചെയ്യാം." - -msgid "Password reset confirmation" -msgstr "പാസ് വേര്‍ഡ് പുനസ്ഥാപിക്കല്‍ ഉറപ്പാക്കല്‍" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"ദയവായി നിങ്ങളുടെ പുതിയ പാസ് വേര്‍ഡ് രണ്ടു തവണ നല്കണം. ശരിയായാണ് ടൈപ്പു ചെയ്തത് എന്നു " -"ഉറപ്പിക്കാനാണ്." - -msgid "New password:" -msgstr "പുതിയ പാസ് വേര്‍ഡ്:" - -msgid "Confirm password:" -msgstr "പാസ് വേര്‍ഡ് ഉറപ്പാക്കൂ:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"പാസ് വേര്‍ഡ് പുനസ്ഥാപിക്കാന്‍ നല്കിയ ലിങ്ക് യോഗ്യമല്ല. ഒരു പക്ഷേ, അതു മുന്പ് തന്നെ ഉപയോഗിച്ചു " -"കഴിഞ്ഞതാവാം. പുതിയ ഒരു ലിങ്കിന് അപേക്ഷിക്കൂ." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"നിങ്ങളുൾ പാസ് വേർഡ്‌ മാറ്റാനുള്ള നിർദേശങ്ങൾ %(site_name)s ഇൽ ആവശ്യപ്പെട്ടതുകൊണ്ടാണ് ഈ " -"ഇമെയിൽ സന്ദേശം ലഭിച്ചദ്." - -msgid "Please go to the following page and choose a new password:" -msgstr "ദയവായി താഴെ പറയുന്ന പേജ് സന്ദര്‍ശിച്ച് പുതിയ പാസ് വേര്‍ഡ് തെരഞ്ഞെടുക്കുക:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "ഞങ്ങളുടെ സൈറ്റ് ഉപയോഗിച്ചതിന് നന്ദി!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s പക്ഷം" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "ഇമെയിൽ വിലാസം:" - -msgid "Reset my password" -msgstr "എന്റെ പാസ് വേര്‍ഡ് പുനസ്ഥാപിക്കൂ" - -msgid "All dates" -msgstr "എല്ലാ തീയതികളും" - -#, python-format -msgid "Select %s" -msgstr "%s തെരഞ്ഞെടുക്കൂ" - -#, python-format -msgid "Select %s to change" -msgstr "മാറ്റാനുള്ള %s തെരഞ്ഞെടുക്കൂ" - -#, python-format -msgid "Select %s to view" -msgstr "%s കാണാൻ തിരഞ്ഞെടുക്കുക" - -msgid "Date:" -msgstr "തിയ്യതി:" - -msgid "Time:" -msgstr "സമയം:" - -msgid "Lookup" -msgstr "തിരയുക" - -msgid "Currently:" -msgstr "നിലവിൽ:" - -msgid "Change:" -msgstr "മാറ്റം:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 0abc5e7..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.po deleted file mode 100644 index 964d355..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,214 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Aby Thomas , 2014 -# Jannis Leidel , 2011 -# MUHAMMED RAMEEZ , 2019 -# Rajeesh Nair , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-05-13 00:53+0000\n" -"Last-Translator: Transifex Bot <>\n" -"Language-Team: Malayalam (http://www.transifex.com/django/django/language/" -"ml/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ml\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "ലഭ്യമായ %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"ഇതാണ് ലഭ്യമായ %s പട്ടിക. അതില്‍ ചിലത് തിരഞ്ഞെടുക്കാന്‍ താഴെ കളത്തില്‍ നിന്നും ഉചിതമായവ സെലക്ട് " -"ചെയ്ത ശേഷം രണ്ടു കളങ്ങള്‍ക്കുമിടയിലെ \"തെരഞ്ഞെടുക്കൂ\" അടയാളത്തില്‍ ക്ലിക് ചെയ്യുക." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "ലഭ്യമായ %s പട്ടികയെ ഫില്‍ട്ടര്‍ ചെയ്തെടുക്കാന്‍ ഈ ബോക്സില്‍ ടൈപ്പ് ചെയ്യുക." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "എല്ലാം തെരഞ്ഞെടുക്കുക" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "%s എല്ലാം ഒന്നിച്ച് തെരഞ്ഞെടുക്കാന്‍ ക്ലിക് ചെയ്യുക." - -msgid "Choose" -msgstr "തെരഞ്ഞെടുക്കൂ" - -msgid "Remove" -msgstr "നീക്കം ചെയ്യൂ" - -#, javascript-format -msgid "Chosen %s" -msgstr "തെരഞ്ഞെടുത്ത %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"തെരഞ്ഞെടുക്കപ്പെട്ട %s പട്ടികയാണിത്. അവയില്‍ ചിലത് ഒഴിവാക്കണമെന്നുണ്ടെങ്കില്‍ താഴെ കളത്തില്‍ " -"നിന്നും അവ സെലക്ട് ചെയ്ത് കളങ്ങള്‍ക്കിടയിലുള്ള \"നീക്കം ചെയ്യൂ\" എന്ന അടയാളത്തില്‍ ക്ലിക് ചെയ്യുക." - -msgid "Remove all" -msgstr "എല്ലാം നീക്കം ചെയ്യുക" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "തെരഞ്ഞെടുക്കപ്പെട്ട %s എല്ലാം ഒരുമിച്ച് നീക്കം ചെയ്യാന്‍ ക്ലിക് ചെയ്യുക." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)sല്‍ %(sel)s തെരഞ്ഞെടുത്തു" -msgstr[1] "%(cnt)sല്‍ %(sel)s എണ്ണം തെരഞ്ഞെടുത്തു" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"വരുത്തിയ മാറ്റങ്ങള്‍ സേവ് ചെയ്തിട്ടില്ല. ഒരു ആക്ഷന്‍ പ്രയോഗിച്ചാല്‍ സേവ് ചെയ്യാത്ത മാറ്റങ്ങളെല്ലാം " -"നഷ്ടപ്പെടും." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "ഇപ്പോള്‍" - -msgid "Midnight" -msgstr "അര്‍ധരാത്രി" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "ഉച്ച" - -msgid "6 p.m." -msgstr "6 p.m" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "ഒർക്കുക: സെർവർ സമയത്തിനെക്കാളും നിങ്ങൾ %s സമയം മുൻപിലാണ്." -msgstr[1] "ഒർക്കുക: സെർവർ സമയത്തിനെക്കാളും നിങ്ങൾ %s സമയം മുൻപിലാണ്." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "ഒർക്കുക: സെർവർ സമയത്തിനെക്കാളും നിങ്ങൾ %s സമയം പിന്നിലാണ്." -msgstr[1] "ഒർക്കുക: സെർവർ സമയത്തിനെക്കാളും നിങ്ങൾ %s സമയം പിന്നിലാണ്." - -msgid "Choose a Time" -msgstr "സമയം തിരഞ്ഞെടുക്കുക" - -msgid "Choose a time" -msgstr "സമയം തെരഞ്ഞെടുക്കൂ" - -msgid "Cancel" -msgstr "റദ്ദാക്കൂ" - -msgid "Today" -msgstr "ഇന്ന്" - -msgid "Choose a Date" -msgstr "ഒരു തീയതി തിരഞ്ഞെടുക്കുക" - -msgid "Yesterday" -msgstr "ഇന്നലെ" - -msgid "Tomorrow" -msgstr "നാളെ" - -msgid "January" -msgstr "ജനുവരി" - -msgid "February" -msgstr "ഫെബ്രുവരി" - -msgid "March" -msgstr "മാർച്ച്" - -msgid "April" -msgstr "ഏപ്രിൽ" - -msgid "May" -msgstr "മെയ്" - -msgid "June" -msgstr "ജൂൺ" - -msgid "July" -msgstr "ജൂലൈ" - -msgid "August" -msgstr "ആഗസ്റ്റ്" - -msgid "September" -msgstr "സെപ്റ്റംബർ" - -msgid "October" -msgstr "ഒക്ടോബർ" - -msgid "November" -msgstr "നവംബർ" - -msgid "December" -msgstr "ഡിസംബര്" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "ഞ്ഞ‍" - -msgctxt "one letter Monday" -msgid "M" -msgstr "തി" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "ചൊ" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "ബു" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "വ്യാ" - -msgctxt "one letter Friday" -msgid "F" -msgstr "വെ" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "ശ" - -msgid "Show" -msgstr "കാണട്ടെ" - -msgid "Hide" -msgstr "മറയട്ടെ" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.mo deleted file mode 100644 index 82cb0bb..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.po deleted file mode 100644 index 48c2e13..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/django.po +++ /dev/null @@ -1,703 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ankhbayar , 2013 -# Jannis Leidel , 2011 -# jargalan , 2011 -# Zorig, 2016 -# Анхбаяр Анхаа , 2013-2016,2018-2019,2021 -# Баясгалан Цэвлээ , 2011,2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-16 17:18+0000\n" -"Last-Translator: Анхбаяр Анхаа \n" -"Language-Team: Mongolian (http://www.transifex.com/django/django/language/" -"mn/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: mn\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Сонгосон %(verbose_name_plural)s-ийг устга" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(items)s ээс %(count)d-ийг амжилттай устгалаа." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s устгаж чадахгүй." - -msgid "Are you sure?" -msgstr "Итгэлтэй байна уу?" - -msgid "Administration" -msgstr "Удирдлага" - -msgid "All" -msgstr "Бүгд " - -msgid "Yes" -msgstr "Тийм" - -msgid "No" -msgstr "Үгүй" - -msgid "Unknown" -msgstr "Тодорхойгүй" - -msgid "Any date" -msgstr "Бүх өдөр" - -msgid "Today" -msgstr "Өнөөдөр" - -msgid "Past 7 days" -msgstr "Өнгөрсөн долоо хоног" - -msgid "This month" -msgstr "Энэ сар" - -msgid "This year" -msgstr "Энэ жил" - -msgid "No date" -msgstr "Огноогүй" - -msgid "Has date" -msgstr "Огноотой" - -msgid "Empty" -msgstr "" - -msgid "Not empty" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Ажилтан хэрэглэгчийн %(username)s ба нууц үгийг зөв оруулна уу. Хоёр талбарт " -"том жижигээр үсгээр бичих ялгаатай." - -msgid "Action:" -msgstr "Үйлдэл:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Өөр %(verbose_name)s нэмэх " - -msgid "Remove" -msgstr "Хасах" - -msgid "Addition" -msgstr "Нэмэгдсэн" - -msgid "Change" -msgstr "Өөрчлөх" - -msgid "Deletion" -msgstr "Устгагдсан" - -msgid "action time" -msgstr "үйлдлийн хугацаа" - -msgid "user" -msgstr "хэрэглэгч" - -msgid "content type" -msgstr "агуулгын төрөл" - -msgid "object id" -msgstr "обектийн id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "обектийн хамаарал" - -msgid "action flag" -msgstr "үйлдэлийн тэмдэг" - -msgid "change message" -msgstr "өөрчлөлтийн мэдээлэл" - -msgid "log entry" -msgstr "лог өгөгдөл" - -msgid "log entries" -msgstr "лог өгөгдөлүүд" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Нэмэгдсэн \"%(object)s\"." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Өөрчлөгдсөн \"%(object)s\"— %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Устгагдсан \"%(object)s\"." - -msgid "LogEntry Object" -msgstr "Лог бүртгэлийн обект" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "Нэмэгдсэн." - -msgid "and" -msgstr "ба" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Өөрчлөгдсөн {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "Өөрчилсөн талбар алга байна." - -msgid "None" -msgstr "Хоосон" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "Та дараахийг дахин засах боломжтой" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Үйлдэл хийхийн тулд Та ядаж 1-ийг сонгох хэрэгтэй. Өөрчилөлт хийгдсэнгүй." - -msgid "No action selected." -msgstr "Үйлдэл сонгоогүй." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s-ийг нэмэх" - -#, python-format -msgid "Change %s" -msgstr "%s-ийг өөрчлөх" - -#, python-format -msgid "View %s" -msgstr "%s харах " - -msgid "Database error" -msgstr "Өгөгдлийн сангийн алдаа" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s-ийг амжилттай өөрчиллөө." -msgstr[1] "%(count)s %(name)s-ийг амжилттай өөрчиллөө." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Бүгд %(total_count)s сонгогдсон" -msgstr[1] "Бүгд %(total_count)s сонгогдсон" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s оос 0 сонгосон" - -#, python-format -msgid "Change history: %s" -msgstr "Өөрчлөлтийн түүх: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(instance)s %(class_name)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -" %(class_name)s төрлийн %(instance)s-ийг устгах гэж байна. Эхлээд дараах " -"холбоотой хамгаалагдсан обектуудыг устгах шаардлагатай: %(related_objects)s" - -msgid "Django site admin" -msgstr "Сайтын удирдлага" - -msgid "Django administration" -msgstr "Удирдлага" - -msgid "Site administration" -msgstr "Сайтын удирдлага" - -msgid "Log in" -msgstr "Нэвтрэх" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s удирдлага" - -msgid "Page not found" -msgstr "Хуудас олдсонгүй." - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "Нүүр" - -msgid "Server error" -msgstr "Серверийн алдаа" - -msgid "Server error (500)" -msgstr "Серверийн алдаа (500)" - -msgid "Server Error (500)" -msgstr "Серверийн алдаа (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Сонгосон үйлдэлийг ажилуулах" - -msgid "Go" -msgstr "Гүйцэтгэх" - -msgid "Click here to select the objects across all pages" -msgstr "Бүх хуудаснууд дээрх объектуудыг сонгох" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Бүгдийг сонгох %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Сонгосонг цэвэрлэх" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s хэрэглүүр дэх моделууд." - -msgid "Add" -msgstr "Нэмэх" - -msgid "View" -msgstr "Харах" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "Хэрэглэгчийн нэр ба нууц үгээ оруулна." - -msgid "Change password" -msgstr "Нууц үг өөрчлөх" - -msgid "Please correct the error below." -msgstr "Доорх алдааг засна уу" - -msgid "Please correct the errors below." -msgstr "Доор гарсан алдаануудыг засна уу." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "%(username)s.хэрэглэгчид шинэ нууц үг оруулна уу." - -msgid "Welcome," -msgstr "Тавтай морилно уу" - -msgid "View site" -msgstr "Сайтаас харах" - -msgid "Documentation" -msgstr "Баримтжуулалт" - -msgid "Log out" -msgstr "Гарах" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s нэмэх" - -msgid "History" -msgstr "Түүх" - -msgid "View on site" -msgstr "Сайтаас харах" - -msgid "Filter" -msgstr "Шүүлтүүр" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "Эрэмблэлтээс хасах" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Эрэмблэх урьтамж: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Эрэмбэлэлтийг харуул" - -msgid "Delete" -msgstr "Устгах" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s'-ийг устгавал холбогдох объект нь устах " -"ч бүртгэл тань дараах төрлийн объектуудийг устгах зөвшөөрөлгүй байна:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -" %(object_name)s обектийг устгаж байна. '%(escaped_object)s' холбоотой " -"хамгаалагдсан обектуудыг заавал утсгах хэрэгтэй :" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Та %(object_name)s \"%(escaped_object)s\"-ийг устгахдаа итгэлтэй байна уу? " -"Үүнийг устгавал дараах холбогдох зүйлс нь бүгд устана:" - -msgid "Objects" -msgstr "Бичлэгүүд" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "Үгүй, намайг буцаа" - -msgid "Delete multiple objects" -msgstr "Олон обектууд устгах" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Сонгосон %(objects_name)s обектуудыг устгасанаар хамаатай бүх обкетууд устах " -"болно. Гэхдээ таньд эрх эдгээр төрлийн обектуудыг утсгах эрх байхгүй байна: " - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"%(objects_name)s обектуудыг утсгаж байна дараах холбоотой хамгаалагдсан " -"обектуудыг устгах шаардлагатай:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Та %(objects_name)s ийг устгах гэж байна итгэлтэй байна? Дараах обектууд " -"болон холбоотой зүйлс хамт устагдах болно:" - -msgid "Delete?" -msgstr "Устгах уу?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s -ээр" - -msgid "Summary" -msgstr "Нийт" - -msgid "Recent actions" -msgstr "Сүүлд хийсэн үйлдлүүд" - -msgid "My actions" -msgstr "Миний үйлдлүүд" - -msgid "None available" -msgstr "Үйлдэл алга" - -msgid "Unknown content" -msgstr "Тодорхойгүй агуулга" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Та %(username)s нэрээр нэвтэрсэн байна гэвч энэ хуудасхуу хандах эрх " -"байхгүй байна. Та өөр эрхээр логин хийх үү?" - -msgid "Forgotten your password or username?" -msgstr "Таны мартсан нууц үг эсвэл нэрвтэр нэр?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Огноо/цаг" - -msgid "User" -msgstr "Хэрэглэгч" - -msgid "Action" -msgstr "Үйлдэл" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "Бүгдийг харуулах" - -msgid "Save" -msgstr "Хадгалах" - -msgid "Popup closing…" -msgstr "Хааж байна..." - -msgid "Search" -msgstr "Хайлт" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s үр дүн" -msgstr[1] "%(counter)s үр дүн" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "Нийт %(full_result_count)s" - -msgid "Save as new" -msgstr "Шинээр хадгалах" - -msgid "Save and add another" -msgstr "Хадгалаад өөрийг нэмэх" - -msgid "Save and continue editing" -msgstr "Хадгалаад нэмж засах" - -msgid "Save and view" -msgstr "Хадгалаад харах." - -msgid "Close" -msgstr "Хаах" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Сонгосон %(model)s-ийг өөрчлөх" - -#, python-format -msgid "Add another %(model)s" -msgstr "Өөр %(model)s нэмэх" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Сонгосон %(model)s устгах" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Ахин нэвтрэх " - -msgid "Password change" -msgstr "Нууц үгийн өөрчлөлт" - -msgid "Your password was changed." -msgstr "Нууц үг тань өөрчлөгдлөө." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "Нууц үгээ солих" - -msgid "Password reset" -msgstr "Нууц үг шинэчилэх" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Та нууц үгтэй боллоо. Одоо бүртгэлд нэвтрэх боломжтой." - -msgid "Password reset confirmation" -msgstr "Нууц үг шинэчилэхийг баталгаажуулах" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Шинэ нууц үгээ хоёр удаа оруулна уу. Ингэснээр нууц үгээ зөв бичиж байгаа " -"эсэхийг тань шалгах юм. " - -msgid "New password:" -msgstr "Шинэ нууц үг:" - -msgid "Confirm password:" -msgstr "Нууц үгээ батлах:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Нууц үг авах холбоос болохгүй байна. Үүнийг аль хэдийнэ хэрэглэснээс болсон " -"байж болзошгүй. Шинэ нууц үг авахаар хүсэлт гаргана уу. " - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"%(site_name)s сайтанд бүртгүүлсэн эрхийн нууц үгийг сэргээх хүсэлт гаргасан " -"учир энэ имэйл ийг та хүлээн авсан болно. " - -msgid "Please go to the following page and choose a new password:" -msgstr "Дараах хуудас руу орон шинэ нууц үг сонгоно уу:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "Манай сайтыг хэрэглэсэнд баярлалаа!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s баг" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "Имэйл хаяг:" - -msgid "Reset my password" -msgstr "Нууц үгээ шинэчлэх" - -msgid "All dates" -msgstr "Бүх огноо" - -#, python-format -msgid "Select %s" -msgstr "%s-г сонго" - -#, python-format -msgid "Select %s to change" -msgstr "Өөрчлөх %s-г сонгоно уу" - -#, python-format -msgid "Select %s to view" -msgstr "Харахын тулд %s сонгоно уу" - -msgid "Date:" -msgstr "Огноо:" - -msgid "Time:" -msgstr "Цаг:" - -msgid "Lookup" -msgstr "Хайх" - -msgid "Currently:" -msgstr "Одоогийнх:" - -msgid "Change:" -msgstr "Өөрчилөлт:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 9f58362..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po deleted file mode 100644 index 5fda297..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,218 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Tsolmon , 2012 -# Zorig, 2014,2018 -# Анхбаяр Анхаа , 2011-2012,2015,2019 -# Ганзориг БП , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2019-02-13 09:19+0000\n" -"Last-Translator: Анхбаяр Анхаа \n" -"Language-Team: Mongolian (http://www.transifex.com/django/django/language/" -"mn/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: mn\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Боломжтой %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Энэ %s жагсаалт нь боломжит утгын жагсаалт. Та аль нэгийг нь сонгоод \"Сонгох" -"\" дээр дарж нөгөө хэсэгт оруулах боломжтой." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Энэ нүдэнд бичээд дараах %s жагсаалтаас шүүнэ үү. " - -msgid "Filter" -msgstr "Шүүлтүүр" - -msgid "Choose all" -msgstr "Бүгдийг нь сонгох" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Бүгдийг сонгох бол %s дарна уу" - -msgid "Choose" -msgstr "Сонгох" - -msgid "Remove" -msgstr "Хас" - -#, javascript-format -msgid "Chosen %s" -msgstr "Сонгогдсон %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Энэ %s сонгогдсон утгуудыг жагсаалт. Та аль нэгийг нь хасахыг хүсвэл сонгоох " -"\"Хас\" дээр дарна уу." - -msgid "Remove all" -msgstr "Бүгдийг арилгах" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "%s ийн сонгоод бүгдийг нь арилгана" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s ээс %(cnt)s сонгосон" -msgstr[1] "%(sel)s ээс %(cnt)s сонгосон" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Хадгалаагүй өөрчлөлтүүд байна. Энэ үйлдэлийг хийвэл өөрчлөлтүүд устах болно." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Та 1 үйлдлийг сонгосон байна, гэвч та өөрийн өөрчлөлтүүдээ тодорхой " -"талбаруудад нь оруулагүй байна. OK дарж сануулна уу. Энэ үйлдлийг та дахин " -"хийх шаардлагатай." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Та 1 үйлдлийг сонгосон байна бас та ямарваа өөрчлөлт оруулсангүй. Та Save " -"товчлуур биш Go товчлуурыг хайж байгаа бололтой." - -msgid "Now" -msgstr "Одоо" - -msgid "Midnight" -msgstr "Шөнө дунд" - -msgid "6 a.m." -msgstr "06 цаг" - -msgid "Noon" -msgstr "Үд дунд" - -msgid "6 p.m." -msgstr "18 цаг" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Та серверийн цагаас %s цагийн түрүүнд явж байна" -msgstr[1] "Та серверийн цагаас %s цагийн түрүүнд явж байна" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Та серверийн цагаас %s цагаар хоцорч байна" -msgstr[1] "Та серверийн цагаас %s цагаар хоцорч байна" - -msgid "Choose a Time" -msgstr "Цаг сонгох" - -msgid "Choose a time" -msgstr "Цаг сонгох" - -msgid "Cancel" -msgstr "Болих" - -msgid "Today" -msgstr "Өнөөдөр" - -msgid "Choose a Date" -msgstr "Өдөр сонгох" - -msgid "Yesterday" -msgstr "Өчигдөр" - -msgid "Tomorrow" -msgstr "Маргааш" - -msgid "January" -msgstr "1-р сар" - -msgid "February" -msgstr "2-р сар" - -msgid "March" -msgstr "3-р сар" - -msgid "April" -msgstr "4-р сар" - -msgid "May" -msgstr "5-р сар" - -msgid "June" -msgstr "6-р сар" - -msgid "July" -msgstr "7-р сар" - -msgid "August" -msgstr "8-р сар" - -msgid "September" -msgstr "9-р сар" - -msgid "October" -msgstr "10-р сар" - -msgid "November" -msgstr "11-р сар" - -msgid "December" -msgstr "12-р сар" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Н" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Д" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "М" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Л" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "П" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Ба" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Бя" - -msgid "Show" -msgstr "Үзэх" - -msgid "Hide" -msgstr "Нуух" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.mo deleted file mode 100644 index d847b48..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.po deleted file mode 100644 index c02c72b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/django.po +++ /dev/null @@ -1,609 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2015-01-18 08:31+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Marathi (http://www.transifex.com/projects/p/django/language/" -"mr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: mr\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "" - -msgid "Yes" -msgstr "" - -msgid "No" -msgstr "" - -msgid "Unknown" -msgstr "" - -msgid "Any date" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Past 7 days" -msgstr "" - -msgid "This month" -msgstr "" - -msgid "This year" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "" - -msgid "action time" -msgstr "" - -msgid "object id" -msgstr "" - -msgid "object repr" -msgstr "" - -msgid "action flag" -msgstr "" - -msgid "change message" -msgstr "" - -msgid "log entry" -msgstr "" - -msgid "log entries" -msgstr "" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -msgid "None" -msgstr "" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-format -msgid "Changed %s." -msgstr "" - -msgid "and" -msgstr "" - -#, python-format -msgid "Added %(name)s \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed %(list)s for %(name)s \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Deleted %(name)s \"%(object)s\"." -msgstr "" - -msgid "No fields changed." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may add another " -"%(name)s below." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was changed successfully. You may edit it again " -"below." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was changed successfully. You may add another " -"%(name)s below." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s object with primary key %(key)r does not exist." -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "" - -#, python-format -msgid "Change %s" -msgstr "" - -msgid "Database error" -msgstr "" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "" - -msgid "Django administration" -msgstr "" - -msgid "Site administration" -msgstr "" - -msgid "Log in" -msgstr "" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "" - -msgid "We're sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "" - -msgid "Server error" -msgstr "" - -msgid "Server error (500)" -msgstr "" - -msgid "Server Error (500)" -msgstr "" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "" - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "" - -msgid "Log out" -msgstr "" - -msgid "Add" -msgstr "" - -msgid "History" -msgstr "" - -msgid "View on site" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "" - -msgid "Remove" -msgstr "" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Delete?" -msgstr "" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "You don't have permission to edit anything." -msgstr "" - -msgid "Recent Actions" -msgstr "" - -msgid "My Actions" -msgstr "" - -msgid "None available" -msgstr "" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "" - -msgid "User" -msgstr "" - -msgid "Action" -msgstr "" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "" - -msgid "Save" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -msgid "Save as new" -msgstr "" - -msgid "Save and add another" -msgstr "" - -msgid "Save and continue editing" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "" - -msgid "Log in again" -msgstr "" - -msgid "Password change" -msgstr "" - -msgid "Your password was changed." -msgstr "" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "" - -msgid "Password reset" -msgstr "" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "" - -msgid "Confirm password:" -msgstr "" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "" - -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "" - -msgid "All dates" -msgstr "" - -msgid "(None)" -msgstr "" - -#, python-format -msgid "Select %s" -msgstr "" - -#, python-format -msgid "Select %s to change" -msgstr "" - -msgid "Date:" -msgstr "" - -msgid "Time:" -msgstr "" - -msgid "Lookup" -msgstr "" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 183b3d1..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.po deleted file mode 100644 index 2026d16..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,145 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2014-10-05 20:12+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Marathi (http://www.transifex.com/projects/p/django/language/" -"mr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: mr\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Choose all" -msgstr "" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "" - -#, javascript-format -msgid "Chosen %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "" - -msgid "Clock" -msgstr "" - -msgid "Choose a time" -msgstr "" - -msgid "Midnight" -msgstr "" - -msgid "6 a.m." -msgstr "" - -msgid "Noon" -msgstr "" - -msgid "Cancel" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Calendar" -msgstr "" - -msgid "Yesterday" -msgstr "" - -msgid "Tomorrow" -msgstr "" - -msgid "" -"January February March April May June July August September October November " -"December" -msgstr "" - -msgid "S M T W T F S" -msgstr "" - -msgid "Show" -msgstr "" - -msgid "Hide" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.mo deleted file mode 100644 index f558c1b..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.po deleted file mode 100644 index e69439e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/django.po +++ /dev/null @@ -1,721 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jafry Hisham, 2021 -# Mariusz Felisiak , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-12-06 07:41+0000\n" -"Last-Translator: Mariusz Felisiak \n" -"Language-Team: Malay (http://www.transifex.com/django/django/language/ms/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ms\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Padam pilihan %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s berjaya dipadamkan" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s tidak boleh dipadamkan" - -msgid "Are you sure?" -msgstr "Adakah anda pasti?" - -msgid "Administration" -msgstr "Pentadbiran" - -msgid "All" -msgstr "Semua" - -msgid "Yes" -msgstr "Ya" - -msgid "No" -msgstr "Tidak" - -msgid "Unknown" -msgstr "Tidak diketahui" - -msgid "Any date" -msgstr "Sebarang tarikh" - -msgid "Today" -msgstr "Hari ini" - -msgid "Past 7 days" -msgstr "7 hari lalu" - -msgid "This month" -msgstr "Bulan ini" - -msgid "This year" -msgstr "Tahun ini" - -msgid "No date" -msgstr "Tiada tarikh" - -msgid "Has date" -msgstr "Mempunyai tarikh" - -msgid "Empty" -msgstr "Kosong" - -msgid "Not empty" -msgstr "Tidak kosong" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Sila masukkan %(username)s dan kata-laluan bagi akaun staf. Kedua-dua medan " -"berkemungkinan kes-sensitif." - -msgid "Action:" -msgstr "Tindakan" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Tambah %(verbose_name)s" - -msgid "Remove" -msgstr "Buang" - -msgid "Addition" -msgstr "Tambahan" - -msgid "Change" -msgstr "Tukar" - -msgid "Deletion" -msgstr "Pemadaman" - -msgid "action time" -msgstr "masa tindakan" - -msgid "user" -msgstr "pengguna" - -msgid "content type" -msgstr "jenis kandungan" - -msgid "object id" -msgstr "id objek" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr objek" - -msgid "action flag" -msgstr "bendera tindakan" - -msgid "change message" -msgstr "tukar mesej" - -msgid "log entry" -msgstr "entri log" - -msgid "log entries" -msgstr "entri log" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\" ditambah" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "\"%(object)s\" ditukar - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "\"%(object)s\" dipadam." - -msgid "LogEntry Object" -msgstr "Objek EntriLog" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} “{object}” ditambah." - -msgid "Added." -msgstr "Ditambah." - -msgid "and" -msgstr "dan" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "“{object}” {name} untuk {fields} telah ditukar." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} telah ditukar." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "“{object}” {name} telah dipadamkan" - -msgid "No fields changed." -msgstr "Tiada medan diubah." - -msgid "None" -msgstr "Tiada" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Tekan \"Control\", atau \"Command pada Mac untuk memilih lebih daripada satu." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\" telah berjaya ditambah." - -msgid "You may edit it again below." -msgstr "Anda boleh edit semula dibawah." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} \"{obj}\" telah berjaya ditambah. Anda boleh menambah {name} lain " -"dibawah." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} \"{obj}\" berjaya diubah. Anda boleh edit semula dibawah." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} \"{obj}\" berjaya ditambah. Anda boleh edit semula dibawah." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} \"{obj}\" berjaya diubah. Anda boleh tambah {name} lain dibawah" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\" berjaya diubah." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Item-item perlu dipilih mengikut turutan untuk tindakan lanjut. Tiada item-" -"item yang diubah." - -msgid "No action selected." -msgstr "Tiada tindakan dipilih." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s \"%(obj)s\" berjaya dipadam." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"%(name)s dengan ID \"%(key)s\" tidak wujud. Mungkin ia telah dipadamkan?" - -#, python-format -msgid "Add %s" -msgstr "Tambah %s" - -#, python-format -msgid "Change %s" -msgstr "Tukar %s" - -#, python-format -msgid "View %s" -msgstr "Lihat %s" - -msgid "Database error" -msgstr "Masalah pangkalan data" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s berjaya ditukar." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Kesemua %(total_count)s dipilih" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 daripada %(cnt)s dipilih" - -#, python-format -msgid "Change history: %s" -msgstr "Sejarah penukaran: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Memadam %(class_name)s %(instance)s memerlukan pemadaman objek berkaitan " -"yang dilindungi: %(related_objects)s" - -msgid "Django site admin" -msgstr "Pentadbiran laman Django" - -msgid "Django administration" -msgstr "Pentadbiran Django" - -msgid "Site administration" -msgstr "Pentadbiran laman" - -msgid "Log in" -msgstr "Log masuk" - -#, python-format -msgid "%(app)s administration" -msgstr "Pentadbiran %(app)s" - -msgid "Page not found" -msgstr "Laman tidak dijumpai" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Maaf, tetapi laman yang diminta tidak dijumpai." - -msgid "Home" -msgstr "Utama" - -msgid "Server error" -msgstr "Masalah pelayan" - -msgid "Server error (500)" -msgstr "Masalah pelayan (500)" - -msgid "Server Error (500)" -msgstr "Masalah pelayan (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Terdapat masalah. Ia telah dilaporkan kepada pentadbir laman melalui emel " -"dan sepatutnya dibaiki sebentar lagi. Kesabaran anda amat dihargai." - -msgid "Run the selected action" -msgstr "Jalankan tindakan yang dipilih" - -msgid "Go" -msgstr "Teruskan" - -msgid "Click here to select the objects across all pages" -msgstr "Klik disini untuk memilih objek-objek disemua laman" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Pilih kesemua %(total_count)s%(module_name)s" - -msgid "Clear selection" -msgstr "Padam pilihan" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Model didalam aplikasi %(name)s" - -msgid "Add" -msgstr "Tambah" - -msgid "View" -msgstr "Lihat" - -msgid "You don’t have permission to view or edit anything." -msgstr "Anda tidak mempunyai kebenaran untuk melihat atau edit apa-apa." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Pertama sekali, masukkan nama pengguna dan kata laluan. Selepas itu, anda " -"boleh edit pilihan pengguna yang lain" - -msgid "Enter a username and password." -msgstr "Masukkan nama pengguna dan kata laluan." - -msgid "Change password" -msgstr "Tukar kata laluan" - -msgid "Please correct the error below." -msgstr "Sila betulkan ralat di bawah." - -msgid "Please correct the errors below." -msgstr "Sila betulkan ralat-ralat di bawah." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Masukkan kata lalauan bagi pengguna %(username)s" - -msgid "Welcome," -msgstr "Selamat datang," - -msgid "View site" -msgstr "Lihat laman" - -msgid "Documentation" -msgstr "Dokumentasi" - -msgid "Log out" -msgstr "Log keluar" - -#, python-format -msgid "Add %(name)s" -msgstr "Tambah %(name)s" - -msgid "History" -msgstr "Sejarah" - -msgid "View on site" -msgstr "Lihat di laman" - -msgid "Filter" -msgstr "Tapis" - -msgid "Clear all filters" -msgstr "Kosongkan kesemua tapisan" - -msgid "Remove from sorting" -msgstr "Buang daripada penyusunan" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Keutamaan susunan: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Togol penyusunan" - -msgid "Delete" -msgstr "Buang" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Memadam %(object_name)s '%(escaped_object)s' akan menyebabkan pembuangan " -"objek-objek yang berkaitan, tetapi akaun anda tidak mempunyai kebenaran " -"untuk memadam jenis-jenis objek-objek berikut:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Membuang %(object_name)s '%(escaped_object)s' memerlukan pembuangan objek-" -"objek berkaitan yang dilindungi:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Adakah anda pasti anda ingin membuang %(object_name)s \"%(escaped_object)s" -"\"? Semua item-item berkaitan berikut akan turut dibuang:" - -msgid "Objects" -msgstr "Objek-objek" - -msgid "Yes, I’m sure" -msgstr "Ya, saya pasti" - -msgid "No, take me back" -msgstr "Tidak, bawa saya kembali" - -msgid "Delete multiple objects" -msgstr "Buang pelbagai objek" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Membuang %(objects_name)s akan menyebabkan pembuangan objek-objek yang " -"berkaitan, tetapi akaun anda tidak mempunyai kebenaran to membuang jenis " -"objek-objek berikut:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Membuang %(objects_name)s memerlukan pembuangan objek-objek berkaitan yang " -"dilindungi:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Adakah anda pasti untuk membuang %(objects_name)s yang dipilih? Segala objek-" -"objek berikut dan item-item yang berkaitan akan turut dibuang:" - -msgid "Delete?" -msgstr "Buang?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Daripada %(filter_title)s" - -msgid "Summary" -msgstr "Rumusan" - -msgid "Recent actions" -msgstr "Tindakan terkini" - -msgid "My actions" -msgstr "Tindakan saya" - -msgid "None available" -msgstr "Tiada yang tersedia" - -msgid "Unknown content" -msgstr "Kandungan tidak diketahui" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Nampaknya ada masalah dengan pemasangan pangkalan data anda. Pastikan jadual " -"pangkalan yang bersesuaian telah di cipta, dan pastikan pangkalan data " -"tersebut boleh dibaca oleh pengguna yang bersesuaian." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Anda telah disahkan sebagai %(username)s, tetapi anda tidak dibenarkan untuk " -"mengakses ruangan ini. Adakah anda ingin log masuk menggunakan akaun lain?" - -msgid "Forgotten your password or username?" -msgstr "Terlupa kata laluan atau nama pengguna anda?" - -msgid "Toggle navigation" -msgstr "Togol navigasi" - -msgid "Start typing to filter…" -msgstr "Mulakan menaip untuk menapis..." - -msgid "Filter navigation items" -msgstr "Tapis item-item navigasi" - -msgid "Date/time" -msgstr "Tarikh/masa" - -msgid "User" -msgstr "Pengguna" - -msgid "Action" -msgstr "Tindakan" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Objek ini tidak mempunyai sejarah penukaran. Ini mungkin bermaksud ia tidak " -"ditambah menggunakan laman admin ini." - -msgid "Show all" -msgstr "Tunjuk semua" - -msgid "Save" -msgstr "Simpan" - -msgid "Popup closing…" -msgstr "Popup sedang ditutup..." - -msgid "Search" -msgstr "Cari" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s keputusan" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s jumlah" - -msgid "Save as new" -msgstr "Simpan sebagai baru" - -msgid "Save and add another" -msgstr "Simpan dan tambah lagi" - -msgid "Save and continue editing" -msgstr "Simpan dan teruskan mengedit" - -msgid "Save and view" -msgstr "Simpan dan lihat" - -msgid "Close" -msgstr "Tutup" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Tukar %(model)s yang dipilih" - -#, python-format -msgid "Add another %(model)s" -msgstr "Tambah %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Buang %(model)s pilihan" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Terima kasih kerana meluangkan masa di laman sesawang ini hari ini." - -msgid "Log in again" -msgstr "Log masuk semula" - -msgid "Password change" -msgstr "Pertukaran kata laluan" - -msgid "Your password was changed." -msgstr "Kata laluan anda telah ditukarkan" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Untuk tujuan keselamatan, sila masukkan kata laluan lama, kemudian masukkan " -"kata laluan baru dua kali supaya kami dapat memastikan anda memasukkannya " -"dengan betul." - -msgid "Change my password" -msgstr "Tukar kata laluan saya" - -msgid "Password reset" -msgstr "Tetap semula kata laluan" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Kata laluan anda telah ditetapkan. Sila log masuk." - -msgid "Password reset confirmation" -msgstr "Pengesahan tetapan semula kata laluan" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Sila masukkan kata laluan baru anda dua kali supaya kami adpat memastikan " -"anda memasukkannya dengan betul." - -msgid "New password:" -msgstr "Kata laluan baru:" - -msgid "Confirm password:" -msgstr "Sahkan kata laluan:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Pautan tetapan semula kata laluan tidak sah, mungkin kerana ia telah " -"digunakan. Sila minta tetapan semula kata laluan yang baru." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Kami telah menghantar panduan untuk menetapkan kata laluan anda melalui " -"emel, sekiranya emel yang anda masukkan itu wujud. Anda sepatutnya " -"menerimanya sebentar lagi." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Jika anda tidak menerima emel, sila pastikan anda telah memasukkan alamat " -"emel yang telah didaftarkan, dan semak folder spam anda." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Anda menerima emel ini kerana anda telah memohon untuk menetapkan semula " -"kata laluan bagi akaun pengguna di %(site_name)s" - -msgid "Please go to the following page and choose a new password:" -msgstr "Sila ke ruangan berikut dan pilih kata laluan baru:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Nama pengguna anda, sekiranya anda terlupa:" - -msgid "Thanks for using our site!" -msgstr "Terima kasih kerana menggunakan laman kami!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Pasukan %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Lupa kata laluan anda? Masukkan alamat emel anda dibawah, dan kami akan " -"menghantar cara untuk menetapkan kata laluan baru." - -msgid "Email address:" -msgstr "Alamat emel:" - -msgid "Reset my password" -msgstr "Tetap semula kata laluan saya" - -msgid "All dates" -msgstr "Semua tarikh" - -#, python-format -msgid "Select %s" -msgstr "Pilih %s" - -#, python-format -msgid "Select %s to change" -msgstr "Pilih %s untuk diubah" - -#, python-format -msgid "Select %s to view" -msgstr "Pilih %s untuk lihat" - -msgid "Date:" -msgstr "Tarikh:" - -msgid "Time:" -msgstr "Masa:" - -msgid "Lookup" -msgstr "Carian" - -msgid "Currently:" -msgstr "Kini:" - -msgid "Change:" -msgstr "Tukar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 65e0050..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po deleted file mode 100644 index 6d86502..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,264 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jafry Hisham, 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-11-16 13:42+0000\n" -"Last-Translator: Jafry Hisham\n" -"Language-Team: Malay (http://www.transifex.com/django/django/language/ms/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ms\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s tersedia" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ini adalah senarai %s yang tersedia. Anda boleh memilih beberapa dengan " -"memilihnya di dalam kotak dibawah dan kemudian klik pada anak panah \"Pilih" -"\" diantara dua kotak itu." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Taip didalam kotak untuk menapis senarai %s yang tersedia." - -msgid "Filter" -msgstr "Tapis" - -msgid "Choose all" -msgstr "Pilih semua" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klik untuk memlih semua %s serentak." - -msgid "Choose" -msgstr "Pilih" - -msgid "Remove" -msgstr "Buang" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s dipilh" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ini adalah senarai %s yang dipilih. Anda boleh membuangnya dengan memilihnya " -"pada kotak dibawah dan kemudian klik pada anak panah \"Buang\" diantara dua " -"kotak itu." - -msgid "Remove all" -msgstr "Buang semua" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klik untuk membuang serentak semua %s yang dipilih." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s daripada %(cnt)s dipilih" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Anda mempunyai perubahan yang belum disimpan pada medan-medan individu yang " -"boleh di-edit. Sekiranya anda melakukan sebarang tindakan, penukaran yang " -"tidak disimpan akan hilang." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Anda telah memlih tindakan, tetapi anda belum menyimpan perubahan yang " -"dilakukan pada medan-medan individu. Sila klik OK to untuk simpan. Anda " -"perlu melakukan semula tindakan tersebut." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Anda telah memilih sesuatu tindakan, dan belum membuat perubahan pada medan-" -"medan individu. Anda mungkin sedang mencari butang Pergi dan bukannya butang " -"Simpan." - -msgid "Now" -msgstr "Sekarang" - -msgid "Midnight" -msgstr "Tengah malam" - -msgid "6 a.m." -msgstr "6 pagi" - -msgid "Noon" -msgstr "Tengahari" - -msgid "6 p.m." -msgstr "6 malam" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Nota: Anda %s jam ke depan daripada masa pelayan." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Nota: Anda %s jam ke belakang daripada masa pelayan." - -msgid "Choose a Time" -msgstr "Pilih Masa" - -msgid "Choose a time" -msgstr "Pilih masa" - -msgid "Cancel" -msgstr "Batal" - -msgid "Today" -msgstr "Hari ini" - -msgid "Choose a Date" -msgstr "Pilih Tarikh" - -msgid "Yesterday" -msgstr "Semalam" - -msgid "Tomorrow" -msgstr "Esok" - -msgid "January" -msgstr "Januari" - -msgid "February" -msgstr "Februari" - -msgid "March" -msgstr "Mac" - -msgid "April" -msgstr "Arpil" - -msgid "May" -msgstr "Mei" - -msgid "June" -msgstr "Jun" - -msgid "July" -msgstr "Julai" - -msgid "August" -msgstr "Ogos" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "November" - -msgid "December" -msgstr "Disember" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Mei" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Ogo" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dis" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "A" - -msgctxt "one letter Monday" -msgid "M" -msgstr "I" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Se" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "R" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "K" - -msgctxt "one letter Friday" -msgid "F" -msgstr "J" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Sa" - -msgid "Show" -msgstr "Tunjuk" - -msgid "Hide" -msgstr "Sorok" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.mo deleted file mode 100644 index c22fe6c..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.po deleted file mode 100644 index 34054de..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/django.po +++ /dev/null @@ -1,629 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Yhal Htet Aung , 2013-2015 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Burmese (http://www.transifex.com/django/django/language/" -"my/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: my\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "စီမံခန့်ခွဲမှု" - -msgid "All" -msgstr "အားလုံး" - -msgid "Yes" -msgstr "ဟုတ်" - -msgid "No" -msgstr "မဟုတ်" - -msgid "Unknown" -msgstr "အမည်မသိ" - -msgid "Any date" -msgstr "နှစ်သက်ရာရက်စွဲ" - -msgid "Today" -msgstr "ယနေ့" - -msgid "Past 7 days" -msgstr "" - -msgid "This month" -msgstr "ယခုလ" - -msgid "This year" -msgstr "ယခုနှစ်" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "လုပ်ဆောင်ချက်:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Remove" -msgstr "ဖယ်ရှား" - -msgid "action time" -msgstr "" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "" - -msgid "action flag" -msgstr "" - -msgid "change message" -msgstr "" - -msgid "log entry" -msgstr "" - -msgid "log entries" -msgstr "" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "နှင့်" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "" - -msgid "None" -msgstr "တစ်ခုမှမဟုတ်" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "ထည့်သွင်း %s" - -#, python-format -msgid "Change %s" -msgstr "ပြောင်းလဲ %s" - -msgid "Database error" -msgstr "အချက်အလက်အစုအမှား" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "မှတ်တမ်းပြောင်းလဲ: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "" - -msgid "Django administration" -msgstr "ဒီဂျန်ဂိုစီမံခန့်ခွဲမှု" - -msgid "Site administration" -msgstr "ဆိုက်စီမံခန့်ခွဲမှု" - -msgid "Log in" -msgstr "ဖွင့်ဝင်" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "" - -msgid "We're sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "ပင်မ" - -msgid "Server error" -msgstr "ဆာဗာအမှားပြ" - -msgid "Server error (500)" -msgstr "ဆာဗာအမှားပြ (၅၀၀)" - -msgid "Server Error (500)" -msgstr "ဆာဗာအမှားပြ (၅၀၀)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "သွား" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "စကားဝှက်ပြောင်း" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "ကြိုဆို၊ " - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "စာရွက်စာတမ်း" - -msgid "Log out" -msgstr "ဖွင့်ထွက်" - -#, python-format -msgid "Add %(name)s" -msgstr "" - -msgid "History" -msgstr "မှတ်တမ်း" - -msgid "View on site" -msgstr "" - -msgid "Filter" -msgstr "စီစစ်မှု" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "ပယ်ဖျက်" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "ပြောင်းလဲ" - -msgid "Delete?" -msgstr "ပယ်ဖျက်?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "အကျဉ်းချုပ်" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "ထည့်သွင်း" - -msgid "You don't have permission to edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "ရက်စွဲ/အချိန်" - -msgid "User" -msgstr "အသုံးပြုသူ" - -msgid "Action" -msgstr "လုပ်ဆောင်ချက်" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "" - -msgid "Save" -msgstr "သိမ်းဆည်း" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "ရှာဖွေ" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -msgid "Save as new" -msgstr "" - -msgid "Save and add another" -msgstr "" - -msgid "Save and continue editing" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "" - -msgid "Log in again" -msgstr "" - -msgid "Password change" -msgstr "" - -msgid "Your password was changed." -msgstr "" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "စကားဝှက်ပြောင်း" - -msgid "Password reset" -msgstr "" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "" - -msgid "Confirm password:" -msgstr "" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "" - -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "အီးမေးလ်လိပ်စာ:" - -msgid "Reset my password" -msgstr "" - -msgid "All dates" -msgstr "ရက်စွဲအားလုံး" - -#, python-format -msgid "Select %s" -msgstr "ရွေးချယ် %s" - -#, python-format -msgid "Select %s to change" -msgstr "ပြောင်းလဲရန် %s ရွေးချယ်" - -msgid "Date:" -msgstr "ရက်စွဲ:" - -msgid "Time:" -msgstr "အချိန်:" - -msgid "Lookup" -msgstr "ပြန်ကြည့်" - -msgid "Currently:" -msgstr "လက်ရှိ:" - -msgid "Change:" -msgstr "ပြောင်းလဲ:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 000b8bc..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.po deleted file mode 100644 index 06b49fc..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/my/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,206 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Yhal Htet Aung , 2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Burmese (http://www.transifex.com/django/django/language/" -"my/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: my\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s ကိုရယူနိုင်" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"%s သည်ရယူနိုင်သောစာရင်းဖြစ်။ အောက်ဖော်ပြပါဘူးများတွင်အချို့ကိုရွေးချယ်နိုင်ပြီးဘူးနှစ်ခုကြားရှိ\"ရွေး" -"\"များကိုကလစ်နှိပ်။" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "ယခုဘူးထဲတွင်စာသားရိုက်ထည့်ပြီး %s ရယူနိုင်သောစာရင်းကိုစိစစ်နိုင်။" - -msgid "Filter" -msgstr "စီစစ်မှု" - -msgid "Choose all" -msgstr "အားလံုးရွေး" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "%s အားလံုးကိုတစ်ကြိမ်တည်းဖြင့်ရွေးချယ်ရန်ကလစ်နှိပ်။" - -msgid "Choose" -msgstr "ရွေး" - -msgid "Remove" -msgstr "ဖယ်ရှား" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s ရွေးပြီး" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"%s သည်ရယူနိုင်သောစာရင်းဖြစ်။ အောက်ဖော်ပြပါဘူးများတွင်အချို့ကိုဖယ်ရှားနိုင်ပြီးဘူးနှစ်ခုကြားရှိ\"ဖယ်ရှား" -"\"ကိုကလစ်နှိပ်။" - -msgid "Remove all" -msgstr "အားလံုးဖယ်ရှား" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "%s အားလံုးကိုတစ်ကြိမ်တည်းဖြင့်ဖယ်ရှားရန်ကလစ်နှိပ်။" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s မှ %(sel)s ရွေးချယ်ပြီး" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" - -msgid "Now" -msgstr "ယခု" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "အချိန်ရွေးပါ" - -msgid "Midnight" -msgstr "သန်းခေါင်" - -msgid "6 a.m." -msgstr "မနက်၆နာရီ" - -msgid "Noon" -msgstr "မွန်းတည့်" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "ပယ်ဖျက်" - -msgid "Today" -msgstr "ယနေ့" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "မနေ့" - -msgid "Tomorrow" -msgstr "မနက်ဖြန်" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "ပြသ" - -msgid "Hide" -msgstr "ဖုံးကွယ်" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.mo deleted file mode 100644 index ea77ddd..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.po deleted file mode 100644 index 3f6445e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/django.po +++ /dev/null @@ -1,720 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# jensadne , 2013-2014 -# Jon , 2015-2016 -# Jon , 2017-2020 -# Jon , 2013 -# Jon , 2011,2013 -# Sigurd Gartmann , 2012 -# Tommy Strand , 2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-09-04 13:37+0000\n" -"Last-Translator: Jon \n" -"Language-Team: Norwegian Bokmål (http://www.transifex.com/django/django/" -"language/nb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: nb\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Slettet %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Kan ikke slette %(name)s" - -msgid "Are you sure?" -msgstr "Er du sikker?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Slett valgte %(verbose_name_plural)s" - -msgid "Administration" -msgstr "Administrasjon" - -msgid "All" -msgstr "Alle" - -msgid "Yes" -msgstr "Ja" - -msgid "No" -msgstr "Nei" - -msgid "Unknown" -msgstr "Ukjent" - -msgid "Any date" -msgstr "Når som helst" - -msgid "Today" -msgstr "I dag" - -msgid "Past 7 days" -msgstr "Siste syv dager" - -msgid "This month" -msgstr "Denne måneden" - -msgid "This year" -msgstr "I år" - -msgid "No date" -msgstr "Ingen dato" - -msgid "Has date" -msgstr "Har dato" - -msgid "Empty" -msgstr "Tom" - -msgid "Not empty" -msgstr "Ikke tom" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Vennligst oppgi gyldig %(username)s og passord til en " -"administrasjonsbrukerkonto. Merk at det er forskjell på små og store " -"bokstaver." - -msgid "Action:" -msgstr "Handling:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Legg til ny %(verbose_name)s" - -msgid "Remove" -msgstr "Fjern" - -msgid "Addition" -msgstr "Tillegg" - -msgid "Change" -msgstr "Endre" - -msgid "Deletion" -msgstr "Sletting" - -msgid "action time" -msgstr "tid for handling" - -msgid "user" -msgstr "bruker" - -msgid "content type" -msgstr "innholdstype" - -msgid "object id" -msgstr "objekt-ID" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objekt-repr" - -msgid "action flag" -msgstr "handlingsflagg" - -msgid "change message" -msgstr "endre melding" - -msgid "log entry" -msgstr "logginnlegg" - -msgid "log entries" -msgstr "logginnlegg" - -#, python-format -msgid "Added “%(object)s”." -msgstr "La til \"%(object)s\"." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Endret \"%(object)s\" — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Slettet \"%(object)s\"." - -msgid "LogEntry Object" -msgstr "LogEntry-objekt" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "La til {name} \"{object}\"." - -msgid "Added." -msgstr "Lagt til." - -msgid "and" -msgstr "og" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Endret {fields} for {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Endret {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Slettet {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Ingen felt endret." - -msgid "None" -msgstr "Ingen" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Hold nede «Control», eller «Command» på en Mac, for å velge mer enn én." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\" ble lagt til." - -msgid "You may edit it again below." -msgstr "Du kan endre det igjen nedenfor." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "{name} \"{obj}\" ble lagt til. Du kan legge til en ny {name} nedenfor." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} \"{obj}\" ble endret. Du kan redigere videre nedenfor." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} \"{obj}\" ble lagt til. Du kan redigere videre nedenfor." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} \"{obj}\" ble endret. Du kan legge til en ny {name} nedenfor." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\" ble endret." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Du må velge objekter for å utføre handlinger på dem. Ingen objekter har " -"blitt endret." - -msgid "No action selected." -msgstr "Ingen handling valgt." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s \"%(obj)s\" ble slettet." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s med ID \"%(key)s\" eksisterer ikke. Kanskje det ble slettet?" - -#, python-format -msgid "Add %s" -msgstr "Legg til ny %s" - -#, python-format -msgid "Change %s" -msgstr "Endre %s" - -#, python-format -msgid "View %s" -msgstr "Se %s" - -msgid "Database error" -msgstr "Databasefeil" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s ble endret." -msgstr[1] "%(count)s %(name)s ble endret." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s valgt" -msgstr[1] "Alle %(total_count)s valgt" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 av %(cnt)s valgt" - -#, python-format -msgid "Change history: %s" -msgstr "Endringshistorikk: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Sletting av %(class_name)s «%(instance)s» krever sletting av følgende " -"beskyttede relaterte objekter: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django administrasjonsside" - -msgid "Django administration" -msgstr "Django-administrasjon" - -msgid "Site administration" -msgstr "Nettstedsadministrasjon" - -msgid "Log in" -msgstr "Logg inn" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s-administrasjon" - -msgid "Page not found" -msgstr "Fant ikke siden" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Beklager, men siden du spør etter finnes ikke." - -msgid "Home" -msgstr "Hjem" - -msgid "Server error" -msgstr "Tjenerfeil" - -msgid "Server error (500)" -msgstr "Tjenerfeil (500)" - -msgid "Server Error (500)" -msgstr "Tjenerfeil (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Det har oppstått en feil. Feilen er blitt rapportert til administrator via e-" -"post, og vil bli fikset snart. Takk for din tålmodighet." - -msgid "Run the selected action" -msgstr "Utfør den valgte handlingen" - -msgid "Go" -msgstr "Gå" - -msgid "Click here to select the objects across all pages" -msgstr "Trykk her for å velge samtlige objekter fra alle sider" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Velg alle %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Nullstill valg" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modeller i %(name)s-applikasjonen" - -msgid "Add" -msgstr "Legg til" - -msgid "View" -msgstr "Se" - -msgid "You don’t have permission to view or edit anything." -msgstr "Du har ikke tillatelse til å vise eller endre noe." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Skriv først inn brukernavn og passord. Deretter vil du få mulighet til å " -"endre flere brukerinnstillinger." - -msgid "Enter a username and password." -msgstr "Skriv inn brukernavn og passord." - -msgid "Change password" -msgstr "Endre passord" - -msgid "Please correct the error below." -msgstr "Vennligst korriger feilen under." - -msgid "Please correct the errors below." -msgstr "Vennligst korriger feilene under." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Skriv inn et nytt passord for brukeren %(username)s." - -msgid "Welcome," -msgstr "Velkommen," - -msgid "View site" -msgstr "Vis nettsted" - -msgid "Documentation" -msgstr "Dokumentasjon" - -msgid "Log out" -msgstr "Logg ut" - -#, python-format -msgid "Add %(name)s" -msgstr "Legg til ny %(name)s" - -msgid "History" -msgstr "Historikk" - -msgid "View on site" -msgstr "Vis på nettsted" - -msgid "Filter" -msgstr "Filtrering" - -msgid "Clear all filters" -msgstr "Fjern alle filtre" - -msgid "Remove from sorting" -msgstr "Fjern fra sortering" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sorteringsprioritet: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Slå av og på sortering" - -msgid "Delete" -msgstr "Slett" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Om du sletter %(object_name)s «%(escaped_object)s», vil også relaterte " -"objekter slettes, men du har ikke tillatelse til å slette følgende " -"objekttyper:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Sletting av %(object_name)s «%(escaped_object)s» krever sletting av følgende " -"beskyttede relaterte objekter:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Er du sikker på at du vil slette %(object_name)s «%(escaped_object)s»? Alle " -"de følgende relaterte objektene vil bli slettet:" - -msgid "Objects" -msgstr "Objekter" - -msgid "Yes, I’m sure" -msgstr "Ja, jeg er sikker" - -msgid "No, take me back" -msgstr "Nei, ta meg tilbake" - -msgid "Delete multiple objects" -msgstr "Slett flere objekter" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Sletting av det valgte %(objects_name)s ville resultere i sletting av " -"relaterte objekter, men kontoen din har ikke tillatelse til å slette " -"følgende objekttyper:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Sletting av det valgte %(objects_name)s ville kreve sletting av følgende " -"beskyttede relaterte objekter:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Er du sikker på vil slette det valgte %(objects_name)s? De følgende " -"objektene og deres relaterte objekter vil bli slettet:" - -msgid "Delete?" -msgstr "Slette?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Etter %(filter_title)s " - -msgid "Summary" -msgstr "Oppsummering" - -msgid "Recent actions" -msgstr "Siste handlinger" - -msgid "My actions" -msgstr "Mine handlinger" - -msgid "None available" -msgstr "Ingen tilgjengelige" - -msgid "Unknown content" -msgstr "Ukjent innhold" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Noe er galt med databaseinstallasjonen din. Sørg for at databasetabellene er " -"opprettet og at brukeren har de nødvendige rettighetene." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Du er logget inn som %(username)s, men er ikke autorisert til å få tilgang " -"til denne siden. Ønsker du å logge inn med en annen konto?" - -msgid "Forgotten your password or username?" -msgstr "Glemt brukernavnet eller passordet ditt?" - -msgid "Toggle navigation" -msgstr "Veksle navigasjon" - -msgid "Date/time" -msgstr "Dato/tid" - -msgid "User" -msgstr "Bruker" - -msgid "Action" -msgstr "Handling" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Dette objektet har ingen endringshistorikk. Det ble sannsynligvis ikke lagt " -"til på denne administrasjonssiden." - -msgid "Show all" -msgstr "Vis alle" - -msgid "Save" -msgstr "Lagre" - -msgid "Popup closing…" -msgstr "Lukker popup..." - -msgid "Search" -msgstr "Søk" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultat" -msgstr[1] "%(counter)s resultater" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s totalt" - -msgid "Save as new" -msgstr "Lagre som ny" - -msgid "Save and add another" -msgstr "Lagre og legg til ny" - -msgid "Save and continue editing" -msgstr "Lagre og fortsett å redigere" - -msgid "Save and view" -msgstr "Lagre og se" - -msgid "Close" -msgstr "Lukk" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Endre valgt %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Legg til ny %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Slett valgte %(model)s" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Takk for i dag." - -msgid "Log in again" -msgstr "Logg inn igjen" - -msgid "Password change" -msgstr "Endre passord" - -msgid "Your password was changed." -msgstr "Ditt passord ble endret." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Av sikkerhetsgrunner må du oppgi ditt gamle passord. Deretter oppgir du det " -"nye passordet ditt to ganger, slik at vi kan kontrollere at det er korrekt." - -msgid "Change my password" -msgstr "Endre passord" - -msgid "Password reset" -msgstr "Nullstill passord" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Passordet ditt er satt. Du kan nå logge inn." - -msgid "Password reset confirmation" -msgstr "Bekreftelse på nullstilt passord" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Oppgi det nye passordet to ganger, for å sikre at det er skrevet korrekt." - -msgid "New password:" -msgstr "Nytt passord:" - -msgid "Confirm password:" -msgstr "Gjenta nytt passord:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Nullstillingslenken er ugyldig, kanskje fordi den allerede har vært brukt. " -"Vennligst nullstill passordet ditt på nytt." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Vi har sendt deg en e-post med instruksjoner for nullstilling av passord, " -"hvis en konto finnes på den e-postadressen du oppga. Du bør motta den om " -"kort tid." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Hvis du ikke mottar en e-post, sjekk igjen at du har oppgitt den adressen du " -"er registrert med og sjekk spam-mappen din." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Du mottar denne e-posten fordi du har bedt om nullstilling av passordet ditt " -"på %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Vennligst gå til følgende side og velg et nytt passord:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Brukernavnet ditt, i tilfelle du har glemt det:" - -msgid "Thanks for using our site!" -msgstr "Takk for at du bruker siden vår!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Hilsen %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Glemt passordet ditt? Oppgi e-postadressen din under, så sender vi deg en e-" -"post med instruksjoner for nullstilling av passord." - -msgid "Email address:" -msgstr "E-postadresse:" - -msgid "Reset my password" -msgstr "Nullstill mitt passord" - -msgid "All dates" -msgstr "Alle datoer" - -#, python-format -msgid "Select %s" -msgstr "Velg %s" - -#, python-format -msgid "Select %s to change" -msgstr "Velg %s du ønsker å endre" - -#, python-format -msgid "Select %s to view" -msgstr "Velg %s å se" - -msgid "Date:" -msgstr "Dato:" - -msgid "Time:" -msgstr "Tid:" - -msgid "Lookup" -msgstr "Oppslag" - -msgid "Currently:" -msgstr "Nåværende:" - -msgid "Change:" -msgstr "Endre:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 6b1d74e..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po deleted file mode 100644 index 1e6ddb6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,269 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Eirik Krogstad , 2014 -# Jannis Leidel , 2011 -# Jon, 2015-2016 -# Jon, 2014 -# Jon, 2020-2021 -# Jon, 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-03-18 14:20+0000\n" -"Last-Translator: Jon\n" -"Language-Team: Norwegian Bokmål (http://www.transifex.com/django/django/" -"language/nb/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: nb\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Tilgjengelige %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Dette er listen over tilgjengelige %s. Du kan velge noen ved å markere de i " -"boksen under og så klikke på \"Velg\"-pilen mellom de to boksene." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Skriv i dette feltet for å filtrere ned listen av tilgjengelige %s." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Velg alle" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klikk for å velge alle %s samtidig" - -msgid "Choose" -msgstr "Velg" - -msgid "Remove" -msgstr "Slett" - -#, javascript-format -msgid "Chosen %s" -msgstr "Valgte %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Dette er listen over valgte %s. Du kan fjerne noen ved å markere de i boksen " -"under og så klikke på \"Fjern\"-pilen mellom de to boksene." - -msgid "Remove all" -msgstr "Fjern alle" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klikk for å fjerne alle valgte %s samtidig" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s av %(cnt)s valgt" -msgstr[1] "%(sel)s av %(cnt)s valgt" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Du har ulagrede endringer i individuelle felter. Hvis du utfører en " -"handling, vil dine ulagrede endringer gå tapt." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Du har valgt en handling, men du har ikke lagret endringene dine i " -"individuelle felter enda. Vennligst trykk OK for å lagre. Du må utføre " -"handlingen på nytt." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Du har valgt en handling, og har ikke gjort noen endringer i individuelle " -"felter. Du ser mest sannsynlig etter Gå-knappen, ikke Lagre-knappen." - -msgid "Now" -msgstr "Nå" - -msgid "Midnight" -msgstr "Midnatt" - -msgid "6 a.m." -msgstr "06:00" - -msgid "Noon" -msgstr "12:00" - -msgid "6 p.m." -msgstr "18:00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Merk: Du er %s time foran server-tid." -msgstr[1] "Merk: Du er %s timer foran server-tid." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Merk: Du er %s time bak server-tid." -msgstr[1] "Merk: Du er %s timer bak server-tid." - -msgid "Choose a Time" -msgstr "Velg et klokkeslett" - -msgid "Choose a time" -msgstr "Velg et klokkeslett" - -msgid "Cancel" -msgstr "Avbryt" - -msgid "Today" -msgstr "I dag" - -msgid "Choose a Date" -msgstr "Velg en dato" - -msgid "Yesterday" -msgstr "I går" - -msgid "Tomorrow" -msgstr "I morgen" - -msgid "January" -msgstr "Januar" - -msgid "February" -msgstr "Februar" - -msgid "March" -msgstr "Mars" - -msgid "April" -msgstr "April" - -msgid "May" -msgstr "Mai" - -msgid "June" -msgstr "Juni" - -msgid "July" -msgstr "Juli" - -msgid "August" -msgstr "August" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "November" - -msgid "December" -msgstr "Desember" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Mai" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Des" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "S" - -msgctxt "one letter Monday" -msgid "M" -msgstr "M" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "O" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "T" - -msgctxt "one letter Friday" -msgid "F" -msgstr "F" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "L" - -msgid "Show" -msgstr "Vis" - -msgid "Hide" -msgstr "Skjul" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.mo deleted file mode 100644 index d104714..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.po deleted file mode 100644 index ab9e55a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/django.po +++ /dev/null @@ -1,688 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Sagar Chalise , 2011 -# Santosh Purbey , 2020 -# Shrawan Poudel , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-11-22 06:50+0000\n" -"Last-Translator: Shrawan Poudel \n" -"Language-Team: Nepali (http://www.transifex.com/django/django/language/ne/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ne\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "%(verbose_name_plural)s छानिएको मेट्नुहोस" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "सफलतापूर्वक मेटियो %(count)d %(items)s ।" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s मेट्न सकिएन " - -msgid "Are you sure?" -msgstr "के तपाई पक्का हुनुहुन्छ ?" - -msgid "Administration" -msgstr "प्रशासन " - -msgid "All" -msgstr "सबै" - -msgid "Yes" -msgstr "हो" - -msgid "No" -msgstr "होइन" - -msgid "Unknown" -msgstr "अज्ञात" - -msgid "Any date" -msgstr "कुनै मिति" - -msgid "Today" -msgstr "आज" - -msgid "Past 7 days" -msgstr "पूर्व ७ दिन" - -msgid "This month" -msgstr "यो महिना" - -msgid "This year" -msgstr "यो साल" - -msgid "No date" -msgstr "मिति छैन" - -msgid "Has date" -msgstr "मिति छ" - -msgid "Empty" -msgstr "खाली" - -msgid "Not empty" -msgstr "खाली छैन" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"कृपया स्टाफ खाताको लागि सही %(username)s र पासवर्ड राख्नु होस । दुवै खाली ठाउँ केस " -"सेन्सिटिव हुन सक्छन् ।" - -msgid "Action:" -msgstr "कार्य:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "अर्को %(verbose_name)s थप्नुहोस ।" - -msgid "Remove" -msgstr "हटाउनुहोस" - -msgid "Addition" -msgstr "थप" - -msgid "Change" -msgstr "फेर्नुहोस" - -msgid "Deletion" -msgstr "हटाइयो" - -msgid "action time" -msgstr "कार्य समय" - -msgid "user" -msgstr "प्रयोग कर्ता" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "वस्तु परिचय" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "" - -msgid "action flag" -msgstr "एक्सन फ्ल्याग" - -msgid "change message" -msgstr "सन्देश परिवर्तन गर्नुहोस" - -msgid "log entry" -msgstr "लग" - -msgid "log entries" -msgstr "लगहरु" - -#, python-format -msgid "Added “%(object)s”." -msgstr "थपियो “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "बदलियो “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "हटाईयो “%(object)s.”" - -msgid "LogEntry Object" -msgstr "लग ईन्ट्री वस्तु" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "थपियो  {name} “{object}”." - -msgid "Added." -msgstr "थपिएको छ ।" - -msgid "and" -msgstr "र" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "कुनै फाँट फेरिएन ।" - -msgid "None" -msgstr "शुन्य" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "तपाईं तल फेरि सम्पादन गर्न सक्नुहुन्छ।" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "कार्य गर्नका निम्ति वस्तु छान्नु पर्दछ । कुनैपनि छस्तु छानिएको छैन । " - -msgid "No action selected." -msgstr "कार्य छानिएको छैन ।" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s थप्नुहोस" - -#, python-format -msgid "Change %s" -msgstr "%s परिवर्तित ।" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "डाटाबेस त्रुटि" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s सफलतापूर्वक परिवर्तन भयो ।" -msgstr[1] "%(count)s %(name)sहरु सफलतापूर्वक परिवर्तन भयो ।" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s चयन भयो" -msgstr[1] "सबै %(total_count)s चयन भयो" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s को ० चयन गरियो" - -#, python-format -msgid "Change history: %s" -msgstr "इतिहास फेर्नुहोस : %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "ज्याङ्गो साइट प्रशासन" - -msgid "Django administration" -msgstr "ज्याङ्गो प्रशासन" - -msgid "Site administration" -msgstr "साइट प्रशासन" - -msgid "Log in" -msgstr "लगिन" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "पृष्ठ भेटिएन" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "हामी क्षमाप्रार्थी छौं, तर अनुरोध गरिएको पृष्ठ फेला पार्न सकिएन।" - -msgid "Home" -msgstr "गृह" - -msgid "Server error" -msgstr "सर्भर त्रुटि" - -msgid "Server error (500)" -msgstr "सर्भर त्रुटि (५००)" - -msgid "Server Error (500)" -msgstr "सर्भर त्रुटि (५००)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"त्यहाँ त्रुटि रहेको छ। यो ईमेल मार्फत साइट प्रशासकहरूलाई सूचित गरिएको छ र तुरुन्तै ठिक " -"गर्नुपर्नेछ। तपाईको धैर्यताको लागि धन्यबाद।" - -msgid "Run the selected action" -msgstr "छानिएको कार्य गर्नुहोस ।" - -msgid "Go" -msgstr "बढ्नुहोस" - -msgid "Click here to select the objects across all pages" -msgstr "सबै पृष्ठभरमा वस्तु छान्न यहाँ थिच्नुहोस ।" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "%(total_count)s %(module_name)s सबै छान्नुहोस " - -msgid "Clear selection" -msgstr "चुनेको कुरा हटाउनुहोस ।" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s एप्लिकेसनमा भएको मोडेलहरु" - -msgid "Add" -msgstr "थप्नुहोस " - -msgid "View" -msgstr "" - -msgid "You don’t have permission to view or edit anything." -msgstr "तपाईंसँग केहि पनि हेर्न वा सम्पादन गर्न अनुमति छैन।" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"पहिले, प्रयोगकर्ता नाम र पासवर्ड प्रविष्ट गर्नुहोस्। त्यसो भए, तपाई बढि उपयोगकर्ता " -"विकल्पहरू सम्पादन गर्न सक्षम हुनुहुनेछ।" - -msgid "Enter a username and password." -msgstr "प्रयोगकर्ता नाम र पासवर्ड राख्नुहोस।" - -msgid "Change password" -msgstr "पासवर्ड फेर्नुहोस " - -msgid "Please correct the error below." -msgstr "कृपया तल त्रुटि सुधार गर्नुहोस्।" - -msgid "Please correct the errors below." -msgstr "कृपया तलका त्रुटी सुधार्नु होस ।" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "प्रयोगकर्ता %(username)s को लागि नयाँ पासवर्ड राख्नुहोस ।" - -msgid "Welcome," -msgstr "स्वागतम्" - -msgid "View site" -msgstr "साइट हेर्नु होस ।" - -msgid "Documentation" -msgstr "विस्तृत विवरण" - -msgid "Log out" -msgstr "लग आउट" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s थप्नुहोस" - -msgid "History" -msgstr "इतिहास" - -msgid "View on site" -msgstr "साइटमा हेर्नुहोस" - -msgid "Filter" -msgstr "छान्नुहोस" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "मेट्नुहोस" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "वहु वस्तुहरु मेट्नुहोस ।" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "%(objects_name)s " - -msgid "Delete?" -msgstr "मेट्नुहुन्छ ?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s द्वारा" - -msgid "Summary" -msgstr "" - -msgid "Recent actions" -msgstr "भर्खरका कार्यहरू" - -msgid "My actions" -msgstr "मेरो कार्यहरू" - -msgid "None available" -msgstr "कुनै पनि उपलब्ध छैन ।" - -msgid "Unknown content" -msgstr "अज्ञात सामग्री" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"तपाईंको डाटाबेस स्थापनामा केहि गलत छ। निश्चित गर्नुहोस् कि उपयुक्त डाटाबेस टेबलहरू सिर्जना " -"गरिएको छ, र यो सुनिश्चित गर्नुहोस् कि उपयुक्त डाटाबेस उपयुक्त प्रयोगकर्ताद्वारा पढ्न योग्य " -"छ।" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"तपाईं यस %(username)s रूपमा प्रमाणिकरण हुनुहुन्छ, तर यस पृष्ठ पहुँच गर्न अधिकृत हुनुहुन्न। के " -"तपाइँ बिभिन्न खातामा लगईन गर्न चाहानुहुन्छ?" - -msgid "Forgotten your password or username?" -msgstr "पासवर्ड अथवा प्रयोगकर्ता नाम भुल्नुभयो ।" - -msgid "Toggle navigation" -msgstr "" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "मिति/समय" - -msgid "User" -msgstr "प्रयोगकर्ता" - -msgid "Action" -msgstr "कार्य:" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "सबै देखाउनुहोस" - -msgid "Save" -msgstr "बचत गर्नुहोस" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "खोज्नुहोस" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s नतिजा" -msgstr[1] "%(counter)s नतिजाहरु" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "जम्मा %(full_result_count)s" - -msgid "Save as new" -msgstr "नयाँ रुपमा बचत गर्नुहोस" - -msgid "Save and add another" -msgstr "बचत गरेर अर्को थप्नुहोस" - -msgid "Save and continue editing" -msgstr "बचत गरेर संशोधन जारी राख्नुहोस" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "पुन: लगिन गर्नुहोस" - -msgid "Password change" -msgstr "पासवर्ड फेरबदल" - -msgid "Your password was changed." -msgstr "तपाइको पासवर्ड फेरिएको छ ।" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "मेरो पासवर्ड फेर्नुहोस " - -msgid "Password reset" -msgstr "पासवर्डपून: राख्नुहोस । " - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "तपाइको पासवर्ड राखियो । कृपया लगिन गर्नुहोस ।" - -msgid "Password reset confirmation" -msgstr "पासवर्ड पुनर्स्थापना पुष्टि" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "ठीक तरिकाले राखिएको पुष्टि गर्न कृपया नयाँ पासवर्ड दोहोर्याएर राख्नुहोस ।" - -msgid "New password:" -msgstr "नयाँ पासवर्ड :" - -msgid "Confirm password:" -msgstr "पासवर्ड पुष्टि:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "पासवर्ड पुनर्स्थापना प्रयोग भइसकेको छ । कृपया नयाँ पासवर्ड रिसेट माग्नुहोस ।" - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -" %(site_name)s को लागि तपाइले पासवर्ड पुन: राख्न आग्रह गरेको हुनाले ई-मेल पाउनुहुदैंछ । " - -msgid "Please go to the following page and choose a new password:" -msgstr "कृपया उक्त पृष्ठमा जानुहोस र नयाँ पासवर्ड राख्नुहोस :" - -msgid "Your username, in case you’ve forgotten:" -msgstr "तपाईंको प्रयोगकर्ता नाम, यदि तपाईंले बिर्सनुभयो भने:" - -msgid "Thanks for using our site!" -msgstr "हाम्रो साइट प्रयोग गरेकोमा धन्यवाद" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s टोली" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"तपाईँको पासवर्ड बिर्सनुभयो? तल तपाईंको ईमेल ठेगाना राख्नुहोस् र हामी नयाँ सेट गर्न ईमेल " -"निर्देशनहरू दिनेछौं।" - -msgid "Email address:" -msgstr "ई-मेल ठेगाना :" - -msgid "Reset my password" -msgstr "मेरो पासवर्ड पुन: राख्नुहोस ।" - -msgid "All dates" -msgstr "सबै मिति" - -#, python-format -msgid "Select %s" -msgstr "%s छान्नुहोस" - -#, python-format -msgid "Select %s to change" -msgstr "%s परिवर्तन गर्न छान्नुहोस ।" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "मिति:" - -msgid "Time:" -msgstr "समय:" - -msgid "Lookup" -msgstr "खोज तलास" - -msgid "Currently:" -msgstr "अहिले :" - -msgid "Change:" -msgstr "फेर्नु होस :" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 8208857..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po deleted file mode 100644 index d55bd9f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,213 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Paras Nath Chaudhary , 2012 -# Sagar Chalise , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-10-07 02:46+0000\n" -"Last-Translator: Sagar Chalise \n" -"Language-Team: Nepali (http://www.transifex.com/django/django/language/ne/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ne\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "उपलब्ध %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"यो उपलब्ध %s को सुची हो। तपाईंले यी मध्य केही बक्सबाट चयन गरी बक्स बीच्को \"छान्नुहोस " -"\" तीरमा क्लिक गरी छान्नसक्नुहुन्छ । " - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr " उपलब्ध %s को सुचिबाट छान्न यो बक्समा टाइप गर्नुहोस " - -msgid "Filter" -msgstr "छान्नुहोस" - -msgid "Choose all" -msgstr "सबै छान्नुहोस " - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "एकै क्लिकमा सबै %s छान्नुहोस " - -msgid "Choose" -msgstr "छान्नुहोस " - -msgid "Remove" -msgstr "हटाउनुहोस" - -#, javascript-format -msgid "Chosen %s" -msgstr "छानिएको %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"यो छानिएका %s को सुची हो । तपाईंले यी मध्य केही बक्सबाट चयन गरी बक्स बीच्को " -"\"हटाउनुहोस\" तीरमा क्लिक गरी हटाउन सक्नुहुन्छ । " - -msgid "Remove all" -msgstr "सबै हटाउनुहोस " - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "एकै क्लिकमा सबै छानिएका %s हटाउनुहोस ।" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s को %(sel)s चयन गरियो" -msgstr[1] "%(cnt)s को %(sel)s चयन गरियो" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "तपाइको फेरबदल बचत भएको छैन । कार्य भएमा बचत नभएका फेरबदल हराउने छन् ।" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"तपाइले कार्य छाने पनि फेरबदलहरु बचत गर्नु भएको छैन । कृपया बचत गर्न हुन्छ थिच्नुहोस । कार्य " -"पुन: सञ्चालन गर्नुपर्नेछ ।" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"तपाइले कार्य छाने पनि फाँटहरुमा फेरबदलहरु गर्नु भएको छैन । बचत गर्नु भन्दा पनि अघि बढ्नुहोस " -"।" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "सूचना: तपाईँ सर्भर समय भन्दा %s घण्टा अगाडि हुनुहुन्छ ।" -msgstr[1] "सूचना: तपाईँ सर्भर समय भन्दा %s घण्टा अगाडि हुनुहुन्छ ।" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "सूचना: तपाईँ सर्भर समय भन्दा %s घण्टा पछाडि हुनुहुन्छ ।" -msgstr[1] "सूचना: तपाईँ सर्भर समय भन्दा %s घण्टा पछाडि हुनुहुन्छ ।" - -msgid "Now" -msgstr "यतिखेर" - -msgid "Choose a Time" -msgstr "समय छान्नु होस ।" - -msgid "Choose a time" -msgstr "समय चयन गर्नुहोस" - -msgid "Midnight" -msgstr "मध्यरात" - -msgid "6 a.m." -msgstr "बिहान ६ बजे" - -msgid "Noon" -msgstr "मध्यान्ह" - -msgid "6 p.m." -msgstr "बेलुकी ६ बजे" - -msgid "Cancel" -msgstr "रद्द गर्नुहोस " - -msgid "Today" -msgstr "आज" - -msgid "Choose a Date" -msgstr "मिति छान्नु होस ।" - -msgid "Yesterday" -msgstr "हिजो" - -msgid "Tomorrow" -msgstr "भोलि" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "देखाउनुहोस " - -msgid "Hide" -msgstr "लुकाउनुहोस " diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo deleted file mode 100644 index b69aebf..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.po deleted file mode 100644 index 1cbf39a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/django.po +++ /dev/null @@ -1,752 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Bas Peschier , 2013 -# Claude Paroz , 2017 -# Evelijn Saaltink , 2016 -# Harro van der Klauw , 2012 -# Ilja Maas , 2015 -# Jannis Leidel , 2011 -# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2011-2012 -# dokterbob , 2015 -# Meteor0id, 2019-2020 -# 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2014-2015 -# Tino de Bruijn , 2011 -# Tonnes , 2017,2019-2020,2022 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: Tonnes \n" -"Language-Team: Dutch (http://www.transifex.com/django/django/language/nl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: nl\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Geselecteerde %(verbose_name_plural)s verwijderen" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s met succes verwijderd." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s kan niet worden verwijderd " - -msgid "Are you sure?" -msgstr "Weet u het zeker?" - -msgid "Administration" -msgstr "Beheer" - -msgid "All" -msgstr "Alle" - -msgid "Yes" -msgstr "Ja" - -msgid "No" -msgstr "Nee" - -msgid "Unknown" -msgstr "Onbekend" - -msgid "Any date" -msgstr "Elke datum" - -msgid "Today" -msgstr "Vandaag" - -msgid "Past 7 days" -msgstr "Afgelopen zeven dagen" - -msgid "This month" -msgstr "Deze maand" - -msgid "This year" -msgstr "Dit jaar" - -msgid "No date" -msgstr "Geen datum" - -msgid "Has date" -msgstr "Heeft datum" - -msgid "Empty" -msgstr "Leeg" - -msgid "Not empty" -msgstr "Niet leeg" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Voer de correcte %(username)s en wachtwoord voor een stafaccount in. Let op " -"dat beide velden hoofdlettergevoelig zijn." - -msgid "Action:" -msgstr "Actie:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Nog een %(verbose_name)s toevoegen" - -msgid "Remove" -msgstr "Verwijderen" - -msgid "Addition" -msgstr "Toevoeging" - -msgid "Change" -msgstr "Wijzigen" - -msgid "Deletion" -msgstr "Verwijdering" - -msgid "action time" -msgstr "actietijd" - -msgid "user" -msgstr "gebruiker" - -msgid "content type" -msgstr "inhoudstype" - -msgid "object id" -msgstr "object-id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "object-repr" - -msgid "action flag" -msgstr "actievlag" - -msgid "change message" -msgstr "wijzigingsbericht" - -msgid "log entry" -msgstr "logboekvermelding" - -msgid "log entries" -msgstr "logboekvermeldingen" - -#, python-format -msgid "Added “%(object)s”." -msgstr "‘%(object)s’ toegevoegd." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "‘%(object)s’ gewijzigd - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "‘%(object)s’ verwijderd." - -msgid "LogEntry Object" -msgstr "LogEntry-object" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} ‘{object}’ toegevoegd." - -msgid "Added." -msgstr "Toegevoegd." - -msgid "and" -msgstr "en" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{fields} voor {name} ‘{object}’ gewijzigd." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} gewijzigd." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} ‘{object}’ verwijderd." - -msgid "No fields changed." -msgstr "Geen velden gewijzigd." - -msgid "None" -msgstr "Geen" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Houd ‘Control’, of ‘Command’ op een Mac, ingedrukt om meerdere items te " -"selecteren." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "De {name} ‘{obj}’ is met succes toegevoegd." - -msgid "You may edit it again below." -msgstr "U kunt deze hieronder weer bewerken." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"De {name} ‘{obj}’ is met succes toegevoegd. U kunt hieronder nog een {name} " -"toevoegen." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"De {name} ‘{obj}’ is met succes gewijzigd. U kunt deze hieronder nogmaals " -"bewerken." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"De {name} ‘{obj}’ is met succes toegevoegd. U kunt deze hieronder nogmaals " -"bewerken." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"De {name} ‘{obj}’ is met succes gewijzigd. U kunt hieronder nog een {name} " -"toevoegen." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "De {name} ‘{obj}’ is met succes gewijzigd." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Er moeten items worden geselecteerd om acties op uit te voeren. Er zijn geen " -"items gewijzigd." - -msgid "No action selected." -msgstr "Geen actie geselecteerd." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "De %(name)s ‘%(obj)s’ is met succes verwijderd." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s met ID ‘%(key)s’ bestaat niet. Misschien is deze verwijderd?" - -#, python-format -msgid "Add %s" -msgstr "%s toevoegen" - -#, python-format -msgid "Change %s" -msgstr "%s wijzigen" - -#, python-format -msgid "View %s" -msgstr "%s weergeven" - -msgid "Database error" -msgstr "Databasefout" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s is met succes gewijzigd." -msgstr[1] "%(count)s %(name)s zijn met succes gewijzigd." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s geselecteerd" -msgstr[1] "Alle %(total_count)s geselecteerd" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 van de %(cnt)s geselecteerd" - -#, python-format -msgid "Change history: %s" -msgstr "Wijzigingsgeschiedenis: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Het verwijderen van %(class_name)s %(instance)s vereist het verwijderen van " -"de volgende beschermde gerelateerde objecten: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django-websitebeheer" - -msgid "Django administration" -msgstr "Django-beheer" - -msgid "Site administration" -msgstr "Websitebeheer" - -msgid "Log in" -msgstr "Aanmelden" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s-beheer" - -msgid "Page not found" -msgstr "Pagina niet gevonden" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Het spijt ons, maar de opgevraagde pagina kon niet worden gevonden." - -msgid "Home" -msgstr "Voorpagina" - -msgid "Server error" -msgstr "Serverfout" - -msgid "Server error (500)" -msgstr "Serverfout (500)" - -msgid "Server Error (500)" -msgstr "Serverfout (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Er heeft zich een fout voorgedaan. Dit is via e-mail bij de " -"websitebeheerders gemeld en zou snel verholpen moeten zijn. Bedankt voor uw " -"geduld." - -msgid "Run the selected action" -msgstr "De geselecteerde actie uitvoeren" - -msgid "Go" -msgstr "Uitvoeren" - -msgid "Click here to select the objects across all pages" -msgstr "Klik hier om alle objecten op alle pagina's te selecteren" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Alle %(total_count)s %(module_name)s selecteren" - -msgid "Clear selection" -msgstr "Selectie wissen" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modellen in de %(name)s-toepassing" - -msgid "Add" -msgstr "Toevoegen" - -msgid "View" -msgstr "Weergeven" - -msgid "You don’t have permission to view or edit anything." -msgstr "U hebt geen rechten om iets te bekijken of te bewerken." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Vul allereerst een gebruikersnaam en wachtwoord in. Daarna kunt u meer " -"gebruikersopties bewerken." - -msgid "Enter a username and password." -msgstr "Voer een gebruikersnaam en wachtwoord in." - -msgid "Change password" -msgstr "Wachtwoord wijzigen" - -msgid "Please correct the error below." -msgstr "Corrigeer de fout hieronder." - -msgid "Please correct the errors below." -msgstr "Corrigeer de fouten hieronder." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Voer een nieuw wachtwoord in voor de gebruiker %(username)s." - -msgid "Welcome," -msgstr "Welkom," - -msgid "View site" -msgstr "Website bekijken" - -msgid "Documentation" -msgstr "Documentatie" - -msgid "Log out" -msgstr "Afmelden" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s toevoegen" - -msgid "History" -msgstr "Geschiedenis" - -msgid "View on site" -msgstr "Weergeven op website" - -msgid "Filter" -msgstr "Filter" - -msgid "Clear all filters" -msgstr "Alle filters wissen" - -msgid "Remove from sorting" -msgstr "Verwijderen uit sortering" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sorteerprioriteit: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Sortering aan/uit" - -msgid "Delete" -msgstr "Verwijderen" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Het verwijderen van %(object_name)s '%(escaped_object)s' zou ook " -"gerelateerde objecten verwijderen, maar uw account heeft geen rechten om de " -"volgende typen objecten te verwijderen:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Het verwijderen van %(object_name)s '%(escaped_object)s' vereist het " -"verwijderen van de volgende gerelateerde objecten:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Weet u zeker dat u %(object_name)s '%(escaped_object)s' wilt verwijderen? " -"Alle volgende gerelateerde objecten worden verwijderd:" - -msgid "Objects" -msgstr "Objecten" - -msgid "Yes, I’m sure" -msgstr "Ja, ik weet het zeker" - -msgid "No, take me back" -msgstr "Nee, teruggaan" - -msgid "Delete multiple objects" -msgstr "Meerdere objecten verwijderen" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Het verwijderen van de geselecteerde %(objects_name)s zou ook gerelateerde " -"objecten verwijderen, maar uw account heeft geen rechten om de volgende " -"typen objecten te verwijderen:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Het verwijderen van de geselecteerde %(objects_name)s vereist het " -"verwijderen van de volgende beschermde gerelateerde objecten:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Weet u zeker dat u de geselecteerde %(objects_name)s wilt verwijderen? Alle " -"volgende objecten en hun aanverwante items zullen worden verwijderd:" - -msgid "Delete?" -msgstr "Verwijderen?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Op %(filter_title)s " - -msgid "Summary" -msgstr "Samenvatting" - -msgid "Recent actions" -msgstr "Recente acties" - -msgid "My actions" -msgstr "Mijn acties" - -msgid "None available" -msgstr "Geen beschikbaar" - -msgid "Unknown content" -msgstr "Onbekende inhoud" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Er is iets mis met de installatie van uw database. Zorg ervoor dat de juiste " -"databasetabellen zijn aangemaakt en dat de database voor de juiste gebruiker " -"leesbaar is." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"U bent geverifieerd als %(username)s, maar niet bevoegd om deze pagina te " -"bekijken. Wilt u zich aanmelden bij een andere account?" - -msgid "Forgotten your password or username?" -msgstr "Wachtwoord of gebruikersnaam vergeten?" - -msgid "Toggle navigation" -msgstr "Navigatie aan/uit" - -msgid "Start typing to filter…" -msgstr "Begin met typen om te filteren…" - -msgid "Filter navigation items" -msgstr "Navigatie-items filteren" - -msgid "Date/time" -msgstr "Datum/tijd" - -msgid "User" -msgstr "Gebruiker" - -msgid "Action" -msgstr "Actie" - -msgid "entry" -msgstr "vermelding" - -msgid "entries" -msgstr "vermeldingen" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Dit object heeft geen wijzigingsgeschiedenis. Het is mogelijk niet via de " -"beheerwebsite toegevoegd." - -msgid "Show all" -msgstr "Alles tonen" - -msgid "Save" -msgstr "Opslaan" - -msgid "Popup closing…" -msgstr "Pop-up sluiten…" - -msgid "Search" -msgstr "Zoeken" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultaat" -msgstr[1] "%(counter)s resultaten" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s totaal" - -msgid "Save as new" -msgstr "Opslaan als nieuw item" - -msgid "Save and add another" -msgstr "Opslaan en nieuwe toevoegen" - -msgid "Save and continue editing" -msgstr "Opslaan en opnieuw bewerken" - -msgid "Save and view" -msgstr "Opslaan en weergeven" - -msgid "Close" -msgstr "Sluiten" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Geselecteerde %(model)s wijzigen" - -#, python-format -msgid "Add another %(model)s" -msgstr "Nog een %(model)s toevoegen" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Geselecteerde %(model)s verwijderen" - -#, python-format -msgid "View selected %(model)s" -msgstr "Geselecteerde %(model)s weergeven" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Bedankt voor het vandaag wat tijd besteden aan de website." - -msgid "Log in again" -msgstr "Opnieuw aanmelden" - -msgid "Password change" -msgstr "Wachtwoordwijziging" - -msgid "Your password was changed." -msgstr "Uw wachtwoord is gewijzigd." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Voer omwille van beveiliging uw oude en twee keer uw nieuwe wachtwoord in, " -"zodat we kunnen controleren of u geen typefouten hebt gemaakt." - -msgid "Change my password" -msgstr "Mijn wachtwoord wijzigen" - -msgid "Password reset" -msgstr "Wachtwoord hersteld" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Uw wachtwoord is ingesteld. U kunt nu verdergaan en zich aanmelden." - -msgid "Password reset confirmation" -msgstr "Bevestiging wachtwoord herstellen" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Voer het nieuwe wachtwoord twee keer in, zodat we kunnen controleren of er " -"geen typefouten zijn gemaakt." - -msgid "New password:" -msgstr "Nieuw wachtwoord:" - -msgid "Confirm password:" -msgstr "Bevestig wachtwoord:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"De link voor het herstellen van het wachtwoord is ongeldig, waarschijnlijk " -"omdat de link al eens is gebruikt. Vraag opnieuw een wachtwoord aan." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"We hebben u instructies gestuurd voor het instellen van uw wachtwoord, als " -"er een account bestaat met het door u ingevoerde e-mailadres. U zou deze " -"straks moeten ontvangen." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Als u geen e-mail ontvangt, controleer dan of u het e-mailadres hebt " -"ingevoerd waarmee u zich hebt geregistreerd, en controleer uw spam-map." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"U ontvangt deze e-mail, omdat u een aanvraag voor opnieuw instellen van het " -"wachtwoord voor uw account op %(site_name)s hebt gedaan." - -msgid "Please go to the following page and choose a new password:" -msgstr "Ga naar de volgende pagina en kies een nieuw wachtwoord:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Uw gebruikersnaam, mocht u deze vergeten zijn:" - -msgid "Thanks for using our site!" -msgstr "Bedankt voor het gebruik van onze website!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Het %(site_name)s-team" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Wachtwoord vergeten? Vul hieronder uw e-mailadres in, en we sturen " -"instructies voor het instellen van een nieuw wachtwoord." - -msgid "Email address:" -msgstr "E-mailadres:" - -msgid "Reset my password" -msgstr "Mijn wachtwoord opnieuw instellen" - -msgid "All dates" -msgstr "Alle datums" - -#, python-format -msgid "Select %s" -msgstr "Selecteer %s" - -#, python-format -msgid "Select %s to change" -msgstr "Selecteer %s om te wijzigen" - -#, python-format -msgid "Select %s to view" -msgstr "Selecteer %s om te bekijken" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Tijd:" - -msgid "Lookup" -msgstr "Opzoeken" - -msgid "Currently:" -msgstr "Huidig:" - -msgid "Change:" -msgstr "Wijzigen:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo deleted file mode 100644 index c32351e..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po deleted file mode 100644 index 81eabe4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,282 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Bouke Haarsma , 2013 -# Evelijn Saaltink , 2016 -# Harro van der Klauw , 2012 -# Ilja Maas , 2015 -# Jannis Leidel , 2011 -# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed , 2011-2012 -# Meteor0id, 2019-2020 -# 8de006b1b0894aab6aef71979dcd8bd6_5c6b207 , 2015 -# Tonnes , 2019-2020,2022 -# wunki , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-07-25 07:59+0000\n" -"Last-Translator: Tonnes \n" -"Language-Team: Dutch (http://www.transifex.com/django/django/language/nl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: nl\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Beschikbare %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Dit is de lijst met beschikbare %s. U kunt er een aantal kiezen door ze in " -"het vak hieronder te selecteren en daarna op de pijl 'Kiezen' tussen de twee " -"vakken te klikken." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Typ in dit vak om de lijst met beschikbare %s te filteren." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Alle kiezen" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klik om alle %s te kiezen." - -msgid "Choose" -msgstr "Kiezen" - -msgid "Remove" -msgstr "Verwijderen" - -#, javascript-format -msgid "Chosen %s" -msgstr "Gekozen %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Dit is de lijst met gekozen %s. U kunt er een aantal verwijderen door ze in " -"het vak hieronder te selecteren en daarna op de pijl 'Verwijderen' tussen de " -"twee vakken te klikken." - -msgid "Remove all" -msgstr "Alle verwijderen" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klik om alle gekozen %s tegelijk te verwijderen." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s van de %(cnt)s geselecteerd" -msgstr[1] "%(sel)s van de %(cnt)s geselecteerd" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"U hebt niet-opgeslagen wijzigingen op afzonderlijke bewerkbare velden. Als u " -"een actie uitvoert, gaan uw wijzigingen verloren." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"U hebt een actie geselecteerd, maar uw wijzigingen in afzonderlijke velden " -"nog niet opgeslagen. Klik op OK om deze op te slaan. U dient de actie " -"opnieuw uit te voeren." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"U hebt een actie geselecteerd, en geen wijzigingen in afzonderlijke velden " -"aangebracht. Waarschijnlijk zoekt u de knop Gaan in plaats van de knop " -"Opslaan." - -msgid "Now" -msgstr "Nu" - -msgid "Midnight" -msgstr "Middernacht" - -msgid "6 a.m." -msgstr "6 uur 's ochtends" - -msgid "Noon" -msgstr "12 uur 's middags" - -msgid "6 p.m." -msgstr "6 uur 's avonds" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Let op: u ligt %s uur voor ten opzichte van de servertijd." -msgstr[1] "Let op: u ligt %s uur voor ten opzichte van de servertijd." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Let op: u ligt %s uur achter ten opzichte van de servertijd." -msgstr[1] "Let op: u ligt %s uur achter ten opzichte van de servertijd." - -msgid "Choose a Time" -msgstr "Kies een tijdstip" - -msgid "Choose a time" -msgstr "Kies een tijd" - -msgid "Cancel" -msgstr "Annuleren" - -msgid "Today" -msgstr "Vandaag" - -msgid "Choose a Date" -msgstr "Kies een datum" - -msgid "Yesterday" -msgstr "Gisteren" - -msgid "Tomorrow" -msgstr "Morgen" - -msgid "January" -msgstr "januari" - -msgid "February" -msgstr "februari" - -msgid "March" -msgstr "maart" - -msgid "April" -msgstr "april" - -msgid "May" -msgstr "mei" - -msgid "June" -msgstr "juni" - -msgid "July" -msgstr "juli" - -msgid "August" -msgstr "augustus" - -msgid "September" -msgstr "september" - -msgid "October" -msgstr "oktober" - -msgid "November" -msgstr "november" - -msgid "December" -msgstr "december" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "mrt" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "mei" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Z" - -msgctxt "one letter Monday" -msgid "M" -msgstr "M" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "D" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "W" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "D" - -msgctxt "one letter Friday" -msgid "F" -msgstr "V" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Z" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "" -"U hebt dit formulier al verstuurd. Weet u zeker dat u het nogmaals wilt " -"versturen?" - -msgid "Show" -msgstr "Tonen" - -msgid "Hide" -msgstr "Verbergen" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo deleted file mode 100644 index 779cf09..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.po deleted file mode 100644 index 4a7c846..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/django.po +++ /dev/null @@ -1,736 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# hgrimelid , 2011-2012 -# Jannis Leidel , 2011 -# jensadne , 2013 -# Sigurd Gartmann , 2012 -# Sivert Olstad, 2021-2022 -# velmont , 2012 -# Vibeke Uthaug, 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-07-25 07:05+0000\n" -"Last-Translator: Sivert Olstad\n" -"Language-Team: Norwegian Nynorsk (http://www.transifex.com/django/django/" -"language/nn/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: nn\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Slett valgte %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Sletta %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Kan ikkje slette %(name)s" - -msgid "Are you sure?" -msgstr "Er du sikker?" - -msgid "Administration" -msgstr "Administrasjon" - -msgid "All" -msgstr "Alle" - -msgid "Yes" -msgstr "Ja" - -msgid "No" -msgstr "Nei" - -msgid "Unknown" -msgstr "Ukjend" - -msgid "Any date" -msgstr "Når som helst" - -msgid "Today" -msgstr "I dag" - -msgid "Past 7 days" -msgstr "Siste sju dagar" - -msgid "This month" -msgstr "Denne månaden" - -msgid "This year" -msgstr "I år" - -msgid "No date" -msgstr "Ingen dato" - -msgid "Has date" -msgstr "Har dato" - -msgid "Empty" -msgstr "Tom" - -msgid "Not empty" -msgstr "Ikkje tom" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Oppgje korrekt %(username)s og passord for ein administrasjonsbrukarkonto. " -"Merk at det er skilnad på små og store bokstavar." - -msgid "Action:" -msgstr "Handling:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Opprett ny %(verbose_name)s." - -msgid "Remove" -msgstr "Fjern" - -msgid "Addition" -msgstr "Tillegg" - -msgid "Change" -msgstr "Endre" - -msgid "Deletion" -msgstr "Sletting" - -msgid "action time" -msgstr "tid for handling" - -msgid "user" -msgstr "brukar" - -msgid "content type" -msgstr "innhaldstype" - -msgid "object id" -msgstr "objekt-ID" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objekt repr" - -msgid "action flag" -msgstr "handlingsflagg" - -msgid "change message" -msgstr "endre melding" - -msgid "log entry" -msgstr "logginnlegg" - -msgid "log entries" -msgstr "logginnlegg" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Oppretta “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Endra “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Sletta “%(object)s”." - -msgid "LogEntry Object" -msgstr "LogEntry-objekt" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Oppretta {name} “{object}”." - -msgid "Added." -msgstr "Oppretta." - -msgid "and" -msgstr "og" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Endra {fields} for {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Endra {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Sletta {name} “{object}”." - -msgid "No fields changed." -msgstr "Ingen felt endra." - -msgid "None" -msgstr "Ingen" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Hald nede “Control”, eller “Command” på ein Mac, for å velge meir enn éin." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” vart oppretta." - -msgid "You may edit it again below." -msgstr "Du kan endre det att nedanfor." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}” vart oppretta. Du kan opprette enda ein {name} nedanfor." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "{name} “{obj}” vart endra. Du kan redigere vidare nedanfor." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} “{obj}” vart oppretta. Du kan redigere vidare nedanfor." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} “{obj}” vart endra. Du kan opprette enda ein {name} nedanfor." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” vart endra." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Objekt må vere valde for at dei skal kunne utførast handlingar på. Ingen " -"object er endra." - -msgid "No action selected." -msgstr "Inga valt handling." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” vart sletta." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"%(name)s med ID “%(key)s” eksisterer ikkje. Kanskje den har vorte sletta?" - -#, python-format -msgid "Add %s" -msgstr "Opprett %s" - -#, python-format -msgid "Change %s" -msgstr "Rediger %s" - -#, python-format -msgid "View %s" -msgstr "Sjå %s" - -msgid "Database error" -msgstr "Databasefeil" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s vart endra." -msgstr[1] "%(count)s %(name)s vart endra." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s valde" -msgstr[1] "Alle %(total_count)s valde" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Ingen av %(cnt)s valde" - -#, python-format -msgid "Change history: %s" -msgstr "Endringshistorikk: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Sletting av %(class_name)s «%(instance)s» krev sletting av følgande beskytta " -"relaterte objekt: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django administrasjonsside" - -msgid "Django administration" -msgstr "Django-administrasjon" - -msgid "Site administration" -msgstr "Nettstadsadministrasjon" - -msgid "Log in" -msgstr "Logg inn" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s-administrasjon" - -msgid "Page not found" -msgstr "Fann ikkje sida" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Sida du spør etter finst ikkje." - -msgid "Home" -msgstr "Heim" - -msgid "Server error" -msgstr "Tenarfeil" - -msgid "Server error (500)" -msgstr "Tenarfeil (500)" - -msgid "Server Error (500)" -msgstr "Tenarfeil (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Det har oppstått ein feil. Det er rapportert til dei som administrerer " -"nettsida med e-mail og burde bli fiksa snarast. Takk for tolmodigheita." - -msgid "Run the selected action" -msgstr "Utfør den valde handlinga" - -msgid "Go" -msgstr "Gå" - -msgid "Click here to select the objects across all pages" -msgstr "Klikk her for å velje objekt på tvers av alle sider" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Velg alle %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Nullstill utval" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modellar i %(name)s-applikasjonen" - -msgid "Add" -msgstr "Opprett" - -msgid "View" -msgstr "Sjå" - -msgid "You don’t have permission to view or edit anything." -msgstr "Du har ikkje løyve til å sjå eller redigere noko." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Skriv først inn brukernamn og passord. Deretter vil du få høve til å endre " -"fleire brukarinnstillingar." - -msgid "Enter a username and password." -msgstr "Skriv inn nytt brukarnamn og passord." - -msgid "Change password" -msgstr "Endre passord" - -msgid "Please correct the error below." -msgstr "Korriger feilen under." - -msgid "Please correct the errors below." -msgstr "Korriger feila under." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Skriv inn eit nytt passord for brukaren %(username)s." - -msgid "Welcome," -msgstr "Velkommen," - -msgid "View site" -msgstr "Vis nettstad" - -msgid "Documentation" -msgstr "Dokumentasjon" - -msgid "Log out" -msgstr "Logg ut" - -#, python-format -msgid "Add %(name)s" -msgstr "Opprett %(name)s" - -msgid "History" -msgstr "Historikk" - -msgid "View on site" -msgstr "Vis på nettstad" - -msgid "Filter" -msgstr "Filtrering" - -msgid "Clear all filters" -msgstr "Fjern alle filter" - -msgid "Remove from sorting" -msgstr "Fjern frå sortering" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sorteringspriorite: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Slår av eller på sortering" - -msgid "Delete" -msgstr "Slett" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Dersom du slettar %(object_name)s '%(escaped_object)s', vil også slette " -"relaterte objekt, men du har ikkje løyve til å slette følgande objekttypar:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Sletting av %(object_name)s '%(escaped_object)s' krevar sletting av " -"følgjande beskytta relaterte objekt:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Er du sikker på at du vil slette %(object_name)s \"%(escaped_object)s\"? " -"Alle dei følgjande relaterte objekta vil bli sletta:" - -msgid "Objects" -msgstr "Objekt" - -msgid "Yes, I’m sure" -msgstr "Ja, eg er sikker" - -msgid "No, take me back" -msgstr "Nei, ta meg attende" - -msgid "Delete multiple objects" -msgstr "Slett fleire objekt" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Sletting av %(objects_name)s vil føre til at relaterte objekt blir sletta, " -"men kontoen din manglar løyve til å slette følgjande objekttypar:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Sletting av %(objects_name)s krevar sletting av følgjande beskytta relaterte " -"objekt:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Er du sikker på at du vil slette dei valgte objekta %(objects_name)s? " -"Følgjande objekt og deira relaterte objekt vil bli sletta:" - -msgid "Delete?" -msgstr "Slette?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Etter %(filter_title)s " - -msgid "Summary" -msgstr "Oppsummering" - -msgid "Recent actions" -msgstr "Siste handlingar" - -msgid "My actions" -msgstr "Mine handlingar" - -msgid "None available" -msgstr "Ingen tilgjengelege" - -msgid "Unknown content" -msgstr "Ukjent innhald" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Noko er gale med databaseinstallasjonen din. Syt for at databasetabellane er " -"oppretta og at brukaren har dei naudsynte løyve." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Du er stadfesta som %(username)s, men er ikkje autentisert til å få tilgang " -"til denne sida. Ynskjer du å logge inn med ein annan konto?" - -msgid "Forgotten your password or username?" -msgstr "Gløymd brukarnamn eller passord?" - -msgid "Toggle navigation" -msgstr "Veksl navigasjon" - -msgid "Start typing to filter…" -msgstr "Begynn å skrive for å filtrere..." - -msgid "Filter navigation items" -msgstr "Filtrer navigasjonselement" - -msgid "Date/time" -msgstr "Dato/tid" - -msgid "User" -msgstr "Brukar" - -msgid "Action" -msgstr "Handling" - -msgid "entry" -msgstr "" - -msgid "entries" -msgstr "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Dette objektet har ingen endringshistorikk. Det blei sannsynlegvis ikkje " -"oppretta av denne administratoren. " - -msgid "Show all" -msgstr "Vis alle" - -msgid "Save" -msgstr "Lagre" - -msgid "Popup closing…" -msgstr "Lukkar popup…" - -msgid "Search" -msgstr "Søk" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultat" -msgstr[1] "%(counter)s resultat" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s totalt" - -msgid "Save as new" -msgstr "Lagre som ny" - -msgid "Save and add another" -msgstr "Lagre og opprett ny" - -msgid "Save and continue editing" -msgstr "Lagre og hald fram å redigere" - -msgid "Save and view" -msgstr "Lagre og sjå" - -msgid "Close" -msgstr "Lukk" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Endre valt %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Opprett ny %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Slett valde %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Takk for at du brukte litt kvalitetstid på nettsida i dag. " - -msgid "Log in again" -msgstr "Logg inn att" - -msgid "Password change" -msgstr "Endre passord" - -msgid "Your password was changed." -msgstr "Passordet ditt vart endret." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Av sikkerheitsgrunnar må du oppgje det gamle passordet ditt. Oppgje så det " -"nye passordet ditt to gongar, sånn at vi kan kontrollere at det er korrekt." - -msgid "Change my password" -msgstr "Endre passord" - -msgid "Password reset" -msgstr "Nullstill passord" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Passordet ditt er sett. Du kan logge inn." - -msgid "Password reset confirmation" -msgstr "Stadfesting på nullstilt passord" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Oppgje det nye passordet ditt to gonger, for å sikre at du oppgjev det " -"korrekt." - -msgid "New password:" -msgstr "Nytt passord:" - -msgid "Confirm password:" -msgstr "Gjenta nytt passord:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Nullstillingslinken er ugyldig, kanskje fordi den allereie har vore brukt. " -"Nullstill passordet ditt på nytt." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Dersom det eksisterer ein brukarkonto med e-postadressa du skreiv inn vil " -"det bli sendt ein e-post med instruksjonar for å nullstille passordet til " -"den e-postadressa. Du burde motta den snart. " - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Om du ikkje mottar ein e-post, ver vennleg og sørg for at du skreiv inn e-" -"postadressa du er registrert med og sjekk spam-filteret. " - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Du får denne e-posten fordi du har bedt om å nullstille passordet for " -"brukarkontoen din på %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Gå til følgjande side og velg eit nytt passord:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Brukarnamnet ditt, i tilfelle du har gløymt det:" - -msgid "Thanks for using our site!" -msgstr "Takk for at du brukar sida vår!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Helsing %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Gløymt passordet ditt? Oppgje e-postadressa di under, så sender me deg ein e-" -"post med instruksjonar for nullstilling av passord." - -msgid "Email address:" -msgstr "E-postadresse:" - -msgid "Reset my password" -msgstr "Nullstill passordet" - -msgid "All dates" -msgstr "Alle datoar" - -#, python-format -msgid "Select %s" -msgstr "Velg %s" - -#, python-format -msgid "Select %s to change" -msgstr "Velg %s du ønskar å redigere" - -#, python-format -msgid "Select %s to view" -msgstr "Velg %s du ønskar å sjå" - -msgid "Date:" -msgstr "Dato:" - -msgid "Time:" -msgstr "Tid:" - -msgid "Lookup" -msgstr "Oppslag" - -msgid "Currently:" -msgstr "Noverande:" - -msgid "Change:" -msgstr "Endre:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo deleted file mode 100644 index d94421c..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.po deleted file mode 100644 index 8d4f648..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,266 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# hgrimelid , 2011 -# Jannis Leidel , 2011 -# Sivert Olstad, 2021 -# velmont , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-11-10 23:27+0000\n" -"Last-Translator: Sivert Olstad\n" -"Language-Team: Norwegian Nynorsk (http://www.transifex.com/django/django/" -"language/nn/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: nn\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Tilgjengelege %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Dette er lista over tilgjengelege %s. Du kan velja nokon ved å markera dei i " -"boksen under og so klikka på «Velg»-pila mellom dei to boksane." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Skriv i dette feltet for å filtrera ned lista av tilgjengelege %s." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Velg alle" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klikk for å velja alle %s samtidig." - -msgid "Choose" -msgstr "Vel" - -msgid "Remove" -msgstr "Slett" - -#, javascript-format -msgid "Chosen %s" -msgstr "Valde %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Dette er lista over valte %s. Du kan fjerna nokon ved å markera dei i boksen " -"under og so klikka på «Fjern»-pila mellom dei to boksane." - -msgid "Remove all" -msgstr "Fjern alle" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klikk for å fjerna alle valte %s samtidig." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s av %(cnt)s vald" -msgstr[1] "%(sel)s av %(cnt)s valde" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Det er endringar som ikkje er lagra i individuelt redigerbare felt. " -"Endringar som ikkje er lagra vil gå tapt." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Du har vald ei handling, men du har framleis ikkje lagra endringar for " -"individuelle felt. Klikk OK for å lagre. Du må gjere handlinga på nytt." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Du har vald ei handling og du har ikkje gjort endringar i individuelle felt. " -"Du ser sannsynlegvis etter Gå vidare-knappen - ikkje Lagre-knappen." - -msgid "Now" -msgstr "No" - -msgid "Midnight" -msgstr "Midnatt" - -msgid "6 a.m." -msgstr "06:00" - -msgid "Noon" -msgstr "12:00" - -msgid "6 p.m." -msgstr "18:00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Merk: Du er %s time framanfor tjenar-tid." -msgstr[1] "Merk: Du er %s timar framanfor tjenar-tid." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Merk: Du er %s time bak tjenar-tid." -msgstr[1] "Merk: Du er %s timar bak tjenar-tid." - -msgid "Choose a Time" -msgstr "Velg eit klokkeslett" - -msgid "Choose a time" -msgstr "Velg eit klokkeslett" - -msgid "Cancel" -msgstr "Avbryt" - -msgid "Today" -msgstr "I dag" - -msgid "Choose a Date" -msgstr "Velg ein dato" - -msgid "Yesterday" -msgstr "I går" - -msgid "Tomorrow" -msgstr "I morgon" - -msgid "January" -msgstr "Januar" - -msgid "February" -msgstr "Februar" - -msgid "March" -msgstr "Mars" - -msgid "April" -msgstr "April" - -msgid "May" -msgstr "Mai" - -msgid "June" -msgstr "Juni" - -msgid "July" -msgstr "Juli" - -msgid "August" -msgstr "August" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "November" - -msgid "December" -msgstr "Desember" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Mai" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Des" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "S" - -msgctxt "one letter Monday" -msgid "M" -msgstr "M" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "O" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "T" - -msgctxt "one letter Friday" -msgid "F" -msgstr "F" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "L" - -msgid "Show" -msgstr "Vis" - -msgid "Hide" -msgstr "Skjul" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.mo deleted file mode 100644 index dbf509f..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.po deleted file mode 100644 index aae9d9c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/django.po +++ /dev/null @@ -1,665 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Soslan Khubulov , 2013 -# Soslan Khubulov , 2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Ossetic (http://www.transifex.com/django/django/language/" -"os/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: os\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s хафт ӕрцыдысты." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Нӕ уайы схафын %(name)s" - -msgid "Are you sure?" -msgstr "Ӕцӕг дӕ фӕнды?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Схафын ӕвзӕрст %(verbose_name_plural)s" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "Иууылдӕр" - -msgid "Yes" -msgstr "О" - -msgid "No" -msgstr "Нӕ" - -msgid "Unknown" -msgstr "Ӕнӕбӕрӕг" - -msgid "Any date" -msgstr "Цыфӕнды бон" - -msgid "Today" -msgstr "Абон" - -msgid "Past 7 days" -msgstr "Фӕстаг 7 бон" - -msgid "This month" -msgstr "Ацы мӕй" - -msgid "This year" -msgstr "Ацы аз" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Дӕ хорзӕхӕй, раст кусӕджы аккаунты %(username)s ӕмӕ пароль бафысс. Дӕ сӕры " -"дар уый, ӕмӕ дыууӕ дӕр гӕнӕн ис стыр ӕмӕ гыццыл дамгъӕ ӕвзарой." - -msgid "Action:" -msgstr "Ми:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Бафтауын ӕндӕр %(verbose_name)s" - -msgid "Remove" -msgstr "Схафын" - -msgid "action time" -msgstr "мийы рӕстӕг" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "объекты бӕрӕггӕнӕн" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "объекты хуыз" - -msgid "action flag" -msgstr "мийы флаг" - -msgid "change message" -msgstr "фыстӕг фӕивын" - -msgid "log entry" -msgstr "логы иуӕг" - -msgid "log entries" -msgstr "логы иуӕгтӕ" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Ӕфтыд ӕрцыд \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Ивд ӕрцыд \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Хафт ӕрцыд \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "ЛогыИуӕг Объект" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "ӕмӕ" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "Ивд бынат нӕй." - -msgid "None" -msgstr "Никӕцы" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Иуӕгтӕ хъуамӕ ӕвзӕрст уой, цӕмӕй цын исты ми бакӕнай. Ницы иуӕг ӕрцыд ивд." - -msgid "No action selected." -msgstr "Ницы ми у ӕвзӕрст." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" хафт ӕрцыд." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Бафтауын %s" - -#, python-format -msgid "Change %s" -msgstr "Фӕивын %s" - -msgid "Database error" -msgstr "Бӕрӕгдоны рӕдыд" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s ивд ӕрцыд." -msgstr[1] "%(count)s %(name)s ивд ӕрцыдысты." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s у ӕвзӕрст" -msgstr[1] "%(total_count)s дӕр иууылдӕр сты ӕвзӕрст" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s-ӕй 0 у ӕвзӕрст" - -#, python-format -msgid "Change history: %s" -msgstr "Ивынты истори: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "Django сайты админ" - -msgid "Django administration" -msgstr "Django администраци" - -msgid "Site administration" -msgstr "Сайты администраци" - -msgid "Log in" -msgstr "Бахизын" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "Фарс нӕ зыны" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Хатыр, фӕлӕ домд фарс нӕ зыны." - -msgid "Home" -msgstr "Хӕдзар" - -msgid "Server error" -msgstr "Серверы рӕдыд" - -msgid "Server error (500)" -msgstr "Серверы рӕдыд (500)" - -msgid "Server Error (500)" -msgstr "Серверы Рӕдыд (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Рӕдыд разынд. Уый тыххӕй сайты администратормӕ электрон фыстӕг ӕрвыст ӕрцыд " -"ӕмӕ йӕ тагъд сраст кӕндзысты. Бузныг кӕй лӕууыс." - -msgid "Run the selected action" -msgstr "Бакӕнын ӕвзӕрст ми" - -msgid "Go" -msgstr "Бацӕуын" - -msgid "Click here to select the objects across all pages" -msgstr "Ам ныххӕц цӕмӕй алы фарсы объекттӕ равзарын" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Равзарын %(total_count)s %(module_name)s иууылдӕр" - -msgid "Clear selection" -msgstr "Ӕвзӕрст асыгъдӕг кӕнын" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Фыццаг бафысс фӕсномыг ӕмӕ пароль. Стӕй дӕ бон уыдзӕн фылдӕр архайӕджы " -"фадӕттӕ ивын." - -msgid "Enter a username and password." -msgstr "Бафысс фӕсномыг ӕмӕ пароль." - -msgid "Change password" -msgstr "Пароль фӕивын" - -msgid "Please correct the error below." -msgstr "Дӕ хорзӕхӕй, бындӕр цы рӕдыдтытӕ ис, уыдон сраст кӕн." - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Бафысс ног пароль архайӕг %(username)s-ӕн." - -msgid "Welcome," -msgstr "Ӕгас цу," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "Документаци" - -msgid "Log out" -msgstr "Рахизын" - -#, python-format -msgid "Add %(name)s" -msgstr "Бафтауын %(name)s" - -msgid "History" -msgstr "Истори" - -msgid "View on site" -msgstr "Сайты фенын" - -msgid "Filter" -msgstr "Фӕрсудзӕн" - -msgid "Remove from sorting" -msgstr "Радӕй айсын" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Рады приоритет: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Рад аивын" - -msgid "Delete" -msgstr "Схафын" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' хафыны тыххӕй баст объекттӕ дӕр хафт " -"ӕрцӕудзысты, фӕлӕ дӕ аккаунтӕн нӕй бар ацы объекты хуызтӕ хафын:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' хафын домы ацы хъахъхъӕд баст объекттӕ " -"хафын дӕр:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ӕцӕг дӕ фӕнды %(object_name)s \"%(escaped_object)s\" схафын? Ацы баст иуӕгтӕ " -"иууылдӕр хафт ӕрцӕудзысты:" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "О, ӕцӕг мӕ фӕнды" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "Цалдӕр объекты схафын" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Ӕвзӕрст %(objects_name)s хафыны тыххӕй йемӕ баст объекттӕ дӕр схафт " -"уыдзысты, фӕлӕ дӕ аккаунтӕн нӕй бар ацы объекты хуызтӕ хафын:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Ӕвзӕрст %(objects_name)s хафын домы ацы хъахъхъӕд баст объекттӕ хафын дӕр:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ӕцӕг дӕ фӕнды ӕвзӕрст %(objects_name)s схафын? ацы объекттӕ иууылдӕр, ӕмӕ " -"семӕ баст иуӕгтӕ хафт ӕрцӕудзысты:" - -msgid "Change" -msgstr "Фӕивын" - -msgid "Delete?" -msgstr "Хъӕуы схафын?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s-мӕ гӕсгӕ" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Моделтӕ %(name)s ӕфтуаны" - -msgid "Add" -msgstr "Бафтауын" - -msgid "You don't have permission to edit anything." -msgstr "Нӕй дын бар исты ивын." - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Ницы ис" - -msgid "Unknown content" -msgstr "Ӕнӕбӕрӕг мидис" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Дӕ бӕрӕгдоны цыдӕр раст ӕвӕрд нӕу. Сбӕрӕг кӕн, хъӕугӕ бӕрӕгдоны таблицӕтӕ " -"конд кӕй сты ӕмӕ амынд архайӕгӕн бӕрӕгдон фӕрсыны бар кӕй ис, уый." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "Дӕ пароль кӕнӕ дӕ фӕсномыг ферох кодтай?" - -msgid "Date/time" -msgstr "Бон/рӕстӕг" - -msgid "User" -msgstr "Архайӕг" - -msgid "Action" -msgstr "Ми" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "Ацы объектӕн ивдтыты истори нӕй. Уӕццӕгӕн ацы админӕй ӕфтыд нӕ уыд." - -msgid "Show all" -msgstr "Иууылдӕр равдисын" - -msgid "Save" -msgstr "Нывӕрын" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "Агурын" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s фӕстиуӕг" -msgstr[1] "%(counter)s фӕстиуӕджы" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s иумӕ" - -msgid "Save as new" -msgstr "Нывӕрын куыд ног" - -msgid "Save and add another" -msgstr "Нывӕрын ӕмӕ ног бафтауын" - -msgid "Save and continue editing" -msgstr "Нывӕрын ӕмӕ дарддӕр ивын" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Бузныг дӕ рӕстӕг абон ацы веб сайтимӕ кӕй арвыстай." - -msgid "Log in again" -msgstr "Ногӕй бахизын" - -msgid "Password change" -msgstr "Пароль ивын" - -msgid "Your password was changed." -msgstr "Дӕ пароль ивд ӕрцыд." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Дӕ хорзӕхӕй, ӕдасдзинады тыххӕй, бафысс дӕ зӕронд пароль ӕмӕ стӕй та дыууӕ " -"хатт дӕ нӕуӕг пароль, цӕмӕй мах сбӕлвырд кӕнӕм раст ӕй кӕй ныффыстай, уый." - -msgid "Change my password" -msgstr "Мӕ пароль фӕивын" - -msgid "Password reset" -msgstr "Пароль рацаразын" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Дӕ пароль ӕвӕрд ӕрцыд. Дӕ бон у дарддӕр ацӕуын ӕмӕ бахизын." - -msgid "Password reset confirmation" -msgstr "Пароль ӕвӕрыны бӕлвырдгӕнӕн" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Дӕ хорзӕхӕй, дӕ ног пароль дыууӕ хатт бафысс, цӕмӕй мах сбӕрӕг кӕнӕм раст ӕй " -"кӕй ныффыстай, уый." - -msgid "New password:" -msgstr "Ног пароль:" - -msgid "Confirm password:" -msgstr "Бӕлвырд пароль:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Парол ӕвӕрыны ӕрвитӕн раст нӕ уыд. Уӕццӕгӕн уый тыххӕй, ӕмӕ нырид пайдагонд " -"ӕрцыд. Дӕ хорзӕхӕй, ӕрдом ног пароль ӕвӕрын." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Кӕд ницы фыстӕг райстай, уӕд, дӕ хорзӕхӕй, сбӕрӕг кӕн цы электрон постимӕ " -"срегистраци кодтай, уый бацамыдтай, ӕви нӕ, ӕмӕ абӕрӕг кӕн дӕ спамтӕ." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Ды райстай ацы фыстӕг, уымӕн ӕмӕ %(site_name)s-ы дӕ архайӕджы аккаунтӕн " -"пароль сӕвӕрын ӕрдомдтай." - -msgid "Please go to the following page and choose a new password:" -msgstr "Дӕ хорзӕхӕй, ацу ацы фарсмӕ ӕмӕ равзар дӕ ног пароль:" - -msgid "Your username, in case you've forgotten:" -msgstr "Дӕ фӕсномыг, кӕд дӕ ферох ис:" - -msgid "Thanks for using our site!" -msgstr "Бузныг нӕ сайтӕй нын кӕй пайда кӕныс!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s-ы бал" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Ферох дӕ ис дӕ пароль? Дӕ пароль бындӕр бафысс, ӕмӕ дӕм мах email-ӕй ног " -"пароль сывӕрыны амынд арвитдзыстӕм." - -msgid "Email address:" -msgstr "Email адрис:" - -msgid "Reset my password" -msgstr "Мӕ пароль ногӕй сӕвӕрын" - -msgid "All dates" -msgstr "Бонтӕ иууылдӕр" - -#, python-format -msgid "Select %s" -msgstr "Равзарын %s" - -#, python-format -msgid "Select %s to change" -msgstr "Равзарын %s ивынӕн" - -msgid "Date:" -msgstr "Бон:" - -msgid "Time:" -msgstr "Рӕстӕг:" - -msgid "Lookup" -msgstr "Акӕсын" - -msgid "Currently:" -msgstr "Нырыккон:" - -msgid "Change:" -msgstr "Ивд:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 7af0f79..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po deleted file mode 100644 index ec6c9c4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,217 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Soslan Khubulov , 2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Ossetic (http://www.transifex.com/django/django/language/" -"os/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: os\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Уӕвӕг %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Уӕвӕг %s-ты номхыгъд. Дӕ бон у искӕцытӕ дзы рауӕлдай кӕнай, куы сӕ равзарай " -"бындӕр къӕртты ӕмӕ дыууӕ къӕртты ӕхсӕн \"Равзарын\"-ы ӕгънӕгыл куы ныххӕцай, " -"уӕд." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Бафысс ацы къӕртты, уӕвӕг %s-ты номхыгъд фӕрсудзынӕн." - -msgid "Filter" -msgstr "Фӕрсудзӕн" - -msgid "Choose all" -msgstr "Равзарын алкӕцыдӕр" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Ныххӕц, алы %s равзарынӕн." - -msgid "Choose" -msgstr "Равзарын" - -msgid "Remove" -msgstr "Схафын" - -#, javascript-format -msgid "Chosen %s" -msgstr "Ӕвзӕрст %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ай у ӕвзӕрст %s-ты номхыгъд. Сӕ хафынӕн сӕ дӕ бон у бындӕр къӕртты равзарын " -"ӕмӕ дыууӕ ӕгънӕджы ӕхсӕн \"Схфын\"-ыл ныххӕцын." - -msgid "Remove all" -msgstr "Схафын алкӕцыдӕр" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Ныххӕц, алы ӕвзӕрст %s схафынӕн." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s-ӕй %(sel)s ӕвзӕрст" -msgstr[1] "%(cnt)s-ӕй %(sel)s ӕвзӕрст" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Ӕнӕвӕрд ивдтытӕ баззадысты ивыны бынӕтты. Кӕд исты ми саразай, уӕд дӕ " -"ӕнӕвӕрд ивдтытӕ фесӕфдзысты." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Ды равзӕрстай цыдӕр ми, фӕлӕ ивӕн бынӕтты цы фӕивтай, уыдон нӕ бавӕрдтай. Дӕ " -"хорзӕхӕй, ныххӕц Хорзыл цӕмӕй бавӕрд уой. Стӕй дын хъӕудзӕн ацы ми ногӕй " -"бакӕнын." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Ды равзӕртай цыдӕр ми, фӕлӕ ивӕн бынӕтты ницы баивтай. Уӕццӕгӕн дӕ Ацӕуыны " -"ӕгънӕг хъӕуы, Бавӕрыны нӕ фӕлӕ." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "Ныр" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "Рӕстӕг равзарын" - -msgid "Midnight" -msgstr "Ӕмбисӕхсӕв" - -msgid "6 a.m." -msgstr "6 ӕ.р." - -msgid "Noon" -msgstr "Ӕмбисбон" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "Раздӕхын" - -msgid "Today" -msgstr "Абон" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "Знон" - -msgid "Tomorrow" -msgstr "Сом" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Равдисын" - -msgid "Hide" -msgstr "Айсын" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.mo deleted file mode 100644 index e25e29a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.po deleted file mode 100644 index 0041893..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/django.po +++ /dev/null @@ -1,706 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# A S Alam, 2018 -# A S Alam, 2022 -# Jannis Leidel , 2011 -# Satnam S Virdi , 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: A S Alam, 2022\n" -"Language-Team: Panjabi (Punjabi) (http://www.transifex.com/django/django/" -"language/pa/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pa\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "ਚੁਣੇ %(verbose_name_plural)s ਹਟਾਓ" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s ਠੀਕ ਤਰ੍ਹਾਂ ਹਟਾਈਆਂ ਗਈਆਂ।" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s ਨੂੰ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ" - -msgid "Are you sure?" -msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਚਾਹੁੰਦੇ ਹੋ?" - -msgid "Administration" -msgstr "ਪ੍ਰਸ਼ਾਸਨ" - -msgid "All" -msgstr "ਸਭ" - -msgid "Yes" -msgstr "ਹਾਂ" - -msgid "No" -msgstr "ਨਹੀਂ" - -msgid "Unknown" -msgstr "ਅਣਜਾਣ" - -msgid "Any date" -msgstr "ਕੋਈ ਵੀ ਮਿਤੀ" - -msgid "Today" -msgstr "ਅੱਜ" - -msgid "Past 7 days" -msgstr "ਪਿਛਲੇ ੭ ਦਿਨ" - -msgid "This month" -msgstr "ਇਹ ਮਹੀਨੇ" - -msgid "This year" -msgstr "ਇਹ ਸਾਲ" - -msgid "No date" -msgstr "ਕੋਈ ਮਿਤੀ ਨਹੀਂ" - -msgid "Has date" -msgstr "ਮਿਤੀ ਹੈ" - -msgid "Empty" -msgstr "ਖਾਲੀ" - -msgid "Not empty" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "ਕਾਰਵਾਈ:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "%(verbose_name)s ਹੋਰ ਸ਼ਾਮਲ" - -msgid "Remove" -msgstr "ਹਟਾਓ" - -msgid "Addition" -msgstr "" - -msgid "Change" -msgstr "ਬਦਲੋ" - -msgid "Deletion" -msgstr "" - -msgid "action time" -msgstr "ਕਾਰਵਾਈ ਸਮਾਂ" - -msgid "user" -msgstr "ਵਰਤੋਂਕਾਰ" - -msgid "content type" -msgstr "ਸਮੱਗਰੀ ਕਿਸਮ" - -msgid "object id" -msgstr "ਆਬਜੈਕਟ id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "ਆਬਜੈਕਟ repr" - -msgid "action flag" -msgstr "ਕਾਰਵਾਈ ਫਲੈਗ" - -msgid "change message" -msgstr "ਸੁਨੇਹਾ ਬਦਲੋ" - -msgid "log entry" -msgstr "ਲਾਗ ਐਂਟਰੀ" - -msgid "log entries" -msgstr "ਲਾਗ ਐਂਟਰੀਆਂ" - -#, python-format -msgid "Added “%(object)s”." -msgstr "" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "ਅਤੇ" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "ਕੋਈ ਖੇਤਰ ਨਹੀਂ ਬਦਲਿਆ।" - -msgid "None" -msgstr "ਕੋਈ ਨਹੀਂ" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "ਕੋਈ ਕਾਰਵਾਈ ਨਹੀਂ ਚੁਣੀ ਗਈ।" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s ਸ਼ਾਮਲ" - -#, python-format -msgid "Change %s" -msgstr "%s ਬਦਲੋ" - -#, python-format -msgid "View %s" -msgstr "%s ਵੇਖੋ" - -msgid "Database error" -msgstr "ਡਾਟਾਬੇਸ ਗਲਤੀ" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s ਠੀਕ ਤਰ੍ਹਾਂ ਬਦਲਿਆ ਗਿਆ।" -msgstr[1] "%(count)s %(name)s ਠੀਕ ਤਰ੍ਹਾਂ ਬਦਲੇ ਗਏ ਹਨ।" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s ਚੁਣਿਆ।" -msgstr[1] "%(total_count)s ਚੁਣੇ" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "ਅਤੀਤ ਬਦਲੋ: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "ਡੀਜਾਂਗੋ ਸਾਈਟ ਐਡਮਿਨ" - -msgid "Django administration" -msgstr "ਡੀਜਾਂਗੋ ਪਰਸ਼ਾਸ਼ਨ" - -msgid "Site administration" -msgstr "ਸਾਈਟ ਪਰਬੰਧ" - -msgid "Log in" -msgstr "ਲਾਗ ਇਨ" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "ਸਫ਼ਾ ਨਹੀਂ ਲੱਭਿਆ" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "ਘਰ" - -msgid "Server error" -msgstr "ਸਰਵਰ ਗਲਤੀ" - -msgid "Server error (500)" -msgstr "ਸਰਵਰ ਗਲਤੀ (500)" - -msgid "Server Error (500)" -msgstr "ਸਰਵਰ ਗਲਤੀ (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "ਚੁਣੀ ਕਾਰਵਾਈ ਕਰੋ" - -msgid "Go" -msgstr "ਜਾਓ" - -msgid "Click here to select the objects across all pages" -msgstr "ਸਭ ਸਫ਼ਿਆਂ ਵਿੱਚੋਂ ਆਬਜੈਕਟ ਚੁਣਨ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "ਸਭ %(total_count)s %(module_name)s ਚੁਣੋ" - -msgid "Clear selection" -msgstr "ਚੋਣ ਸਾਫ਼ ਕਰੋ" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "ਸ਼ਾਮਲ" - -msgid "View" -msgstr "" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "ਪਾਸਵਰਡ ਬਦਲੋ" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "ਯੂਜ਼ਰ %(username)s ਲਈ ਨਵਾਂ ਪਾਸਵਰਡ ਦਿਓ।" - -msgid "Skip to main content" -msgstr "" - -msgid "Welcome," -msgstr "ਜੀ ਆਇਆਂ ਨੂੰ, " - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "ਡੌਕੂਮੈਂਟੇਸ਼ਨ" - -msgid "Log out" -msgstr "ਲਾਗ ਆਉਟ" - -msgid "Breadcrumbs" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s ਸ਼ਾਮਲ" - -msgid "History" -msgstr "ਅਤੀਤ" - -msgid "View on site" -msgstr "ਸਾਈਟ ਉੱਤੇ ਜਾਓ" - -msgid "Filter" -msgstr "ਫਿਲਟਰ" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Toggle theme (current theme: auto)" -msgstr "" - -msgid "Toggle theme (current theme: light)" -msgstr "" - -msgid "Toggle theme (current theme: dark)" -msgstr "" - -msgid "Delete" -msgstr "ਹਟਾਓ" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "ਕਈ ਆਬਜੈਕਟ ਹਟਾਓ" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Delete?" -msgstr "ਹਟਾਉਣਾ?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s ਵਲੋਂ " - -msgid "Summary" -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "ਕੋਈ ਉਪਲੱਬਧ ਨਹੀਂ" - -msgid "Unknown content" -msgstr "ਅਣਜਾਣ ਸਮੱਗਰੀ" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Toggle navigation" -msgstr "" - -msgid "Sidebar" -msgstr "" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "ਮਿਤੀ/ਸਮਾਂ" - -msgid "User" -msgstr "ਯੂਜ਼ਰ" - -msgid "Action" -msgstr "ਕਾਰਵਾਈ" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "ਸਭ ਵੇਖੋ" - -msgid "Save" -msgstr "ਸੰਭਾਲੋ" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "ਖੋਜ" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s ਕੁੱਲ" - -msgid "Save as new" -msgstr "ਨਵੇਂ ਵਜੋਂ ਵੇਖੋ" - -msgid "Save and add another" -msgstr "ਸੰਭਾਲੋ ਤੇ ਹੋਰ ਸ਼ਾਮਲ" - -msgid "Save and continue editing" -msgstr "ਸੰਭਾਲੋ ਤੇ ਸੋਧਣਾ ਜਾਰੀ ਰੱਖੋ" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "ਫੇਰ ਲਾਗਇਨ ਕਰੋ" - -msgid "Password change" -msgstr "ਪਾਸਵਰਡ ਬਦਲੋ" - -msgid "Your password was changed." -msgstr "ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਿਆ ਗਿਆ ਹੈ।" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "ਮੇਰਾ ਪਾਸਵਰਡ ਬਦਲੋ" - -msgid "Password reset" -msgstr "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਜਾਰੀ ਰੱਖ ਕੇ ਹੁਣੇ ਲਾਗਇਨ ਕਰ ਸਕਦੇ ਹੋ।" - -msgid "Password reset confirmation" -msgstr "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰਨ ਪੁਸ਼ਟੀ" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"ਆਪਣਾ ਨਵਾਂ ਪਾਸਵਰਡ ਦੋ ਵਾਰ ਦਿਉ ਤਾਂ ਕਿ ਅਸੀਂ ਜਾਂਚ ਕਰ ਸਕੀਏ ਕਿ ਤੁਸੀਂ ਠੀਕ ਤਰ੍ਹਾਂ ਲਿਖਿਆ ਹੈ।" - -msgid "New password:" -msgstr "ਨਵਾਂ ਪਾਸਵਰਡ:" - -msgid "Confirm password:" -msgstr "ਪਾਸਵਰਡ ਪੁਸ਼ਟੀ:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"ਪਾਸਵਰਡ ਰੀ-ਸੈੱਟ ਲਿੰਕ ਗਲਤ ਹੈ, ਸੰਭਵ ਤੌਰ ਉੱਤੇ ਇਹ ਪਹਿਲਾਂ ਹੀ ਵਰਤਿਆ ਜਾ ਚੁੱਕਾ ਹੈ। ਨਵਾਂ ਪਾਸਵਰਡ ਰੀ-" -"ਸੈੱਟ ਲਈ ਬੇਨਤੀ ਭੇਜੋ ਜੀ।" - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "ਅੱਗੇ ਦਿੱਤੇ ਸਫ਼ੇ ਉੱਤੇ ਜਾਉ ਤੇ ਨਵਾਂ ਪਾਸਵਰਡ ਚੁਣੋ:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "ਸਾਡੀ ਸਾਈਟ ਵਰਤਣ ਲਈ ਧੰਨਵਾਦ ਜੀ!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s ਟੀਮ" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "ਮੇਰਾ ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ" - -msgid "All dates" -msgstr "ਸਭ ਮਿਤੀਆਂ" - -#, python-format -msgid "Select %s" -msgstr "%s ਚੁਣੋ" - -#, python-format -msgid "Select %s to change" -msgstr "ਬਦਲਣ ਲਈ %s ਚੁਣੋ" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "ਮਿਤੀ:" - -msgid "Time:" -msgstr "ਸਮਾਂ:" - -msgid "Lookup" -msgstr "ਖੋਜ" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 08925e4..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po deleted file mode 100644 index ed55c46..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,253 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-01-15 11:28+0000\n" -"Last-Translator: Transifex Bot <>\n" -"Language-Team: Panjabi (Punjabi) (http://www.transifex.com/django/django/" -"language/pa/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pa\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "ਉਪਲੱਬਧ %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "ਫਿਲਟਰ" - -msgid "Choose all" -msgstr "ਸਭ ਚੁਣੋ" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "ਹਟਾਓ" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s ਚੁਣੋ" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "ਹੁਣੇ" - -msgid "Midnight" -msgstr "ਅੱਧੀ-ਰਾਤ" - -msgid "6 a.m." -msgstr "6 ਸਵੇਰ" - -msgid "Noon" -msgstr "ਦੁਪਹਿਰ" - -msgid "6 p.m." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "ਸਮਾਂ ਚੁਣੋ" - -msgid "Cancel" -msgstr "ਰੱਦ ਕਰੋ" - -msgid "Today" -msgstr "ਅੱਜ" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "ਕੱਲ੍ਹ" - -msgid "Tomorrow" -msgstr "ਭਲਕੇ" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "ਵੇਖੋ" - -msgid "Hide" -msgstr "ਓਹਲੇ" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo deleted file mode 100644 index aca2df9..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.po deleted file mode 100644 index 761b8bc..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/django.po +++ /dev/null @@ -1,784 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# angularcircle, 2011-2013 -# angularcircle, 2013-2014 -# Jannis Leidel , 2011 -# Janusz Harkot , 2014-2015 -# Karol , 2012 -# 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 -# 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 -# Maciej Olko , 2016-2022 -# Maciej Olko , 2023 -# Maciej Olko , 2015 -# Mariusz Felisiak , 2020,2022 -# Ola Sitarska , 2013 -# Ola Sitarska , 2013 -# Roman Barczyński, 2014 -# Tomasz Kajtoch , 2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Maciej Olko , 2023\n" -"Language-Team: Polish (http://www.transifex.com/django/django/language/pl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && " -"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && " -"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Usuń wybrane(-nych) %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Pomyślnie usunięto %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Nie można usunąć %(name)s" - -msgid "Are you sure?" -msgstr "Jesteś pewien?" - -msgid "Administration" -msgstr "Administracja" - -msgid "All" -msgstr "Wszystko" - -msgid "Yes" -msgstr "Tak" - -msgid "No" -msgstr "Nie" - -msgid "Unknown" -msgstr "Nieznany" - -msgid "Any date" -msgstr "Dowolna data" - -msgid "Today" -msgstr "Dzisiaj" - -msgid "Past 7 days" -msgstr "Ostatnie 7 dni" - -msgid "This month" -msgstr "Ten miesiąc" - -msgid "This year" -msgstr "Ten rok" - -msgid "No date" -msgstr "Brak daty" - -msgid "Has date" -msgstr "Posiada datę" - -msgid "Empty" -msgstr "Puste" - -msgid "Not empty" -msgstr "Niepuste" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Wprowadź poprawne dane w polach „%(username)s” i „hasło” dla konta " -"należącego do zespołu. Uwaga: wielkość liter może mieć znaczenie." - -msgid "Action:" -msgstr "Akcja:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Dodaj kolejne(go)(-ną)(-ny) %(verbose_name)s" - -msgid "Remove" -msgstr "Usuń" - -msgid "Addition" -msgstr "Dodanie" - -msgid "Change" -msgstr "Zmień" - -msgid "Deletion" -msgstr "Usunięcie" - -msgid "action time" -msgstr "czas akcji" - -msgid "user" -msgstr "użytkownik" - -msgid "content type" -msgstr "typ zawartości" - -msgid "object id" -msgstr "id obiektu" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "reprezentacja obiektu" - -msgid "action flag" -msgstr "flaga akcji" - -msgid "change message" -msgstr "zmień wiadomość" - -msgid "log entry" -msgstr "log" - -msgid "log entries" -msgstr "logi" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Dodano „%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Zmieniono „%(object)s” — %(changes)s " - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Usunięto „%(object)s”." - -msgid "LogEntry Object" -msgstr "Obiekt LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Dodano {name} „{object}”." - -msgid "Added." -msgstr "Dodano." - -msgid "and" -msgstr "i" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Zmodyfikowano {fields} w {name} „{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Zmodyfikowano {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Usunięto {name} „{object}”." - -msgid "No fields changed." -msgstr "Żadne pole nie zostało zmienione." - -msgid "None" -msgstr "Brak" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Przytrzymaj wciśnięty klawisz „Ctrl” lub „Command” na Macu, aby zaznaczyć " -"więcej niż jeden wybór." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} „{obj}” został(a)(-ło) dodany(-na)(-ne) pomyślnie." - -msgid "You may edit it again below." -msgstr "Poniżej możesz ponownie edytować." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} „{obj}” został(a)(-ło) dodany(-na)(-ne) pomyślnie. Można dodać " -"kolejne(go)(-ną)(-ny) {name} poniżej." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} „{obj}” został(a)(-ło) pomyślnie zmieniony(-na)(-ne). Można edytować " -"go/ją/je ponownie poniżej." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} „{obj}” został(a)(-ło) dodany(-na)(-ne) pomyślnie. Można edytować go/" -"ją/je ponownie poniżej." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} „{obj}” został(a)(-ło) pomyślnie zmieniony(-na)(-ne). Można dodać " -"kolejny(-nego)(-ną)(-ne) {name} poniżej." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} „{obj}” został(a)(-ło) pomyślnie zmieniony(-na)(-ne)." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Wykonanie akcji wymaga wybrania obiektów. Żaden obiekt nie został zmieniony." - -msgid "No action selected." -msgstr "Nie wybrano akcji." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s „%(obj)s” usunięty(-ta)(-te) pomyślnie." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" -"%(name)s z ID „%(key)s” nie istnieje. Może został(a)(-ło) usunięty(-ta)(-te)?" - -#, python-format -msgid "Add %s" -msgstr "Dodaj %s" - -#, python-format -msgid "Change %s" -msgstr "Zmień %s" - -#, python-format -msgid "View %s" -msgstr "Zobacz %s" - -msgid "Database error" -msgstr "Błąd bazy danych" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s został(a)(-ło) pomyślnie zmieniony(-na)(-ne)." -msgstr[1] "%(count)s %(name)s zostały(-ło) pomyślnie zmienione(-nych)." -msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych." -msgstr[3] "%(count)s %(name)s zostało pomyślnie zmienione." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Wybrano %(total_count)s" -msgstr[1] "Wybrano %(total_count)s" -msgstr[2] "Wybrano %(total_count)s" -msgstr[3] "Wybrano wszystkie %(total_count)s" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Wybrano 0 z %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Historia zmian: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Usunięcie %(class_name)s %(instance)s może wiązać się z usunięciem " -"następujących chronionych obiektów pokrewnych: %(related_objects)s" - -msgid "Django site admin" -msgstr "Administracja stroną Django" - -msgid "Django administration" -msgstr "Administracja Django" - -msgid "Site administration" -msgstr "Administracja stroną" - -msgid "Log in" -msgstr "Zaloguj się" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s: administracja" - -msgid "Page not found" -msgstr "Strona nie została znaleziona" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Przykro nam, ale żądana strona nie została znaleziona." - -msgid "Home" -msgstr "Strona główna" - -msgid "Server error" -msgstr "Błąd serwera" - -msgid "Server error (500)" -msgstr "Błąd serwera (500)" - -msgid "Server Error (500)" -msgstr "Błąd Serwera (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Niestety wystąpił błąd. Zostało to zgłoszone administratorom strony poprzez " -"email i niebawem powinno zostać naprawione. Dziękujemy za cierpliwość." - -msgid "Run the selected action" -msgstr "Wykonaj wybraną akcję" - -msgid "Go" -msgstr "Wykonaj" - -msgid "Click here to select the objects across all pages" -msgstr "Kliknij by wybrać obiekty na wszystkich stronach" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Wybierz wszystkie(-kich) %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Wyczyść wybór" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modele w aplikacji %(name)s" - -msgid "Add" -msgstr "Dodaj" - -msgid "View" -msgstr "Zobacz" - -msgid "You don’t have permission to view or edit anything." -msgstr "Nie masz uprawnień do oglądania ani edycji niczego." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Najpierw podaj nazwę użytkownika i hasło. Następnie będziesz mógł edytować " -"więcej opcji użytkownika." - -msgid "Enter a username and password." -msgstr "Podaj nazwę użytkownika i hasło." - -msgid "Change password" -msgstr "Zmień hasło" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Prosimy poprawić poniższy błąd." -msgstr[1] "Prosimy poprawić poniższe błędy." -msgstr[2] "Prosimy poprawić poniższe błędy." -msgstr[3] "Prosimy poprawić poniższe błędy." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Podaj nowe hasło dla użytkownika %(username)s." - -msgid "Skip to main content" -msgstr "Przejdź do głównej treści" - -msgid "Welcome," -msgstr "Witaj," - -msgid "View site" -msgstr "Pokaż stronę" - -msgid "Documentation" -msgstr "Dokumentacja" - -msgid "Log out" -msgstr "Wyloguj się" - -msgid "Breadcrumbs" -msgstr "Breadcrumbs" - -#, python-format -msgid "Add %(name)s" -msgstr "Dodaj %(name)s" - -msgid "History" -msgstr "Historia" - -msgid "View on site" -msgstr "Pokaż na stronie" - -msgid "Filter" -msgstr "Filtruj" - -msgid "Clear all filters" -msgstr "Wyczyść wszystkie filtry" - -msgid "Remove from sorting" -msgstr "Usuń z sortowania" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Priorytet sortowania: %(priority_number)s " - -msgid "Toggle sorting" -msgstr "Przełącz sortowanie" - -msgid "Toggle theme (current theme: auto)" -msgstr "Przełącz motyw (bieżący motyw: auto)" - -msgid "Toggle theme (current theme: light)" -msgstr "Przełącz motyw (bieżący motyw: jasny)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Przełącz motyw (bieżący motyw: ciemny)" - -msgid "Delete" -msgstr "Usuń" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Usunięcie %(object_name)s „%(escaped_object)s” wiązałoby się z usunięciem " -"obiektów z nim/nią powiązanych, ale niestety nie posiadasz uprawnień do " -"usunięcia obiektów następujących typów:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Usunięcie %(object_name)s „%(escaped_object)s” wymagałoby skasowania " -"następujących chronionych obiektów, które są z nim/nią powiązane:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Czy chcesz skasować %(object_name)s „%(escaped_object)s”? Następujące " -"obiekty powiązane zostaną usunięte:" - -msgid "Objects" -msgstr "Obiekty" - -msgid "Yes, I’m sure" -msgstr "Tak, na pewno" - -msgid "No, take me back" -msgstr "Nie, zabierz mnie stąd" - -msgid "Delete multiple objects" -msgstr "Usuwanie wielu obiektów" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Usunięcie wybranych(-nego)(-nej) %(objects_name)s spowoduje skasowanie " -"obiektów, które są z nim(i)/nią powiązane. Niestety nie posiadasz uprawnień " -"do usunięcia następujących typów obiektów:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Usunięcie wybranych(-nego)(-nej) %(objects_name)s wymaga skasowania " -"następujących chronionych obiektów, które są z nim(i)/nią powiązane:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Czy chcesz skasować zaznaczone(go)(-ną)(-ny)(-nych) %(objects_name)s? " -"Następujące obiekty oraz obiekty od nich zależne zostaną skasowane:" - -msgid "Delete?" -msgstr "Usunąć?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Według pola %(filter_title)s " - -msgid "Summary" -msgstr "Podsumowanie" - -msgid "Recent actions" -msgstr "Ostatnie działania" - -msgid "My actions" -msgstr "Moje działania" - -msgid "None available" -msgstr "Brak dostępnych" - -msgid "Unknown content" -msgstr "Zawartość nieznana" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Instalacja Twojej bazy danych jest niepoprawna. Upewnij się, że odpowiednie " -"tabele zostały utworzone i odpowiedni użytkownik jest uprawniony do ich " -"odczytu." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Jesteś uwierzytelniony jako %(username)s, ale nie jesteś upoważniony do " -"dostępu do tej strony. Czy chciałbyś zalogować się na inne konto?" - -msgid "Forgotten your password or username?" -msgstr "Nie pamiętasz swojego hasła lub nazwy użytkownika?" - -msgid "Toggle navigation" -msgstr "Przełącz nawigację" - -msgid "Sidebar" -msgstr "Pasek boczny" - -msgid "Start typing to filter…" -msgstr "Zacznij pisać, aby odfiltrować…" - -msgid "Filter navigation items" -msgstr "Filtruj elementy nawigacji" - -msgid "Date/time" -msgstr "Data/czas" - -msgid "User" -msgstr "Użytkownik" - -msgid "Action" -msgstr "Akcja" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "wpis" -msgstr[1] "wpisy" -msgstr[2] "wpisów" -msgstr[3] "wpisu" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Ten obiekt nie ma historii zmian. Najprawdopodobniej nie został on dodany " -"poprzez panel administracyjny." - -msgid "Show all" -msgstr "Pokaż wszystko" - -msgid "Save" -msgstr "Zapisz" - -msgid "Popup closing…" -msgstr "Zamykanie okna..." - -msgid "Search" -msgstr "Szukaj" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s wynik" -msgstr[1] "%(counter)s wyniki" -msgstr[2] "%(counter)s wyników" -msgstr[3] "%(counter)s wyników" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s łącznie" - -msgid "Save as new" -msgstr "Zapisz jako nowy" - -msgid "Save and add another" -msgstr "Zapisz i dodaj nowy" - -msgid "Save and continue editing" -msgstr "Zapisz i kontynuuj edycję" - -msgid "Save and view" -msgstr "Zapisz i obejrzyj" - -msgid "Close" -msgstr "Zamknij" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Zmień wybraną(-ne)(-nego)(-ny) %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Dodaj kolejne(go)(-ną)(-ny) %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Usuń wybraną(-ne)(-nego)(-ny) %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Obejrzyj wybraną(-ne)(-nego)(-ny) %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Dzięki za spędzenie cennego czasu ze stroną." - -msgid "Log in again" -msgstr "Zaloguj się ponownie" - -msgid "Password change" -msgstr "Zmiana hasła" - -msgid "Your password was changed." -msgstr "Twoje hasło zostało zmienione." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Podaj swoje stare hasło, ze względów bezpieczeństwa, a później wpisz " -"dwukrotnie Twoje nowe hasło, abyśmy mogli zweryfikować, że zostało wpisane " -"poprawnie." - -msgid "Change my password" -msgstr "Zmień hasło" - -msgid "Password reset" -msgstr "Zresetuj hasło" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Twoje hasło zostało ustawione. Możesz się teraz zalogować." - -msgid "Password reset confirmation" -msgstr "Potwierdzenie zresetowania hasła" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Podaj dwukrotnie nowe hasło, by można było zweryfikować, czy zostało wpisane " -"poprawnie." - -msgid "New password:" -msgstr "Nowe hasło:" - -msgid "Confirm password:" -msgstr "Potwierdź hasło:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Link pozwalający na reset hasła jest niepoprawny - być może dlatego, że " -"został już raz użyty. Możesz ponownie zażądać zresetowania hasła." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Instrukcja pozwalająca ustawić nowe hasło dla podanego adresu e-mail została " -"wysłana. Niebawem powinna się pojawić na twoim koncie pocztowym." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"W przypadku nieotrzymania wiadomości e-mail: upewnij się czy adres " -"wprowadzony jest zgodny z tym podanym podczas rejestracji i sprawdź " -"zawartość folderu SPAM na swoim koncie." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Otrzymujesz tę wiadomość, gdyż skorzystano z opcji resetu hasła dla Twojego " -"konta na stronie %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "" -"Aby wprowadzić nowe hasło, proszę przejść na stronę, której adres widnieje " -"poniżej:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Twoja nazwa użytkownika, na wypadek, gdybyś zapomniał(a):" - -msgid "Thanks for using our site!" -msgstr "Dzięki za korzystanie z naszej strony!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Zespół %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Nie pamiętasz swojego hasła? Wprowadź w poniższym polu swój adres e-mail, a " -"wyślemy ci instrukcję opisującą sposób ustawienia nowego hasła." - -msgid "Email address:" -msgstr "Adres e-mail:" - -msgid "Reset my password" -msgstr "Zresetuj moje hasło" - -msgid "All dates" -msgstr "Wszystkie daty" - -#, python-format -msgid "Select %s" -msgstr "Wybierz %s" - -#, python-format -msgid "Select %s to change" -msgstr "Wybierz %s do zmiany" - -#, python-format -msgid "Select %s to view" -msgstr "Wybierz %s do obejrzenia" - -msgid "Date:" -msgstr "Data:" - -msgid "Time:" -msgstr "Czas:" - -msgid "Lookup" -msgstr "Szukaj" - -msgid "Currently:" -msgstr "Aktualny:" - -msgid "Change:" -msgstr "Zmień:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 89b0e4b..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po deleted file mode 100644 index 23a05a4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,307 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# angularcircle, 2011 -# Darek505, 2022 -# Jannis Leidel , 2011 -# Janusz Harkot , 2014-2015 -# 0d5641585fd67fbdb97037c19ab83e4c_18c98b0 , 2011 -# Maciej Olko , 2016,2018,2020 -# Maciej Olko , 2023 -# Mariusz Felisiak , 2021,2023 -# Roman Barczyński, 2012 -# Tomasz Kajtoch , 2016-2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Mariusz Felisiak , 2021,2023\n" -"Language-Team: Polish (http://www.transifex.com/django/django/language/pl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && " -"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && " -"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Dostępne %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"To lista dostępnych %s. Aby wybrać pozycje, zaznacz je i kliknij strzałkę " -"„Wybierz” pomiędzy listami." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Wpisz coś tutaj, aby wyfiltrować listę dostępnych %s." - -msgid "Filter" -msgstr "Filtr" - -msgid "Choose all" -msgstr "Wybierz wszystkie" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Kliknij, aby wybrać jednocześnie wszystkie %s." - -msgid "Choose" -msgstr "Wybierz" - -msgid "Remove" -msgstr "Usuń" - -#, javascript-format -msgid "Chosen %s" -msgstr "Wybrane %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"To lista wybranych %s. Aby usunąć, zaznacz pozycje wybrane do usunięcia i " -"kliknij strzałkę „Usuń” pomiędzy listami." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Wpisz coś tutaj, aby wyfiltrować listę wybranych %s." - -msgid "Remove all" -msgstr "Usuń wszystkie" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Kliknij, aby usunąć jednocześnie wszystkie wybrane %s." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s wybrana opcja jest ukryta" -msgstr[1] "%s wybrane opcje są ukryte" -msgstr[2] "%s wybranych opcji jest ukrytych" -msgstr[3] "%s wybranych opcji jest ukrytych" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "Wybrano %(sel)s z %(cnt)s" -msgstr[1] "Wybrano %(sel)s z %(cnt)s" -msgstr[2] "Wybrano %(sel)s z %(cnt)s" -msgstr[3] "Wybrano %(sel)s z %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Zmiany w niektórych polach nie zostały zachowane. Po wykonaniu akcji, zmiany " -"te zostaną utracone." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Wybrano akcję, lecz część zmian w polach nie została zachowana. Kliknij OK, " -"aby zapisać. Aby wykonać akcję, należy ją ponownie uruchomić." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Wybrano akcję, lecz nie dokonano żadnych zmian w polach. Prawdopodobnie " -"szukasz przycisku „Wykonaj”, a nie „Zapisz”." - -msgid "Now" -msgstr "Teraz" - -msgid "Midnight" -msgstr "Północ" - -msgid "6 a.m." -msgstr "6 rano" - -msgid "Noon" -msgstr "Południe" - -msgid "6 p.m." -msgstr "6 po południu" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -"Uwaga: Czas lokalny jest przesunięty o %s godzinę do przodu w stosunku do " -"czasu serwera." -msgstr[1] "" -"Uwaga: Czas lokalny jest przesunięty o %s godziny do przodu w stosunku do " -"czasu serwera." -msgstr[2] "" -"Uwaga: Czas lokalny jest przesunięty o %s godzin do przodu w stosunku do " -"czasu serwera." -msgstr[3] "" -"Uwaga: Czas lokalny jest przesunięty o %s godzin do przodu w stosunku do " -"czasu serwera." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -"Uwaga: Czas lokalny jest przesunięty o %s godzinę do tyłu w stosunku do " -"czasu serwera." -msgstr[1] "" -"Uwaga: Czas lokalny jest przesunięty o %s godziny do tyłu w stosunku do " -"czasu serwera." -msgstr[2] "" -"Uwaga: Czas lokalny jest przesunięty o %s godzin do tyłu w stosunku do czasu " -"serwera." -msgstr[3] "" -"Uwaga: Czas lokalny jest przesunięty o %s godzin do tyłu w stosunku do czasu " -"serwera." - -msgid "Choose a Time" -msgstr "Wybierz Czas" - -msgid "Choose a time" -msgstr "Wybierz czas" - -msgid "Cancel" -msgstr "Anuluj" - -msgid "Today" -msgstr "Dzisiaj" - -msgid "Choose a Date" -msgstr "Wybierz Datę" - -msgid "Yesterday" -msgstr "Wczoraj" - -msgid "Tomorrow" -msgstr "Jutro" - -msgid "January" -msgstr "Styczeń" - -msgid "February" -msgstr "Luty" - -msgid "March" -msgstr "Marzec" - -msgid "April" -msgstr "Kwiecień" - -msgid "May" -msgstr "Maj" - -msgid "June" -msgstr "Czerwiec" - -msgid "July" -msgstr "Lipiec" - -msgid "August" -msgstr "Sierpień" - -msgid "September" -msgstr "Wrzesień" - -msgid "October" -msgstr "Październik" - -msgid "November" -msgstr "Listopad" - -msgid "December" -msgstr "Grudzień" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Sty" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Lut" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Kwi" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Maj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Cze" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Lip" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Sie" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Wrz" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Paź" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Lis" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Gru" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "N" - -msgctxt "one letter Monday" -msgid "M" -msgstr "P" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "W" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Ś" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "C" - -msgctxt "one letter Friday" -msgid "F" -msgstr "P" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Pokaż" - -msgid "Hide" -msgstr "Ukryj" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.mo deleted file mode 100644 index d7ec87d..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.po deleted file mode 100644 index 2d39cdb..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/django.po +++ /dev/null @@ -1,725 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Henrique Azevedo , 2018 -# Jannis Leidel , 2011 -# jorgecarleitao , 2015 -# Nuno Mariz , 2013,2015,2017-2018 -# Paulo Köch , 2011 -# Raúl Pedro Fernandes Santos, 2014 -# Rui Dinis Silva, 2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-01-18 00:36+0000\n" -"Last-Translator: Ramiro Morales\n" -"Language-Team: Portuguese (http://www.transifex.com/django/django/language/" -"pt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Foram removidos com sucesso %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Não é possível remover %(name)s " - -msgid "Are you sure?" -msgstr "Tem a certeza?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Remover %(verbose_name_plural)s selecionados" - -msgid "Administration" -msgstr "Administração" - -msgid "All" -msgstr "Todos" - -msgid "Yes" -msgstr "Sim" - -msgid "No" -msgstr "Não" - -msgid "Unknown" -msgstr "Desconhecido" - -msgid "Any date" -msgstr "Qualquer data" - -msgid "Today" -msgstr "Hoje" - -msgid "Past 7 days" -msgstr "Últimos 7 dias" - -msgid "This month" -msgstr "Este mês" - -msgid "This year" -msgstr "Este ano" - -msgid "No date" -msgstr "Sem data" - -msgid "Has date" -msgstr "Tem data" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Por favor introduza o %(username)s e password corretos para a conta de " -"equipa. Tenha em atenção às maiúsculas e minúsculas." - -msgid "Action:" -msgstr "Ação:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Adicionar outro %(verbose_name)s" - -msgid "Remove" -msgstr "Remover" - -msgid "Addition" -msgstr "Adição" - -msgid "Change" -msgstr "Modificar" - -msgid "Deletion" -msgstr "Eliminação" - -msgid "action time" -msgstr "hora da ação" - -msgid "user" -msgstr "utilizador" - -msgid "content type" -msgstr "tipo de conteúdo" - -msgid "object id" -msgstr "id do objeto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr do objeto" - -msgid "action flag" -msgstr "flag de ação" - -msgid "change message" -msgstr "modificar mensagem" - -msgid "log entry" -msgstr "entrada de log" - -msgid "log entries" -msgstr "entradas de log" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Adicionado \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Foram modificados \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Foram removidos \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "Objeto LogEntry" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "Foi adicionado {name} \"{object}\"." - -msgid "Added." -msgstr "Adicionado." - -msgid "and" -msgstr "e" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "Foram modificados os {fields} para {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Foi modificado {fields}." - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "Foi removido {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Nenhum campo foi modificado." - -msgid "None" -msgstr "Nenhum" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Mantenha pressionado o \"Control\", ou \"Command\" no Mac, para selecionar " -"mais do que um." - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "O {name} \"{obj}\" foi adicionado com sucesso." - -msgid "You may edit it again below." -msgstr "Pode editar novamente abaixo." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" -"O {name} \"{obj}\" foi adicionado com sucesso. Pode adicionar um novo {name} " -"abaixo." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" -"O {name} \"{obj}\" foi modificado com sucesso. Pode voltar a editar " -"novamente abaixo." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" -"O {name} \"{obj}\" foi adicionado com sucesso. Pode voltar a editar " -"novamente abaixo." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" -"O {name} \"{obj}\" foi modificado com sucesso. Pode adicionar um novo {name} " -"abaixo." - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "O {name} \"{obj}\" foi modificado com sucesso." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Os itens devem ser selecionados de forma a efectuar ações sobre eles. Nenhum " -"item foi modificado." - -msgid "No action selected." -msgstr "Nenhuma ação selecionada." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "O(A) %(name)s \"%(obj)s\" foi removido(a) com sucesso." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "%(name)s com ID \"%(key)s\" não existe. Talvez foi removido?" - -#, python-format -msgid "Add %s" -msgstr "Adicionar %s" - -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -#, python-format -msgid "View %s" -msgstr "View %s " - -msgid "Database error" -msgstr "Erro de base de dados" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s foi modificado com sucesso." -msgstr[1] "%(count)s %(name)s foram modificados com sucesso." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s selecionado" -msgstr[1] "Todos %(total_count)s selecionados" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 de %(cnt)s selecionados" - -#, python-format -msgid "Change history: %s" -msgstr "Histórico de modificações: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Remover %(class_name)s %(instance)s exigiria a remoção dos seguintes objetos " -"relacionados protegidos: %(related_objects)s" - -msgid "Django site admin" -msgstr "Site de administração do Django" - -msgid "Django administration" -msgstr "Administração do Django" - -msgid "Site administration" -msgstr "Administração do site" - -msgid "Log in" -msgstr "Entrar" - -#, python-format -msgid "%(app)s administration" -msgstr "Administração de %(app)s" - -msgid "Page not found" -msgstr "Página não encontrada" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Pedimos desculpa, mas a página solicitada não foi encontrada." - -msgid "Home" -msgstr "Início" - -msgid "Server error" -msgstr "Erro do servidor" - -msgid "Server error (500)" -msgstr "Erro do servidor (500)" - -msgid "Server Error (500)" -msgstr "Erro do servidor (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ocorreu um erro. Foi enviada uma notificação para os administradores do " -"site, devendo o mesmo ser corrigido em breve. Obrigado pela atenção." - -msgid "Run the selected action" -msgstr "Executar a acção selecionada" - -msgid "Go" -msgstr "Ir" - -msgid "Click here to select the objects across all pages" -msgstr "Clique aqui para selecionar os objetos em todas as páginas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Selecionar todos %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Remover seleção" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Primeiro introduza o nome do utilizador e palavra-passe. Depois poderá " -"editar mais opções do utilizador." - -msgid "Enter a username and password." -msgstr "Introduza o utilizador e palavra-passe." - -msgid "Change password" -msgstr "Modificar palavra-passe" - -msgid "Please correct the error below." -msgstr "Por favor corrija o erro abaixo." - -msgid "Please correct the errors below." -msgstr "Por favor corrija os erros abaixo." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Introduza uma nova palavra-passe para o utilizador %(username)s." - -msgid "Welcome," -msgstr "Bem-vindo," - -msgid "View site" -msgstr "Ver site" - -msgid "Documentation" -msgstr "Documentação" - -msgid "Log out" -msgstr "Sair" - -#, python-format -msgid "Add %(name)s" -msgstr "Adicionar %(name)s" - -msgid "History" -msgstr "História" - -msgid "View on site" -msgstr "Ver no site" - -msgid "Filter" -msgstr "Filtro" - -msgid "Remove from sorting" -msgstr "Remover da ordenação" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioridade de ordenação: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Altenar ordenação" - -msgid "Delete" -msgstr "Remover" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"A remoção de %(object_name)s '%(escaped_object)s' resultará na remoção dos " -"objetos relacionados, mas a sua conta não tem permissão de remoção dos " -"seguintes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Remover o %(object_name)s ' %(escaped_object)s ' exigiria a remoção dos " -"seguintes objetos protegidos relacionados:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Tem a certeza que deseja remover %(object_name)s \"%(escaped_object)s\"? " -"Todos os items relacionados seguintes irão ser removidos:" - -msgid "Objects" -msgstr "Objectos" - -msgid "Yes, I'm sure" -msgstr "Sim, tenho a certeza" - -msgid "No, take me back" -msgstr "Não, retrocede" - -msgid "Delete multiple objects" -msgstr "Remover múltiplos objetos." - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Remover o %(objects_name)s selecionado poderia resultar na remoção de " -"objetos relacionados, mas a sua conta não tem permissão para remover os " -"seguintes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Remover o %(objects_name)s selecionado exigiria remover os seguintes objetos " -"protegidos relacionados:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Tem certeza de que deseja remover %(objects_name)s selecionado? Todos os " -"objetos seguintes e seus itens relacionados serão removidos:" - -msgid "View" -msgstr "View" - -msgid "Delete?" -msgstr "Remover?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Por %(filter_title)s " - -msgid "Summary" -msgstr "Sumário" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelos na aplicação %(name)s" - -msgid "Add" -msgstr "Adicionar" - -msgid "You don't have permission to view or edit anything." -msgstr "Não tem permissão para ver ou editar nada." - -msgid "Recent actions" -msgstr "Ações recentes" - -msgid "My actions" -msgstr "As minhas ações" - -msgid "None available" -msgstr "Nenhum disponível" - -msgid "Unknown content" -msgstr "Conteúdo desconhecido" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Passa-se algo de errado com a instalação da sua base de dados. Verifique se " -"as tabelas da base de dados foram criadas apropriadamente e verifique se a " -"base de dados pode ser lida pelo utilizador definido." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Está autenticado como %(username)s, mas não está autorizado a aceder a esta " -"página. Deseja autenticar-se com uma conta diferente?" - -msgid "Forgotten your password or username?" -msgstr "Esqueceu-se da sua palavra-passe ou utilizador?" - -msgid "Date/time" -msgstr "Data/hora" - -msgid "User" -msgstr "Utilizador" - -msgid "Action" -msgstr "Ação" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Este objeto não tem histórico de modificações. Provavelmente não foi " -"modificado via site de administração." - -msgid "Show all" -msgstr "Mostrar todos" - -msgid "Save" -msgstr "Gravar" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "Pesquisar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultado" -msgstr[1] "%(counter)s resultados" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s no total" - -msgid "Save as new" -msgstr "Gravar como novo" - -msgid "Save and add another" -msgstr "Gravar e adicionar outro" - -msgid "Save and continue editing" -msgstr "Gravar e continuar a editar" - -msgid "Save and view" -msgstr "Gravar e ver" - -msgid "Close" -msgstr "Fechar" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Alterar %(model)s selecionado." - -#, python-format -msgid "Add another %(model)s" -msgstr "Adicionar outro %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Remover %(model)s seleccionado" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Obrigado pela sua visita." - -msgid "Log in again" -msgstr "Entrar novamente" - -msgid "Password change" -msgstr "Modificação da palavra-passe" - -msgid "Your password was changed." -msgstr "A sua palavra-passe foi modificada." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Por razões de segurança, por favor introduza a sua palavra-passe antiga e " -"depois introduza a nova duas vezes para que possamos verificar se introduziu " -"corretamente." - -msgid "Change my password" -msgstr "Modificar a minha palavra-passe" - -msgid "Password reset" -msgstr "Palavra-passe de reinicialização" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "A sua palavra-passe foi atribuída. Pode entrar agora." - -msgid "Password reset confirmation" -msgstr "Confirmação da reinicialização da palavra-passe" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Por favor, introduza a sua nova palavra-passe duas vezes para verificarmos " -"se está correcta." - -msgid "New password:" -msgstr "Nova palavra-passe:" - -msgid "Confirm password:" -msgstr "Confirmação da palavra-passe:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"O endereço de reinicialização da palavra-passe é inválido, possivelmente " -"porque já foi usado. Por favor requisite uma nova reinicialização da palavra-" -"passe." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Foram enviadas para o email indicado as instruções de configuração da " -"palavra-passe, se existir uma conta com o email que indicou. Deverá recebê-" -"las brevemente." - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Se não receber um email, por favor assegure-se de que introduziu o endereço " -"com o qual se registou e verifique a sua pasta de correio electrónico não " -"solicitado." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Está a receber este email porque pediu para redefinir a palavra-chave para o " -"seu utilizador no site %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Por favor siga a seguinte página e escolha a sua nova palavra-passe:" - -msgid "Your username, in case you've forgotten:" -msgstr "O seu nome de utilizador, no caso de se ter esquecido:" - -msgid "Thanks for using our site!" -msgstr "Obrigado pela sua visita ao nosso site!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "A equipa do %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Esqueceu-se da sua palavra-chave? Introduza o seu endereço de email e enviar-" -"lhe-emos instruções para definir uma nova." - -msgid "Email address:" -msgstr "Endereço de email:" - -msgid "Reset my password" -msgstr "Reinicializar a minha palavra-passe" - -msgid "All dates" -msgstr "Todas as datas" - -#, python-format -msgid "Select %s" -msgstr "Selecionar %s" - -#, python-format -msgid "Select %s to change" -msgstr "Selecione %s para modificar" - -#, python-format -msgid "Select %s to view" -msgstr "Selecione %s para ver" - -msgid "Date:" -msgstr "Data:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Procurar" - -msgid "Currently:" -msgstr "Atualmente:" - -msgid "Change:" -msgstr "Modificar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo deleted file mode 100644 index bc7ae61..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po deleted file mode 100644 index 1737994..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,222 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Nuno Mariz , 2011-2012,2015,2017 -# Paulo Köch , 2011 -# Raúl Pedro Fernandes Santos, 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-11-30 23:49+0000\n" -"Last-Translator: Nuno Mariz \n" -"Language-Team: Portuguese (http://www.transifex.com/django/django/language/" -"pt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Disponível %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Esta é a lista de %s disponíveis. Poderá escolher alguns, selecionando-os na " -"caixa abaixo e clicando na seta \"Escolher\" entre as duas caixas." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Digite nesta caixa para filtrar a lista de %s disponíveis." - -msgid "Filter" -msgstr "Filtrar" - -msgid "Choose all" -msgstr "Escolher todos" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Clique para escolher todos os %s de uma vez." - -msgid "Choose" -msgstr "Escolher" - -msgid "Remove" -msgstr "Remover" - -#, javascript-format -msgid "Chosen %s" -msgstr "Escolhido %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Esta é a lista de %s escolhidos. Poderá remover alguns, selecionando-os na " -"caixa abaixo e clicando na seta \"Remover\" entre as duas caixas." - -msgid "Remove all" -msgstr "Remover todos" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Clique para remover todos os %s escolhidos de uma vez." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s selecionado" -msgstr[1] "%(sel)s de %(cnt)s selecionados" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Tem mudanças por guardar nos campos individuais. Se usar uma ação, as suas " -"mudanças por guardar serão perdidas." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Selecionou uma ação mas ainda não guardou as mudanças dos campos " -"individuais. Carregue em OK para gravar. Precisará de correr de novo a ação." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Selecionou uma ação mas ainda não guardou as mudanças dos campos " -"individuais. Provavelmente quererá o botão Ir ao invés do botão Guardar." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -"Nota: O seu fuso horário está %s hora adiantado em relação ao servidor." -msgstr[1] "" -"Nota: O seu fuso horário está %s horas adiantado em relação ao servidor." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -"Nota: O use fuso horário está %s hora atrasado em relação ao servidor." -msgstr[1] "" -"Nota: O use fuso horário está %s horas atrasado em relação ao servidor." - -msgid "Now" -msgstr "Agora" - -msgid "Choose a Time" -msgstr "Escolha a Hora" - -msgid "Choose a time" -msgstr "Escolha a hora" - -msgid "Midnight" -msgstr "Meia-noite" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Meio-dia" - -msgid "6 p.m." -msgstr "6 p.m." - -msgid "Cancel" -msgstr "Cancelar" - -msgid "Today" -msgstr "Hoje" - -msgid "Choose a Date" -msgstr "Escolha a Data" - -msgid "Yesterday" -msgstr "Ontem" - -msgid "Tomorrow" -msgstr "Amanhã" - -msgid "January" -msgstr "Janeiro" - -msgid "February" -msgstr "Fevereiro" - -msgid "March" -msgstr "Março" - -msgid "April" -msgstr "Abril" - -msgid "May" -msgstr "Maio" - -msgid "June" -msgstr "Junho" - -msgid "July" -msgstr "Julho" - -msgid "August" -msgstr "Agosto" - -msgid "September" -msgstr "Setembro" - -msgid "October" -msgstr "Outubro" - -msgid "November" -msgstr "Novembro" - -msgid "December" -msgstr "Dezembro" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "S" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Q" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Q" - -msgctxt "one letter Friday" -msgid "F" -msgstr "S" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Mostrar" - -msgid "Hide" -msgstr "Ocultar" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo deleted file mode 100644 index cc453c7..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po deleted file mode 100644 index e2cc588..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po +++ /dev/null @@ -1,788 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Allisson Azevedo , 2014 -# Bruce de Sá , 2019 -# bruno.devpod , 2014 -# Carlos C. Leite , 2019 -# Carlos C. Leite , 2019 -# Filipe Cifali , 2016 -# dudanogueira , 2012 -# Elyézer Rezende , 2013 -# Fábio C. Barrionuevo da Luz , 2015 -# Fabio Cerqueira , 2019 -# Francisco Petry Rauber , 2016 -# Gladson , 2013 -# Guilherme Ferreira , 2017 -# semente, 2012-2013 -# Jannis Leidel , 2011 -# João Paulo Andrade , 2018 -# Jonas Rodrigues, 2023 -# Lucas Infante , 2015 -# Luiz Boaretto , 2017 -# Marssal Jr. , 2022 -# Marcelo Moro Brondani , 2018 -# Marco Rougeth , 2015 -# Otávio Reis , 2018 -# Raysa Dutra, 2016 -# R.J Lelis , 2019 -# Samuel Nogueira Bacelar , 2020 -# Sergio Garcia , 2015 -# Tomaz Marcelino Cunha Neto , 2022 -# Vinícius Damaceno , 2019 -# Vinícius Muniz de Melo , 2019 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Jonas Rodrigues, 2023\n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/django/django/" -"language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Remover %(verbose_name_plural)s selecionados" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Removido %(count)d %(items)s com sucesso." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Não é possível excluir %(name)s " - -msgid "Are you sure?" -msgstr "Tem certeza?" - -msgid "Administration" -msgstr "Administração" - -msgid "All" -msgstr "Todos" - -msgid "Yes" -msgstr "Sim" - -msgid "No" -msgstr "Não" - -msgid "Unknown" -msgstr "Desconhecido" - -msgid "Any date" -msgstr "Qualquer data" - -msgid "Today" -msgstr "Hoje" - -msgid "Past 7 days" -msgstr "Últimos 7 dias" - -msgid "This month" -msgstr "Este mês" - -msgid "This year" -msgstr "Este ano" - -msgid "No date" -msgstr "Sem data" - -msgid "Has date" -msgstr "Tem data" - -msgid "Empty" -msgstr "Vazio" - -msgid "Not empty" -msgstr "Não está vazio" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Por favor, insira um %(username)s e senha corretos para uma conta de equipe. " -"Note que ambos campos são sensíveis a maiúsculas e minúsculas." - -msgid "Action:" -msgstr "Ação:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Adicionar outro(a) %(verbose_name)s" - -msgid "Remove" -msgstr "Remover" - -msgid "Addition" -msgstr "Adição" - -msgid "Change" -msgstr "Modificar" - -msgid "Deletion" -msgstr "Eliminação" - -msgid "action time" -msgstr "hora da ação" - -msgid "user" -msgstr "usuário" - -msgid "content type" -msgstr "tipo de conteúdo" - -msgid "object id" -msgstr "id do objeto" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr do objeto" - -msgid "action flag" -msgstr "flag de ação" - -msgid "change message" -msgstr "modificar mensagem" - -msgid "log entry" -msgstr "entrada de log" - -msgid "log entries" -msgstr "entradas de log" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Adicionado “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Alterado “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Deletado “%(object)s.”" - -msgid "LogEntry Object" -msgstr "Objeto LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Adicionado {name} “{object}”." - -msgid "Added." -msgstr "Adicionado." - -msgid "and" -msgstr "e" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Alterado {fields} para {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Alterado {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Deletado {name} “{object}”." - -msgid "No fields changed." -msgstr "Nenhum campo modificado." - -msgid "None" -msgstr "Nenhum" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "Pressione “Control”, ou “Command” no Mac, para selecionar mais de um." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "O {name} “{obj}” foi adicionado com sucesso." - -msgid "You may edit it again below." -msgstr "Você pode editá-lo novamente abaixo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"O {name} “{obj}” foi adicionado com sucesso. Você pode adicionar outro " -"{name} abaixo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"O {name} “{obj}” foi alterado com sucesso. Você pode alterá-lo novamente " -"abaixo." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"O {name} “{obj}” foi adicionado com sucesso. Você pode editá-lo novamente " -"abaixo." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"O {name} “{obj}” foi alterado com sucesso. Você talvez adicione outro " -"{name} abaixo." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "O {name} “{obj}” foi alterado com sucesso." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Os itens devem ser selecionados em ordem a fim de executar ações sobre eles. " -"Nenhum item foi modificado." - -msgid "No action selected." -msgstr "Nenhuma ação selecionada." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "O %(name)s “%(obj)s” foi deletado com sucesso." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "O %(name)s com ID “%(key)s” não existe. Talvez tenha sido deletado." - -#, python-format -msgid "Add %s" -msgstr "Adicionar %s" - -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -#, python-format -msgid "View %s" -msgstr "Visualizar %s" - -msgid "Database error" -msgstr "Erro no banco de dados" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s modificado com sucesso." -msgstr[1] "%(count)s %(name)s modificados com sucesso." -msgstr[2] "%(count)s %(name)s modificados com sucesso." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s selecionado" -msgstr[1] "Todos %(total_count)s selecionados" -msgstr[2] "Todos %(total_count)s selecionados" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 de %(cnt)s selecionados" - -#, python-format -msgid "Change history: %s" -msgstr "Histórico de modificações: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Excluir o %(class_name)s %(instance)s exigiria excluir os seguintes objetos " -"protegidos relacionados: %(related_objects)s" - -msgid "Django site admin" -msgstr "Site de administração do Django" - -msgid "Django administration" -msgstr "Administração do Django" - -msgid "Site administration" -msgstr "Administração do Site" - -msgid "Log in" -msgstr "Acessar" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s administração" - -msgid "Page not found" -msgstr "Página não encontrada" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Lamentamos, mas a página requisitada não pode ser encontrada." - -msgid "Home" -msgstr "Início" - -msgid "Server error" -msgstr "Erro no servidor" - -msgid "Server error (500)" -msgstr "Erro no servidor (500)" - -msgid "Server Error (500)" -msgstr "Erro no Servidor (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ocorreu um erro. Este foi reportado para os administradores do site via " -"email e deve ser corrigido logo. Obirgado por sua paciência." - -msgid "Run the selected action" -msgstr "Executar ação selecionada" - -msgid "Go" -msgstr "Ir" - -msgid "Click here to select the objects across all pages" -msgstr "Clique aqui para selecionar os objetos de todas as páginas" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Selecionar todos %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Limpar seleção" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modelos na aplicação %(name)s" - -msgid "Add" -msgstr "Adicionar" - -msgid "View" -msgstr "Visualizar" - -msgid "You don’t have permission to view or edit anything." -msgstr "Você não tem permissão para ver ou editar nada." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Primeiro, informe seu nome de usuário e senha. Então, você poderá editar " -"outras opções do usuário." - -msgid "Enter a username and password." -msgstr "Digite um nome de usuário e senha." - -msgid "Change password" -msgstr "Alterar senha" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Por favor corrija o erro abaixo." -msgstr[1] "Por favor corrija os erros abaixo." -msgstr[2] "Por favor corrija os erros abaixo." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Informe uma nova senha para o usuário %(username)s." - -msgid "Skip to main content" -msgstr "Pule o conteúdo principal" - -msgid "Welcome," -msgstr "Bem-vindo(a)," - -msgid "View site" -msgstr "Ver o site" - -msgid "Documentation" -msgstr "Documentação" - -msgid "Log out" -msgstr "Encerrar sessão" - -msgid "Breadcrumbs" -msgstr "Migalhas de pão" - -#, python-format -msgid "Add %(name)s" -msgstr "Adicionar %(name)s" - -msgid "History" -msgstr "Histórico" - -msgid "View on site" -msgstr "Ver no site" - -msgid "Filter" -msgstr "Filtro" - -msgid "Clear all filters" -msgstr "Limpar todos os filtros" - -msgid "Remove from sorting" -msgstr "Remover da ordenação" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioridade da ordenação: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Alternar ordenção" - -msgid "Toggle theme (current theme: auto)" -msgstr "Alternar tema (tema atual: automático)" - -msgid "Toggle theme (current theme: light)" -msgstr "Alternar tema (tema atual: claro)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Alternar tema (tema atual: escuro)" - -msgid "Delete" -msgstr "Apagar" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"A remoção de '%(object_name)s' %(escaped_object)s pode resultar na remoção " -"de objetos relacionados, mas sua conta não tem a permissão para remoção dos " -"seguintes tipos de objetos:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Excluir o %(object_name)s ' %(escaped_object)s ' exigiria excluir os " -"seguintes objetos protegidos relacionados:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Você tem certeza que quer remover %(object_name)s \"%(escaped_object)s\"? " -"Todos os seguintes itens relacionados serão removidos:" - -msgid "Objects" -msgstr "Objetos" - -msgid "Yes, I’m sure" -msgstr "Sim, eu tenho certeza" - -msgid "No, take me back" -msgstr "Não, me leve de volta" - -msgid "Delete multiple objects" -msgstr "Remover múltiplos objetos" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Excluir o %(objects_name)s selecionado pode resultar na remoção de objetos " -"relacionados, mas sua conta não tem permissão para excluir os seguintes " -"tipos de objetos:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Excluir o %(objects_name)s selecionado exigiria excluir os seguintes objetos " -"relacionados protegidos:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Tem certeza de que deseja apagar o %(objects_name)s selecionado? Todos os " -"seguintes objetos e seus itens relacionados serão removidos:" - -msgid "Delete?" -msgstr "Apagar?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Por %(filter_title)s " - -msgid "Summary" -msgstr "Resumo" - -msgid "Recent actions" -msgstr "Ações recentes" - -msgid "My actions" -msgstr "Minhas Ações" - -msgid "None available" -msgstr "Nenhum disponível" - -msgid "Unknown content" -msgstr "Conteúdo desconhecido" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Alguma coisa está errada com sua estalação do banco de dados. Certifique-se " -"que as tabelas apropriadas foram criadas, e certifique-se que o banco de " -"dados pode ser acessado pelo usuário apropriado." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Você está autenticado como %(username)s, mas não está autorizado a acessar " -"esta página. Você gostaria de realizar login com uma conta diferente?" - -msgid "Forgotten your password or username?" -msgstr "Esqueceu sua senha ou nome de usuário?" - -msgid "Toggle navigation" -msgstr "Alternar navegação" - -msgid "Sidebar" -msgstr "Barra Lateral" - -msgid "Start typing to filter…" -msgstr "Comece a digitar para filtrar…" - -msgid "Filter navigation items" -msgstr "Filtrar itens de navegação" - -msgid "Date/time" -msgstr "Data/hora" - -msgid "User" -msgstr "Usuário" - -msgid "Action" -msgstr "Ação" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "entrada" -msgstr[1] "entradas" -msgstr[2] "entradas" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Este objeto não tem histórico de alterações. Provavelmente não adicionado " -"por este site de administração." - -msgid "Show all" -msgstr "Mostrar tudo" - -msgid "Save" -msgstr "Salvar" - -msgid "Popup closing…" -msgstr "Popup fechando…" - -msgid "Search" -msgstr "Pesquisar" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultado" -msgstr[1] "%(counter)s resultados" -msgstr[2] "%(counter)s resultados" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s total" - -msgid "Save as new" -msgstr "Salvar como novo" - -msgid "Save and add another" -msgstr "Salvar e adicionar outro(a)" - -msgid "Save and continue editing" -msgstr "Salvar e continuar editando" - -msgid "Save and view" -msgstr "Salvar e visualizar" - -msgid "Close" -msgstr "Fechar" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Alterar %(model)s selecionado" - -#, python-format -msgid "Add another %(model)s" -msgstr "Adicionar outro %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Excluir %(model)s selecionado" - -#, python-format -msgid "View selected %(model)s" -msgstr "Visualizar %(model)s selecionados" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Obrigado por passar algum tempo de qualidade com o site hoje." - -msgid "Log in again" -msgstr "Acessar novamente" - -msgid "Password change" -msgstr "Alterar senha" - -msgid "Your password was changed." -msgstr "Sua senha foi alterada." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Informe sua senha antiga por favor, por motivos de segurança, e então " -"informe sua nova senha duas vezes para que possamos verificar se você " -"digitou tudo corretamente." - -msgid "Change my password" -msgstr "Alterar minha senha" - -msgid "Password reset" -msgstr "Recuperar senha" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Sua senha foi definida. Você pode prosseguir e se autenticar agora." - -msgid "Password reset confirmation" -msgstr "Confirmação de recuperação de senha" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Por favor, informe sua nova senha duas vezes para que possamos verificar se " -"você a digitou corretamente." - -msgid "New password:" -msgstr "Nova senha:" - -msgid "Confirm password:" -msgstr "Confirme a senha:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"O link para a recuperação de senha era inválido, possivelmente porque já foi " -"utilizado. Por favor, solicite uma nova recuperação de senha." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Nos te enviamos um email com instruções para configurar sua senha, se uma " -"conta existe com o email fornecido. Você receberá a mensagem em breve." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Se você não recebeu um email, por favor certifique-se que você forneceu o " -"endereço que você está cadastrado, e verifique sua pasta de spam." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Você está recebendo este email porque solicitou a redefinição da senha da " -"sua conta em %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Por favor, acesse a seguinte página e escolha uma nova senha:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Seu nome de usuário, caso tenha esquecido:" - -msgid "Thanks for using our site!" -msgstr "Obrigado por usar nosso site!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Equipe %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Esqueceu sua senha? Forneça seu endereço de email abaixo, e nos te " -"enviaremos um email com instruções para configurar uma nova." - -msgid "Email address:" -msgstr "Endereço de email:" - -msgid "Reset my password" -msgstr "Reinicializar minha senha" - -msgid "All dates" -msgstr "Todas as datas" - -#, python-format -msgid "Select %s" -msgstr "Selecione %s" - -#, python-format -msgid "Select %s to change" -msgstr "Selecione %s para modificar" - -#, python-format -msgid "Select %s to view" -msgstr "Selecione %s para visualizar" - -msgid "Date:" -msgstr "Data:" - -msgid "Time:" -msgstr "Hora:" - -msgid "Lookup" -msgstr "Procurar" - -msgid "Currently:" -msgstr "Atualmente:" - -msgid "Change:" -msgstr "Alterar:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo deleted file mode 100644 index b2e8b4c..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po deleted file mode 100644 index 10616f1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,288 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Allisson Azevedo , 2014 -# andrewsmedina , 2016 -# Eduardo Cereto Carvalho, 2011 -# semente, 2012 -# Jannis Leidel , 2011 -# Jonas Rodrigues, 2023 -# Lucas Infante , 2015 -# Marssal Jr. , 2022 -# Rafael Fontenelle , 2021 -# Renata Barbosa Almeida , 2016 -# Samuel Nogueira Bacelar , 2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Jonas Rodrigues, 2023\n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/django/django/" -"language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s disponíveis" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Esta é a lista de %s disponíveis. Você pode escolhê-los(as) selecionando-" -"os(as) abaixo e clicando na seta \"Escolher\" entre as duas caixas." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Digite nessa caixa para filtrar a lista de %s disponíveis." - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Escolher todos" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Clique para escolher todos os %s de uma só vez" - -msgid "Choose" -msgstr "Escolher" - -msgid "Remove" -msgstr "Remover" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s escolhido(s)" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Esta é a lista de %s disponíveis. Você pode removê-los(as) selecionando-" -"os(as) abaixo e clicando na seta \"Remover\" entre as duas caixas." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Digite nesta caixa para filtrar a lista de selecionados %s." - -msgid "Remove all" -msgstr "Remover todos" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Clique para remover de uma só vez todos os %s escolhidos." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s de %(cnt)s selecionado" -msgstr[1] "%(sel)s de %(cnt)s selecionados" -msgstr[2] "%(sel)s de %(cnt)s selecionados" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Você tem alterações não salvas em campos editáveis individuais. Se você " -"executar uma ação suas alterações não salvas serão perdidas." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Você selecionou uma ação, mas você ainda não salvou suas alterações nos " -"campos individuais. Por favor clique OK para salvar. você precisará de rodar " -"novamente a ação." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Você selecionou uma ação sem fazer mudanças nos campos individuais. Você " -"provavelmente está procurando pelo botão Go ao invés do botão Save." - -msgid "Now" -msgstr "Agora" - -msgid "Midnight" -msgstr "Meia-noite" - -msgid "6 a.m." -msgstr "6 da manhã" - -msgid "Noon" -msgstr "Meio-dia" - -msgid "6 p.m." -msgstr "6 da tarde" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Nota: Você está %s hora à frente do horário do servidor." -msgstr[1] "Nota: Você está %s horas à frente do horário do servidor." -msgstr[2] "Nota: Você está %s horas à frente do horário do servidor." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Nota: Você está %s hora atrás do tempo do servidor." -msgstr[1] "Nota: Você está %s horas atrás do horário do servidor." -msgstr[2] "Nota: Você está %s horas atrás do horário do servidor." - -msgid "Choose a Time" -msgstr "Escolha um horário" - -msgid "Choose a time" -msgstr "Escolha uma hora" - -msgid "Cancel" -msgstr "Cancelar" - -msgid "Today" -msgstr "Hoje" - -msgid "Choose a Date" -msgstr "Escolha uma data" - -msgid "Yesterday" -msgstr "Ontem" - -msgid "Tomorrow" -msgstr "Amanhã" - -msgid "January" -msgstr "Janeiro" - -msgid "February" -msgstr "Fevereiro" - -msgid "March" -msgstr "Março" - -msgid "April" -msgstr "Abril" - -msgid "May" -msgstr "Maio" - -msgid "June" -msgstr "Junho" - -msgid "July" -msgstr "Julho" - -msgid "August" -msgstr "Agosto" - -msgid "September" -msgstr "Setembro" - -msgid "October" -msgstr "Outubro" - -msgid "November" -msgstr "Novembro" - -msgid "December" -msgstr "Dezembro" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Fev" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Abr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Mai" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Ago" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Set" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Out" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dez" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "S" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Q" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Q" - -msgctxt "one letter Friday" -msgid "F" -msgstr "S" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Mostrar" - -msgid "Hide" -msgstr "Esconder" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.mo deleted file mode 100644 index 4fe6d2e..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.po deleted file mode 100644 index f328477..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/django.po +++ /dev/null @@ -1,758 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Bogdan Mateescu, 2018-2019 -# Daniel Ursache-Dogariu, 2011,2022 -# Denis Darii , 2011,2014 -# Eugenol Man , 2020 -# Ionel Cristian Mărieș , 2012 -# Jannis Leidel , 2011 -# Mihai Fotea , 2020 -# Razvan Stefanescu , 2015-2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Daniel Ursache-Dogariu, 2011,2022\n" -"Language-Team: Romanian (http://www.transifex.com/django/django/language/" -"ro/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" -"2:1));\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Elimină %(verbose_name_plural)s selectate" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s șterse cu succes." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Nu se poate șterge %(name)s" - -msgid "Are you sure?" -msgstr "Sigur?" - -msgid "Administration" -msgstr "Administrare" - -msgid "All" -msgstr "Toate" - -msgid "Yes" -msgstr "Da" - -msgid "No" -msgstr "Nu" - -msgid "Unknown" -msgstr "Necunoscut" - -msgid "Any date" -msgstr "Orice dată" - -msgid "Today" -msgstr "Astăzi" - -msgid "Past 7 days" -msgstr "Ultimele 7 zile" - -msgid "This month" -msgstr "Luna aceasta" - -msgid "This year" -msgstr "Anul acesta" - -msgid "No date" -msgstr "Fără dată" - -msgid "Has date" -msgstr "Are dată" - -msgid "Empty" -msgstr "Gol" - -msgid "Not empty" -msgstr "Nu este gol" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Introduceți vă rog un %(username)s și parola corectă pentru un cont de " -"membru. De remarcat că ambele pot conține majuscule." - -msgid "Action:" -msgstr "Acțiune:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Adăugati încă un/o %(verbose_name)s" - -msgid "Remove" -msgstr "Elimină" - -msgid "Addition" -msgstr "Adăugare" - -msgid "Change" -msgstr "Schimbare" - -msgid "Deletion" -msgstr "Ștergere" - -msgid "action time" -msgstr "timp acțiune" - -msgid "user" -msgstr "utilizator" - -msgid "content type" -msgstr "tip de conținut" - -msgid "object id" -msgstr "id obiect" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "repr obiect" - -msgid "action flag" -msgstr "marcaj acțiune" - -msgid "change message" -msgstr "mesaj schimbare" - -msgid "log entry" -msgstr "intrare jurnal" - -msgid "log entries" -msgstr "intrări jurnal" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Adăugat %(object)s" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Schimbat “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Șters “%(object)s.”" - -msgid "LogEntry Object" -msgstr "Obiect LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Adăugat {name} “{object}”." - -msgid "Added." -msgstr "Adăugat." - -msgid "and" -msgstr "și" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{fields} schimbat pentru {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "S-au schimbat {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Șters {name} “{object}”." - -msgid "No fields changed." -msgstr "Niciun câmp modificat." - -msgid "None" -msgstr "Nimic" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\" a fost adăugat cu succes." - -msgid "You may edit it again below." -msgstr "Poți edita din nou mai jos." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} \"{obj}\" a fost adăugat cu succes. Poți adăuga alt {name} mai jos." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\" a fost modificat cu succes. Poți să editezi în continuare " -"mai jos." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\" a fost adăugat cu succes. Poți să editezi în continuare mai " -"jos." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} \"{obj}\" a fost modificat cu succes. Poți adăuga alt {name} mai jos." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\" a fost schimbat cu succes." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Itemii trebuie selectați pentru a putea îndeplini sarcini asupra lor. Niciun " -"item nu a fost modificat." - -msgid "No action selected." -msgstr "Nicio acțiune selectată." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Adaugă %s" - -#, python-format -msgid "Change %s" -msgstr "Schimbă %s" - -#, python-format -msgid "View %s" -msgstr "Vizualizează %s" - -msgid "Database error" -msgstr "Eroare de bază de date" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s s-a modificat cu succes." -msgstr[1] "%(count)s %(name)s s-au modificat cu succes." -msgstr[2] "%(count)s de %(name)s s-au modificat cu succes." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s selectat(ă)" -msgstr[1] "Toate %(total_count)s selectate" -msgstr[2] "Toate %(total_count)s selectate" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 din %(cnt)s selectat" - -#, python-format -msgid "Change history: %s" -msgstr "Istoric schimbări: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Ștergerea %(class_name)s %(instance)s ar necesita ștergerea următoarelor " -"obiecte asociate protejate: %(related_objects)s" - -msgid "Django site admin" -msgstr "Administrare site Django" - -msgid "Django administration" -msgstr "Administrare Django" - -msgid "Site administration" -msgstr "Administrare site" - -msgid "Log in" -msgstr "Autentificare" - -#, python-format -msgid "%(app)s administration" -msgstr "administrare %(app)s" - -msgid "Page not found" -msgstr "Pagină inexistentă" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Din păcate nu am găsit pagina solicitată" - -msgid "Home" -msgstr "Acasă" - -msgid "Server error" -msgstr "Eroare de server" - -msgid "Server error (500)" -msgstr "Eroare de server (500)" - -msgid "Server Error (500)" -msgstr "Eroare server (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Pornește acțiunea selectată" - -msgid "Go" -msgstr "Start" - -msgid "Click here to select the objects across all pages" -msgstr "Clic aici pentru a selecta obiectele la nivelul tuturor paginilor" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Selectați toate %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Deselectați" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modele în aplicația %(name)s" - -msgid "Add" -msgstr "Adaugă" - -msgid "View" -msgstr "Vizualizează" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "Introduceți un nume de utilizator și o parolă." - -msgid "Change password" -msgstr "Schimbă parola" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Introduceți o parolă nouă pentru utilizatorul %(username)s." - -msgid "Skip to main content" -msgstr "" - -msgid "Welcome," -msgstr "Bun venit," - -msgid "View site" -msgstr "Vizualizare site" - -msgid "Documentation" -msgstr "Documentație" - -msgid "Log out" -msgstr "Deconectează-te" - -msgid "Breadcrumbs" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "Adaugă %(name)s" - -msgid "History" -msgstr "Istoric" - -msgid "View on site" -msgstr "Vizualizează pe site" - -msgid "Filter" -msgstr "Filtru" - -msgid "Clear all filters" -msgstr "Șterge toate filtrele" - -msgid "Remove from sorting" -msgstr "Elimină din sortare" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioritate sortare: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Alternează sortarea" - -msgid "Toggle theme (current theme: auto)" -msgstr "" - -msgid "Toggle theme (current theme: light)" -msgstr "" - -msgid "Toggle theme (current theme: dark)" -msgstr "" - -msgid "Delete" -msgstr "Șterge" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Ștergerea %(object_name)s '%(escaped_object)s' va duce și la ștergerea " -"obiectelor asociate, însă contul dumneavoastră nu are permisiunea de a " -"șterge următoarele tipuri de obiecte:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Ștergerea %(object_name)s '%(escaped_object)s' ar putea necesita și " -"ștergerea următoarelor obiecte protejate asociate:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Sigur doriți ștergerea %(object_name)s \"%(escaped_object)s\"? Următoarele " -"itemuri asociate vor fi șterse:" - -msgid "Objects" -msgstr "Obiecte" - -msgid "Yes, I’m sure" -msgstr "Da, sunt sigur" - -msgid "No, take me back" -msgstr "Nu, vreau să mă întorc" - -msgid "Delete multiple objects" -msgstr "Ștergeți obiecte multiple" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Ștergerea %(objects_name)s conform selecției ar putea duce la ștergerea " -"obiectelor asociate, însă contul dvs. de utilizator nu are permisiunea de a " -"șterge următoarele tipuri de obiecte:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Ştergerea %(objects_name)s conform selecției ar necesita și ștergerea " -"următoarelor obiecte protejate asociate:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Sigur doriţi să ștergeți %(objects_name)s conform selecției? Toate obiectele " -"următoare alături de cele asociate lor vor fi șterse:" - -msgid "Delete?" -msgstr "Elimină?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "După %(filter_title)s " - -msgid "Summary" -msgstr "Sumar" - -msgid "Recent actions" -msgstr "Acțiuni recente" - -msgid "My actions" -msgstr "Acțiunile mele" - -msgid "None available" -msgstr "Niciuna" - -msgid "Unknown content" -msgstr "Conținut necunoscut" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Sunteți autentificat ca %(username)s, dar nu sunteți autorizat să accesați " -"această pagină. Doriți să vă autentificați cu un alt cont?" - -msgid "Forgotten your password or username?" -msgstr "Ați uitat parola sau utilizatorul ?" - -msgid "Toggle navigation" -msgstr "Comutare navigație" - -msgid "Sidebar" -msgstr "" - -msgid "Start typing to filter…" -msgstr "Începeți să scrieți pentru filtrare..." - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Dată/oră" - -msgid "User" -msgstr "Utilizator" - -msgid "Action" -msgstr "Acțiune" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "Arată totul" - -msgid "Save" -msgstr "Salvează" - -msgid "Popup closing…" -msgstr "Fereastra se închide..." - -msgid "Search" -msgstr "Caută" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s rezultat" -msgstr[1] "%(counter)s rezultate" -msgstr[2] "%(counter)s de rezultate" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s în total" - -msgid "Save as new" -msgstr "Salvați ca nou" - -msgid "Save and add another" -msgstr "Salvați și mai adăugați" - -msgid "Save and continue editing" -msgstr "Salvați și continuați editarea" - -msgid "Save and view" -msgstr "Salvează și vizualizează" - -msgid "Close" -msgstr "Închide" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Modifică %(model)s selectat" - -#, python-format -msgid "Add another %(model)s" -msgstr "Adaugă alt %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Șterge %(model)s selectat" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Reautentificare" - -msgid "Password change" -msgstr "Schimbare parolă" - -msgid "Your password was changed." -msgstr "Parola a fost schimbată." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Vă rog introduceți parola veche, pentru securitate, apoi introduceți parola " -"nouă de doua ori pentru a verifica dacă a fost scrisă corect. " - -msgid "Change my password" -msgstr "Schimbă-mi parola" - -msgid "Password reset" -msgstr "Resetare parolă" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Parola dumneavoastră a fost stabilită. Acum puteți continua să vă " -"autentificați." - -msgid "Password reset confirmation" -msgstr "Confirmare resetare parolă" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Introduceți parola de două ori, pentru a putea verifica dacă ați scris-o " -"corect." - -msgid "New password:" -msgstr "Parolă nouă:" - -msgid "Confirm password:" -msgstr "Confirmare parolă:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Link-ul de resetare a parolei a fost nevalid, probabil din cauză că acesta a " -"fost deja utilizat. Solicitați o nouă resetare a parolei." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Am trimis instrucțiuni pentru a seta parola, daca există un cont cu email-ul " -"introdus. O sa-l primiți cât de curând." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Dacă nu ați primit un email, verificați vă rog dacă ați introdus adresa cu " -"care v-ați înregistrat și verificați si folderul Spam." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Primiți acest email deoarece ați cerut o resetare a parolei pentru contul de " -"utilizator de la %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Mergeți la următoarea pagină și alegeți o parolă nouă:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Numele tău de utilizator, în caz că l-ai uitat:" - -msgid "Thanks for using our site!" -msgstr "Mulțumiri pentru utilizarea sitului nostru!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Echipa %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Ați uitat parola ? Introduceți adresa de email mai jos și vă vom trimite " -"instrucțiuni pentru o parolă nouă." - -msgid "Email address:" -msgstr "Adresă e-mail:" - -msgid "Reset my password" -msgstr "Resetează-mi parola" - -msgid "All dates" -msgstr "Toate datele" - -#, python-format -msgid "Select %s" -msgstr "Selectează %s" - -#, python-format -msgid "Select %s to change" -msgstr "Selectează %s pentru schimbare" - -#, python-format -msgid "Select %s to view" -msgstr "Selecteză %s pentru a vizualiza" - -msgid "Date:" -msgstr "Dată:" - -msgid "Time:" -msgstr "Oră:" - -msgid "Lookup" -msgstr "Căutare" - -msgid "Currently:" -msgstr "În prezent:" - -msgid "Change:" -msgstr "Schimbă:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 59f694e..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po deleted file mode 100644 index e681dde..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,228 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Bogdan Mateescu, 2018-2019 -# Daniel Ursache-Dogariu, 2011 -# Denis Darii , 2011 -# Eugenol Man , 2020 -# Ionel Cristian Mărieș , 2012 -# Jannis Leidel , 2011 -# razvan ionescu , 2015 -# Razvan Stefanescu , 2016-2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-07-15 11:16+0000\n" -"Last-Translator: Eugenol Man \n" -"Language-Team: Romanian (http://www.transifex.com/django/django/language/" -"ro/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" -"2:1));\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s disponibil" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Aceasta este o listă cu %s disponibile. Le puteți alege selectând mai multe " -"in chenarul de mai jos și apăsând pe săgeata \"Alege\" dintre cele două " -"chenare." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Scrie în acest chenar pentru a filtra lista de %s disponibile." - -msgid "Filter" -msgstr "Filtru" - -msgid "Choose all" -msgstr "Alege toate" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Click pentru a alege toate %s." - -msgid "Choose" -msgstr "Alege" - -msgid "Remove" -msgstr "Elimină" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s alese" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Aceasta este lista de %s alese. Puteți elimina din ele selectându-le in " -"chenarul de mai jos și apasand pe săgeata \"Elimină\" dintre cele două " -"chenare." - -msgid "Remove all" -msgstr "Elimină toate" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Click pentru a elimina toate %s alese." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s din %(cnt)s selectate" -msgstr[1] "%(sel)s din %(cnt)s selectate" -msgstr[2] "de %(sel)s din %(cnt)s selectate" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Aveţi modificări nesalvate în cîmpuri individuale editabile. Dacă executaţi " -"o acțiune, modificările nesalvate vor fi pierdute." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Ai selectat o acțiune dar nu ai salvat modificările făcute în câmpuri " -"individuale. Te rugăm apasa Ok pentru a salva. Va trebui sa reiei acțiunea." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Ai selectat o acțiune și nu ai făcut modificări. Probabil că dorești butonul " -"de Go mai putin cel de Salvează." - -msgid "Now" -msgstr "Acum" - -msgid "Midnight" -msgstr "Miezul nopții" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Amiază" - -msgid "6 p.m." -msgstr "6 p.m." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Notă: Sunteți cu %s oră înaintea orei serverului." -msgstr[1] "Notă: Sunteți cu %s ore înaintea orei serverului." -msgstr[2] "Notă: Sunteți cu %s de ore înaintea orei serverului." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Notă: Sunteți cu %s oră în urma orei serverului." -msgstr[1] "Notă: Sunteți cu %s ore în urma orei serverului." -msgstr[2] "Notă: Sunteți cu %s de ore în urma orei serverului." - -msgid "Choose a Time" -msgstr "Alege o oră" - -msgid "Choose a time" -msgstr "Alege o oră" - -msgid "Cancel" -msgstr "Anulează" - -msgid "Today" -msgstr "Astăzi" - -msgid "Choose a Date" -msgstr "Alege o dată" - -msgid "Yesterday" -msgstr "Ieri" - -msgid "Tomorrow" -msgstr "Mâine" - -msgid "January" -msgstr "Ianuarie" - -msgid "February" -msgstr "Februarie" - -msgid "March" -msgstr "Martie" - -msgid "April" -msgstr "Aprilie" - -msgid "May" -msgstr "Mai" - -msgid "June" -msgstr "Iunie" - -msgid "July" -msgstr "Iulie" - -msgid "August" -msgstr "August" - -msgid "September" -msgstr "Septembrie" - -msgid "October" -msgstr "Octombrie" - -msgid "November" -msgstr "Noiembrie" - -msgid "December" -msgstr "Decembrie" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "L" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "M" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "M" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "J" - -msgctxt "one letter Friday" -msgid "F" -msgstr "V" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Arată" - -msgid "Hide" -msgstr "Ascunde" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo deleted file mode 100644 index 3042369..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.po deleted file mode 100644 index 6c70722..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/django.po +++ /dev/null @@ -1,756 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Alex Ibragimov, 2021 -# Ivan Ivaschenko , 2013 -# Denis Darii , 2011 -# Dimmus , 2011 -# Eugene , 2016-2017 -# crazyzubr , 2020 -# Sergey , 2016 -# Jannis Leidel , 2011 -# SeryiMysh , 2020 -# Алексей Борискин , 2012-2015,2022 -# Дмитрий , 2019 -# Bobsans , 2018 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2022-05-25 07:05+0000\n" -"Last-Translator: Алексей Борискин , 2012-2015,2022\n" -"Language-Team: Russian (http://www.transifex.com/django/django/language/" -"ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " -"(n%100>=11 && n%100<=14)? 2 : 3);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Удалить выбранные %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Успешно удалены %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Не удается удалить %(name)s" - -msgid "Are you sure?" -msgstr "Вы уверены?" - -msgid "Administration" -msgstr "Администрирование" - -msgid "All" -msgstr "Все" - -msgid "Yes" -msgstr "Да" - -msgid "No" -msgstr "Нет" - -msgid "Unknown" -msgstr "Неизвестно" - -msgid "Any date" -msgstr "Любая дата" - -msgid "Today" -msgstr "Сегодня" - -msgid "Past 7 days" -msgstr "Последние 7 дней" - -msgid "This month" -msgstr "Этот месяц" - -msgid "This year" -msgstr "Этот год" - -msgid "No date" -msgstr "Дата не указана" - -msgid "Has date" -msgstr "Дата указана" - -msgid "Empty" -msgstr "Пусто" - -msgid "Not empty" -msgstr "Не пусто" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Пожалуйста, введите корректные %(username)s и пароль учётной записи. Оба " -"поля могут быть чувствительны к регистру." - -msgid "Action:" -msgstr "Действие:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Добавить еще один %(verbose_name)s" - -msgid "Remove" -msgstr "Удалить" - -msgid "Addition" -msgstr "Добавление" - -msgid "Change" -msgstr "Изменить" - -msgid "Deletion" -msgstr "Удаление" - -msgid "action time" -msgstr "время действия" - -msgid "user" -msgstr "пользователь" - -msgid "content type" -msgstr "тип содержимого" - -msgid "object id" -msgstr "идентификатор объекта" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "представление объекта" - -msgid "action flag" -msgstr "тип действия" - -msgid "change message" -msgstr "сообщение об изменении" - -msgid "log entry" -msgstr "запись в журнале" - -msgid "log entries" -msgstr "записи в журнале" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Добавлено “%(object)s“." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Изменено “%(object)s“ - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Удалено “%(object)s.“" - -msgid "LogEntry Object" -msgstr "Запись в журнале" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Добавлен {name} “{object}“." - -msgid "Added." -msgstr "Добавлено." - -msgid "and" -msgstr "и" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Изменено {fields} у {name} “{object}“." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Изменено {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Удален {name} “{object}“." - -msgid "No fields changed." -msgstr "Ни одно поле не изменено." - -msgid "None" -msgstr "Нет" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Удерживайте “Control“ (или “Command“ на Mac), чтобы выбрать несколько " -"значений." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\" был успешно добавлен." - -msgid "You may edit it again below." -msgstr "Вы можете снова изменить этот объект ниже." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}“ был успешно добавлен. Вы можете добавить еще один {name} ниже." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} “{obj}“ был изменен успешно. Вы можете отредактировать его снова ниже." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} “{obj}“ был успешно добавлен. Вы можете отредактировать его еще раз " -"ниже." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} “{obj}“ был изменен. Вы можете добавить еще один {name} ниже." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}“ был успешно изменен." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Чтобы произвести действия над объектами, необходимо их выбрать. Объекты не " -"были изменены." - -msgid "No action selected." -msgstr "Действие не выбрано." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s“ был успешно удален." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s с ID “%(key)s“ не существует. Возможно оно было удалено?" - -#, python-format -msgid "Add %s" -msgstr "Добавить %s" - -#, python-format -msgid "Change %s" -msgstr "Изменить %s" - -#, python-format -msgid "View %s" -msgstr "Просмотреть %s" - -msgid "Database error" -msgstr "Ошибка базы данных" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s был успешно изменен." -msgstr[1] "%(count)s %(name)s были успешно изменены." -msgstr[2] "%(count)s %(name)s были успешно изменены." -msgstr[3] "%(count)s %(name)s были успешно изменены." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Выбран %(total_count)s" -msgstr[1] "Выбраны все %(total_count)s" -msgstr[2] "Выбраны все %(total_count)s" -msgstr[3] "Выбраны все %(total_count)s" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Выбрано 0 объектов из %(cnt)s " - -#, python-format -msgid "Change history: %s" -msgstr "История изменений: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Удаление объекта %(instance)s типа %(class_name)s будет требовать удаления " -"следующих связанных объектов: %(related_objects)s" - -msgid "Django site admin" -msgstr "Административный сайт Django" - -msgid "Django administration" -msgstr "Администрирование Django" - -msgid "Site administration" -msgstr "Администрирование сайта" - -msgid "Log in" -msgstr "Войти" - -#, python-format -msgid "%(app)s administration" -msgstr "Администрирование приложения «%(app)s»" - -msgid "Page not found" -msgstr "Страница не найдена" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "К сожалению, запрашиваемая вами страница не найдена." - -msgid "Home" -msgstr "Начало" - -msgid "Server error" -msgstr "Ошибка сервера" - -msgid "Server error (500)" -msgstr "Ошибка сервера (500)" - -msgid "Server Error (500)" -msgstr "Ошибка сервера (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Произошла ошибка. О ней сообщено администраторам сайта по электронной почте, " -"ошибка должна быть вскоре исправлена. Благодарим вас за терпение." - -msgid "Run the selected action" -msgstr "Выполнить выбранное действие" - -msgid "Go" -msgstr "Выполнить" - -msgid "Click here to select the objects across all pages" -msgstr "Нажмите здесь, чтобы выбрать объекты на всех страницах" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Выбрать все %(module_name)s (%(total_count)s)" - -msgid "Clear selection" -msgstr "Снять выделение" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Модели в приложении %(name)s" - -msgid "Add" -msgstr "Добавить" - -msgid "View" -msgstr "Просмотреть" - -msgid "You don’t have permission to view or edit anything." -msgstr "У вас недостаточно полномочий для просмотра или изменения чего либо." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Сначала введите имя пользователя и пароль. Затем вы сможете ввести больше " -"информации о пользователе." - -msgid "Enter a username and password." -msgstr "Введите имя пользователя и пароль." - -msgid "Change password" -msgstr "Изменить пароль" - -msgid "Please correct the error below." -msgstr "Пожалуйста, исправьте ошибку ниже." - -msgid "Please correct the errors below." -msgstr "Пожалуйста, исправьте ошибки ниже." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Введите новый пароль для пользователя %(username)s." - -msgid "Welcome," -msgstr "Добро пожаловать," - -msgid "View site" -msgstr "Открыть сайт" - -msgid "Documentation" -msgstr "Документация" - -msgid "Log out" -msgstr "Выйти" - -#, python-format -msgid "Add %(name)s" -msgstr "Добавить %(name)s" - -msgid "History" -msgstr "История" - -msgid "View on site" -msgstr "Смотреть на сайте" - -msgid "Filter" -msgstr "Фильтр" - -msgid "Clear all filters" -msgstr "Сбросить все фильтры" - -msgid "Remove from sorting" -msgstr "Удалить из сортировки" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Приоритет сортировки: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Сортировать в другом направлении" - -msgid "Delete" -msgstr "Удалить" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Удаление %(object_name)s '%(escaped_object)s' приведет к удалению связанных " -"объектов, но ваша учетная запись не имеет прав для удаления следующих типов " -"объектов:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Удаление %(object_name)s '%(escaped_object)s' потребует удаления следующих " -"связанных защищенных объектов:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Вы уверены, что хотите удалить %(object_name)s \"%(escaped_object)s\"? Все " -"следующие связанные объекты также будут удалены:" - -msgid "Objects" -msgstr "Объекты" - -msgid "Yes, I’m sure" -msgstr "Да, я уверен" - -msgid "No, take me back" -msgstr "Нет, отменить и вернуться к выбору" - -msgid "Delete multiple objects" -msgstr "Удалить несколько объектов" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Удаление выбранной %(objects_name)s приведет к удалению связанных объектов, " -"но ваша учетная запись не имеет прав на удаление следующих типов объектов:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Удаление %(objects_name)s потребует удаления следующих связанных защищенных " -"объектов:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Вы уверены, что хотите удалить %(objects_name)s? Все следующие объекты и " -"связанные с ними элементы будут удалены:" - -msgid "Delete?" -msgstr "Удалить?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s" - -msgid "Summary" -msgstr "Краткая статистика" - -msgid "Recent actions" -msgstr "Последние действия" - -msgid "My actions" -msgstr "Мои действия" - -msgid "None available" -msgstr "Недоступно" - -msgid "Unknown content" -msgstr "Неизвестный тип" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Ваша база данных неправильно настроена. Убедитесь, что соответствующие " -"таблицы были созданы, и что соответствующему пользователю разрешен к ним " -"доступ." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Вы вошли в систему как %(username)s, однако у вас недостаточно прав для " -"просмотра данной страницы. Возможно, вы хотели бы войти в систему, используя " -"другую учётную запись?" - -msgid "Forgotten your password or username?" -msgstr "Забыли свой пароль или имя пользователя?" - -msgid "Toggle navigation" -msgstr "Переключить навигацию" - -msgid "Start typing to filter…" -msgstr "Начните печатать для фильтрации..." - -msgid "Filter navigation items" -msgstr "Фильтр элементов навигации" - -msgid "Date/time" -msgstr "Дата и время" - -msgid "User" -msgstr "Пользователь" - -msgid "Action" -msgstr "Действие" - -msgid "entry" -msgstr "запись" - -msgid "entries" -msgstr "записи" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Данный объект не имеет истории изменений. Возможно, он был добавлен не через " -"данный административный сайт." - -msgid "Show all" -msgstr "Показать все" - -msgid "Save" -msgstr "Сохранить" - -msgid "Popup closing…" -msgstr "Всплывающее окно закрывается..." - -msgid "Search" -msgstr "Найти" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s результат" -msgstr[1] "%(counter)s результата" -msgstr[2] "%(counter)s результатов" -msgstr[3] "%(counter)s результатов" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s всего" - -msgid "Save as new" -msgstr "Сохранить как новый объект" - -msgid "Save and add another" -msgstr "Сохранить и добавить другой объект" - -msgid "Save and continue editing" -msgstr "Сохранить и продолжить редактирование" - -msgid "Save and view" -msgstr "Сохранить и просмотреть" - -msgid "Close" -msgstr "Закрыть" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Изменить выбранный объект типа \"%(model)s\"" - -#, python-format -msgid "Add another %(model)s" -msgstr "Добавить ещё один объект типа \"%(model)s\"" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Удалить выбранный объект типа \"%(model)s\"" - -#, python-format -msgid "View selected %(model)s" -msgstr "Просмотреть выбранный объект типа \"%(model)s\"" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Благодарим вас за время, проведенное на этом сайте." - -msgid "Log in again" -msgstr "Войти снова" - -msgid "Password change" -msgstr "Изменение пароля" - -msgid "Your password was changed." -msgstr "Ваш пароль был изменен." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"В целях безопасности, пожалуйста, введите свой старый пароль, затем введите " -"новый пароль дважды, чтобы мы могли убедиться в правильности написания." - -msgid "Change my password" -msgstr "Изменить мой пароль" - -msgid "Password reset" -msgstr "Восстановление пароля" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Ваш пароль был сохранен. Теперь вы можете войти." - -msgid "Password reset confirmation" -msgstr "Подтверждение восстановления пароля" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Пожалуйста, введите новый пароль дважды, чтобы мы могли убедиться в " -"правильности написания." - -msgid "New password:" -msgstr "Новый пароль:" - -msgid "Confirm password:" -msgstr "Подтвердите пароль:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Неверная ссылка для восстановления пароля. Возможно, ей уже воспользовались. " -"Пожалуйста, попробуйте восстановить пароль еще раз." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Мы отправили вам инструкцию по установке нового пароля на указанный адрес " -"электронной почты (если в нашей базе данных есть такой адрес). Вы должны " -"получить ее в ближайшее время." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Если вы не получили письмо, пожалуйста, убедитесь, что вы ввели адрес с " -"которым Вы зарегистрировались, и проверьте папку со спамом." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Вы получили это письмо, потому что вы (или кто-то другой) запросили " -"восстановление пароля от учётной записи на сайте %(site_name)s, которая " -"связана с этим адресом электронной почты." - -msgid "Please go to the following page and choose a new password:" -msgstr "Пожалуйста, перейдите на эту страницу и введите новый пароль:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Ваше имя пользователя (на случай, если вы его забыли):" - -msgid "Thanks for using our site!" -msgstr "Спасибо, что используете наш сайт!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Команда сайта %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Забыли пароль? Введите свой адрес электронной почты ниже, и мы вышлем вам " -"инструкцию, как установить новый пароль." - -msgid "Email address:" -msgstr "Адрес электронной почты:" - -msgid "Reset my password" -msgstr "Восстановить мой пароль" - -msgid "All dates" -msgstr "Все даты" - -#, python-format -msgid "Select %s" -msgstr "Выберите %s" - -#, python-format -msgid "Select %s to change" -msgstr "Выберите %s для изменения" - -#, python-format -msgid "Select %s to view" -msgstr "Выберите %s для просмотра" - -msgid "Date:" -msgstr "Дата:" - -msgid "Time:" -msgstr "Время:" - -msgid "Lookup" -msgstr "Поиск" - -msgid "Currently:" -msgstr "Сейчас:" - -msgid "Change:" -msgstr "Изменить:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 9c88ad0..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po deleted file mode 100644 index 78b814d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,293 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Claude Paroz , 2020 -# Denis Darii , 2011 -# Dimmus , 2011 -# Eugene , 2012 -# Eugene , 2016 -# crazyzubr , 2020 -# Jannis Leidel , 2011 -# Panasoft, 2021 -# Алексей Борискин , 2012,2014-2015,2022 -# Андрей Щуров , 2016 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-05-25 07:05+0000\n" -"Last-Translator: Алексей Борискин , 2012,2014-2015,2022\n" -"Language-Team: Russian (http://www.transifex.com/django/django/language/" -"ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " -"(n%100>=11 && n%100<=14)? 2 : 3);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Доступные %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Это список всех доступных %s. Вы можете выбрать некоторые из них, выделив их " -"в поле ниже и кликнув \"Выбрать\", либо двойным щелчком." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Начните вводить текст в этом поле, чтобы отфитровать список доступных %s." - -msgid "Filter" -msgstr "Фильтр" - -msgid "Choose all" -msgstr "Выбрать все" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Нажмите, чтобы выбрать все %s сразу." - -msgid "Choose" -msgstr "Выбрать" - -msgid "Remove" -msgstr "Удалить" - -#, javascript-format -msgid "Chosen %s" -msgstr "Выбранные %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Это список выбранных %s. Вы можете удалить некоторые из них, выделив их в " -"поле ниже и кликнув \"Удалить\", либо двойным щелчком." - -msgid "Remove all" -msgstr "Удалить все" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Нажмите чтобы удалить все %s сразу." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "Выбран %(sel)s из %(cnt)s" -msgstr[1] "Выбрано %(sel)s из %(cnt)s" -msgstr[2] "Выбрано %(sel)s из %(cnt)s" -msgstr[3] "Выбрано %(sel)s из %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Имеются несохраненные изменения в отдельных полях для редактирования. Если " -"вы запустите действие, несохраненные изменения будут потеряны." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Вы выбрали действие, но еще не сохранили изменения, внесенные в некоторых " -"полях для редактирования. Нажмите OK, чтобы сохранить изменения. После " -"сохранения вам придется запустить действие еще раз." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Вы выбрали действие и не внесли изменений в данные. Возможно, вы хотели " -"воспользоваться кнопкой \"Выполнить\", а не кнопкой \"Сохранить\". Если это " -"так, то нажмите \"Отмена\", чтобы вернуться в интерфейс редактирования." - -msgid "Now" -msgstr "Сейчас" - -msgid "Midnight" -msgstr "Полночь" - -msgid "6 a.m." -msgstr "6 утра" - -msgid "Noon" -msgstr "Полдень" - -msgid "6 p.m." -msgstr "6 вечера" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Внимание: Ваше локальное время опережает время сервера на %s час." -msgstr[1] "Внимание: Ваше локальное время опережает время сервера на %s часа." -msgstr[2] "Внимание: Ваше локальное время опережает время сервера на %s часов." -msgstr[3] "Внимание: Ваше локальное время опережает время сервера на %s часов." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -"Внимание: Ваше локальное время отстаёт от времени сервера на %s час." -msgstr[1] "" -"Внимание: Ваше локальное время отстаёт от времени сервера на %s часа." -msgstr[2] "" -"Внимание: Ваше локальное время отстаёт от времени сервера на %s часов." -msgstr[3] "" -"Внимание: Ваше локальное время отстаёт от времени сервера на %s часов." - -msgid "Choose a Time" -msgstr "Выберите время" - -msgid "Choose a time" -msgstr "Выберите время" - -msgid "Cancel" -msgstr "Отмена" - -msgid "Today" -msgstr "Сегодня" - -msgid "Choose a Date" -msgstr "Выберите дату" - -msgid "Yesterday" -msgstr "Вчера" - -msgid "Tomorrow" -msgstr "Завтра" - -msgid "January" -msgstr "Январь" - -msgid "February" -msgstr "Февраль" - -msgid "March" -msgstr "Март" - -msgid "April" -msgstr "Апрель" - -msgid "May" -msgstr "Май" - -msgid "June" -msgstr "Июнь" - -msgid "July" -msgstr "Июль" - -msgid "August" -msgstr "Август" - -msgid "September" -msgstr "Сентябрь" - -msgid "October" -msgstr "Октябрь" - -msgid "November" -msgstr "Ноябрь" - -msgid "December" -msgstr "Декабрь" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Янв" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Фев" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Мар" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Апр" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Май" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Июн" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Июл" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Авг" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Сен" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Окт" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Ноя" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Дек" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "В" - -msgctxt "one letter Monday" -msgid "M" -msgstr "П" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "В" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "С" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Ч" - -msgctxt "one letter Friday" -msgid "F" -msgstr "П" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "С" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "" -"Вы уже отправили эту форму. Вы уверены, что хотите отправить её ещё раз?" - -msgid "Show" -msgstr "Показать" - -msgid "Hide" -msgstr "Скрыть" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.mo deleted file mode 100644 index 2d9fe82..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.po deleted file mode 100644 index 6e40593..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/django.po +++ /dev/null @@ -1,740 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# 18f25ad6fa9930fc67cb11aca9d16a27, 2012-2013 -# Marian Andre , 2013-2015,2017 -# Martin Kosír, 2011 -# Martin Tóth , 2017 -# Peter Kuma, 2021 -# Peter Stríž , 2020 -# Zbynek Drlik , 2019 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-09-22 07:21+0000\n" -"Last-Translator: Transifex Bot <>\n" -"Language-Team: Slovak (http://www.transifex.com/django/django/language/sk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sk\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n " -">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Zmazať označené %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Úspešne zmazaných %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Nedá sa vymazať %(name)s" - -msgid "Are you sure?" -msgstr "Ste si istý?" - -msgid "Administration" -msgstr "Správa" - -msgid "All" -msgstr "Všetko" - -msgid "Yes" -msgstr "Áno" - -msgid "No" -msgstr "Nie" - -msgid "Unknown" -msgstr "Neznámy" - -msgid "Any date" -msgstr "Ľubovoľný dátum" - -msgid "Today" -msgstr "Dnes" - -msgid "Past 7 days" -msgstr "Posledných 7 dní" - -msgid "This month" -msgstr "Tento mesiac" - -msgid "This year" -msgstr "Tento rok" - -msgid "No date" -msgstr "Bez dátumu" - -msgid "Has date" -msgstr "S dátumom" - -msgid "Empty" -msgstr "Prázdny" - -msgid "Not empty" -msgstr "Obsadený" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Zadajte prosím správne %(username)s a heslo pre účet personálu - \"staff " -"account\". Obe polia môžu obsahovať veľké a malé písmená." - -msgid "Action:" -msgstr "Akcia:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Pridať ďalší %(verbose_name)s" - -msgid "Remove" -msgstr "Odstrániť" - -msgid "Addition" -msgstr "Pridávanie" - -msgid "Change" -msgstr "Zmeniť" - -msgid "Deletion" -msgstr "Mazanie" - -msgid "action time" -msgstr "čas akcie" - -msgid "user" -msgstr "používateľ" - -msgid "content type" -msgstr "typ obsahu" - -msgid "object id" -msgstr "identifikátor objektu" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "reprezentácia objektu" - -msgid "action flag" -msgstr "príznak akcie" - -msgid "change message" -msgstr "zmeniť správu" - -msgid "log entry" -msgstr "položka záznamu" - -msgid "log entries" -msgstr "položky záznamu" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Pridané \"%(object)s\"." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Zmenené \"%(object)s\" - %(changes)s " - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Zmazaný %(object)s" - -msgid "LogEntry Object" -msgstr "Objekt LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Pridaný {name} \"{object}\"." - -msgid "Added." -msgstr "Pridaný." - -msgid "and" -msgstr "a" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Zmenený {fields} pre {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Zmenené {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Zmazaný {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Polia nezmenené." - -msgid "None" -msgstr "Žiadne" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Ak chcete vybrať viac ako jednu položku na Mac, podržte \"Control\", alebo " -"\"Command\"" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Objekt {name} \"{obj}\" bol úspešne pridaný." - -msgid "You may edit it again below." -msgstr "Nižšie môžete začať znovu editovať " - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"Objekt {name} \"{obj}\" bol úspešne pridaný. Môžete pridať ďaľší {name} " -"nižšie." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"Objekt {name} \"{obj}\" bol úspešne zmenený. Ďalšie zmeny môžete urobiť " -"nižšie." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"Objekt {name} \"{obj}\" bol úspešne pridaný. Ďalšie zmeny môžete urobiť " -"nižšie." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"Objekt {name} \"{obj}\" bol úspešne zmenený. Môžete pridať ďaľší {name} " -"nižšie." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "Objekt {name} \"{obj}\" bol úspešne zmenený." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Položky musia byť vybrané, ak chcete na nich vykonať akcie. Neboli vybrané " -"žiadne položky." - -msgid "No action selected." -msgstr "Nebola vybraná žiadna akcia." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "Objekt %(name)s \"%(obj)s\" bol úspešne vymazaný." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "Objekt %(name)s s ID \"%(key)s\" neexistuje. Možno bol vymazaný?" - -#, python-format -msgid "Add %s" -msgstr "Pridať %s" - -#, python-format -msgid "Change %s" -msgstr "Zmeniť %s" - -#, python-format -msgid "View %s" -msgstr "Zobraziť%s" - -msgid "Database error" -msgstr "Chyba databázy" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s bola úspešne zmenená." -msgstr[1] "%(count)s %(name)s boli úspešne zmenené." -msgstr[2] "%(count)s %(name)s bolo úspešne zmenených." -msgstr[3] "%(count)s %(name)s bolo úspešne zmenených." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s vybraná" -msgstr[1] "Všetky %(total_count)s vybrané" -msgstr[2] "Všetkých %(total_count)s vybraných" -msgstr[3] "Všetkých %(total_count)s vybraných" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 z %(cnt)s vybraných" - -#, python-format -msgid "Change history: %s" -msgstr "Zoznam zmien: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Vymazanie %(class_name)s %(instance)s vyžaduje vymazanie nasledovných " -"súvisiacich chránených objektov: %(related_objects)s" - -msgid "Django site admin" -msgstr "Správa Django stránky" - -msgid "Django administration" -msgstr "Správa Django" - -msgid "Site administration" -msgstr "Správa stránky" - -msgid "Log in" -msgstr "Prihlásenie" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s správa" - -msgid "Page not found" -msgstr "Stránka nenájdená" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Ľutujeme, ale požadovaná stránka nebola nájdená." - -msgid "Home" -msgstr "Domov" - -msgid "Server error" -msgstr "Chyba servera" - -msgid "Server error (500)" -msgstr "Chyba servera (500)" - -msgid "Server Error (500)" -msgstr "Chyba servera (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Došlo k chybe. Chyba bola nahlásená správcovi webu prostredníctvom e-mailu a " -"zanedlho by mala byť odstránená. Ďakujeme za vašu trpezlivosť." - -msgid "Run the selected action" -msgstr "Vykonať vybranú akciu" - -msgid "Go" -msgstr "Vykonať" - -msgid "Click here to select the objects across all pages" -msgstr "Kliknite sem pre výber objektov na všetkých stránkach" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Vybrať všetkých %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Zrušiť výber" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modely v %(name)s aplikácii" - -msgid "Add" -msgstr "Pridať" - -msgid "View" -msgstr "Zobraziť" - -msgid "You don’t have permission to view or edit anything." -msgstr "Nemáte právo na zobrazenie alebo vykonávanie zmien." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Najskôr zadajte používateľské meno a heslo. Potom budete môcť upraviť viac " -"používateľských nastavení." - -msgid "Enter a username and password." -msgstr "Zadajte používateľské meno a heslo." - -msgid "Change password" -msgstr "Zmeniť heslo" - -msgid "Please correct the error below." -msgstr "Prosím, opravte chybu uvedenú nižšie." - -msgid "Please correct the errors below." -msgstr "Prosím, opravte chyby uvedené nižšie." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Zadajte nové heslo pre používateľa %(username)s." - -msgid "Welcome," -msgstr "Vitajte," - -msgid "View site" -msgstr "Pozrieť stránku" - -msgid "Documentation" -msgstr "Dokumentácia" - -msgid "Log out" -msgstr "Odhlásiť" - -#, python-format -msgid "Add %(name)s" -msgstr "Pridať %(name)s" - -msgid "History" -msgstr "Zmeny" - -msgid "View on site" -msgstr "Pozrieť na stránke" - -msgid "Filter" -msgstr "Filtrovať" - -msgid "Clear all filters" -msgstr "Zrušiť všetky filtre" - -msgid "Remove from sorting" -msgstr "Odstrániť z triedenia" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Triedenie priority: %(priority_number)s " - -msgid "Toggle sorting" -msgstr "Prepnúť triedenie" - -msgid "Delete" -msgstr "Odstrániť" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Odstránenie objektu %(object_name)s '%(escaped_object)s' by malo za následok " -"aj odstránenie súvisiacich objektov. Váš účet však nemá oprávnenie na " -"odstránenie nasledujúcich typov objektov:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Vymazanie %(object_name)s '%(escaped_object)s' vyžaduje vymazanie " -"nasledovných súvisiacich chránených objektov:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ste si istý, že chcete odstrániť objekt %(object_name)s \"%(escaped_object)s" -"\"? Všetky nasledujúce súvisiace objekty budú odstránené:" - -msgid "Objects" -msgstr "Objekty" - -msgid "Yes, I’m sure" -msgstr "Áno, som si istý" - -msgid "No, take me back" -msgstr "Nie, chcem sa vrátiť" - -msgid "Delete multiple objects" -msgstr "Zmazať viacero objektov" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Vymazanie označených %(objects_name)s by spôsobilo vymazanie súvisiacich " -"objektov, ale váš účet nemá oprávnenie na vymazanie nasledujúcich typov " -"objektov:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Vymazanie označených %(objects_name)s vyžaduje vymazanie nasledujúcich " -"chránených súvisiacich objektov:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ste si isty, že chcete vymazať označené %(objects_name)s? Vymažú sa všetky " -"nasledujúce objekty a ich súvisiace položky:" - -msgid "Delete?" -msgstr "Zmazať?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Podľa %(filter_title)s " - -msgid "Summary" -msgstr "Súhrn" - -msgid "Recent actions" -msgstr "Posledné akcie" - -msgid "My actions" -msgstr "Moje akcie" - -msgid "None available" -msgstr "Nedostupné" - -msgid "Unknown content" -msgstr "Neznámy obsah" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Niečo nie je v poriadku s vašou inštaláciou databázy. Zabezpečte, aby boli " -"vytvorené potrebné databázové tabuľky a taktiež zabezpečte, aby príslušný " -"používateľ mohol čítať databázu." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Ste prihlásený ako %(username)s, ale nemáte práva k tejto stránke. Chcete sa " -"prihlásiť do iného účtu?" - -msgid "Forgotten your password or username?" -msgstr "Zabudli ste heslo alebo používateľské meno?" - -msgid "Toggle navigation" -msgstr "Zameniť navigáciu" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Dátum a čas" - -msgid "User" -msgstr "Používateľ" - -msgid "Action" -msgstr "Akcia" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Tento objekt nemá zoznam zmien. Pravdepodobne nebol pridaný prostredníctvom " -"tejto správcovskej stránky." - -msgid "Show all" -msgstr "Zobraziť všetky" - -msgid "Save" -msgstr "Uložiť" - -msgid "Popup closing…" -msgstr "Vyskakovacie okno sa zatvára..." - -msgid "Search" -msgstr "Vyhľadávanie" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s výsledok" -msgstr[1] "%(counter)s výsledky" -msgstr[2] "%(counter)s výsledkov" -msgstr[3] "%(counter)s výsledkov" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s spolu" - -msgid "Save as new" -msgstr "Uložiť ako nový" - -msgid "Save and add another" -msgstr "Uložiť a pridať ďalší" - -msgid "Save and continue editing" -msgstr "Uložiť a pokračovať v úpravách" - -msgid "Save and view" -msgstr "Uložiť a zobraziť" - -msgid "Close" -msgstr "Zatvoriť" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Zmeniť vybrané %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Pridať ďalší %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Zmazať vybrané %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Znova sa prihlásiť" - -msgid "Password change" -msgstr "Zmena hesla" - -msgid "Your password was changed." -msgstr "Vaše heslo bolo zmenené." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Z bezpečnostných dôvodov zadajte staré heslo a potom nové heslo dvakrát, aby " -"sme mohli overiť, že ste ho zadali správne." - -msgid "Change my password" -msgstr "Zmeniť moje heslo" - -msgid "Password reset" -msgstr "Obnovenie hesla" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Vaše heslo bolo nastavené. Môžete pokračovať a prihlásiť sa." - -msgid "Password reset confirmation" -msgstr "Potvrdenie obnovenia hesla" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Zadajte nové heslo dvakrát, aby sme mohli overiť, že ste ho zadali správne." - -msgid "New password:" -msgstr "Nové heslo:" - -msgid "Confirm password:" -msgstr "Potvrdenie hesla:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Odkaz na obnovenie hesla je neplatný, pretože už bol pravdepodobne raz " -"použitý. Prosím, požiadajte znovu o obnovu hesla." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Poslali sme vám e-mailom inštrukcie pre nastavenie hesla, ak existuje konto " -"so zadanou emailovou adresou. Čoskoro by ste ich mali dostať." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Ak vám nepríde e-mail, uistite sa, že ste zadali adresu, s ktorou ste sa " -"registrovali a skontrolujte svoj spamový priečinok." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Tento e-mail ste dostali preto, lebo ste požiadali o obnovenie hesla pre " -"užívateľský účet na %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Prosím, choďte na túto stránku a zvoľte si nové heslo:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Ak ste náhodou zabudli, vaše používateľské meno je:" - -msgid "Thanks for using our site!" -msgstr "Ďakujeme, že používate našu stránku!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Tím %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Zabudli ste heslo? Zadajte vašu e-mailovú adresu nižšie a my vám pošleme " -"inštrukcie pre nastavenie nového hesla." - -msgid "Email address:" -msgstr "E-mailová adresa:" - -msgid "Reset my password" -msgstr "Obnova môjho hesla" - -msgid "All dates" -msgstr "Všetky dátumy" - -#, python-format -msgid "Select %s" -msgstr "Vybrať %s" - -#, python-format -msgid "Select %s to change" -msgstr "Vybrať \"%s\" na úpravu" - -#, python-format -msgid "Select %s to view" -msgstr "Pre zobrazenie %s zvolte" - -msgid "Date:" -msgstr "Dátum:" - -msgid "Time:" -msgstr "Čas:" - -msgid "Lookup" -msgstr "Vyhľadanie" - -msgid "Currently:" -msgstr "Aktuálne:" - -msgid "Change:" -msgstr "Zmeniť:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 9880b3a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po deleted file mode 100644 index 866afea..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,275 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Dimitris Glezos , 2012 -# Jannis Leidel , 2011 -# 18f25ad6fa9930fc67cb11aca9d16a27, 2012 -# Marian Andre , 2012,2015 -# Martin Kosír, 2011 -# Martin Tóth , 2017 -# Peter Kuma, 2021 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-07-24 21:14+0000\n" -"Last-Translator: Peter Kuma\n" -"Language-Team: Slovak (http://www.transifex.com/django/django/language/sk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sk\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n " -">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Dostupné %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Toto je zoznam dostupných %s. Pre výber je potrebné označiť ich v poli a " -"následne kliknutím na šípku \"Vybrať\" presunúť." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Píšte do tohto poľa pre vyfiltrovanie dostupných %s." - -msgid "Filter" -msgstr "Filtrovať" - -msgid "Choose all" -msgstr "Vybrať všetko" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Kliknite sem pre vybratie všetkých %s naraz." - -msgid "Choose" -msgstr "Vybrať" - -msgid "Remove" -msgstr "Odstrániť" - -#, javascript-format -msgid "Chosen %s" -msgstr "Vybrané %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Toto je zoznam dostupných %s. Pre vymazanie je potrebné označiť ich v poli a " -"následne kliknutím na šípku \"Vymazať\" vymazať." - -msgid "Remove all" -msgstr "Odstrániť všetky" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Kliknite sem pre vymazanie vybratých %s naraz." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s z %(cnt)s vybrané" -msgstr[1] "%(sel)s z %(cnt)s vybrané" -msgstr[2] "%(sel)s z %(cnt)s vybraných" -msgstr[3] "%(sel)s z %(cnt)s vybraných" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Vrámci jednotlivých editovateľných polí máte neuložené zmeny. Ak vykonáte " -"akciu, vaše zmeny budú stratené." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Vybrali ste akciu, ale neuložili ste jednotlivé polia. Prosím, uložte zmeny " -"kliknutím na OK. Akciu budete musieť vykonať znova." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Vybrali ste akciu, ale neurobili ste žiadne zmeny v jednotlivých poliach. " -"Pravdepodobne ste chceli použiť tlačidlo Vykonať namiesto Uložiť." - -msgid "Now" -msgstr "Teraz" - -msgid "Midnight" -msgstr "Polnoc" - -msgid "6 a.m." -msgstr "6:00" - -msgid "Noon" -msgstr "Poludnie" - -msgid "6 p.m." -msgstr "18:00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Poznámka: Ste %s hodinu pred časom servera." -msgstr[1] "Poznámka: Ste %s hodiny pred časom servera." -msgstr[2] "Poznámka: Ste %s hodín pred časom servera." -msgstr[3] "Poznámka: Ste %s hodín pred časom servera." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Poznámka: Ste %s hodinu za časom servera." -msgstr[1] "Poznámka: Ste %s hodiny za časom servera." -msgstr[2] "Poznámka: Ste %s hodín za časom servera." -msgstr[3] "Poznámka: Ste %s hodín za časom servera." - -msgid "Choose a Time" -msgstr "Vybrať Čas" - -msgid "Choose a time" -msgstr "Vybrať čas" - -msgid "Cancel" -msgstr "Zrušiť" - -msgid "Today" -msgstr "Dnes" - -msgid "Choose a Date" -msgstr "Vybrať Dátum" - -msgid "Yesterday" -msgstr "Včera" - -msgid "Tomorrow" -msgstr "Zajtra" - -msgid "January" -msgstr "január" - -msgid "February" -msgstr "február" - -msgid "March" -msgstr "marec" - -msgid "April" -msgstr "apríl" - -msgid "May" -msgstr "máj" - -msgid "June" -msgstr "jún" - -msgid "July" -msgstr "júl" - -msgid "August" -msgstr "august" - -msgid "September" -msgstr "september" - -msgid "October" -msgstr "október" - -msgid "November" -msgstr "november" - -msgid "December" -msgstr "december" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jan." - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "feb." - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "mar." - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "apr." - -msgctxt "abbrev. month May" -msgid "May" -msgstr "máj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "jún" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "júl" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "aug." - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "sep." - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "okt." - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov." - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "dec." - -msgctxt "one letter Sunday" -msgid "S" -msgstr "N" - -msgctxt "one letter Monday" -msgid "M" -msgstr "P" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "U" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "S" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Š" - -msgctxt "one letter Friday" -msgid "F" -msgstr "P" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Zobraziť" - -msgid "Hide" -msgstr "Skryť" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.mo deleted file mode 100644 index 0085a30..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.po deleted file mode 100644 index d454257..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/django.po +++ /dev/null @@ -1,690 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Primož Verdnik , 2017 -# zejn , 2013,2016 -# zejn , 2011-2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-23 18:54+0000\n" -"Last-Translator: Primož Verdnik \n" -"Language-Team: Slovenian (http://www.transifex.com/django/django/language/" -"sl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" -"%100==4 ? 2 : 3);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Uspešno izbrisano %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Ni mogoče izbrisati %(name)s" - -msgid "Are you sure?" -msgstr "Ste prepričani?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Izbriši izbrano: %(verbose_name_plural)s" - -msgid "Administration" -msgstr "Administracija" - -msgid "All" -msgstr "Vse" - -msgid "Yes" -msgstr "Da" - -msgid "No" -msgstr "Ne" - -msgid "Unknown" -msgstr "Neznano" - -msgid "Any date" -msgstr "Kadarkoli" - -msgid "Today" -msgstr "Danes" - -msgid "Past 7 days" -msgstr "Zadnjih 7 dni" - -msgid "This month" -msgstr "Ta mesec" - -msgid "This year" -msgstr "Letos" - -msgid "No date" -msgstr "Brez datuma" - -msgid "Has date" -msgstr "Z datumom" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Vnesite veljavno %(username)s in geslo za račun osebja. Opomba: obe polji " -"upoštevata velikost črk." - -msgid "Action:" -msgstr "Dejanje:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Dodaj še en %(verbose_name)s" - -msgid "Remove" -msgstr "Odstrani" - -msgid "action time" -msgstr "čas dejanja" - -msgid "user" -msgstr "uporabnik" - -msgid "content type" -msgstr "vrsta vsebine" - -msgid "object id" -msgstr "id objekta" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "predstavitev objekta" - -msgid "action flag" -msgstr "zastavica dejanja" - -msgid "change message" -msgstr "spremeni sporočilo" - -msgid "log entry" -msgstr "dnevniški vnos" - -msgid "log entries" -msgstr "dnevniški vnosi" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Dodan \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Spremenjen \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Izbrisan \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "Dnevniški vnos" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "Dodan vnos {name} \"{object}\"." - -msgid "Added." -msgstr "Dodano." - -msgid "and" -msgstr "in" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "Spremenjena polja {fields} za {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Spremenjena polja {fields}." - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "Izbrisan vnos {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Nobeno polje ni bilo spremenjeno." - -msgid "None" -msgstr "Brez vrednosti" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "Držite \"Control\" (ali \"Command\" na Mac-u) za izbiro več kot enega." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" -"Vnos {name} \"{obj}\" je bil uspešno dodan. Lahko ga znova uredite spodaj." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" -"Vnos {name} \"{obj}\" je bil uspešno dodan. Lahko dodate še en {name} spodaj." - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "Vnos {name} \"{obj}\" je bil uspešno dodan." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" -"Vnos {name} \"{obj}\" je bil uspešno spremenjen. Lahko ga znova uredite " -"spodaj." - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" -"Vnos {name} \"{obj}\" je bil uspešno spremenjen. Spodaj lahko dodate nov " -"vnos {name}." - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "Vnos {name} \"{obj}\" je bil uspešno spremenjen." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Izbrati morate vnose, nad katerimi želite izvesti operacijo. Noben vnos ni " -"bil spremenjen." - -msgid "No action selected." -msgstr "Brez dejanja." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" je bil uspešno izbrisan." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "%(name)s s ključem \"%(key)s\" ne obstaja. Morda je bil izbrisan?" - -#, python-format -msgid "Add %s" -msgstr "Dodaj %s" - -#, python-format -msgid "Change %s" -msgstr "Spremeni %s" - -msgid "Database error" -msgstr "Napaka v podatkovni bazi" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s je bil uspešno spremenjen." -msgstr[1] "%(count)s %(name)s sta bila uspešno spremenjena." -msgstr[2] "%(count)s %(name)s so bili uspešno spremenjeni." -msgstr[3] "%(count)s %(name)s je bilo uspešno spremenjenih." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s izbran" -msgstr[1] "%(total_count)s izbrana" -msgstr[2] "Vsi %(total_count)s izbrani" -msgstr[3] "Vseh %(total_count)s izbranih" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 od %(cnt)s izbranih" - -#, python-format -msgid "Change history: %s" -msgstr "Zgodovina sprememb: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Brisanje %(class_name)s %(instance)s bi zahtevalo brisanje naslednjih " -"zaščitenih povezanih objektov: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django administrativni vmesnik" - -msgid "Django administration" -msgstr "Django administracija" - -msgid "Site administration" -msgstr "Administracija strani" - -msgid "Log in" -msgstr "Prijavite se" - -#, python-format -msgid "%(app)s administration" -msgstr "Administracija %(app)s" - -msgid "Page not found" -msgstr "Strani ni mogoče najti" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Opravičujemo se, a zahtevane strani ni mogoče najti." - -msgid "Home" -msgstr "Domov" - -msgid "Server error" -msgstr "Napaka na strežniku" - -msgid "Server error (500)" -msgstr "Napaka na strežniku (500)" - -msgid "Server Error (500)" -msgstr "Napaka na strežniku (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Prišlo je do nepričakovane napake. Napaka je bila javljena administratorjem " -"spletne strani in naj bi jo v kratkem odpravili. Hvala za potrpljenje." - -msgid "Run the selected action" -msgstr "Izvedi izbrano dejanje" - -msgid "Go" -msgstr "Pojdi" - -msgid "Click here to select the objects across all pages" -msgstr "Kliknite tu za izbiro vseh vnosov na vseh straneh" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Izberi vse %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Počisti izbiro" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Najprej vpišite uporabniško ime in geslo, nato boste lahko urejali druge " -"lastnosti uporabnika." - -msgid "Enter a username and password." -msgstr "Vnesite uporabniško ime in geslo." - -msgid "Change password" -msgstr "Spremeni geslo" - -msgid "Please correct the error below." -msgstr "Prosimo, odpravite sledeče napake." - -msgid "Please correct the errors below." -msgstr "Prosimo popravite spodnje napake." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Vpišite novo geslo za uporabnika %(username)s." - -msgid "Welcome," -msgstr "Dobrodošli," - -msgid "View site" -msgstr "Poglej stran" - -msgid "Documentation" -msgstr "Dokumentacija" - -msgid "Log out" -msgstr "Odjava" - -#, python-format -msgid "Add %(name)s" -msgstr "Dodaj %(name)s" - -msgid "History" -msgstr "Zgodovina" - -msgid "View on site" -msgstr "Poglej na strani" - -msgid "Filter" -msgstr "Filter" - -msgid "Remove from sorting" -msgstr "Odstrani iz razvrščanja" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioriteta razvrščanja: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Preklopi razvrščanje" - -msgid "Delete" -msgstr "Izbriši" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Izbris %(object_name)s '%(escaped_object)s' bi pomenil izbris povezanih " -"objektov, vendar nimate dovoljenja za izbris naslednjih tipov objektov:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Brisanje %(object_name)s '%(escaped_object)s' bi zahtevalo brisanje " -"naslednjih zaščitenih povezanih objektov:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ste prepričani, da želite izbrisati %(object_name)s \"%(escaped_object)s\"? " -"Vsi naslednji povezani elementi bodo izbrisani:" - -msgid "Objects" -msgstr "Objekti" - -msgid "Yes, I'm sure" -msgstr "Ja, prepričan sem" - -msgid "No, take me back" -msgstr "Ne, vrni me nazaj" - -msgid "Delete multiple objects" -msgstr "Izbriši več objektov" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Brisanje naslendjih %(objects_name)s bi imelo za posledico izbris naslednjih " -"povezanih objektov, vendar vaš račun nima pravic za izbris naslednjih tipov " -"objektov:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Brisanje izbranih %(objects_name)s zahteva brisanje naslednjih zaščitenih " -"povezanih objektov:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ali res želite izbrisati izbrane %(objects_name)s? Vsi naslednji objekti in " -"njihovi povezani vnosi bodo izbrisani:" - -msgid "Change" -msgstr "Spremeni" - -msgid "Delete?" -msgstr "Izbrišem?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Po %(filter_title)s " - -msgid "Summary" -msgstr "Povzetek" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Model v %(name)s aplikaciji" - -msgid "Add" -msgstr "Dodaj" - -msgid "You don't have permission to edit anything." -msgstr "Nimate dovoljenja za urejanje česarkoli." - -msgid "Recent actions" -msgstr "Nedavna dejanja" - -msgid "My actions" -msgstr "Moja dejanja" - -msgid "None available" -msgstr "Ni na voljo" - -msgid "Unknown content" -msgstr "Neznana vsebina" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Nekaj je narobe z namestitvijo vaše podatkovne baze. Preverite, da so bile " -"ustvarjene prave tabele v podatkovni bazi in da je dostop do branja baze " -"omogočen pravemu uporabniku." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Prijavljeni ste kot %(username)s in nimate pravic za dostop do te strani. Bi " -"se želeli prijaviti z drugim računom?" - -msgid "Forgotten your password or username?" -msgstr "Ste pozabili geslo ali uporabniško ime?" - -msgid "Date/time" -msgstr "Datum/čas" - -msgid "User" -msgstr "Uporabnik" - -msgid "Action" -msgstr "Dejanje" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Ta objekt nima zgodovine sprememb. Verjetno ni bil dodan preko te strani za " -"administracijo." - -msgid "Show all" -msgstr "Prikaži vse" - -msgid "Save" -msgstr "Shrani" - -msgid "Popup closing..." -msgstr "Zapiram pojavno okno ..." - -#, python-format -msgid "Change selected %(model)s" -msgstr "Spremeni izbran %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Dodaj še en %(model)s " - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Izbriši izbran %(model)s" - -msgid "Search" -msgstr "Išči" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s zadetkov" -msgstr[1] "%(counter)s zadetek" -msgstr[2] "%(counter)s zadetka" -msgstr[3] "%(counter)s zadetki" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s skupno" - -msgid "Save as new" -msgstr "Shrani kot novo" - -msgid "Save and add another" -msgstr "Shrani in dodaj še eno" - -msgid "Save and continue editing" -msgstr "Shrani in nadaljuj z urejanjem" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Hvala, ker ste si danes vzeli nekaj časa za to spletno stran." - -msgid "Log in again" -msgstr "Ponovna prijava" - -msgid "Password change" -msgstr "Sprememba gesla" - -msgid "Your password was changed." -msgstr "Vaše geslo je bilo spremenjeno." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Vnesite vaše staro geslo (zaradi varnosti) in nato še dvakrat novo, da se " -"izognete tipkarskim napakam." - -msgid "Change my password" -msgstr "Spremeni moje geslo" - -msgid "Password reset" -msgstr "Ponastavitev gesla" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Vaše geslo je bilo nastavljeno. Zdaj se lahko prijavite." - -msgid "Password reset confirmation" -msgstr "Potrdite ponastavitev gesla" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "Vnesite vaše novo geslo dvakrat, da se izognete tipkarskim napakam." - -msgid "New password:" -msgstr "Novo geslo:" - -msgid "Confirm password:" -msgstr "Potrditev gesla:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Povezava za ponastavitev gesla ni bila veljavna, morda je bila že " -"uporabljena. Prosimo zahtevajte novo ponastavitev gesla." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Če obstaja račun z navedenim e-poštnim naslovom, smo vam prek epošte poslali " -"navodila za nastavitev vašega gesla. Prejeti bi jih morali v kratkem." - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Če e-pošte niste prejeli, prosimo preverite, da ste vnesli pravilen e-poštni " -"naslov in preverite nezaželeno pošto." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"To e-pošto ste prejeli, ker je ste zahtevali ponastavitev gesla za vaš " -"uporabniški račun na %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Prosimo pojdite na sledečo stran in izberite novo geslo:" - -msgid "Your username, in case you've forgotten:" -msgstr "Vaše uporabniško ime (za vsak primer):" - -msgid "Thanks for using our site!" -msgstr "Hvala, ker uporabljate našo stran!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Ekipa strani %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Ste pozabili geslo? Vnesite vaš e-poštni naslov in poslali vam bomo navodila " -"za ponastavitev gesla." - -msgid "Email address:" -msgstr "E-poštni naslov:" - -msgid "Reset my password" -msgstr "Ponastavi moje geslo" - -msgid "All dates" -msgstr "Vsi datumi" - -#, python-format -msgid "Select %s" -msgstr "Izberite %s" - -#, python-format -msgid "Select %s to change" -msgstr "Izberite %s, ki ga želite spremeniti" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Ura:" - -msgid "Lookup" -msgstr "Poizvedba" - -msgid "Currently:" -msgstr "Trenutno:" - -msgid "Change:" -msgstr "Spremembe:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 217e4bf..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po deleted file mode 100644 index 6a5e140..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,281 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Andrej Marsetič, 2022 -# Jannis Leidel , 2011 -# zejn , 2016 -# zejn , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Andrej Marsetič, 2022\n" -"Language-Team: Slovenian (http://www.transifex.com/django/django/language/" -"sl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " -"n%100==4 ? 2 : 3);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Možne %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"To je seznam možnih %s. Izbrane lahko izberete z izbiro v spodnjem okvirju " -"in s klikom na puščico \"Izberi\" med okvirjema." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Z vpisom niza v to polje, zožite izbor %s." - -msgid "Filter" -msgstr "Filtriraj" - -msgid "Choose all" -msgstr "Izberi vse" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Kliknite za izbor vseh %s hkrati." - -msgid "Choose" -msgstr "Izberi" - -msgid "Remove" -msgstr "Odstrani" - -#, javascript-format -msgid "Chosen %s" -msgstr "Izbran %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"To je seznam možnih %s. Odvečne lahko odstranite z izbiro v okvirju in " -"klikom na puščico \"Odstrani\" med okvirjema." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "" - -msgid "Remove all" -msgstr "Odstrani vse" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Kliknite za odstranitev vseh %s hkrati." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s od %(cnt)s izbranih" -msgstr[1] "%(sel)s od %(cnt)s izbran" -msgstr[2] "%(sel)s od %(cnt)s izbrana" -msgstr[3] "%(sel)s od %(cnt)s izbrani" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Na nekaterih poljih, kjer je omogočeno urejanje, so neshranjene spremembe. V " -"primeru nadaljevanja bodo neshranjene spremembe trajno izgubljene." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "Takoj" - -msgid "Midnight" -msgstr "Polnoč" - -msgid "6 a.m." -msgstr "Ob 6h" - -msgid "Noon" -msgstr "Opoldne" - -msgid "6 p.m." -msgstr "Ob 18h" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Opomba: glede na čas na strežniku ste %s uro naprej." -msgstr[1] "Opomba: glede na čas na strežniku ste %s uri naprej." -msgstr[2] "Opomba: glede na čas na strežniku ste %s ure naprej." -msgstr[3] "Opomba: glede na čas na strežniku ste %s ur naprej." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Opomba: glede na čas na strežniku ste %s uro zadaj." -msgstr[1] "Opomba: glede na čas na strežniku ste %s uri zadaj." -msgstr[2] "Opomba: glede na čas na strežniku ste %s ure zadaj." -msgstr[3] "Opomba: glede na čas na strežniku ste %s ur zadaj." - -msgid "Choose a Time" -msgstr "Izberite čas" - -msgid "Choose a time" -msgstr "Izbor časa" - -msgid "Cancel" -msgstr "Prekliči" - -msgid "Today" -msgstr "Danes" - -msgid "Choose a Date" -msgstr "Izberite datum" - -msgid "Yesterday" -msgstr "Včeraj" - -msgid "Tomorrow" -msgstr "Jutri" - -msgid "January" -msgstr "januar" - -msgid "February" -msgstr "februar" - -msgid "March" -msgstr "marec" - -msgid "April" -msgstr "april" - -msgid "May" -msgstr "maj" - -msgid "June" -msgstr "junij" - -msgid "July" -msgstr "julij" - -msgid "August" -msgstr "avgust" - -msgid "September" -msgstr "september" - -msgid "October" -msgstr "oktober" - -msgid "November" -msgstr "november" - -msgid "December" -msgstr "december" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Maj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "N" - -msgctxt "one letter Monday" -msgid "M" -msgstr "P" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "S" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Č" - -msgctxt "one letter Friday" -msgid "F" -msgstr "P" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Prikaži" - -msgid "Hide" -msgstr "Skrij" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo deleted file mode 100644 index 1af5bbb..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.po deleted file mode 100644 index 5569eb1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/django.po +++ /dev/null @@ -1,757 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Besnik Bleta , 2011,2015 -# Besnik Bleta , 2020,2022-2023 -# Besnik Bleta , 2015,2018-2019 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Besnik Bleta , 2020,2022-2023\n" -"Language-Team: Albanian (http://www.transifex.com/django/django/language/" -"sq/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sq\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Fshiji %(verbose_name_plural)s e përzgjedhur" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "U fshinë me sukses %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "S’mund të fshijë %(name)s" - -msgid "Are you sure?" -msgstr "Jeni i sigurt?" - -msgid "Administration" -msgstr "Administrim" - -msgid "All" -msgstr "Krejt" - -msgid "Yes" -msgstr "Po" - -msgid "No" -msgstr "Jo" - -msgid "Unknown" -msgstr "E panjohur" - -msgid "Any date" -msgstr "Çfarëdo date" - -msgid "Today" -msgstr "Sot" - -msgid "Past 7 days" -msgstr "7 ditët e shkuara" - -msgid "This month" -msgstr "Këtë muaj" - -msgid "This year" -msgstr "Këtë vit" - -msgid "No date" -msgstr "Pa datë" - -msgid "Has date" -msgstr "Ka datë" - -msgid "Empty" -msgstr "E zbrazët" - -msgid "Not empty" -msgstr "Jo e zbrazët" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Ju lutemi, jepni %(username)s dhe fjalëkalimin e saktë për një llogari " -"ekipi. Kini parasysh se që të dy fushat mund të jenë të ndjeshme ndaj " -"shkrimit me shkronja të mëdha ose të vogla." - -msgid "Action:" -msgstr "Veprim:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Shtoni një tjetër %(verbose_name)s" - -msgid "Remove" -msgstr "Hiqe" - -msgid "Addition" -msgstr "Shtim" - -msgid "Change" -msgstr "Ndryshoje" - -msgid "Deletion" -msgstr "Fshirje" - -msgid "action time" -msgstr "kohë veprimi" - -msgid "user" -msgstr "përdorues" - -msgid "content type" -msgstr "lloj lënde" - -msgid "object id" -msgstr "id objekti" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "paraqitje objekti" - -msgid "action flag" -msgstr "shenjë veprimi" - -msgid "change message" -msgstr "mesazh ndryshimi" - -msgid "log entry" -msgstr "zë regjistrimi" - -msgid "log entries" -msgstr "zëra regjistrimi" - -#, python-format -msgid "Added “%(object)s”." -msgstr "U shtua “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "U ndryshua “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "U fshi “%(object)s.”" - -msgid "LogEntry Object" -msgstr "Objekt LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "U shtua {name} “{object}”." - -msgid "Added." -msgstr "U shtua." - -msgid "and" -msgstr "dhe " - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "U ndryshuan {fields} për {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "U ndryshuan {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "U fshi {name} “{object}”." - -msgid "No fields changed." -msgstr "S’u ndryshua ndonjë fushë." - -msgid "None" -msgstr "Asnjë" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Që të përzgjidhni më shumë se një, mbani të shtypur “Control”, ose “Command” " -"në një Mac." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” u shtua me sukses." - -msgid "You may edit it again below." -msgstr "Mund ta ripërpunoni më poshtë." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}” u shtua me sukses. Mund të shtoni {name} tjetër më poshtë." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” u ndryshua me sukses. Mund ta përpunoni sërish më poshtë." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} “{obj}” u shtua me sukses. Mund ta përpunoni sërish më poshtë." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} “{obj}” u ndryshua me sukses. Mund të shtoni {name} tjetër më poshtë." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” u ndryshua me sukses." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Duhen përzgjedhur objekte që të kryhen veprime mbi ta. S’u ndryshua ndonjë " -"objekt." - -msgid "No action selected." -msgstr "S’u përzgjodh ndonjë veprim." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” u fshi me sukses." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s me “%(key)s” ID s’ekziston. Mos qe fshirë vallë?" - -#, python-format -msgid "Add %s" -msgstr "Shtoni %s" - -#, python-format -msgid "Change %s" -msgstr "Ndrysho %s" - -#, python-format -msgid "View %s" -msgstr "Shiheni %s" - -msgid "Database error" -msgstr "Gabim baze të dhënash" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s u ndryshua me sukses." -msgstr[1] "%(count)s %(name)s u ndryshuan me sukses." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s i përzgjedhur" -msgstr[1] "Krejt %(total_count)s të përzgjedhurat" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 nga %(cnt)s të përzgjedhur" - -#, python-format -msgid "Change history: %s" -msgstr "Ndryshoni historikun: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Fshirja e %(class_name)s %(instance)s do të lypte fshirjen e objekteve " -"vijuese të mbrojtura që kanë lidhje me ta: %(related_objects)s" - -msgid "Django site admin" -msgstr "Përgjegjës sajti Django" - -msgid "Django administration" -msgstr "Administrim i Django-s" - -msgid "Site administration" -msgstr "Administrim sajti" - -msgid "Log in" -msgstr "Hyni" - -#, python-format -msgid "%(app)s administration" -msgstr "Administrim %(app)s" - -msgid "Page not found" -msgstr "S’u gjet faqe" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Na ndjeni, por faqja e kërkuar s’u gjet dot." - -msgid "Home" -msgstr "Hyrje" - -msgid "Server error" -msgstr "Gabim shërbyesi" - -msgid "Server error (500)" -msgstr "Gabim shërbyesi (500)" - -msgid "Server Error (500)" -msgstr "Gabim Shërbyesi (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Pati një gabim. U është njoftuar përgjegjësve të sajtit përmes email-i dhe " -"do të duhej ndrequr pa humbur kohë. Faleminderit për durimin." - -msgid "Run the selected action" -msgstr "Xhiro veprimin e përzgjedhur" - -msgid "Go" -msgstr "Shko tek" - -msgid "Click here to select the objects across all pages" -msgstr "Klikoni këtu që të përzgjidhni objektet nëpër krejt faqet" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Përzgjidhni krejt %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Spastroje përzgjedhjen" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modele te aplikacioni %(name)s" - -msgid "Add" -msgstr "Shtoni" - -msgid "View" -msgstr "Shiheni" - -msgid "You don’t have permission to view or edit anything." -msgstr "S’keni leje të shihni apo të përpunoni gjë." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Së pari, jepni një emër përdoruesi dhe një fjalëkalim. Mandej, do të jeni në " -"gjendje të përpunoni më tepër mundësi përdoruesi." - -msgid "Enter a username and password." -msgstr "Jepni emër përdoruesi dhe fjalëkalim." - -msgid "Change password" -msgstr "Ndryshoni fjalëkalimin" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Ju lutemi, ndreqni gabimin më poshtë." -msgstr[1] "Ju lutemi, ndreqni gabimet më poshtë." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Jepni një fjalëkalim të ri për përdoruesin %(username)s." - -msgid "Skip to main content" -msgstr "Kalo te lënda bazë" - -msgid "Welcome," -msgstr "Mirë se vini," - -msgid "View site" -msgstr "Shihni sajtin" - -msgid "Documentation" -msgstr "Dokumentim" - -msgid "Log out" -msgstr "Dilni" - -msgid "Breadcrumbs" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "Shto %(name)s" - -msgid "History" -msgstr "Historik" - -msgid "View on site" -msgstr "Shiheni në sajt" - -msgid "Filter" -msgstr "Filtër" - -msgid "Clear all filters" -msgstr "Spastroji krejt filtrat" - -msgid "Remove from sorting" -msgstr "Hiqe prej renditjeje" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Përparësi renditjesh: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Shfaq/fshih renditjen" - -msgid "Toggle theme (current theme: auto)" -msgstr "Ndërroni temën (temë e tanishme: auto)" - -msgid "Toggle theme (current theme: light)" -msgstr "Ndërroni temën (temë e tanishme: e çelët)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Ndërroni temën (temë e tanishme: e errët)" - -msgid "Delete" -msgstr "Fshije" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Fshirja e %(object_name)s '%(escaped_object)s' do të shpinte në fshirjen e " -"objekteve të lidhur me të, por llogaria juaj nuk ka leje për fshirje të " -"objekteve të llojeve të mëposhtëm:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Fshirja e %(object_name)s '%(escaped_object)s' do të kërkonte fshirjen e " -"objekteve të mbrojtur vijues, të lidhur me të:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Jeni i sigurt se doni të fshihet %(object_name)s \"%(escaped_object)s\"? " -"Krejt objektet vijues të lidhur me të do të fshihen:" - -msgid "Objects" -msgstr "Objekte" - -msgid "Yes, I’m sure" -msgstr "Po, jam i sigurt" - -msgid "No, take me back" -msgstr "Jo, kthemëni mbrapsht" - -msgid "Delete multiple objects" -msgstr "Fshini disa objekte njëherësh" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Fshirja e %(objects_name)s të përzgjedhur do të shpjerë në fshirjen e " -"objekteve të lidhur me të, por llogaria juaj nuk ka leje të fshijë llojet " -"vijuese të objekteve:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Fshirja e %(objects_name)s të përzgjedhur do të kërkonte fshirjen e " -"objekteve të mbrojtur vijues, të lidhur me të:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Jeni i sigurt se doni të fshihen %(objects_name)s e përzgjedhur? Krejt " -"objektet vijues dhe gjëra të lidhura me ta do të fshihen:" - -msgid "Delete?" -msgstr "Të fshihet?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Nga %(filter_title)s " - -msgid "Summary" -msgstr "Përmbledhje" - -msgid "Recent actions" -msgstr "Veprime së fundi" - -msgid "My actions" -msgstr "Veprimet e mia" - -msgid "None available" -msgstr "Asnjë i passhëm" - -msgid "Unknown content" -msgstr "Lëndë e panjohur" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Diç është gabim me instalimin tuaj të bazës së të dhënave. Sigurohuni që " -"janë krijuar tabelat e duhura të bazës së të dhënave dhe sigurohuni që baza " -"e të dhënave është e lexueshme nga përdoruesi i duhur." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Jeni mirëfilltësuar si %(username)s, por s’jeni i autorizuar të hyni në këtë " -"faqe. Do të donit të hyni në një llogari tjetër?" - -msgid "Forgotten your password or username?" -msgstr "Harruat fjalëkalimin ose emrin tuaj të përdoruesit?" - -msgid "Toggle navigation" -msgstr "Shfaqni/fshihni lëvizjen" - -msgid "Sidebar" -msgstr "Anështyllë" - -msgid "Start typing to filter…" -msgstr "Që të bëhet filtrim, filloni të shtypni…" - -msgid "Filter navigation items" -msgstr "Filtroni elementë lëvizjeje" - -msgid "Date/time" -msgstr "Datë/kohë" - -msgid "User" -msgstr "Përdorues" - -msgid "Action" -msgstr "Veprim" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "zë" -msgstr[1] "zëra" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Ky objekt nuk ka historik ndryshimesh. Gjasat janë të mos ketë qenë shtuar " -"përmes këtij sajti admin." - -msgid "Show all" -msgstr "Shfaqi krejt" - -msgid "Save" -msgstr "Ruaje" - -msgid "Popup closing…" -msgstr "Mbyllje flluske…" - -msgid "Search" -msgstr "Kërko" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s përfundim" -msgstr[1] "%(counter)s përfundime" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s gjithsej" - -msgid "Save as new" -msgstr "Ruaje si të ri" - -msgid "Save and add another" -msgstr "Ruajeni dhe shtoni një tjetër" - -msgid "Save and continue editing" -msgstr "Ruajeni dhe vazhdoni përpunimin" - -msgid "Save and view" -msgstr "Ruajeni dhe shiheni" - -msgid "Close" -msgstr "Mbylle" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Ndryshoni %(model)s e përzgjedhur" - -#, python-format -msgid "Add another %(model)s" -msgstr "Shtoni një %(model)s tjetër" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Fshije %(model)s e përzgjedhur" - -#, python-format -msgid "View selected %(model)s" -msgstr "Shihni %(model)s e përzgjedhur" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Faleminderit që harxhoni pak kohë me sajtin sot." - -msgid "Log in again" -msgstr "Hyni sërish" - -msgid "Password change" -msgstr "Ndryshim fjalëkalimi" - -msgid "Your password was changed." -msgstr "Fjalëkalimi juaj u ndryshua." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Ju lutemi, për hir të sigurisë, jepni fjalëkalimin tuaj të vjetër,dhe mandej " -"jepeni dy herë fjalëkalimin tuaj të ri, që të mund të verifikojmë se i keni " -"shtypur saktë." - -msgid "Change my password" -msgstr "Ndrysho fjalëkalimin tim" - -msgid "Password reset" -msgstr "Ricaktim fjalëkalimi" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Fjalëkalimi juaj u caktua. Mund të vazhdoni më tej dhe të bëni hyrjen tani." - -msgid "Password reset confirmation" -msgstr "Ripohim ricaktimi fjalëkalimi" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Ju lutemi, jepeni fjalëkalimin tuaj dy herë, që kështu të mund të " -"verifikojmë që e shtypët saktë." - -msgid "New password:" -msgstr "Fjalëkalim i ri:" - -msgid "Confirm password:" -msgstr "Ripohoni fjalëkalimin:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Lidhja për ricaktimin e fjalëkalimit qe e pavlefshme, ndoshta ngaqë është " -"përdorur tashmë një herë. Ju lutemi, kërkoni një ricaktim të ri fjalëkalimi." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Ju kemi dërguar me email udhëzime për caktimin e fjalëkalimit tuaj, nëse " -"ekziston një llogari me email-in që dhatë. Duhet t’ju vijnë pas pak." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Nëse s’merrni ndonjë email, ju lutemi, sigurohuni se keni dhënë adresën me " -"të cilën u regjistruat, dhe kontrolloni edhe te dosja e mesazheve të " -"padëshiruar." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Këtë email po e merrni ngaqë kërkuat ricaktim fjalëkalimi për llogarinë tuaj " -"si përdorues te %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Ju lutemi, shkoni te faqja vijuese dhe zgjidhni një fjalëkalim të ri:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Emri juaj i përdoruesit, në rast se e keni harruar:" - -msgid "Thanks for using our site!" -msgstr "Faleminderit që përdorni sajtin tonë!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Ekipi i %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Harruat fjalëkalimin tuaj? Jepni më poshtë adresën tuaj email, dhe do t’ju " -"dërgojmë me email udhëzime për caktimin e një të riu." - -msgid "Email address:" -msgstr "Adresë email:" - -msgid "Reset my password" -msgstr "Ricakto fjalëkalimin tim" - -msgid "All dates" -msgstr "Krejt datat" - -#, python-format -msgid "Select %s" -msgstr "Përzgjidhni %s" - -#, python-format -msgid "Select %s to change" -msgstr "Përzgjidhni %s për ta ndryshuar" - -#, python-format -msgid "Select %s to view" -msgstr "Përzgjidhni %s për parje" - -msgid "Date:" -msgstr "Datë:" - -msgid "Time:" -msgstr "Kohë:" - -msgid "Lookup" -msgstr "Kërkim" - -msgid "Currently:" -msgstr "Tani:" - -msgid "Change:" -msgstr "Ndryshim:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 3614528..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po deleted file mode 100644 index 73e74d0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,279 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Besnik Bleta , 2011-2012,2015 -# Besnik Bleta , 2020-2023 -# Besnik Bleta , 2015,2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Besnik Bleta , 2020-2023\n" -"Language-Team: Albanian (http://www.transifex.com/django/django/language/" -"sq/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sq\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s i gatshëm" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Kjo është lista e %s të gatshëm. Mund të zgjidhni disa duke i përzgjedhur te " -"kutiza më poshtë dhe mandej duke klikuar mbi shigjetën \"Zgjidhe\" mes dy " -"kutizave." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Shkruani brenda kutizës që të filtrohet lista e %s të passhme." - -msgid "Filter" -msgstr "Filtro" - -msgid "Choose all" -msgstr "Zgjidheni krejt" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klikoni që të zgjidhen krejt %s njëherësh." - -msgid "Choose" -msgstr "Zgjidhni" - -msgid "Remove" -msgstr "Hiqe" - -#, javascript-format -msgid "Chosen %s" -msgstr "U zgjodh %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Kjo është lista e %s të gatshme. Mund të hiqni disa duke i përzgjedhur te " -"kutiza më poshtë e mandej duke klikuar mbi shigjetën \"Hiqe\" mes dy " -"kutizave." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Shtypni në këtë kuadrat, që të filtroni listën e %s të përzgjedhur." - -msgid "Remove all" -msgstr "Hiqi krejt" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klikoni që të hiqen krejt %s e zgjedhura njëherësh." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s mundësi e përzgjedhur jo e dukshme" -msgstr[1] "%s mundësi të përzgjedhura jo të dukshme" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "U përzgjodh %(sel)s nga %(cnt)s" -msgstr[1] "U përzgjodhën %(sel)s nga %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Keni ndryshime të paruajtura te fusha individuale të ndryshueshme. Nëse " -"kryeni një veprim, ndryshimet e paruajtura do të humbin." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Keni përzgjedhur një veprim, por s’keni ruajtur ende ndryshimet që bëtë te " -"fusha individuale. Ju lutemi, klikoni OK që të bëhet ruajtja. Do t’ju duhet " -"ta ribëni veprimin." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Keni përzgjedhur një veprim, dhe nuk keni bërë ndonjë ndryshim te fusha " -"individuale. Ndoshta po kërkonit për butonin Shko, në vend se për butonin " -"Ruaje." - -msgid "Now" -msgstr "Tani" - -msgid "Midnight" -msgstr "Mesnatë" - -msgid "6 a.m." -msgstr "6 a.m." - -msgid "Noon" -msgstr "Mesditë" - -msgid "6 p.m." -msgstr "6 p.m." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Shënim: Jeni %s orë para kohës së shërbyesit." -msgstr[1] "Shënim: Jeni %s orë para kohës së shërbyesit." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Shënim: Jeni %s orë pas kohës së shërbyesit." -msgstr[1] "Shënim: Jeni %s orë pas kohës së shërbyesit." - -msgid "Choose a Time" -msgstr "Zgjidhni një Kohë" - -msgid "Choose a time" -msgstr "Zgjidhni një kohë" - -msgid "Cancel" -msgstr "Anuloje" - -msgid "Today" -msgstr "Sot" - -msgid "Choose a Date" -msgstr "Zgjidhni një Datë" - -msgid "Yesterday" -msgstr "Dje" - -msgid "Tomorrow" -msgstr "Nesër" - -msgid "January" -msgstr "Janar" - -msgid "February" -msgstr "Shkurt" - -msgid "March" -msgstr "Mars" - -msgid "April" -msgstr "Prill" - -msgid "May" -msgstr "Maj" - -msgid "June" -msgstr "Qershor" - -msgid "July" -msgstr "Korrik" - -msgid "August" -msgstr "Gusht" - -msgid "September" -msgstr "Shtator" - -msgid "October" -msgstr "Tetor" - -msgid "November" -msgstr "Nëntor" - -msgid "December" -msgstr "Dhjetor" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Shk" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Pri" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Maj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Qer" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Kor" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Gus" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Sht" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Tet" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Nën" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Dhje" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "D" - -msgctxt "one letter Monday" -msgid "M" -msgstr "H" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "M" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "M" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "E" - -msgctxt "one letter Friday" -msgid "F" -msgstr "P" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Shfaqe" - -msgid "Hide" -msgstr "Fshihe" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo deleted file mode 100644 index 2f2cfe6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.po deleted file mode 100644 index 7325233..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/django.po +++ /dev/null @@ -1,719 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Branko Kokanovic , 2018 -# Igor Jerosimić, 2019,2021 -# Jannis Leidel , 2011 -# Janos Guljas , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:10-0500\n" -"PO-Revision-Date: 2021-12-25 07:05+0000\n" -"Last-Translator: Igor Jerosimić\n" -"Language-Team: Serbian (http://www.transifex.com/django/django/language/" -"sr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sr\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Бриши означене објекте класе %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Успешно обрисано: %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Несуспело брисање %(name)s" - -msgid "Are you sure?" -msgstr "Да ли сте сигурни?" - -msgid "Administration" -msgstr "Администрација" - -msgid "All" -msgstr "Сви" - -msgid "Yes" -msgstr "Да" - -msgid "No" -msgstr "Не" - -msgid "Unknown" -msgstr "Непознато" - -msgid "Any date" -msgstr "Сви датуми" - -msgid "Today" -msgstr "Данас" - -msgid "Past 7 days" -msgstr "Последњих 7 дана" - -msgid "This month" -msgstr "Овај месец" - -msgid "This year" -msgstr "Ова година" - -msgid "No date" -msgstr "Нема датума" - -msgid "Has date" -msgstr "Има датум" - -msgid "Empty" -msgstr "Празно" - -msgid "Not empty" -msgstr "Није празно" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Молим вас унесите исправно %(username)s и лозинку. Обратите пажњу да мала и " -"велика слова представљају различите карактере." - -msgid "Action:" -msgstr "Радња:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Додај још један објекат класе %(verbose_name)s." - -msgid "Remove" -msgstr "Обриши" - -msgid "Addition" -msgstr "Додавања" - -msgid "Change" -msgstr "Измени" - -msgid "Deletion" -msgstr "Брисања" - -msgid "action time" -msgstr "време радње" - -msgid "user" -msgstr "корисник" - -msgid "content type" -msgstr "тип садржаја" - -msgid "object id" -msgstr "id објекта" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "опис објекта" - -msgid "action flag" -msgstr "ознака радње" - -msgid "change message" -msgstr "опис измене" - -msgid "log entry" -msgstr "запис у логовима" - -msgid "log entries" -msgstr "записи у логовима" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Додат објекат класе „%(object)s“." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Промењен објекат класе „%(object)s“ - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Уклоњен објекат класе „%(object)s“." - -msgid "LogEntry Object" -msgstr "Објекат уноса лога" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Додат објекат {name} \"{object}\"." - -msgid "Added." -msgstr "Додато." - -msgid "and" -msgstr "и" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Измењена поља {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "Без измена у пољима." - -msgid "None" -msgstr "Ништа" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "Можете га изменити опет испод" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Потребно је изабрати објекте да би се извршила акција над њима. Ниједан " -"објекат није промењен." - -msgid "No action selected." -msgstr "Није изабрана ниједна акција." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Додај објекат класе %s" - -#, python-format -msgid "Change %s" -msgstr "Измени објекат класе %s" - -#, python-format -msgid "View %s" -msgstr "Преглед %s" - -msgid "Database error" -msgstr "Грешка у бази података" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "Успешно промењен %(count)s %(name)s." -msgstr[1] "Успешно промењена %(count)s %(name)s." -msgstr[2] "Успешно промењених %(count)s %(name)s." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s изабран" -msgstr[1] "Сва %(total_count)s изабрана" -msgstr[2] "Свих %(total_count)s изабраних" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 од %(cnt)s изабрано" - -#, python-format -msgid "Change history: %s" -msgstr "Историјат измена: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Да би избрисали %(class_name)s%(instance)s потребно је брисати и следеће " -"заштићене повезане објекте: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django администрација сајта" - -msgid "Django administration" -msgstr "Django администрација" - -msgid "Site administration" -msgstr "Администрација система" - -msgid "Log in" -msgstr "Пријава" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s администрација" - -msgid "Page not found" -msgstr "Страница није пронађена" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "Почетна" - -msgid "Server error" -msgstr "Грешка на серверу" - -msgid "Server error (500)" -msgstr "Грешка на серверу (500)" - -msgid "Server Error (500)" -msgstr "Грешка на серверу (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Покрени одабрану радњу" - -msgid "Go" -msgstr "Почни" - -msgid "Click here to select the objects across all pages" -msgstr "Изабери све објекте на овој страници." - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Изабери све %(module_name)s од %(total_count)s укупно." - -msgid "Clear selection" -msgstr "Поништи избор" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Модели у апликацији %(name)s" - -msgid "Add" -msgstr "Додај" - -msgid "View" -msgstr "Преглед" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "Унесите корисничко име и лозинку" - -msgid "Change password" -msgstr "Промена лозинке" - -msgid "Please correct the error below." -msgstr "Молимо исправите грешку испод." - -msgid "Please correct the errors below." -msgstr "Исправите грешке испод." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Унесите нову лозинку за корисника %(username)s." - -msgid "Welcome," -msgstr "Добродошли," - -msgid "View site" -msgstr "Погледај сајт" - -msgid "Documentation" -msgstr "Документација" - -msgid "Log out" -msgstr "Одјава" - -#, python-format -msgid "Add %(name)s" -msgstr "Додај објекат класе %(name)s" - -msgid "History" -msgstr "Историјат" - -msgid "View on site" -msgstr "Преглед на сајту" - -msgid "Filter" -msgstr "Филтер" - -msgid "Clear all filters" -msgstr "Обриши све филтере" - -msgid "Remove from sorting" -msgstr "Избаци из сортирања" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Приоритет сортирања: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Укључи/искључи сортирање" - -msgid "Delete" -msgstr "Обриши" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Уклањање %(object_name)s „%(escaped_object)s“ повлачи уклањање свих објеката " -"који су повезани са овим објектом, али ваш налог нема дозволе за брисање " -"следећих типова објеката:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Да би избрисали изабран %(object_name)s „%(escaped_object)s“ потребно је " -"брисати и следеће заштићене повезане објекте:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Да сигурни да желите да обришете %(object_name)s „%(escaped_object)s“? " -"Следећи објекти који су у вези са овим објектом ће такође бити обрисани:" - -msgid "Objects" -msgstr "Објекти" - -msgid "Yes, I’m sure" -msgstr "Да, сигуран сам" - -msgid "No, take me back" -msgstr "Не, хоћу назад" - -msgid "Delete multiple objects" -msgstr "Брисање више објеката" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Да би избрисали изабране %(objects_name)s потребно је брисати и заштићене " -"повезане објекте, међутим ваш налог нема дозволе за брисање следећих типова " -"објеката:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Да би избрисали изабране %(objects_name)s потребно је брисати и следеће " -"заштићене повезане објекте:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Да ли сте сигурни да желите да избришете изабране %(objects_name)s? Сви " -"следећи објекти и објекти са њима повезани ће бити избрисани:" - -msgid "Delete?" -msgstr "Брисање?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s " - -msgid "Summary" -msgstr "Сумарно" - -msgid "Recent actions" -msgstr "Скорашње акције" - -msgid "My actions" -msgstr "Моје акције" - -msgid "None available" -msgstr "Нема података" - -msgid "Unknown content" -msgstr "Непознат садржај" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Пријављени сте као %(username)s, али немате овлашћења да приступите овој " -"страни. Да ли желите да се пријавите под неким другим налогом?" - -msgid "Forgotten your password or username?" -msgstr "Заборавили сте лозинку или корисничко име?" - -msgid "Toggle navigation" -msgstr "Укључи/искључи мени" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Датум/време" - -msgid "User" -msgstr "Корисник" - -msgid "Action" -msgstr "Радња" - -msgid "entry" -msgstr "" - -msgid "entries" -msgstr "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "Прикажи све" - -msgid "Save" -msgstr "Сачувај" - -msgid "Popup closing…" -msgstr "Попуп се затвара..." - -msgid "Search" -msgstr "Претрага" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s резултат" -msgstr[1] "%(counter)s резултата" -msgstr[2] "%(counter)s резултата" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "укупно %(full_result_count)s" - -msgid "Save as new" -msgstr "Сачувај као нови" - -msgid "Save and add another" -msgstr "Сачувај и додај следећи" - -msgid "Save and continue editing" -msgstr "Сачувај и настави са изменама" - -msgid "Save and view" -msgstr "Сними и погледај" - -msgid "Close" -msgstr "Затвори" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Измени одабрани модел %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Додај још један модел %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Обриши одабрани модел %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "Поновна пријава" - -msgid "Password change" -msgstr "Измена лозинке" - -msgid "Your password was changed." -msgstr "Ваша лозинка је измењена." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "Измени моју лозинку" - -msgid "Password reset" -msgstr "Ресетовање лозинке" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Ваша лозинка је постављена. Можете се пријавити." - -msgid "Password reset confirmation" -msgstr "Потврда ресетовања лозинке" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Унесите нову лозинку два пута како бисмо могли да проверимо да ли сте је " -"правилно унели." - -msgid "New password:" -msgstr "Нова лозинка:" - -msgid "Confirm password:" -msgstr "Потврда лозинке:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Линк за ресетовање лозинке није важећи, вероватно зато што је већ " -"искоришћен. Поново затражите ресетовање лозинке." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Примате ову поруку зато што сте затражили ресетовање лозинке за кориснички " -"налог на сајту %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Идите на следећу страницу и поставите нову лозинку." - -msgid "Your username, in case you’ve forgotten:" -msgstr "Ваше корисничко име, уколико сте заборавили:" - -msgid "Thanks for using our site!" -msgstr "Хвала што користите наш сајт!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Екипа сајта %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "Адреса е-поште:" - -msgid "Reset my password" -msgstr "Ресетуј моју лозинку" - -msgid "All dates" -msgstr "Сви датуми" - -#, python-format -msgid "Select %s" -msgstr "Одабери објекат класе %s" - -#, python-format -msgid "Select %s to change" -msgstr "Одабери објекат класе %s за измену" - -#, python-format -msgid "Select %s to view" -msgstr "Одабери %s за преглед" - -msgid "Date:" -msgstr "Датум:" - -msgid "Time:" -msgstr "Време:" - -msgid "Lookup" -msgstr "Претражи" - -msgid "Currently:" -msgstr "Тренутно:" - -msgid "Change:" -msgstr "Измена:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo deleted file mode 100644 index c3feabe..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.po deleted file mode 100644 index 6457dd3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,281 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Branko Kokanovic , 2018 -# Igor Jerosimić, 2021,2023 -# Jannis Leidel , 2011 -# Janos Guljas , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Igor Jerosimić, 2021,2023\n" -"Language-Team: Serbian (http://www.transifex.com/django/django/language/" -"sr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sr\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Доступни %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ово је листа доступних „%s“. Можете изабрати елементе тако што ћете их " -"изабрати у листи и кликнути на „Изабери“." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Филтрирајте листу доступних елемената „%s“." - -msgid "Filter" -msgstr "Филтер" - -msgid "Choose all" -msgstr "Изабери све" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Изаберите све „%s“ одједном." - -msgid "Choose" -msgstr "Изабери" - -msgid "Remove" -msgstr "Уклони" - -#, javascript-format -msgid "Chosen %s" -msgstr "Изабрано „%s“" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ово је листа изабраних „%s“. Можете уклонити елементе тако што ћете их " -"изабрати у листи и кликнути на „Уклони“." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Унесите ово поље да бисте филтрирали листу изабраних %s." - -msgid "Remove all" -msgstr "Уклони све" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Уклоните све изабране „%s“ одједном." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s изабрана опција није видљива" -msgstr[1] "%s изабране опције нису видљиве" -msgstr[2] "%s изабраних опција није видљиво" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s од %(cnt)s изабран" -msgstr[1] "%(sel)s од %(cnt)s изабрана" -msgstr[2] "%(sel)s од %(cnt)s изабраних" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Имате несачиване измене. Ако покренете акцију, измене ће бити изгубљене." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Изабрали сте акцију, али нисте сачували ваше промене у појединачна поља. " -"Кликните на OK да сачувате промене. Биће неопходно да поново покренете " -"акцију." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Изабрали сте акцију и нисте направили ниједну промену на појединачним " -"пољима. Вероватно тражите Крени дугме уместо Сачувај." - -msgid "Now" -msgstr "Тренутно време" - -msgid "Midnight" -msgstr "Поноћ" - -msgid "6 a.m." -msgstr "18ч" - -msgid "Noon" -msgstr "Подне" - -msgid "6 p.m." -msgstr "18ч" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Обавештење: %s сат сте испред серверског времена." -msgstr[1] "Обавештење: %s сата сте испред серверског времена." -msgstr[2] "Обавештење: %s сати сте испред серверског времена." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Обавештење: %s сат сте иза серверског времена." -msgstr[1] "Обавештење: %s сата сте иза серверског времена." -msgstr[2] "Обавештење: %s сати сте иза серверског времена." - -msgid "Choose a Time" -msgstr "Одаберите време" - -msgid "Choose a time" -msgstr "Одабир времена" - -msgid "Cancel" -msgstr "Поништи" - -msgid "Today" -msgstr "Данас" - -msgid "Choose a Date" -msgstr "Одаберите датум" - -msgid "Yesterday" -msgstr "Јуче" - -msgid "Tomorrow" -msgstr "Сутра" - -msgid "January" -msgstr "Јануар" - -msgid "February" -msgstr "Фебруар" - -msgid "March" -msgstr "Март" - -msgid "April" -msgstr "Април" - -msgid "May" -msgstr "Мај" - -msgid "June" -msgstr "Јун" - -msgid "July" -msgstr "Јул" - -msgid "August" -msgstr "Август" - -msgid "September" -msgstr "Септембар" - -msgid "October" -msgstr "Октобар" - -msgid "November" -msgstr "Новембар" - -msgid "December" -msgstr "Децембар" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "јан" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "феб" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "март" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "апр" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "мај" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "јун" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "јул" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "авг" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "сеп" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "окт" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "нов" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "дец" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Н" - -msgctxt "one letter Monday" -msgid "M" -msgstr "П" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "У" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "С" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Ч" - -msgctxt "one letter Friday" -msgid "F" -msgstr "П" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "С" - -msgid "Show" -msgstr "Покажи" - -msgid "Hide" -msgstr "Сакриј" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo deleted file mode 100644 index 65c851b..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po deleted file mode 100644 index 4c3d304..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po +++ /dev/null @@ -1,694 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Igor Jerosimić, 2019 -# Jannis Leidel , 2011 -# Janos Guljas , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-16 20:42+0100\n" -"PO-Revision-Date: 2019-06-27 12:37+0000\n" -"Last-Translator: Igor Jerosimić\n" -"Language-Team: Serbian (Latin) (http://www.transifex.com/django/django/" -"language/sr@latin/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sr@latin\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Uspešno obrisano: %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Nesuspelo brisanje %(name)s" - -msgid "Are you sure?" -msgstr "Da li ste sigurni?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Briši označene objekte klase %(verbose_name_plural)s" - -msgid "Administration" -msgstr "Administracija" - -msgid "All" -msgstr "Svi" - -msgid "Yes" -msgstr "Da" - -msgid "No" -msgstr "Ne" - -msgid "Unknown" -msgstr "Nepoznato" - -msgid "Any date" -msgstr "Svi datumi" - -msgid "Today" -msgstr "Danas" - -msgid "Past 7 days" -msgstr "Poslednjih 7 dana" - -msgid "This month" -msgstr "Ovaj mesec" - -msgid "This year" -msgstr "Ova godina" - -msgid "No date" -msgstr "Nema datuma" - -msgid "Has date" -msgstr "Ima datum" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Molim vas unesite ispravno %(username)s i lozinku. Obratite pažnju da mala i " -"velika slova predstavljaju različite karaktere." - -msgid "Action:" -msgstr "Radnja:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Dodaj još jedan objekat klase %(verbose_name)s." - -msgid "Remove" -msgstr "Obriši" - -msgid "Addition" -msgstr "Dodavanja" - -msgid "Change" -msgstr "Izmeni" - -msgid "Deletion" -msgstr "Brisanja" - -msgid "action time" -msgstr "vreme radnje" - -msgid "user" -msgstr "korisnik" - -msgid "content type" -msgstr "tip sadržaja" - -msgid "object id" -msgstr "id objekta" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "opis objekta" - -msgid "action flag" -msgstr "oznaka radnje" - -msgid "change message" -msgstr "opis izmene" - -msgid "log entry" -msgstr "zapis u logovima" - -msgid "log entries" -msgstr "zapisi u logovima" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Dodat objekat klase „%(object)s“." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Promenjen objekat klase „%(object)s“ - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Uklonjen objekat klase „%(object)s“." - -msgid "LogEntry Object" -msgstr "Objekat unosa loga" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "Dodat objekat {name} \"{object}\"." - -msgid "Added." -msgstr "Dodato." - -msgid "and" -msgstr "i" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "Izmenjena polja {fields} za {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Izmenjena polja {fields}." - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "Obrisan objekat {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Bez izmena u poljima." - -msgid "None" -msgstr "Ništa" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Potrebno je izabrati objekte da bi se izvršila akcija nad njima. Nijedan " -"objekat nije promenjen." - -msgid "No action selected." -msgstr "Nije izabrana nijedna akcija." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "Objekat „%(obj)s“ klase %(name)s uspešno je obrisan." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Dodaj objekat klase %s" - -#, python-format -msgid "Change %s" -msgstr "Izmeni objekat klase %s" - -#, python-format -msgid "View %s" -msgstr "Pregled %s" - -msgid "Database error" -msgstr "Greška u bazi podataka" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "Uspešno promenjen %(count)s %(name)s." -msgstr[1] "Uspešno promenjena %(count)s %(name)s." -msgstr[2] "Uspešno promenjenih %(count)s %(name)s." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s izabran" -msgstr[1] "Sva %(total_count)s izabrana" -msgstr[2] "Svih %(total_count)s izabranih" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 od %(cnt)s izabrano" - -#, python-format -msgid "Change history: %s" -msgstr "Istorijat izmena: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "Django administracija sajta" - -msgid "Django administration" -msgstr "Django administracija" - -msgid "Site administration" -msgstr "Administracija sistema" - -msgid "Log in" -msgstr "Prijava" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "Stranica nije pronađena" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Žao nam je, tražena stranica nije pronađena." - -msgid "Home" -msgstr "Početna" - -msgid "Server error" -msgstr "Greška na serveru" - -msgid "Server error (500)" -msgstr "Greška na serveru (500)" - -msgid "Server Error (500)" -msgstr "Greška na serveru (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Pokreni odabranu radnju" - -msgid "Go" -msgstr "Počni" - -msgid "Click here to select the objects across all pages" -msgstr "Izaberi sve objekte na ovoj stranici." - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Izaberi sve %(module_name)s od %(total_count)s ukupno." - -msgid "Clear selection" -msgstr "Poništi izbor" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Prvo unesite korisničko ime i lozinku. Potom ćete moći da menjate još " -"korisničkih podešavanja." - -msgid "Enter a username and password." -msgstr "Unesite korisničko ime i lozinku" - -msgid "Change password" -msgstr "Promena lozinke" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Unesite novu lozinku za korisnika %(username)s." - -msgid "Welcome," -msgstr "Dobrodošli," - -msgid "View site" -msgstr "Pogledaj sajt" - -msgid "Documentation" -msgstr "Dokumentacija" - -msgid "Log out" -msgstr "Odjava" - -#, python-format -msgid "Add %(name)s" -msgstr "Dodaj objekat klase %(name)s" - -msgid "History" -msgstr "Istorijat" - -msgid "View on site" -msgstr "Pregled na sajtu" - -msgid "Filter" -msgstr "Filter" - -msgid "Remove from sorting" -msgstr "Izbaci iz sortiranja" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Prioritet sortiranja: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Uključi/isključi sortiranje" - -msgid "Delete" -msgstr "Obriši" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Uklanjanje %(object_name)s „%(escaped_object)s“ povlači uklanjanje svih " -"objekata koji su povezani sa ovim objektom, ali vaš nalog nema dozvole za " -"brisanje sledećih tipova objekata:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Da bi izbrisali izabran %(object_name)s „%(escaped_object)s“ potrebno je " -"brisati i sledeće zaštićene povezane objekte:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Da sigurni da želite da obrišete %(object_name)s „%(escaped_object)s“? " -"Sledeći objekti koji su u vezi sa ovim objektom će takođe biti obrisani:" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "Da, siguran sam" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "Brisanje više objekata" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Da bi izbrisali izabrane %(objects_name)s potrebno je brisati i zaštićene " -"povezane objekte, međutim vaš nalog nema dozvole za brisanje sledećih tipova " -"objekata:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Da bi izbrisali izabrane %(objects_name)s potrebno je brisati i sledeće " -"zaštićene povezane objekte:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Da li ste sigurni da želite da izbrišete izabrane %(objects_name)s? Svi " -"sledeći objekti i objekti sa njima povezani će biti izbrisani:" - -msgid "View" -msgstr "Pregled" - -msgid "Delete?" -msgstr "Brisanje?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s " - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "Dodaj" - -msgid "You don't have permission to view or edit anything." -msgstr "Nemate dozvolu da pogledate ili izmenite bilo šta." - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Nema podataka" - -msgid "Unknown content" -msgstr "Nepoznat sadržaj" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Nešto nije uredu sa vašom bazom podataka. Proverite da li postoje " -"odgovarajuće tabele i da li odgovarajući korisnik ima pristup bazi." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "Zaboravili ste lozinku ili korisničko ime?" - -msgid "Date/time" -msgstr "Datum/vreme" - -msgid "User" -msgstr "Korisnik" - -msgid "Action" -msgstr "Radnja" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Ovaj objekat nema zabeležen istorijat izmena. Verovatno nije dodat kroz ovaj " -"sajt za administraciju." - -msgid "Show all" -msgstr "Prikaži sve" - -msgid "Save" -msgstr "Sačuvaj" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "Pretraga" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s rezultat" -msgstr[1] "%(counter)s rezultata" -msgstr[2] "%(counter)s rezultata" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "ukupno %(full_result_count)s" - -msgid "Save as new" -msgstr "Sačuvaj kao novi" - -msgid "Save and add another" -msgstr "Sačuvaj i dodaj sledeći" - -msgid "Save and continue editing" -msgstr "Sačuvaj i nastavi sa izmenama" - -msgid "Save and view" -msgstr "Snimi i pogledaj" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Hvala što ste danas proveli vreme na ovom sajtu." - -msgid "Log in again" -msgstr "Ponovna prijava" - -msgid "Password change" -msgstr "Izmena lozinke" - -msgid "Your password was changed." -msgstr "Vaša lozinka je izmenjena." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Iz bezbednosnih razloga prvo unesite svoju staru lozinku, a novu zatim " -"unesite dva puta da bismo mogli da proverimo da li ste je pravilno uneli." - -msgid "Change my password" -msgstr "Izmeni moju lozinku" - -msgid "Password reset" -msgstr "Resetovanje lozinke" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Vaša lozinka je postavljena. Možete se prijaviti." - -msgid "Password reset confirmation" -msgstr "Potvrda resetovanja lozinke" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Unesite novu lozinku dva puta kako bismo mogli da proverimo da li ste je " -"pravilno uneli." - -msgid "New password:" -msgstr "Nova lozinka:" - -msgid "Confirm password:" -msgstr "Potvrda lozinke:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Link za resetovanje lozinke nije važeći, verovatno zato što je već " -"iskorišćen. Ponovo zatražite resetovanje lozinke." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "Idite na sledeću stranicu i postavite novu lozinku." - -msgid "Your username, in case you've forgotten:" -msgstr "Ukoliko ste zaboravili, vaše korisničko ime:" - -msgid "Thanks for using our site!" -msgstr "Hvala što koristite naš sajt!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Ekipa sajta %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "Resetuj moju lozinku" - -msgid "All dates" -msgstr "Svi datumi" - -#, python-format -msgid "Select %s" -msgstr "Odaberi objekat klase %s" - -#, python-format -msgid "Select %s to change" -msgstr "Odaberi objekat klase %s za izmenu" - -#, python-format -msgid "Select %s to view" -msgstr "Odaberi %sza pregled" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Vreme:" - -msgid "Lookup" -msgstr "Pretraži" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 8ba81dd..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po deleted file mode 100644 index a68dcf3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,280 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Igor Jerosimić, 2019,2021,2023 -# Jannis Leidel , 2011 -# Janos Guljas , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: Igor Jerosimić, 2019,2021,2023\n" -"Language-Team: Serbian (Latin) (http://www.transifex.com/django/django/" -"language/sr@latin/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sr@latin\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Dostupni %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ovo je lista dostupnih „%s“. Možete izabrati elemente tako što ćete ih " -"izabrati u listi i kliknuti na „Izaberi“." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Filtrirajte listu dostupnih elemenata „%s“." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Izaberi sve" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Izaberite sve „%s“ odjednom." - -msgid "Choose" -msgstr "Izaberi" - -msgid "Remove" -msgstr "Ukloni" - -#, javascript-format -msgid "Chosen %s" -msgstr "Izabrano „%s“" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ovo je lista izabranih „%s“. Možete ukloniti elemente tako što ćete ih " -"izabrati u listi i kliknuti na „Ukloni“." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Unesite u ovo polje da biste filtrirali listu izabranih %s." - -msgid "Remove all" -msgstr "Ukloni sve" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Uklonite sve izabrane „%s“ odjednom." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s izabrana opcija nije vidljiva" -msgstr[1] "%s izabrane opcije nisu vidljive" -msgstr[2] "%s izabranih opcija nije vidljivo" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s od %(cnt)s izabran" -msgstr[1] "%(sel)s od %(cnt)s izabrana" -msgstr[2] "%(sel)s od %(cnt)s izabranih" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Imate nesačivane izmene. Ako pokrenete akciju, izmene će biti izgubljene." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Izabrali ste akciju, ali niste sačuvali vaše promene u pojedinačna polja. " -"Kliknite na OK da sačuvate promene. Biće neophodno da ponovo pokrenete " -"akciju." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Izabrali ste akciju i niste napravili nijednu promenu na pojedinačnim " -"poljima. Verovatno tražite Kreni dugme umesto Sačuvaj." - -msgid "Now" -msgstr "Trenutno vreme" - -msgid "Midnight" -msgstr "Ponoć" - -msgid "6 a.m." -msgstr "18č" - -msgid "Noon" -msgstr "Podne" - -msgid "6 p.m." -msgstr "18č" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Obaveštenje: Vi ste %s sat ispred serverskog vremena." -msgstr[1] "Obaveštenje: Vi ste %s sata ispred serverskog vremena." -msgstr[2] "Obaveštenje: Vi ste %s sati ispred serverskog vremena." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Obaveštenje: Vi ste %s sat iza serverskog vremena." -msgstr[1] "Obaveštenje: Vi ste %s sata iza serverskog vremena." -msgstr[2] "Obaveštenje: Vi ste %s sati iza serverskog vremena." - -msgid "Choose a Time" -msgstr "Odaberite vreme" - -msgid "Choose a time" -msgstr "Odabir vremena" - -msgid "Cancel" -msgstr "Poništi" - -msgid "Today" -msgstr "Danas" - -msgid "Choose a Date" -msgstr "Odaberite datum" - -msgid "Yesterday" -msgstr "Juče" - -msgid "Tomorrow" -msgstr "Sutra" - -msgid "January" -msgstr "Januar" - -msgid "February" -msgstr "Februar" - -msgid "March" -msgstr "Mart" - -msgid "April" -msgstr "April" - -msgid "May" -msgstr "Maj" - -msgid "June" -msgstr "Jun" - -msgid "July" -msgstr "Jul" - -msgid "August" -msgstr "Avgust" - -msgid "September" -msgstr "Septembar" - -msgid "October" -msgstr "Oktobar" - -msgid "November" -msgstr "Novembar" - -msgid "December" -msgstr "Decembar" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "mart" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "maj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "avg" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "N" - -msgctxt "one letter Monday" -msgid "M" -msgstr "P" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "U" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "S" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Č" - -msgctxt "one letter Friday" -msgid "F" -msgstr "P" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "Pokaži" - -msgid "Hide" -msgstr "Sakrij" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo deleted file mode 100644 index c01471e..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.po deleted file mode 100644 index 44fe92f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/django.po +++ /dev/null @@ -1,761 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Albin Larsson , 2022 -# Alex Nordlund , 2012 -# Anders Hovmöller , 2023 -# Andreas Pelme , 2014 -# d7bcbd5f5cbecdc2b959899620582440, 2011 -# Cybjit , 2012 -# Elias Johnstone , 2022 -# Henrik Palmlund Wahlgren , 2019 -# Jannis Leidel , 2011 -# Johan Rohdin, 2021 -# Jonathan Lindén, 2015 -# Jonathan Lindén, 2014 -# metteludwig , 2019 -# Mattias Hansson , 2016 -# Mikko Hellsing , 2011 -# Thomas Lundqvist, 2013,2016-2017 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Anders Hovmöller , 2023\n" -"Language-Team: Swedish (http://www.transifex.com/django/django/language/" -"sv/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sv\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Ta bort markerade %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Tog bort %(count)d %(items)s" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Kan inte ta bort %(name)s" - -msgid "Are you sure?" -msgstr "Är du säker?" - -msgid "Administration" -msgstr "Administration" - -msgid "All" -msgstr "Alla" - -msgid "Yes" -msgstr "Ja" - -msgid "No" -msgstr "Nej" - -msgid "Unknown" -msgstr "Okänt" - -msgid "Any date" -msgstr "Alla datum" - -msgid "Today" -msgstr "Idag" - -msgid "Past 7 days" -msgstr "Senaste 7 dagarna" - -msgid "This month" -msgstr "Denna månad" - -msgid "This year" -msgstr "Detta år" - -msgid "No date" -msgstr "Inget datum" - -msgid "Has date" -msgstr "Har datum" - -msgid "Empty" -msgstr "Tom" - -msgid "Not empty" -msgstr "Inte tom" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Ange %(username)s och lösenord för ett personalkonto. Notera att båda fälten " -"är skiftlägeskänsliga." - -msgid "Action:" -msgstr "Åtgärd:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Lägg till ytterligare %(verbose_name)s" - -msgid "Remove" -msgstr "Ta bort" - -msgid "Addition" -msgstr "Tillägg" - -msgid "Change" -msgstr "Ändra" - -msgid "Deletion" -msgstr "Borttagning" - -msgid "action time" -msgstr "händelsetid" - -msgid "user" -msgstr "användare" - -msgid "content type" -msgstr "innehållstyp" - -msgid "object id" -msgstr "objektets id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "objektets beskrivning" - -msgid "action flag" -msgstr "händelseflagga" - -msgid "change message" -msgstr "ändra meddelande" - -msgid "log entry" -msgstr "loggpost" - -msgid "log entries" -msgstr "loggposter" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Lade till \"%(object)s\"." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Ändrade “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Tog bort “%(object)s.”" - -msgid "LogEntry Object" -msgstr "LogEntry-Objekt" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Lade till {name} “{object}”." - -msgid "Added." -msgstr "Lagt till." - -msgid "and" -msgstr "och" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Ändrade {fields} för {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Ändrade {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Tog bort {name} “{object}”." - -msgid "No fields changed." -msgstr "Inga fält ändrade." - -msgid "None" -msgstr "Inget" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Håll inne “Control”, eller “Command” på en Mac, för att välja fler än en." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "Lade till {name} “{obj}”." - -msgid "You may edit it again below." -msgstr "Du kan redigera det igen nedan" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "Lade till {name} “{obj}”. Du kan lägga till ytterligare {name} nedan." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "Ändrade {name} “{obj}”. Du kan göra ytterligare förändringar nedan." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "Lade till {name} “{obj}”. Du kan göra ytterligare förändringar nedan." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "Ändrade {name} “{obj}”. Du kan lägga till ytterligare {name} nedan." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "Ändrade {name} “{obj}”." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Poster måste väljas för att genomföra åtgärder. Inga poster har ändrats." - -msgid "No action selected." -msgstr "Inga åtgärder valda." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "Tog bort %(name)s “%(obj)s”." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s med ID “%(key)s” finns inte. Kan den ha blivit borttagen?" - -#, python-format -msgid "Add %s" -msgstr "Lägg till %s" - -#, python-format -msgid "Change %s" -msgstr "Ändra %s" - -#, python-format -msgid "View %s" -msgstr "Visa %s" - -msgid "Database error" -msgstr "Databasfel" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s ändrades." -msgstr[1] "%(count)s %(name)s ändrades." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s vald" -msgstr[1] "Alla %(total_count)s valda" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 av %(cnt)s valda" - -#, python-format -msgid "Change history: %s" -msgstr "Ändringshistorik: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Borttagning av %(class_name)s %(instance)s kräver borttagning av följande " -"skyddade relaterade objekt: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django webbplatsadministration" - -msgid "Django administration" -msgstr "Django-administration" - -msgid "Site administration" -msgstr "Webbplatsadministration" - -msgid "Log in" -msgstr "Logga in" - -#, python-format -msgid "%(app)s administration" -msgstr "Administration av %(app)s" - -msgid "Page not found" -msgstr "Sidan kunde inte hittas" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Tyvärr kunde inte den begärda sidan hittas." - -msgid "Home" -msgstr "Hem" - -msgid "Server error" -msgstr "Serverfel" - -msgid "Server error (500)" -msgstr "Serverfel (500)" - -msgid "Server Error (500)" -msgstr "Serverfel (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Ett fel har inträffat. Felet är rapporterat till sidans administratörer via " -"e-post och bör vara åtgärdat inom kort. Tack för ditt tålamod." - -msgid "Run the selected action" -msgstr "Kör markerade operationer" - -msgid "Go" -msgstr "Utför" - -msgid "Click here to select the objects across all pages" -msgstr "Klicka här för att välja alla objekt från alla sidor" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Välj alla %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Rensa urval" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Modeller i applikationen %(name)s" - -msgid "Add" -msgstr "Lägg till" - -msgid "View" -msgstr "Visa" - -msgid "You don’t have permission to view or edit anything." -msgstr "Du har inte tillåtelse att se eller ändra någonting." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Ange först ett användarnamn och ett lösenord. Därefter kan du ändra fler " -"egenskaper för användaren." - -msgid "Enter a username and password." -msgstr "Mata in användarnamn och lösenord." - -msgid "Change password" -msgstr "Ändra lösenord" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Var god rätta felet nedan." -msgstr[1] "Vad god rätta felen nedan." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Ange nytt lösenord för användare %(username)s." - -msgid "Skip to main content" -msgstr "" - -msgid "Welcome," -msgstr "Välkommen," - -msgid "View site" -msgstr "Visa sida" - -msgid "Documentation" -msgstr "Dokumentation" - -msgid "Log out" -msgstr "Logga ut" - -msgid "Breadcrumbs" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "Lägg till %(name)s" - -msgid "History" -msgstr "Historik" - -msgid "View on site" -msgstr "Visa på webbplats" - -msgid "Filter" -msgstr "Filtrera" - -msgid "Clear all filters" -msgstr "Rensa alla filter" - -msgid "Remove from sorting" -msgstr "Ta bort från sortering" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sorteringsprioritet: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Ändra sorteringsordning" - -msgid "Toggle theme (current theme: auto)" -msgstr "" - -msgid "Toggle theme (current theme: light)" -msgstr "" - -msgid "Toggle theme (current theme: dark)" -msgstr "" - -msgid "Delete" -msgstr "Radera" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Att ta bort %(object_name)s '%(escaped_object)s' skulle innebära att " -"relaterade objekt togs bort, men ditt konto har inte rättigheter att ta bort " -"följande objekttyper:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Borttagning av %(object_name)s '%(escaped_object)s' kräver borttagning av " -"följande skyddade relaterade objekt:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Är du säker på att du vill ta bort %(object_name)s \"%(escaped_object)s\"? " -"Följande relaterade objekt kommer att tas bort:" - -msgid "Objects" -msgstr "Objekt" - -msgid "Yes, I’m sure" -msgstr "Ja, jag är säker" - -msgid "No, take me back" -msgstr "Nej, ta mig tillbaka" - -msgid "Delete multiple objects" -msgstr "Ta bort flera objekt" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Borttagning av valda %(objects_name)s skulle resultera i borttagning av " -"relaterade objekt, men ditt konto har inte behörighet att ta bort följande " -"typer av objekt:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Borttagning av valda %(objects_name)s skulle kräva borttagning av följande " -"skyddade objekt:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Är du säker på att du vill ta bort valda %(objects_name)s? Alla följande " -"objekt samt relaterade objekt kommer att tas bort: " - -msgid "Delete?" -msgstr "Radera?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " På %(filter_title)s " - -msgid "Summary" -msgstr "Översikt" - -msgid "Recent actions" -msgstr "Senaste Händelser" - -msgid "My actions" -msgstr "Mina händelser" - -msgid "None available" -msgstr "Inga tillgängliga" - -msgid "Unknown content" -msgstr "Okänt innehåll" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Någonting är fel med din databas-installation. Kontrollera att relevanta " -"tabeller i databasen är skapta, och kontrollera även att databasen är läsbar " -"av rätt användare." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Du är autentiserad som %(username)s men är inte behörig att komma åt denna " -"sida. Vill du logga in med ett annat konto?" - -msgid "Forgotten your password or username?" -msgstr "Har du glömt lösenordet eller användarnamnet?" - -msgid "Toggle navigation" -msgstr "Växla navigering" - -msgid "Sidebar" -msgstr "" - -msgid "Start typing to filter…" -msgstr "Börja skriv för att filtrera..." - -msgid "Filter navigation items" -msgstr "Filtrera navigeringsobjekt" - -msgid "Date/time" -msgstr "Datum tid" - -msgid "User" -msgstr "Användare" - -msgid "Action" -msgstr "Händelse" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "post" -msgstr[1] "poster" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Det här objektet har ingen förändringshistorik. Det var antagligen inte " -"tillagt via den här admin-sidan." - -msgid "Show all" -msgstr "Visa alla" - -msgid "Save" -msgstr "Spara" - -msgid "Popup closing…" -msgstr "Popup stängs..." - -msgid "Search" -msgstr "Sök" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s resultat" -msgstr[1] "%(counter)s resultat" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s totalt" - -msgid "Save as new" -msgstr "Spara som ny" - -msgid "Save and add another" -msgstr "Spara och lägg till ny" - -msgid "Save and continue editing" -msgstr "Spara och fortsätt redigera" - -msgid "Save and view" -msgstr "Spara och visa" - -msgid "Close" -msgstr "Stäng" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Ändra markerade %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Lägg till %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Ta bort markerade %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Visa valda %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Tack för att du spenderade kvalitetstid med webbplatsen idag." - -msgid "Log in again" -msgstr "Logga in igen" - -msgid "Password change" -msgstr "Ändra lösenord" - -msgid "Your password was changed." -msgstr "Ditt lösenord har ändrats." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Vänligen ange ditt gamla lösenord, för säkerhets skull, och ange därefter " -"ditt nya lösenord två gånger så att vi kan kontrollera att du skrivit rätt." - -msgid "Change my password" -msgstr "Ändra mitt lösenord" - -msgid "Password reset" -msgstr "Nollställ lösenord" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Ditt lösenord har ändrats. Du kan nu logga in." - -msgid "Password reset confirmation" -msgstr "Bekräftelse av lösenordsnollställning" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Var god fyll i ditt nya lösenord två gånger så vi kan kontrollera att du " -"skrev det rätt." - -msgid "New password:" -msgstr "Nytt lösenord:" - -msgid "Confirm password:" -msgstr "Bekräfta lösenord:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Länken för lösenordsnollställning var felaktig, möjligen därför att den " -"redan använts. Var god skicka en ny nollställningsförfrågan." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Vi har via e-post skickat dig instruktioner för hur du ställer in ditt " -"lösenord, om ett konto finns med e-posten du angav. Du borde få " -"instruktionerna inom kort." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Om du inte fick ett e-postmeddelande; kontrollera att e-postadressen är " -"densamma som du registrerade dig med, och kolla i din skräppost." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Du får detta e-postmeddelande för att du har begärt återställning av ditt " -"lösenord av ditt konto på %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Var god gå till följande sida och välj ett nytt lösenord:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Ditt användarnamn, utifall du glömt det:" - -msgid "Thanks for using our site!" -msgstr "Tack för att du använder vår webbplats!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s-teamet" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Har du glömt ditt lösenord? Ange din e-postadress nedan, så skickar vi dig " -"instruktioner för hur du ställer in ett nytt." - -msgid "Email address:" -msgstr "E-postadress:" - -msgid "Reset my password" -msgstr "Nollställ mitt lösenord" - -msgid "All dates" -msgstr "Alla datum" - -#, python-format -msgid "Select %s" -msgstr "Välj %s" - -#, python-format -msgid "Select %s to change" -msgstr "Välj %s att ändra" - -#, python-format -msgid "Select %s to view" -msgstr "Välj %s för visning" - -msgid "Date:" -msgstr "Datum:" - -msgid "Time:" -msgstr "Tid:" - -msgid "Lookup" -msgstr "Uppslag" - -msgid "Currently:" -msgstr "Nuvarande:" - -msgid "Change:" -msgstr "Ändra:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo deleted file mode 100644 index c5e39c9..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po deleted file mode 100644 index 2523a56..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,279 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Andreas Pelme , 2012 -# Elias Johnstone , 2022 -# Jannis Leidel , 2011 -# Jonathan Lindén, 2014 -# Mattias Hansson , 2016 -# Mattias Benjaminsson , 2011 -# Samuel Linde , 2011 -# Thomas Lundqvist, 2016 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-17 05:26-0500\n" -"PO-Revision-Date: 2022-07-25 07:59+0000\n" -"Last-Translator: Elias Johnstone \n" -"Language-Team: Swedish (http://www.transifex.com/django/django/language/" -"sv/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sv\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Tillgängliga %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Detta är listan med tillgängliga %s. Du kan välja ut vissa genom att markera " -"dem i rutan nedan och sedan klicka på \"Välj\"-knapparna mellan de två " -"rutorna." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Skriv i denna ruta för att filtrera listan av tillgängliga %s." - -msgid "Filter" -msgstr "Filter" - -msgid "Choose all" -msgstr "Välj alla" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Klicka för att välja alla %s på en gång." - -msgid "Choose" -msgstr "Välj" - -msgid "Remove" -msgstr "Ta bort" - -#, javascript-format -msgid "Chosen %s" -msgstr "Välj %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Detta är listan med utvalda %s. Du kan ta bort vissa genom att markera dem i " -"rutan nedan och sedan klicka på \"Ta bort\"-pilen mellan de två rutorna." - -msgid "Remove all" -msgstr "Ta bort alla" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Klicka för att ta bort alla valda %s på en gång." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s av %(cnt)s markerade" -msgstr[1] "%(sel)s av %(cnt)s markerade" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Du har ändringar som inte sparats i enskilda redigerbara fält. Om du kör en " -"operation kommer de ändringar som inte sparats att gå förlorade." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Du har markerat en operation, men du har inte sparat sparat dina ändringar " -"till enskilda fält ännu. Var vänlig klicka OK för att spara. Du kommer att " -"behöva köra operationen på nytt." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Du har markerat en operation och du har inte gjort några ändringar i " -"enskilda fält. Du letar antagligen efter Utför-knappen snarare än Spara." - -msgid "Now" -msgstr "Nu" - -msgid "Midnight" -msgstr "Midnatt" - -msgid "6 a.m." -msgstr "06:00" - -msgid "Noon" -msgstr "Middag" - -msgid "6 p.m." -msgstr "6 p.m." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Notera: Du är %s timme före serverns tid." -msgstr[1] "Notera: Du är %s timmar före serverns tid." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Notera: Du är %s timme efter serverns tid." -msgstr[1] "Notera: Du är %s timmar efter serverns tid." - -msgid "Choose a Time" -msgstr "Välj en tidpunkt" - -msgid "Choose a time" -msgstr "Välj en tidpunkt" - -msgid "Cancel" -msgstr "Avbryt" - -msgid "Today" -msgstr "I dag" - -msgid "Choose a Date" -msgstr "Välj ett datum" - -msgid "Yesterday" -msgstr "I går" - -msgid "Tomorrow" -msgstr "I morgon" - -msgid "January" -msgstr "januari" - -msgid "February" -msgstr "februari" - -msgid "March" -msgstr "mars" - -msgid "April" -msgstr "april" - -msgid "May" -msgstr "maj" - -msgid "June" -msgstr "juni" - -msgid "July" -msgstr "juli" - -msgid "August" -msgstr "augusti" - -msgid "September" -msgstr "september" - -msgid "October" -msgstr "oktober" - -msgid "November" -msgstr "november" - -msgid "December" -msgstr "december" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "jan" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "feb" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "apr" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "maj" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "jun" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "jul" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "aug" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "sep" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "okt" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "nov" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "dec" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "S" - -msgctxt "one letter Monday" -msgid "M" -msgstr "M" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "O" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "T" - -msgctxt "one letter Friday" -msgid "F" -msgstr "F" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "L" - -msgid "" -"You have already submitted this form. Are you sure you want to submit it " -"again?" -msgstr "" -"Du har redan skickat in detta formulär. Är du säker på att du vill skicka in " -"det igen?" - -msgid "Show" -msgstr "Visa" - -msgid "Hide" -msgstr "Göm" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.mo deleted file mode 100644 index 6e917f5..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.po deleted file mode 100644 index 1271dff..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/django.po +++ /dev/null @@ -1,676 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Machaku , 2013-2014 -# Machaku , 2016 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-23 18:54+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Swahili (http://www.transifex.com/django/django/language/" -"sw/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sw\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Umefanikiwa kufuta %(items)s %(count)d." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Huwezi kufuta %(name)s" - -msgid "Are you sure?" -msgstr "Una uhakika?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Futa %(verbose_name_plural)s teule" - -msgid "Administration" -msgstr "Utawala" - -msgid "All" -msgstr "yote" - -msgid "Yes" -msgstr "Ndiyo" - -msgid "No" -msgstr "Hapana" - -msgid "Unknown" -msgstr "Haijulikani" - -msgid "Any date" -msgstr "Tarehe yoyote" - -msgid "Today" -msgstr "Leo" - -msgid "Past 7 days" -msgstr "Siku 7 zilizopita" - -msgid "This month" -msgstr "mwezi huu" - -msgid "This year" -msgstr "Mwaka huu" - -msgid "No date" -msgstr "Hakuna tarehe" - -msgid "Has date" -msgstr "Kuna tarehe" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Tafadhali ingiza %(username)s na nywila sahihi kwa akaunti ya msimamizi. " -"Kumbuka kuzingatia herufi kubwa na ndogo." - -msgid "Action:" -msgstr "Tendo" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Ongeza %(verbose_name)s" - -msgid "Remove" -msgstr "Ondoa" - -msgid "action time" -msgstr "muda wa tendo" - -msgid "user" -msgstr "mtumiaji" - -msgid "content type" -msgstr "aina ya maudhui" - -msgid "object id" -msgstr "Kitambulisho cha kitu" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "`repr` ya kitu" - -msgid "action flag" -msgstr "bendera ya tendo" - -msgid "change message" -msgstr "badilisha ujumbe" - -msgid "log entry" -msgstr "ingizo kwenye kumbukumbu" - -msgid "log entries" -msgstr "maingizo kwenye kumbukumbu" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "Kuongezwa kwa \"%(object)s\"." - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "Kubadilishwa kwa \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "Kufutwa kwa \"%(object)s\"." - -msgid "LogEntry Object" -msgstr "Kitu cha Ingizo la Kumbukumbu" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "Kumeongezeka {name} \"{object}\"." - -msgid "Added." -msgstr "Imeongezwa" - -msgid "and" -msgstr "na" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "Mabadiliko ya {fields} yamefanyika katika {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Mabadiliko yamefanyika katika {fields} " - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "Futa {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Hakuna uga uliobadilishwa." - -msgid "None" -msgstr "Hakuna" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" -"Ingizo la {name} \"{obj}\" limefanyika kwa mafanikio. Unaweza kuhariri tena" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Nilazima kuchagua vitu ili kufanyia kitu fulani. Hakuna kitu " -"kilichochaguliwa." - -msgid "No action selected." -msgstr "Hakuna tendo lililochaguliwa" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "Ufutaji wa \"%(obj)s\" %(name)s umefanikiwa." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Ongeza %s" - -#, python-format -msgid "Change %s" -msgstr "Badilisha %s" - -msgid "Database error" -msgstr "Hitilafu katika hifadhidata" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "mabadiliko ya %(name)s %(count)s yamefanikiwa." -msgstr[1] "mabadiliko ya %(name)s %(count)s yamefanikiwa." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s kuchaguliwa" -msgstr[1] "%(total_count)s (kila kitu) kuchaguliwa" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Vilivyo chaguliwa ni 0 kati ya %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "Badilisha historia: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(instance)s %(class_name)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Kufutwa kwa ingizo la %(instance)s %(class_name)s kutahitaji kufutwa kwa " -"vitu vifuatavyo vyenye mahusiano vilivyokingwa: %(related_objects)s" - -msgid "Django site admin" -msgstr "Utawala wa tovuti ya django" - -msgid "Django administration" -msgstr "Utawala wa Django" - -msgid "Site administration" -msgstr "Utawala wa tovuti" - -msgid "Log in" -msgstr "Ingia" - -#, python-format -msgid "%(app)s administration" -msgstr "Utawala wa %(app)s" - -msgid "Page not found" -msgstr "Ukurasa haujapatikana" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Samahani, ukurasa uliohitajika haukupatikana." - -msgid "Home" -msgstr "Sebule" - -msgid "Server error" -msgstr "Hitilafu ya seva" - -msgid "Server error (500)" -msgstr "Hitilafu ya seva (500)" - -msgid "Server Error (500)" -msgstr "Hitilafu ya seva (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Kumekuwa na hitilafu. Imeripotiwa kwa watawala kupitia barua pepe na " -"inatakiwa kurekebishwa mapema." - -msgid "Run the selected action" -msgstr "Fanya tendo lililochaguliwa." - -msgid "Go" -msgstr "Nenda" - -msgid "Click here to select the objects across all pages" -msgstr "Bofya hapa kuchagua viumbile katika kurasa zote" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Chagua kila %(module_name)s, (%(total_count)s). " - -msgid "Clear selection" -msgstr "Safisha chaguo" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Kwanza, ingiza jina lamtumiaji na nywila. Kisha, utaweza kuhariri zaidi " -"machaguo ya mtumiaji." - -msgid "Enter a username and password." -msgstr "Ingiza jina la mtumiaji na nywila." - -msgid "Change password" -msgstr "Badilisha nywila" - -msgid "Please correct the error below." -msgstr "Tafadhali sahihisha makosa yafuatayo " - -msgid "Please correct the errors below." -msgstr "Tafadhali sahihisha makosa yafuatayo." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "ingiza nywila ya mtumiaji %(username)s." - -msgid "Welcome," -msgstr "Karibu" - -msgid "View site" -msgstr "Tazama tovuti" - -msgid "Documentation" -msgstr "Nyaraka" - -msgid "Log out" -msgstr "Toka" - -#, python-format -msgid "Add %(name)s" -msgstr "Ongeza %(name)s" - -msgid "History" -msgstr "Historia" - -msgid "View on site" -msgstr "Ona kwenye tovuti" - -msgid "Filter" -msgstr "Chuja" - -msgid "Remove from sorting" -msgstr "Ondoa katika upangaji" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Kipaumbele katika mpangilio: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Geuza mpangilio" - -msgid "Delete" -msgstr "Futa" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Kufutwa kwa '%(escaped_object)s' %(object_name)s kutasababisha kufutwa kwa " -"vitu vinavyohuisana, lakini akaunti yako haina ruhusa ya kufuta vitu vya " -"aina zifuatazo:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Kufuta '%(escaped_object)s' %(object_name)s kutahitaji kufuta vitu " -"vifuatavyo ambavyo vinavyohuisana na vimelindwa:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Una uhakika kuwa unataka kufuta \"%(escaped_object)s\" %(object_name)s ? " -"Vitu vyote vinavyohuisana kati ya vifuatavyo vitafutwa:" - -msgid "Objects" -msgstr "Viumbile" - -msgid "Yes, I'm sure" -msgstr "Ndiyo, Nina uhakika" - -msgid "No, take me back" -msgstr "Hapana, nirudishe" - -msgid "Delete multiple objects" -msgstr "Futa viumbile mbalimbali" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Kufutwa kwa %(objects_name)s chaguliwa kutasababisha kufutwa kwa " -"vituvinavyohusiana, lakini akaunti yako haina ruhusa ya kufuta vitu vya " -"vifuatavyo:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Kufutwa kwa %(objects_name)s kutahitaji kufutwa kwa vitu vifuatavyo vyenye " -"uhusiano na vilivyolindwa:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Una uhakika kuwa unataka kufuta %(objects_name)s chaguliwa ? Vitu vyote kati " -"ya vifuatavyo vinavyohusiana vitafutwa:" - -msgid "Change" -msgstr "Badilisha" - -msgid "Delete?" -msgstr "Futa?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " Kwa %(filter_title)s" - -msgid "Summary" -msgstr "Muhtasari" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Models katika application %(name)s" - -msgid "Add" -msgstr "Ongeza" - -msgid "You don't have permission to edit anything." -msgstr "Huna ruhusa ya kuhariri chochote" - -msgid "Recent actions" -msgstr "Matendo ya karibuni" - -msgid "My actions" -msgstr "Matendo yangu" - -msgid "None available" -msgstr "Hakuna kilichopatikana" - -msgid "Unknown content" -msgstr "Maudhui hayajulikani" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Kuna tatizo limetokea katika usanikishaji wako wa hifadhidata. Hakikisha " -"kuwa majedwali sahihi ya hifadhidata yameundwa, na hakikisha hifadhidata " -"inaweza kusomwana mtumiaji sahihi." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "Umesahau jina na nenosiri lako?" - -msgid "Date/time" -msgstr "Tarehe/saa" - -msgid "User" -msgstr "Mtumiaji" - -msgid "Action" -msgstr "Tendo" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Kiumbile hiki hakina historia ya kubadilika. Inawezekana hakikuwekwa kupitia " -"hii tovuti ya utawala." - -msgid "Show all" -msgstr "Onesha yotee" - -msgid "Save" -msgstr "Hifadhi" - -msgid "Popup closing..." -msgstr "Udukizi unafunga" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Badili %(model)s husika" - -#, python-format -msgid "Add another %(model)s" -msgstr "Ongeza %(model)s tena" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Futa %(model)s husika" - -msgid "Search" -msgstr "Tafuta" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "tokeo %(counter)s" -msgstr[1] "matokeo %(counter)s" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "jumla %(full_result_count)s" - -msgid "Save as new" -msgstr "Hifadhi kama mpya" - -msgid "Save and add another" -msgstr "Hifadhi na ongeza" - -msgid "Save and continue editing" -msgstr "Hifadhi na endelea kuhariri" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Ahsante kwa kutumia muda wako katika Tovuti yetu leo. " - -msgid "Log in again" -msgstr "ingia tena" - -msgid "Password change" -msgstr "Badilisha nywila" - -msgid "Your password was changed." -msgstr "Nywila yako imebadilishwa" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Tafadhali ingiza nywila yako ya zamani, kwa ajili ya usalama, kisha ingiza " -"nywila mpya mara mbili ili tuweze kuthibitisha kuwa umelichapisha kwa " -"usahihi." - -msgid "Change my password" -msgstr "Badilisha nywila yangu" - -msgid "Password reset" -msgstr "Kuseti nywila upya" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Nywila yako imesetiwa. Unaweza kuendelea na kuingia sasa." - -msgid "Password reset confirmation" -msgstr "Uthibitisho wa kuseti nywila upya" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Tafadhali ingiza nywila mpya mara mbili ili tuweze kuthibitisha kuwa " -"umelichapisha kwa usahihi." - -msgid "New password:" -msgstr "Nywila mpya:" - -msgid "Confirm password:" -msgstr "Thibitisha nywila" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Kiungo cha kuseti nywila upya ni batili, inawezekana ni kwa sababu kiungo " -"hicho tayari kimetumika. tafadhali omba upya kuseti nywila." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Ikiwa hujapata barua pepe, tafadhali hakikisha umeingiza anuani ya barua " -"pepe uliyoitumia kujisajili na angalia katika folda la spam" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Umepata barua pepe hii kwa sababu ulihitaji ku seti upya nywila ya akaunti " -"yako ya %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Tafadhali nenda ukurasa ufuatao na uchague nywila mpya:" - -msgid "Your username, in case you've forgotten:" -msgstr "Jina lako la mtumiaji, ikiwa umesahau:" - -msgid "Thanks for using our site!" -msgstr "Ahsante kwa kutumia tovui yetu!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "timu ya %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"Umesahau nywila yako? Ingiza anuani yako ya barua pepe hapo chini, nasi " -"tutakutumia maelekezo ya kuseti nenosiri jipya. " - -msgid "Email address:" -msgstr "Anuani ya barua pepe:" - -msgid "Reset my password" -msgstr "Seti nywila yangu upya" - -msgid "All dates" -msgstr "Tarehe zote" - -#, python-format -msgid "Select %s" -msgstr "Chagua %s" - -#, python-format -msgid "Select %s to change" -msgstr "Chaguo %s kwa mabadilisho" - -msgid "Date:" -msgstr "Tarehe" - -msgid "Time:" -msgstr "Saa" - -msgid "Lookup" -msgstr "`Lookup`" - -msgid "Currently:" -msgstr "Kwa sasa:" - -msgid "Change:" -msgstr "Badilisha:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 12f1466..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po deleted file mode 100644 index 5806dd9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,217 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Machaku , 2013-2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-23 18:54+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Swahili (http://www.transifex.com/django/django/language/" -"sw/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sw\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Yaliyomo: %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Hii ni orodha ya %s uliyochagua. Unaweza kuchagua baadhi vitu kwa kuvichagua " -"katika kisanduku hapo chini kisha kubofya mshale wa \"Chagua\" kati ya " -"visanduku viwili." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Chapisha katika kisanduku hiki ili kuchuja orodha ya %s iliyopo." - -msgid "Filter" -msgstr "Chuja" - -msgid "Choose all" -msgstr "Chagua vyote" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Bofya kuchagua %s kwa pamoja." - -msgid "Choose" -msgstr "Chagua" - -msgid "Remove" -msgstr "Ondoa" - -#, javascript-format -msgid "Chosen %s" -msgstr "Chaguo la %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Hii ni orodha ya %s uliyochagua. Unaweza kuondoa baadhi vitu kwa kuvichagua " -"katika kisanduku hapo chini kisha kubofya mshale wa \"Ondoa\" kati ya " -"visanduku viwili." - -msgid "Remove all" -msgstr "Ondoa vyote" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Bofya ili kuondoa %s chaguliwa kwa pamoja." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "umechagua %(sel)s kati ya %(cnt)s" -msgstr[1] "umechagua %(sel)s kati ya %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Umeacha kuhifadhi mabadiliko katika uga zinazoharirika. Ikiwa utafanya tendo " -"lingine, mabadiliko ambayo hayajahifadhiwa yatapotea." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Umechagua tendo, lakini bado hujahifadhi mabadiliko yako katika uga husika. " -"Tafadali bofya Sawa ukitaka kuhifadhi. Utahitajika kufanya upya kitendo " - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Umechagua tendo, lakini bado hujahifadhi mabadiliko yako katika uga husika. " -"Inawezekana unatafuta kitufe cha Nenda badala ya Hifadhi" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Kumbuka: Uko saa %s mbele ukilinganisha na majira ya seva" -msgstr[1] "Kumbuka: Uko masaa %s mbele ukilinganisha na majira ya seva" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Kumbuka: Uko saa %s nyuma ukilinganisha na majira ya seva" -msgstr[1] "Kumbuka: Uko masaa %s nyuma ukilinganisha na majira ya seva" - -msgid "Now" -msgstr "Sasa" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "Chagua wakati" - -msgid "Midnight" -msgstr "Usiku wa manane" - -msgid "6 a.m." -msgstr "Saa 12 alfajiri" - -msgid "Noon" -msgstr "Adhuhuri" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "Ghairi" - -msgid "Today" -msgstr "Leo" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "Jana" - -msgid "Tomorrow" -msgstr "Kesho" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Onesha" - -msgid "Hide" -msgstr "Ficha" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.mo deleted file mode 100644 index 398f1f2..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.po deleted file mode 100644 index 3a3cf1b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/django.po +++ /dev/null @@ -1,643 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Tamil (http://www.transifex.com/django/django/language/ta/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ta\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "உறுதியாக சொல்கிறீர்களா?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "அனைத்தும்" - -msgid "Yes" -msgstr "ஆம்" - -msgid "No" -msgstr "இல்லை" - -msgid "Unknown" -msgstr "தெரியாத" - -msgid "Any date" -msgstr "எந்த தேதியும்" - -msgid "Today" -msgstr "இன்று" - -msgid "Past 7 days" -msgstr "கடந்த 7 நாட்களில்" - -msgid "This month" -msgstr "இந்த மாதம்" - -msgid "This year" -msgstr "இந்த வருடம்" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Remove" -msgstr "அழிக்க" - -msgid "action time" -msgstr "செயல் நேரம்" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "பொருள் அடையாளம்" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "பொருள் உருவகித்தம்" - -msgid "action flag" -msgstr "செயர்குறி" - -msgid "change message" -msgstr "செய்தியை மாற்று" - -msgid "log entry" -msgstr "புகுபதிவு உள்ளீடு" - -msgid "log entries" -msgstr "புகுபதிவு உள்ளீடுகள்" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "மற்றும்" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "எந்த புலமும் மாறவில்லை." - -msgid "None" -msgstr "" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" வெற்றிகரமாக அழிக்கப்பட்டுள்ளது." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s யை சேர்க்க" - -#, python-format -msgid "Change %s" -msgstr "%s யை மாற்று" - -msgid "Database error" -msgstr "தகவல்சேமிப்பு பிழை" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "வரலாற்றை மாற்று: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "டிஜாங்ஙோ தள நிர்வாகி" - -msgid "Django administration" -msgstr "டிஜாங்ஙோ நிர்வாகம் " - -msgid "Site administration" -msgstr "இணைய மேலான்மை" - -msgid "Log in" -msgstr "உள்ளே போ" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "பக்கத்தைக் காணவில்லை" - -msgid "We're sorry, but the requested page could not be found." -msgstr "நீங்கள் விரும்பிய பக்கத்தை காண இயலவில்லை,அதற்காக நாங்கள் வருந்துகிறோம்." - -msgid "Home" -msgstr "வீடு" - -msgid "Server error" -msgstr "சேவகன் பிழை" - -msgid "Server error (500)" -msgstr "சேவையகம் தவறு(500)" - -msgid "Server Error (500)" -msgstr "சேவையகம் பிழை(500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "செல்" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"முதலில்,பயனர்ப்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிடவும்.அதன் பிறகு தான் நீங்கள் உங்கள் பெயரின் " -"விவரங்களை திருத்த முடியும்" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "கடவுச்சொல்லை மாற்று" - -msgid "Please correct the error below." -msgstr "கீழே உள்ள தவறுகளைத் திருத்துக" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "நல்வரவு," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "ஆவனமாக்கம்" - -msgid "Log out" -msgstr "வெளியேறு" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s சேர்க்க" - -msgid "History" -msgstr "வரலாறு" - -msgid "View on site" -msgstr "தளத்தில் பார்" - -msgid "Filter" -msgstr "வடிகட்டி" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "நீக்குக" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"நீக்கும் '%(escaped_object)s' ஆனது %(object_name)s தொடர்புடைய மற்றவற்றையும் நீக்கும். " -"ஆனால் அதை நீக்குவதற்குரிய உரிமை உங்களுக்கு இல்லை" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"நீங்கள் இந்த \"%(escaped_object)s\" %(object_name)s நீக்குவதில் நிச்சயமா?தொடர்புடைய " -"மற்றவையும் நீக்கப்படும். " - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "ஆம், எனக்கு உறுதி" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "மாற்றுக" - -msgid "Delete?" -msgstr "" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s ஆல்" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "சேர்க்க" - -msgid "You don't have permission to edit anything." -msgstr "உங்களுக்கு மாற்றுவதற்குரிய உரிமையில்லை" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "எதுவும் கிடைக்கவில்லை" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"உங்களுடைய தகவல்சேமிப்பகத்தை நிறுவுவதில் சில தவறுகள் உள்ளது. அதற்கு இணையான " -"தகவல்சேமிப்பு அட்டவணையைதயாரிக்கவும். மேலும் பயனர் படிக்கும் படியான தகவல்சேமிப்பகத்தை " -"உருவாக்கவும்." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "தேதி/நேரம் " - -msgid "User" -msgstr "பயனர்" - -msgid "Action" -msgstr "செயல்" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"இந்த பொருள் மாற்று வரலாற்றில் இல்லைஒரு வேளை நிர்வாகத்தளத்தின் மூலம் சேர்க்கப்படாமலிருக்கலாம்" - -msgid "Show all" -msgstr "எல்லாவற்றையும் காட்டு" - -msgid "Save" -msgstr "சேமிக்க" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s மொத்தம்" - -msgid "Save as new" -msgstr "புதியதாக சேமி" - -msgid "Save and add another" -msgstr "சேமித்து இன்னுமொன்றைச் சேர்" - -msgid "Save and continue editing" -msgstr "சேமித்து மாற்றத்தை தொடருக" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "வலைத்தளத்தில் உங்களது பொன்னான நேரத்தை செலவழித்தமைக்கு மிகுந்த நன்றி" - -msgid "Log in again" -msgstr "மீண்டும் உள்ளே பதிவு செய்யவும்" - -msgid "Password change" -msgstr "கடவுச்சொல் மாற்று" - -msgid "Your password was changed." -msgstr "உங்களுடைய கடவுச்சொல் மாற்றபட்டது" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"பாதுகாப்பு காரணங்களுக்காக , முதலில் உங்களது பழைய கடவுச்சொல்லை உள்ளிடுக. அதன் பிறகு " -"புதிய கடவுச்சொல்லை இரு முறை உள்ளிடுக. இது உங்களது உள்ளிடுதலை சரிபார்க்க உதவும். " - -msgid "Change my password" -msgstr "கடவுச் சொல்லை மாற்றவும்" - -msgid "Password reset" -msgstr "கடவுச்சொல்லை மாற்றியமை" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "புதிய கடவுச்சொல்:" - -msgid "Confirm password:" -msgstr "கடவுச்சொலின் மாற்றத்தை உறுதிப்படுத்து:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "உங்களது பயனாளர் பெயர், நீங்கள் மறந்திருந்தால்:" - -msgid "Thanks for using our site!" -msgstr "எங்களது வலைத்தளத்தை பயன் படுத்தியதற்கு மிகுந்த நன்றி" - -#, python-format -msgid "The %(site_name)s team" -msgstr "இந்த %(site_name)s -இன் குழு" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "எனது கடவுச்சொல்லை மாற்றியமை" - -msgid "All dates" -msgstr "அனைத்து தேதியும்" - -#, python-format -msgid "Select %s" -msgstr "%s யை தேர்ந்தெடு" - -#, python-format -msgid "Select %s to change" -msgstr "%s யை மாற்ற தேர்ந்தெடு" - -msgid "Date:" -msgstr "தேதி:" - -msgid "Time:" -msgstr "நேரம்:" - -msgid "Lookup" -msgstr "" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 3393111..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.po deleted file mode 100644 index 0a7bfcc..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,204 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Tamil (http://www.transifex.com/django/django/language/ta/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ta\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "%s இருக்கிறதா " - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "வடிகட்டி" - -msgid "Choose all" -msgstr "எல்லாவற்றையும் தேர்ந்த்தெடுக்க" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "அழிக்க" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s தேர்ந்த்தெடுக்கப்பட்ட" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "இப்பொழுது " - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "ஒரு நேரத்தை தேர்ந்த்தெடுக்க " - -msgid "Midnight" -msgstr "நடு இரவு " - -msgid "6 a.m." -msgstr "காலை 6 மணி " - -msgid "Noon" -msgstr "மதியம் " - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "வேண்டாம் " - -msgid "Today" -msgstr "இன்று " - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "நேற்று " - -msgid "Tomorrow" -msgstr "நாளை" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "" - -msgid "Hide" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.mo deleted file mode 100644 index 17e7dc6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.po deleted file mode 100644 index f624d4f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/django.po +++ /dev/null @@ -1,640 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# bhaskar teja yerneni , 2011 -# Jannis Leidel , 2011 -# ప్రవీణ్ ఇళ్ళ , 2011,2013 -# వీవెన్ , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Telugu (http://www.transifex.com/django/django/language/te/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: te\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s జయప్రదముగా తీసేవేయబడినది." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s తొలగించుట వీలుకాదు" - -msgid "Are you sure?" -msgstr "మీరు ఖచ్చితంగా ఇలా చేయాలనుకుంటున్నారా?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "ఎంచుకోన్న %(verbose_name_plural)s తీసివేయుము " - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "అన్నీ" - -msgid "Yes" -msgstr "అవును" - -msgid "No" -msgstr "కాదు" - -msgid "Unknown" -msgstr "తెలియనది" - -msgid "Any date" -msgstr "ఏ రోజైన" - -msgid "Today" -msgstr "ఈ రోజు" - -msgid "Past 7 days" -msgstr "గత 7 రోజుల గా" - -msgid "This month" -msgstr "ఈ నెల" - -msgid "This year" -msgstr "ఈ సంవత్సరం" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "చర్య:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Remove" -msgstr "తొలగించు" - -msgid "action time" -msgstr "పని సమయము " - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "వస్తువు" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "వస్తువు" - -msgid "action flag" -msgstr "పని ఫ్లాగ్" - -msgid "change message" -msgstr "సందేశము ని మార్చంది" - -msgid "log entry" -msgstr "లాగ్ ఎంట్రీ" - -msgid "log entries" -msgstr "లాగ్ ఎంట్రీలు" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "మరియు" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "క్షేత్రములు ఏమి మార్చబడలేదు" - -msgid "None" -msgstr "వొకటీ లేదు" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"అంశములపయి తదుపరి చర్య తీసుకోనటకు వాటిని ఎంపిక చేసుకోవలెను. ప్రస్తుతం ఎటువంటి అంశములు " -"మార్చబడలేదు." - -msgid "No action selected." -msgstr "మీరు ఎటువంటి చర్య తీసుకొనలేదు " - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" జయప్రదంగా తీసివేయబడ్డడి" - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%sని జత చేయండి " - -#, python-format -msgid "Change %s" -msgstr "%sని మార్చుము" - -msgid "Database error" -msgstr "దత్తాంశస్థానము పొరబాటు " - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s జయప్రదముగా మార్చబడినవి." -msgstr[1] "%(count)s %(name)s జయప్రదముగా మార్చబడినవి." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s ఎంపికయినది." -msgstr[1] "అన్ని %(total_count)s ఎంపికయినవి." - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 of %(cnt)s ఎంపికయినవి." - -#, python-format -msgid "Change history: %s" -msgstr "చరిత్రం మార్చు: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "జాంగొ యొక్క నిర్వాహణదారులు" - -msgid "Django administration" -msgstr "జాంగొ నిర్వాహణ" - -msgid "Site administration" -msgstr "సైట్ నిర్వాహణ" - -msgid "Log in" -msgstr "ప్రవేశించండి" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "పుట దొరకలేదు" - -msgid "We're sorry, but the requested page could not be found." -msgstr "క్షమించండి మీరు కోరిన పుట దొరకలేడు" - -msgid "Home" -msgstr "నివాసము" - -msgid "Server error" -msgstr "సర్వర్ పొరబాటు" - -msgid "Server error (500)" -msgstr "సర్వర్ పొరబాటు (500)" - -msgid "Server Error (500)" -msgstr "సర్వర్ పొరబాటు (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "ఎంచుకున్న చర్యను నడుపు" - -msgid "Go" -msgstr "వెళ్లు" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "ఎంపికను తుడిచివేయి" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "ఒక వాడుకరిపేరు మరియు సంకేతపదాన్ని ప్రవేశపెట్టండి." - -msgid "Change password" -msgstr "సంకేతపదాన్ని మార్చుకోండి" - -msgid "Please correct the error below." -msgstr "క్రింద ఉన్న తప్పులు సరిదిద్దుకోండి" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "సుస్వాగతం" - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "పత్రీకరణ" - -msgid "Log out" -msgstr "నిష్క్రమించండి" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s జత చేయు" - -msgid "History" -msgstr "చరిత్ర" - -msgid "View on site" -msgstr "సైట్ లో చూడండి" - -msgid "Filter" -msgstr "వడపోత" - -msgid "Remove from sorting" -msgstr "క్రమీకరణ నుండి తొలగించు" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "తొలగించు" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "అవును " - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "మార్చు" - -msgid "Delete?" -msgstr "తొలగించాలా?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "చేర్చు" - -msgid "You don't have permission to edit anything." -msgstr "మీకు ఏది మార్చటానికి అధికారము లేదు" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "ఏమి దొరకలేదు" - -msgid "Unknown content" -msgstr "తెలియని విషయం" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "మీ సంకేతపదం లేదా వాడుకరిపేరును మర్చిపోయారా?" - -msgid "Date/time" -msgstr "తేదీ/సమయం" - -msgid "User" -msgstr "వాడుకరి" - -msgid "Action" -msgstr "చర్య" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "అన్నీ చూపించు" - -msgid "Save" -msgstr "భద్రపరుచు" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "వెతుకు" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s ఫలితం" -msgstr[1] "%(counter)s ఫలితాలు" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s మొత్తము" - -msgid "Save as new" -msgstr "కొత్త దాని లా దాచు" - -msgid "Save and add another" -msgstr "దాచి కొత్త దానిని కలపండి" - -msgid "Save and continue editing" -msgstr "దాచి మార్చుటా ఉందండి" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "" - -msgid "Log in again" -msgstr "మళ్ళీ ప్రవేశించండి" - -msgid "Password change" -msgstr "అనుమతి పదం మార్పు" - -msgid "Your password was changed." -msgstr "మీ అనుమతి పదం మార్చబడిండి" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"దయచేసి రక్షన కోసము, మీ పాత అనుమతి పదం ఇవ్వండి , కొత్త అనుమతి పదం రెండు సార్లు ఇవ్వండి , " -"ఎం దుకంటే మీరు తప్పు ఇస్తే సరిచేయటానికి " - -msgid "Change my password" -msgstr "నా సంకేతపదాన్ని మార్చు" - -msgid "Password reset" -msgstr "అనుమతి పదం తిరిగి అమర్చు" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "మీ అనుమతి పదం మర్చుబడినది. మీరు ఇప్పుదు లాగ్ ఇన్ అవ్వచ్చు." - -msgid "Password reset confirmation" -msgstr "అనుమతి పదం తిరిగి మార్చు ఖాయం చెయండి" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"దయచేసి రక్షన కోసము, మీ పాత అనుమతి పదం ఇవ్వండి , కొత్త అనుమతి పదం రెండు సార్లు ఇవ్వండి , " -"ఎం దుకంటే మీరు తప్పు ఇస్తే సరిచేయటానికి " - -msgid "New password:" -msgstr "కొత్త సంకేతపదం:" - -msgid "Confirm password:" -msgstr "సంకేతపదాన్ని నిర్ధారించండి:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "మీ వాడుకరిపేరు, ఒక వేళ మీరు మర్చిపోయివుంటే:" - -msgid "Thanks for using our site!" -msgstr "మా సైటుని ఉపయోగిస్తున్నందుకు ధన్యవాదములు!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s జట్టు" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "ఈమెయిలు చిరునామా:" - -msgid "Reset my password" -msgstr "అనుమతిపదం తిరిగి అమర్చు" - -msgid "All dates" -msgstr "అన్నీ తేదీలు" - -#, python-format -msgid "Select %s" -msgstr "%s ని ఎన్నుకోండి" - -#, python-format -msgid "Select %s to change" -msgstr "%s ని మార్చటానికి ఎన్నుకోండి" - -msgid "Date:" -msgstr "తారీఖు:" - -msgid "Time:" -msgstr "సమయం:" - -msgid "Lookup" -msgstr "అంశ శోధన." - -msgid "Currently:" -msgstr "ప్రస్తుతం" - -msgid "Change:" -msgstr "మార్చు:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 92b65f1..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po deleted file mode 100644 index cfa35a1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,205 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# bhaskar teja yerneni , 2011 -# Jannis Leidel , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Telugu (http://www.transifex.com/django/django/language/te/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: te\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "ఆందుబాతులోఉన్న %s " - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "వడపోత" - -msgid "Choose all" -msgstr "అన్నీ ఎన్నుకోండి" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "తీసివేయండి" - -#, javascript-format -msgid "Chosen %s" -msgstr "ఎన్నుకున్న %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "ఇప్పుడు" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "ఒక సమయము ఎన్నుకోండి" - -msgid "Midnight" -msgstr "ఆర్ధరాత్రి" - -msgid "6 a.m." -msgstr "6 a.m" - -msgid "Noon" -msgstr "మధ్యాహ్నము" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "రద్దు చేయు" - -msgid "Today" -msgstr "ఈనాడు" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "నిన్న" - -msgid "Tomorrow" -msgstr "రేపు" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "చూపించుము" - -msgid "Hide" -msgstr "దాచు" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.mo deleted file mode 100644 index 34085cb..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.po deleted file mode 100644 index dee2872..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/django.po +++ /dev/null @@ -1,699 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Mariusz Felisiak , 2020 -# Surush Sufiew , 2020 -# Surush Sufiew , 2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-14 19:53+0200\n" -"PO-Revision-Date: 2020-07-30 18:53+0000\n" -"Last-Translator: Mariusz Felisiak \n" -"Language-Team: Tajik (http://www.transifex.com/django/django/language/tg/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tg\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Муваффақона нест сохтед %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Нест карда нашуд %(name)s" - -msgid "Are you sure?" -msgstr "Шумо рози ҳастед ?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Нест сохтани интихобшудаҳо %(verbose_name_plural)s" - -msgid "Administration" -msgstr "Маъмурият" - -msgid "All" -msgstr "Ҳама" - -msgid "Yes" -msgstr "Ҳа" - -msgid "No" -msgstr "Не" - -msgid "Unknown" -msgstr "Номуайян" - -msgid "Any date" -msgstr "Санаи бефарқ" - -msgid "Today" -msgstr "Имрӯз" - -msgid "Past 7 days" -msgstr "7 рӯзи охир" - -msgid "This month" -msgstr "Моҳи ҷорӣ" - -msgid "This year" -msgstr "Соли ҷорӣ" - -msgid "No date" -msgstr "Сана ишора нашудааст" - -msgid "Has date" -msgstr "Сана ишора шудааст" - -msgid "Empty" -msgstr "Холӣ" - -msgid "Not empty" -msgstr "Холӣ нест" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Хоҳиш менамоем %(username)s ва рамзро дуруст ворид созед. Ҳарду майдон " -"метавонанд духура бошанд." - -msgid "Action:" -msgstr "Амал:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Боз якто %(verbose_name)s илова кардан" - -msgid "Remove" -msgstr "Нест кардан" - -msgid "Addition" -msgstr "Иловакунӣ" - -msgid "Change" -msgstr "Тағйир додан" - -msgid "Deletion" -msgstr "Несткунӣ" - -msgid "action time" -msgstr "вақти амал" - -msgid "user" -msgstr "истифодабаранда" - -msgid "content type" -msgstr "намуди контент" - -msgid "object id" -msgstr "идентификатори объект" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "намоиши объект" - -msgid "action flag" -msgstr "намуди амал" - -msgid "change message" -msgstr "хабар оиди тағйирот" - -msgid "log entry" -msgstr "қайд дар дафтар" - -msgid "log entries" -msgstr "қайдҳо дар дафтар" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Илова шуд \"%(object)s\"" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "" - -msgid "LogEntry Object" -msgstr "Қайд дар дафтар" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "Илова шуд." - -msgid "and" -msgstr "ва" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Тағйир ёфт {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "Ягон майдон тағйир наёфт." - -msgid "None" -msgstr "Не" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "Шумо метавонед ин объектро дар поён аз нав тағйир диҳед." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Барои иҷрои амал лозим аст, ки объектро интихоб намоед. Тағйирот барои " -"объектҳо ворид нашуданд " - -msgid "No action selected." -msgstr "Ҳеҷ амал инихоб нашудааст." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Илова кардан %s" - -#, python-format -msgid "Change %s" -msgstr "Тағйир додан %s" - -#, python-format -msgid "View %s" -msgstr "Азназаргузаронӣ %s" - -msgid "Database error" -msgstr "Мушкилӣ дар базаи додаҳо" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Интихоб карда шуд 0 аз %(cnt)s " - -#, python-format -msgid "Change history: %s" -msgstr "Таърихи вориди тағйирот: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Несткунии объекти %(instance)s намуди %(class_name)s талаб мекунад, ки " -"объектҳои алоқамандшудаизерин низ нест карда шаванд: %(related_objects)s" - -msgid "Django site admin" -msgstr "Сомонаи маъмурии Django" - -msgid "Django administration" -msgstr "Маъмурияти Django" - -msgid "Site administration" -msgstr "Маъмурияти сомона" - -msgid "Log in" -msgstr "Ворид шудан" - -#, python-format -msgid "%(app)s administration" -msgstr "Маъмурияти барномаи «%(app)s»" - -msgid "Page not found" -msgstr "Саҳифа ёфт нашуд" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "Асосӣ" - -msgid "Server error" -msgstr "Мушкилӣ дар сервер" - -msgid "Server error (500)" -msgstr "Мушкилӣ дар сервер (500)" - -msgid "Server Error (500)" -msgstr "Мушкилӣ дар сервер (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Иҷрои амалҳои ихтихобшуда" - -msgid "Go" -msgstr "Иҷро кардан" - -msgid "Click here to select the objects across all pages" -msgstr "Барои интихоби объектҳо дар ҳамаи саҳифаҳо, инҷоро пахш намоед" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Интихоби ҳамаи %(module_name)s (%(total_count)s)" - -msgid "Clear selection" -msgstr "Бекоркунии интихоб" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Моелҳои барномаи %(name)s" - -msgid "Add" -msgstr "Илова кардан" - -msgid "View" -msgstr "Азназаргузаронӣ" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "Ном ва рамзро ворид созед." - -msgid "Change password" -msgstr "Тағйир додани рамз" - -msgid "Please correct the error below." -msgstr "Хоҳишмандем, хатогии зеринро ислоҳ кунед." - -msgid "Please correct the errors below." -msgstr "Хоҳишмандем, хатогиҳои зеринро ислоҳ кунед." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Рамзи навро ворид созед %(username)s." - -msgid "Welcome," -msgstr "Марҳамат," - -msgid "View site" -msgstr "Гузариш ба сомона" - -msgid "Documentation" -msgstr "Ҳуҷҷатнигорӣ" - -msgid "Log out" -msgstr "Баромад" - -#, python-format -msgid "Add %(name)s" -msgstr "Дохил кардани %(name)s" - -msgid "History" -msgstr "Таърих" - -msgid "View on site" -msgstr "Дар сомона дидан" - -msgid "Filter" -msgstr "Поло(Filter)" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "Аз қайди навъҳо баровардан" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Бартарии навъҳо: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Навъҷудокунӣ дар дигар раванд" - -msgid "Delete" -msgstr "Нест кардан" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Нест кардани %(object_name)s '%(escaped_object)s' ба нестсозии объектҳои ба " -"он алоқаманд оварда мерасонад, аммо'ҳисоби корбарӣ'-и (аккаунт) шумо иҷозати " -"нестсозии объектҳои зеринро надорад:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Нестсозии %(object_name)s '%(escaped_object)s' талаб менамояд, ки " -"объектҳоиалоқаманди муҳофизатии зерин нест карда шаванд:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Шумо боварӣ доред, ки ин элементҳо нест карда шаванд: %(object_name)s " -"\"%(escaped_object)s\"? Ҳамаи объектҳои алоқаманди зерин низ нест карда " -"мешаванд:" - -msgid "Objects" -msgstr "Объектҳо" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "Не, баргаштан" - -msgid "Delete multiple objects" -msgstr "Нестсозии якчанд объектҳо" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Нест кардани %(objects_name)s ба нестсозии объектҳои ба он алоқаманд оварда " -"мерасонад, аммо'ҳисоби корбарӣ'-и (аккаунт) шумо иҷозати нестсозии объектҳои " -"зеринро надорад:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Нестсозии %(objects_name)s талаб менамояд, ки объектҳоиалоқаманди " -"муҳофизатии зерин нест карда шаванд:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Шумо боварӣ доред, ки ин элементҳо нест карда шаванд: %(objects_name)s? " -"Ҳамаи объектҳои алоқаманди зерин низ нест карда мешаванд:" - -msgid "Delete?" -msgstr "Нест кардан?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s" - -msgid "Summary" -msgstr "Мухтасар" - -msgid "Recent actions" -msgstr "Амалҳои охирин" - -msgid "My actions" -msgstr "Амалҳои ман" - -msgid "None available" -msgstr "Дастнорас" - -msgid "Unknown content" -msgstr "Шакли номуайян" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Шумо ба система ҳамчун %(username)s, ворид шудед, вале салоҳияти шумобарои " -"азназаргузарониисаҳифаи мазкур нокифоя аст. Шояд шумо мехоҳед бо истифода аз " -"дигар 'ҳисоби корбарӣ' вориди система шавед." - -msgid "Forgotten your password or username?" -msgstr "Рамз ё номро фаромӯш кардед?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Date/time" -msgstr "Сана ва вақт" - -msgid "User" -msgstr "Истифодабар" - -msgid "Action" -msgstr "Амал" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "Ҳамаро нишон додан" - -msgid "Save" -msgstr "Ҳифз кардан" - -msgid "Popup closing…" -msgstr "Равзанаи иловагӣ пӯшида мешавад..." - -msgid "Search" -msgstr "Ёфтан" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s ҳамаги" - -msgid "Save as new" -msgstr "Ҳамчун объекти нав ҳифз кардан" - -msgid "Save and add another" -msgstr "Ҳифз кардан ва объекти дигар илова кардан" - -msgid "Save and continue editing" -msgstr "Ҳифз кардан ва танзимотро давом додан" - -msgid "Save and view" -msgstr "Ҳифз кардан ва аз назар гузаронидан" - -msgid "Close" -msgstr "Пӯшидан" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Объекти интихобшударо тағйир додан: \"%(model)s\"" - -#, python-format -msgid "Add another %(model)s" -msgstr "Воридсозии боз як объекти \"%(model)s\"" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Объекти зерини интихобшударо нест кардан \"%(model)s\"" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Барои вақти дар ин сомона сарф кардаатон миннатдорем." - -msgid "Log in again" -msgstr "Аз нав ворид шудан" - -msgid "Password change" -msgstr "Тағйири рамз" - -msgid "Your password was changed." -msgstr "Рамзи шумо тағйир дода шуд." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "Тағйири рамзи ман" - -msgid "Password reset" -msgstr "Барқароркунии рамз" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Рамзи шумо ҳифз шуд. Акнун шумо метавонед ворид шавед." - -msgid "Password reset confirmation" -msgstr "Барқароркунии рамз тасдиқ карда шуд." - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Хоҳиш мекунем рамзи нави худро ду маротиба(бояд ҳарду мувофиқат кунанд) " -"дохил кунед." - -msgid "New password:" -msgstr "Рамзи нав:" - -msgid "Confirm password:" -msgstr "Рамзи тасдиқӣ:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Суроға барои барқароркунии рамз нодуруст аст. Эҳтимол алакай як маротиба " -"истифода шудааст.Амали барқароркунии рамзро такрор намоед." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Шумо ин матубро гирифтед барои он, ки аз сомонаи %(site_name)s, ки бо ин " -"почтаи электронӣ алоқаманд аст,ба мо дархост барои барқароркунии рамз қабул " -"шуд." - -msgid "Please go to the following page and choose a new password:" -msgstr "Хоҳишмандем ба ин саҳифа гузаред ва рамзи навро ворид созед:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "Барои аз сомонаи мо истифода карданатон сипосгузорем!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Гурӯҳи ташкили %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "Суроғаи почтаи электронӣ:" - -msgid "Reset my password" -msgstr "Барқароркунии рамзи ман" - -msgid "All dates" -msgstr "Ҳама санаҳо" - -#, python-format -msgid "Select %s" -msgstr "Интихоб кунед %s" - -#, python-format -msgid "Select %s to change" -msgstr "Интихоби %s барои тағйирот ворид сохтан " - -#, python-format -msgid "Select %s to view" -msgstr "Интихоби %s барои азназаргузаронӣ" - -msgid "Date:" -msgstr "Сана:" - -msgid "Time:" -msgstr "Вақт:" - -msgid "Lookup" -msgstr "Ҷустуҷӯ" - -msgid "Currently:" -msgstr "Ҷорӣ:" - -msgid "Change:" -msgstr "Тағйир додан:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 2c06551..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po deleted file mode 100644 index b5f4fdb..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,222 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Surush Sufiew , 2020 -# Surush Sufiew , 2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-11 20:56+0200\n" -"PO-Revision-Date: 2020-05-15 01:22+0000\n" -"Last-Translator: Surush Sufiew \n" -"Language-Team: Tajik (http://www.transifex.com/django/django/language/tg/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tg\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Дастрас %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Ин руйхати %s - ҳои дастрас. Шумо метавонед якчандто аз инҳоро дар " -"майдонипоён бо пахши тугмаи \\'Интихоб кардан'\\ интихоб намоед." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Барои баровардани рӯйхати %s. -ҳои дастрас, ба воридсозии матни лозима шурӯъ " -"кунед" - -msgid "Filter" -msgstr "Поло" - -msgid "Choose all" -msgstr "Интихоби кулл" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Барои якбора интихоб намудани кулли %s инҷоро пахш намоед." - -msgid "Choose" -msgstr "интихоб кардан" - -msgid "Remove" -msgstr "Нест кардан" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s -ҳои интихобшуда" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Ин руйхати %s - ҳои интихобшуда. Шумо метавонед якчандто аз инҳоро дар " -"майдонипоён бо пахши тугмаи \\'Нест кардан'\\ нест созед." - -msgid "Remove all" -msgstr "Нест кардан ба таври кулл" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Пахш кунед барои якбора нест кардани ҳамаи %s." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Тағйиротҳои ҳифзнакардашуда дар майдони таҳрир мавҷуданд. Агаршумо иҷрои " -"амалро давом диҳед, онҳо нест хоҳанд шуд." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Шумо амалро интихоб намудед, вале ҳануз тағйиротҳои ворид кардашуда ҳифз " -"нашудаанд.\"\n" -"\"Барои ҳифз намудани онҳо ба тугмаи 'ОК' пахш намоед.\"\n" -"\"Сипас шуморо лозим меояд, ки амалро такроран иҷро намоед" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"\"Шумо амалрор интихоб намудед, вале тағйирот ворид насохтед.\"\n" -"\"Эҳтимол шумо мехостед ба ҷои тугмаи \\'Ҳифз кардан'\\, аз тугмаи \\'Иҷро " -"кардан'\\ истифода намоед.\"\n" -"\"Агар чунин бошад, он гоҳ тугмаи \\'Инкор'\\ пахш кунед, то ки ба майдони " -"таҳриркунӣ баргардед.\"" - -msgid "Now" -msgstr "Ҳозир" - -msgid "Midnight" -msgstr "Нисфишабӣ" - -msgid "6 a.m." -msgstr "6-и саҳар" - -msgid "Noon" -msgstr "Нисфирӯзӣ" - -msgid "6 p.m." -msgstr "6-и бегоҳӣ" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Choose a Time" -msgstr "Вақтро интихоб кунед" - -msgid "Choose a time" -msgstr "Вақтро интихоб кунед" - -msgid "Cancel" -msgstr "Инкор" - -msgid "Today" -msgstr "Имрӯз" - -msgid "Choose a Date" -msgstr "Санаро интихоб кунед" - -msgid "Yesterday" -msgstr "Дирӯз" - -msgid "Tomorrow" -msgstr "Фардо" - -msgid "January" -msgstr "Январ" - -msgid "February" -msgstr "Феврал" - -msgid "March" -msgstr "Март" - -msgid "April" -msgstr "Апрел" - -msgid "May" -msgstr "Май" - -msgid "June" -msgstr "Июн" - -msgid "July" -msgstr "Июл" - -msgid "August" -msgstr "Август" - -msgid "September" -msgstr "Сентябр" - -msgid "October" -msgstr "Октябр" - -msgid "November" -msgstr "Ноябр" - -msgid "December" -msgstr "Декабр" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Я" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Д" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "С" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Ч" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "П" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Ҷ" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Ш" - -msgid "Show" -msgstr "Нишон додан" - -msgid "Hide" -msgstr "Пинҳон кардан" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.mo deleted file mode 100644 index 5beeadd..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.po deleted file mode 100644 index 53054f8..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/django.po +++ /dev/null @@ -1,671 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Kowit Charoenratchatabhan , 2013-2014,2017-2019 -# piti118 , 2012 -# Suteepat Damrongyingsupab , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-08 17:27+0200\n" -"PO-Revision-Date: 2019-09-17 01:31+0000\n" -"Last-Translator: Ramiro Morales\n" -"Language-Team: Thai (http://www.transifex.com/django/django/language/th/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: th\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s ถูกลบเรียบร้อยแล้ว" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "ไม่สามารถลบ %(name)s" - -msgid "Are you sure?" -msgstr "แน่ใจหรือ" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "ลบ %(verbose_name_plural)s ที่เลือก" - -msgid "Administration" -msgstr "การจัดการ" - -msgid "All" -msgstr "ทั้งหมด" - -msgid "Yes" -msgstr "ใช่" - -msgid "No" -msgstr "ไม่ใช่" - -msgid "Unknown" -msgstr "ไม่รู้" - -msgid "Any date" -msgstr "วันไหนก็ได้" - -msgid "Today" -msgstr "วันนี้" - -msgid "Past 7 days" -msgstr "สัปดาห์ที่แล้ว" - -msgid "This month" -msgstr "เดือนนี้" - -msgid "This year" -msgstr "ปีนี้" - -msgid "No date" -msgstr "ไม่รวมวันที่" - -msgid "Has date" -msgstr "รวมวันที่" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "กรุณาใส่ %(username)s และรหัสผ่านให้ถูกต้อง มีการแยกแยะตัวพิมพ์ใหญ่-เล็ก" - -msgid "Action:" -msgstr "คำสั่ง :" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "เพิ่ม %(verbose_name)s อีก" - -msgid "Remove" -msgstr "ถอดออก" - -msgid "Addition" -msgstr "เพิ่ม" - -msgid "Change" -msgstr "เปลี่ยนแปลง" - -msgid "Deletion" -msgstr "ลบ" - -msgid "action time" -msgstr "เวลาลงมือ" - -msgid "user" -msgstr "ผู้ใช้" - -msgid "content type" -msgstr "content type" - -msgid "object id" -msgstr "อ็อบเจ็กต์ไอดี" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "object repr" - -msgid "action flag" -msgstr "action flag" - -msgid "change message" -msgstr "เปลี่ยนข้อความ" - -msgid "log entry" -msgstr "log entry" - -msgid "log entries" -msgstr "log entries" - -#, python-format -msgid "Added “%(object)s”." -msgstr "" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "" - -msgid "LogEntry Object" -msgstr "อ็อบเจ็กต์ LogEntry" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "เพิ่มแล้ว" - -msgid "and" -msgstr "และ" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "เปลี่ยน {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "ไม่มีฟิลด์ใดถูกเปลี่ยน" - -msgid "None" -msgstr "ไม่มี" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "คุณสามารถแก้ไขได้อีกครั้งด้านล่าง" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"ไม่มีรายการใดถูกเปลี่ยน\n" -"รายการจะต้องถูกเลือกก่อนเพื่อที่จะทำตามคำสั่งได้" - -msgid "No action selected." -msgstr "ไม่มีคำสั่งที่ถูกเลือก" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "เพิ่ม %s" - -#, python-format -msgid "Change %s" -msgstr "เปลี่ยน %s" - -#, python-format -msgid "View %s" -msgstr "ดู %s" - -msgid "Database error" -msgstr "เกิดความผิดพลาดที่ฐานข้อมูล" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(name)s จำนวน %(count)s อันได้ถูกเปลี่ยนแปลงเรียบร้อยแล้ว." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s ได้ถูกเลือก" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "เลือก 0 จาก %(cnt)s" - -#, python-format -msgid "Change history: %s" -msgstr "เปลี่ยนแปลงประวัติ: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"กำลังลบ %(class_name)s %(instance)s จะต้องมีการลบอ็อบเจ็คต์ป้องกันที่เกี่ยวข้อง : " -"%(related_objects)s" - -msgid "Django site admin" -msgstr "ผู้ดูแลระบบ Django" - -msgid "Django administration" -msgstr "การจัดการ Django" - -msgid "Site administration" -msgstr "การจัดการไซต์" - -msgid "Log in" -msgstr "เข้าสู่ระบบ" - -#, python-format -msgid "%(app)s administration" -msgstr "การจัดการ %(app)s" - -msgid "Page not found" -msgstr "ไม่พบหน้านี้" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "หน้าหลัก" - -msgid "Server error" -msgstr "เซิร์ฟเวอร์ขัดข้อง" - -msgid "Server error (500)" -msgstr "เซิร์ฟเวอร์ขัดข้อง (500)" - -msgid "Server Error (500)" -msgstr "เซิร์ฟเวอร์ขัดข้อง (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "รันคำสั่งที่ถูกเลือก" - -msgid "Go" -msgstr "ไป" - -msgid "Click here to select the objects across all pages" -msgstr "คลิกที่นี่เพื่อเลือกอ็อบเจ็กต์จากหน้าทั้งหมด" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "เลือกทั้งหมด %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "เคลียร์ตัวเลือก" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "กรุณาใส่ชื่อผู้ใช้และรหัสผ่าน" - -msgid "Change password" -msgstr "เปลี่ยนรหัสผ่าน" - -msgid "Please correct the error below." -msgstr "กรุณาแก้ไขข้อผิดพลาดด้านล่าง" - -msgid "Please correct the errors below." -msgstr "กรุณาแก้ไขข้อผิดพลาดด้านล่าง" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "ใส่รหัสผ่านใหม่สำหรับผู้ใช้ %(username)s." - -msgid "Welcome," -msgstr "ยินดีต้อนรับ," - -msgid "View site" -msgstr "ดูที่หน้าเว็บ" - -msgid "Documentation" -msgstr "เอกสารประกอบ" - -msgid "Log out" -msgstr "ออกจากระบบ" - -#, python-format -msgid "Add %(name)s" -msgstr "เพิ่ม %(name)s" - -msgid "History" -msgstr "ประวัติ" - -msgid "View on site" -msgstr "ดูที่หน้าเว็บ" - -msgid "Filter" -msgstr "ตัวกรอง" - -msgid "Remove from sorting" -msgstr "เอาออกจาก sorting" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "ลำดับการ sorting: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "เปิด/ปิด sorting" - -msgid "Delete" -msgstr "ลบ" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"กำลังดำเนินการลบ %(object_name)s '%(escaped_object)s'และจะแสดงผลการลบ " -"แต่บัญชีของคุณไม่สามารถทำการลบข้อมูลชนิดนี้ได้" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"การลบ %(object_name)s '%(escaped_object)s' จำเป็นจะต้องลบอ็อบเจ็กต์ที่เกี่ยวข้องต่อไปนี้:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"คุณแน่ใจหรือที่จะลบ %(object_name)s \"%(escaped_object)s\"?" -"ข้อมูลที่เกี่ยวข้องทั้งหมดจะถูกลบไปด้วย:" - -msgid "Objects" -msgstr "อ็อบเจ็กต์" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "ไม่ พาฉันกลับ" - -msgid "Delete multiple objects" -msgstr "ลบหลายอ็อบเจ็กต์" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"การลบ %(objects_name)s ที่เลือก จะทำให้อ็อบเจ็กต์ที่เกี่ยวข้องถูกลบไปด้วย " -"แต่บัญชีของคุณไม่มีสิทธิ์ที่จะลบอ็อบเจ็กต์ชนิดนี้" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "การลบ %(objects_name)s ที่ถูกเลือก จำเป็นจะต้องลบอ็อบเจ็กต์ที่เกี่ยวข้องต่อไปนี้:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"คุณแน่ใจหรือว่า ต้องการลบ %(objects_name)s ที่ถูกเลือก? เนื่องจากอ็อบเจ็กต์ " -"และรายการที่เกี่ยวข้องทั้งหมดต่อไปนี้จะถูกลบด้วย" - -msgid "View" -msgstr "ดู:" - -msgid "Delete?" -msgstr "ลบ?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " โดย %(filter_title)s " - -msgid "Summary" -msgstr "สรุป" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "โมเดลในแอป %(name)s" - -msgid "Add" -msgstr "เพิ่ม" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "Recent actions" -msgstr "การกระทำล่าสุด" - -msgid "My actions" -msgstr "การกระทำของฉัน" - -msgid "None available" -msgstr "ไม่ว่าง" - -msgid "Unknown content" -msgstr "ไม่ทราบเนื้อหา" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"คุณได้ลงชื่อเป็น %(username)s แต่ไม่ได้รับอนุญาตให้เข้าถึงหน้านี้ " -"คุณต้องการลงชื่อเข้าใช้บัญชีอื่นหรือไม่?" - -msgid "Forgotten your password or username?" -msgstr "ลืมรหัสผ่านหรือชื่อผู้ใช้ของคุณหรือไม่" - -msgid "Date/time" -msgstr "วันที่/เวลา" - -msgid "User" -msgstr "ผู้ใช้" - -msgid "Action" -msgstr "คำสั่ง" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "แสดงทั้งหมด" - -msgid "Save" -msgstr "บันทึก" - -msgid "Popup closing…" -msgstr "ปิดป๊อปอัป ..." - -msgid "Search" -msgstr "ค้นหา" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s ผลลัพธ์" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s ทั้งหมด" - -msgid "Save as new" -msgstr "บันทึกใหม่" - -msgid "Save and add another" -msgstr "บันทึกและเพิ่ม" - -msgid "Save and continue editing" -msgstr "บันทึกและกลับมาแก้ไข" - -msgid "Save and view" -msgstr "บันทึกและดู" - -msgid "Close" -msgstr "ปิด" - -#, python-format -msgid "Change selected %(model)s" -msgstr "เปลี่ยนแปลง %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "เพิ่ม %(model)sอีก" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "ลบ %(model)s" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "ขอบคุณที่สละเวลาอันมีค่าให้กับเว็บไซต์ของเราในวันนี้" - -msgid "Log in again" -msgstr "เข้าสู่ระบบอีกครั้ง" - -msgid "Password change" -msgstr "เปลี่ยนรหัสผ่าน" - -msgid "Your password was changed." -msgstr "รหัสผ่านของคุณถูกเปลี่ยนไปแล้ว" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "เปลี่ยนรหัสผ่านของฉัน" - -msgid "Password reset" -msgstr "ตั้งค่ารหัสผ่านใหม่" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "รหัสผ่านของคุณได้รับการตั้งค่าแล้ว คุณสามารถเข้าสู่ระบบได้ทันที" - -msgid "Password reset confirmation" -msgstr "การยืนยันตั้งค่ารหัสผ่านใหม่" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "กรุณาใส่รหัสผ่านใหม่สองครั้ง เพื่อตรวจสอบว่าคุณได้พิมพ์รหัสอย่างถูกต้อง" - -msgid "New password:" -msgstr "รหัสผ่านใหม่:" - -msgid "Confirm password:" -msgstr "ยืนยันรหัสผ่าน:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"การตั้งรหัสผ่านใหม่ไม่สำเร็จ เป็นเพราะว่าหน้านี้ได้ถูกใช้งานไปแล้ว กรุณาทำการตั้งรหัสผ่านใหม่อีกครั้ง" - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"คุณได้รับอีเมล์ฉบับนี้ เนื่องจากคุณส่งคำร้องขอเปลี่ยนรหัสผ่านสำหรับบัญชีผู้ใช้ของคุณที่ %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "กรุณาไปที่หน้านี้และเลือกรหัสผ่านใหม่:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "ขอบคุณสำหรับการใช้งานเว็บไซต์ของเรา" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s ทีม" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "อีเมล:" - -msgid "Reset my password" -msgstr "ตั้งรหัสผ่านของฉันใหม่" - -msgid "All dates" -msgstr "ทุกวัน" - -#, python-format -msgid "Select %s" -msgstr "เลือก %s" - -#, python-format -msgid "Select %s to change" -msgstr "เลือก %s เพื่อเปลี่ยนแปลง" - -#, python-format -msgid "Select %s to view" -msgstr "เลือก %s เพื่อดู" - -msgid "Date:" -msgstr "วันที่ :" - -msgid "Time:" -msgstr "เวลา :" - -msgid "Lookup" -msgstr "ดูที่" - -msgid "Currently:" -msgstr "ปัจจุบัน:" - -msgid "Change:" -msgstr "เปลี่ยนเป็น:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 71eff63..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.po deleted file mode 100644 index 5cca152..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/th/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,213 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Kowit Charoenratchatabhan , 2011-2012,2018 -# Perry Roper , 2017 -# Suteepat Damrongyingsupab , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-17 11:50+0200\n" -"PO-Revision-Date: 2018-05-06 07:50+0000\n" -"Last-Translator: Kowit Charoenratchatabhan \n" -"Language-Team: Thai (http://www.transifex.com/django/django/language/th/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: th\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "%sที่มีอยู่" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"นี่คือรายการที่ใช้ได้ของ %s คุณอาจเลือกบางรายการโดยการเลือกไว้ในกล่องด้านล่างแล้วคลิกที่ปุ่ม " -"\"เลือก\" ระหว่างสองกล่อง" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "พิมพ์ลงในช่องนี้เพื่อกรองรายการที่ใช้ได้ของ %s" - -msgid "Filter" -msgstr "ตัวกรอง" - -msgid "Choose all" -msgstr "เลือกทั้งหมด" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "คลิกเพื่อเลือก %s ทั้งหมดในครั้งเดียว" - -msgid "Choose" -msgstr "เลือก" - -msgid "Remove" -msgstr "ลบออก" - -#, javascript-format -msgid "Chosen %s" -msgstr "%sที่ถูกเลือก" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"นี่คือรายการที่ถูกเลือกของ %s คุณอาจเอาบางรายการออกโดยการเลือกไว้ในกล่องด้านล่างแล้วคลิกที่ปุ่ม " -"\"เอาออก\" ระหว่างสองกล่อง" - -msgid "Remove all" -msgstr "เอาออกทั้งหมด" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "คลิกเพื่อเอา %s ออกทั้งหมดในครั้งเดียว" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s จาก %(cnt)s selected" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"คุณยังไม่ได้บันทึกการเปลี่ยนแปลงในแต่ละฟิลด์ ถ้าคุณเรียกใช้คำสั่ง " -"ข้อมูลที่ไม่ได้บันทึกการเปลี่ยนแปลงของคุณจะหายไป" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"คุณได้เลือกคำสั่ง แต่คุณยังไม่ได้บันทึกการเปลี่ยนแปลงของคุณไปยังฟิลด์ กรุณาคลิก OK เพื่อบันทึก " -"คุณจะต้องเรียกใช้คำสั่งใหม่อีกครั้ง" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"คุณได้เลือกคำสั่งและคุณยังไม่ได้ทำการเปลี่ยนแปลงใด ๆ ในฟิลด์ คุณอาจมองหาปุ่มไปมากกว่าปุ่มบันทึก" - -msgid "Now" -msgstr "ขณะนี้" - -msgid "Midnight" -msgstr "เที่ยงคืน" - -msgid "6 a.m." -msgstr "หกโมงเช้า" - -msgid "Noon" -msgstr "เที่ยงวัน" - -msgid "6 p.m." -msgstr "หกโมงเย็น" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "หมายเหตุ: เวลาคุณเร็วกว่าเวลาบนเซิร์ฟเวอร์อยู่ %s ชั่วโมง." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "หมายเหตุ: เวลาคุณช้ากว่าเวลาบนเซิร์ฟเวอร์อยู่ %s ชั่วโมง." - -msgid "Choose a Time" -msgstr "เลือกเวลา" - -msgid "Choose a time" -msgstr "เลือกเวลา" - -msgid "Cancel" -msgstr "ยกเลิก" - -msgid "Today" -msgstr "วันนี้" - -msgid "Choose a Date" -msgstr "เลือกวัน" - -msgid "Yesterday" -msgstr "เมื่อวาน" - -msgid "Tomorrow" -msgstr "พรุ่งนี้" - -msgid "January" -msgstr "มกราคม" - -msgid "February" -msgstr "กุมภาพันธ์" - -msgid "March" -msgstr "มีนาคม" - -msgid "April" -msgstr "เมษายน" - -msgid "May" -msgstr "พฤษภาคม" - -msgid "June" -msgstr "มิถุนายน" - -msgid "July" -msgstr "กรกฎาคม" - -msgid "August" -msgstr "สิงหาคม" - -msgid "September" -msgstr "กันยายน" - -msgid "October" -msgstr "ตุลาคม" - -msgid "November" -msgstr "พฤศจิกายน" - -msgid "December" -msgstr "ธันวาคม" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "อา." - -msgctxt "one letter Monday" -msgid "M" -msgstr "จ." - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "อ." - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "พ." - -msgctxt "one letter Thursday" -msgid "T" -msgstr "พฤ." - -msgctxt "one letter Friday" -msgid "F" -msgstr "ศ." - -msgctxt "one letter Saturday" -msgid "S" -msgstr "ส." - -msgid "Show" -msgstr "แสดง" - -msgid "Hide" -msgstr "ซ่อน" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.mo deleted file mode 100644 index 0b77d71..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.po deleted file mode 100644 index f0d75c5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tk/LC_MESSAGES/django.po +++ /dev/null @@ -1,704 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Mariusz Felisiak , 2022 -# Welbeck Garli , 2022 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Mariusz Felisiak , 2022\n" -"Language-Team: Turkmen (http://www.transifex.com/django/django/language/" -"tk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tk\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "%(verbose_name_plural)s saýlanany poz" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d%(items)süstünlikli pozuldy." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Pozmak amala aşyrylyp bilinmedi %(name)s" - -msgid "Are you sure?" -msgstr "Siz dowam etmekçimi?" - -msgid "Administration" -msgstr "Administrasiýa" - -msgid "All" -msgstr "Ählisi" - -msgid "Yes" -msgstr "Hawa" - -msgid "No" -msgstr "Ýok" - -msgid "Unknown" -msgstr "Nätanyş" - -msgid "Any date" -msgstr "Islendik sene" - -msgid "Today" -msgstr "Şu gün" - -msgid "Past 7 days" -msgstr "Soňky 7 gün" - -msgid "This month" -msgstr "Şul aý" - -msgid "This year" -msgstr "Şul ýyl" - -msgid "No date" -msgstr "Senesiz" - -msgid "Has date" -msgstr "Seneli" - -msgid "Empty" -msgstr "Boş" - -msgid "Not empty" -msgstr "Boş däl" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Administratiw bolmadyk hasap üçin dogry %(username)swe parol ulanmagyňyzy " -"sizden haýyş edýäris. Giriziljek maglumatlaryň harp ýalňyşsyz bolmagyny göz " -"öňünde tutmagy unutmaň." - -msgid "Action:" -msgstr "Hereket:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Başga %(verbose_name)s goş" - -msgid "Remove" -msgstr "Aýyr" - -msgid "Addition" -msgstr "Goşmaça" - -msgid "Change" -msgstr "Üýtget" - -msgid "Deletion" -msgstr "Pozmaklyk" - -msgid "action time" -msgstr "hereket wagty" - -msgid "user" -msgstr "ulanyjy" - -msgid "content type" -msgstr "maglumat görnüşi" - -msgid "object id" -msgstr "obýekt id'sy" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "obýekt repr'y" - -msgid "action flag" -msgstr "hereket baýdaklandyryşy" - -msgid "change message" -msgstr "Habarnamany üýtget" - -msgid "log entry" -msgstr "Giriş habarnamasy" - -msgid "log entries" -msgstr "giriş habarnamalary" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\" goşuldy" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "\"%(object)s\" üýtgedildi - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "\"%(object)s\" pozuldy." - -msgid "LogEntry Object" -msgstr "GirişHabarnamasy Obýekty" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Goşuldy {name} \"{object}\"." - -msgid "Added." -msgstr "Goşuldy." - -msgid "and" -msgstr "we" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "" - -msgid "None" -msgstr "" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "" - -#, python-format -msgid "Change %s" -msgstr "" - -#, python-format -msgid "View %s" -msgstr "" - -msgid "Database error" -msgstr "" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "" - -msgid "Django administration" -msgstr "" - -msgid "Site administration" -msgstr "" - -msgid "Log in" -msgstr "" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "" - -msgid "Server error" -msgstr "" - -msgid "Server error (500)" -msgstr "" - -msgid "Server Error (500)" -msgstr "" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "" - -msgid "View" -msgstr "" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Skip to main content" -msgstr "" - -msgid "Welcome," -msgstr "" - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "" - -msgid "Log out" -msgstr "" - -msgid "Breadcrumbs" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "" - -msgid "History" -msgstr "" - -msgid "View on site" -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Toggle theme (current theme: auto)" -msgstr "" - -msgid "Toggle theme (current theme: light)" -msgstr "" - -msgid "Toggle theme (current theme: dark)" -msgstr "" - -msgid "Delete" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Delete?" -msgstr "" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Toggle navigation" -msgstr "" - -msgid "Sidebar" -msgstr "" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "" - -msgid "User" -msgstr "" - -msgid "Action" -msgstr "" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "" -msgstr[1] "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "" - -msgid "Save" -msgstr "" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" -msgstr[1] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -msgid "Save as new" -msgstr "" - -msgid "Save and add another" -msgstr "" - -msgid "Save and continue editing" -msgstr "" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -#, python-format -msgid "View selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "" - -msgid "Password change" -msgstr "" - -msgid "Your password was changed." -msgstr "" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "" - -msgid "Password reset" -msgstr "" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "" - -msgid "Confirm password:" -msgstr "" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "" - -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "" - -msgid "All dates" -msgstr "" - -#, python-format -msgid "Select %s" -msgstr "" - -#, python-format -msgid "Select %s to change" -msgstr "" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "" - -msgid "Time:" -msgstr "" - -msgid "Lookup" -msgstr "" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo deleted file mode 100644 index c6e4a97..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.po deleted file mode 100644 index 459f4e9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/django.po +++ /dev/null @@ -1,762 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# BouRock, 2015-2023 -# BouRock, 2014-2015 -# Caner Başaran , 2013 -# Cihad GÜNDOĞDU , 2012 -# Cihad GÜNDOĞDU , 2014 -# Cihan Okyay , 2014 -# Jannis Leidel , 2011 -# Mesut Can Gürle , 2013 -# Murat Sahin , 2011 -# Yigit Guler , 2020 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: BouRock, 2015-2023\n" -"Language-Team: Turkish (http://www.transifex.com/django/django/language/" -"tr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Seçili %(verbose_name_plural)s nesnelerini sil" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d adet %(items)s başarılı olarak silindi." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s silinemiyor" - -msgid "Are you sure?" -msgstr "Emin misiniz?" - -msgid "Administration" -msgstr "Yönetim" - -msgid "All" -msgstr "Tümü" - -msgid "Yes" -msgstr "Evet" - -msgid "No" -msgstr "Hayır" - -msgid "Unknown" -msgstr "Bilinmiyor" - -msgid "Any date" -msgstr "Herhangi bir tarih" - -msgid "Today" -msgstr "Bugün" - -msgid "Past 7 days" -msgstr "Son 7 gün" - -msgid "This month" -msgstr "Bu ay" - -msgid "This year" -msgstr "Bu yıl" - -msgid "No date" -msgstr "Tarih yok" - -msgid "Has date" -msgstr "Tarih var" - -msgid "Empty" -msgstr "Boş" - -msgid "Not empty" -msgstr "Boş değil" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Lütfen görevli hesabı için %(username)s ve parolanızı doğru girin. İki " -"alanın da büyük küçük harfe duyarlı olabildiğini unutmayın." - -msgid "Action:" -msgstr "Eylem:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Başka bir %(verbose_name)s ekle" - -msgid "Remove" -msgstr "Kaldır" - -msgid "Addition" -msgstr "Ekleme" - -msgid "Change" -msgstr "Değiştir" - -msgid "Deletion" -msgstr "Silme" - -msgid "action time" -msgstr "eylem zamanı" - -msgid "user" -msgstr "kullanıcı" - -msgid "content type" -msgstr "içerik türü" - -msgid "object id" -msgstr "nesne kimliği" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "nesne kodu" - -msgid "action flag" -msgstr "eylem işareti" - -msgid "change message" -msgstr "iletiyi değiştir" - -msgid "log entry" -msgstr "günlük girdisi" - -msgid "log entries" -msgstr "günlük girdisi" - -#, python-format -msgid "Added “%(object)s”." -msgstr "“%(object)s” eklendi." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "“%(object)s” değiştirildi — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "“%(object)s” silindi." - -msgid "LogEntry Object" -msgstr "LogEntry Nesnesi" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "{name} “{object}” eklendi." - -msgid "Added." -msgstr "Eklendi." - -msgid "and" -msgstr "ve" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "{name} “{object}” için {fields} değiştirildi." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} değiştirildi." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "{name} “{object}” silindi." - -msgid "No fields changed." -msgstr "Değiştirilen alanlar yok." - -msgid "None" -msgstr "Hiçbiri" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Birden fazla seçmek için “Ctrl” veya Mac’teki “Command” tuşuna basılı tutun." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” başarılı olarak eklendi." - -msgid "You may edit it again below." -msgstr "Aşağıdan bunu tekrar düzenleyebilirsiniz." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}” başarılı olarak eklendi. Aşağıda başka bir {name} " -"ekleyebilirsiniz." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” başarılı olarak değiştirildi. Aşağıda tekrar " -"düzenleyebilirsiniz." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” başarılı olarak eklendi. Aşağıda tekrar düzenleyebilirsiniz." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} “{obj}” başarılı olarak değiştirildi. Aşağıda başka bir {name} " -"ekleyebilirsiniz." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” başarılı olarak değiştirildi." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Bunlar üzerinde eylemlerin uygulanması için öğeler seçilmek zorundadır. Hiç " -"öğe değiştirilmedi." - -msgid "No action selected." -msgstr "Seçilen eylem yok." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” başarılı olarak silindi." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "“%(key)s” kimliği olan %(name)s mevcut değil. Belki silinmiş midir?" - -#, python-format -msgid "Add %s" -msgstr "%s ekle" - -#, python-format -msgid "Change %s" -msgstr "%s değiştir" - -#, python-format -msgid "View %s" -msgstr "%s göster" - -msgid "Database error" -msgstr "Veritabanı hatası" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s adet %(name)s başarılı olarak değiştirildi." -msgstr[1] "%(count)s adet %(name)s başarılı olarak değiştirildi." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s nesne seçildi" -msgstr[1] "Tüm %(total_count)s nesne seçildi" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 / %(cnt)s nesne seçildi" - -#, python-format -msgid "Change history: %s" -msgstr "Değişiklik geçmişi: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"%(class_name)s %(instance)s silinmesi aşağıda korunan ilgili nesnelerin de " -"silinmesini gerektirecektir: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django site yöneticisi" - -msgid "Django administration" -msgstr "Django yönetimi" - -msgid "Site administration" -msgstr "Site yönetimi" - -msgid "Log in" -msgstr "Oturum aç" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s yönetimi" - -msgid "Page not found" -msgstr "Sayfa bulunamadı" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Üzgünüz, istediğiniz sayfa bulunamadı." - -msgid "Home" -msgstr "Giriş" - -msgid "Server error" -msgstr "Sunucu hatası" - -msgid "Server error (500)" -msgstr "Sunucu hatası (500)" - -msgid "Server Error (500)" -msgstr "Sunucu Hatası (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Bir hata oluştu. Site yöneticilerine e-posta yoluyla bildirildi ve kısa süre " -"içinde düzeltilecektir. Sabrınız için teşekkür ederiz." - -msgid "Run the selected action" -msgstr "Seçilen eylemi çalıştır" - -msgid "Go" -msgstr "Git" - -msgid "Click here to select the objects across all pages" -msgstr "Tüm sayfalardaki nesneleri seçmek için buraya tıklayın" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Tüm %(total_count)s %(module_name)s nesnelerini seç" - -msgid "Clear selection" -msgstr "Seçimi temizle" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s uygulamasındaki modeller" - -msgid "Add" -msgstr "Ekle" - -msgid "View" -msgstr "Göster" - -msgid "You don’t have permission to view or edit anything." -msgstr "Hiçbir şeyi düzenlemek ve göstermek için izne sahip değilsiniz." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Önce, bir kullanıcı adı ve parola girin. Ondan sonra, daha fazla kullanıcı " -"seçeneğini düzenleyebileceksiniz." - -msgid "Enter a username and password." -msgstr "Kullanıcı adı ve parola girin." - -msgid "Change password" -msgstr "Parolayı değiştir" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Lütfen aşağıdaki hatayı düzeltin." -msgstr[1] "Lütfen aşağıdaki hataları düzeltin." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "%(username)s kullanıcısı için yeni bir parola girin." - -msgid "Skip to main content" -msgstr "Ana içeriğe atla" - -msgid "Welcome," -msgstr "Hoş Geldiniz," - -msgid "View site" -msgstr "Siteyi göster" - -msgid "Documentation" -msgstr "Belgeler" - -msgid "Log out" -msgstr "Oturumu kapat" - -msgid "Breadcrumbs" -msgstr "İçerik haritaları" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s ekle" - -msgid "History" -msgstr "Geçmiş" - -msgid "View on site" -msgstr "Sitede görüntüle" - -msgid "Filter" -msgstr "Süz" - -msgid "Clear all filters" -msgstr "Tüm süzgeçleri temizle" - -msgid "Remove from sorting" -msgstr "Sıralamadan kaldır" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sıralama önceliği: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Sıralamayı değiştir" - -msgid "Toggle theme (current theme: auto)" -msgstr "Temayı değiştir (şu anki tema: otomatik)" - -msgid "Toggle theme (current theme: light)" -msgstr "Temayı değiştir (şu anki tema: açık)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Temayı değiştir (şu anki tema: koyu)" - -msgid "Delete" -msgstr "Sil" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' nesnesinin silinmesi, ilgili nesnelerin " -"silinmesi ile sonuçlanacak, ancak hesabınız aşağıdaki nesnelerin türünü " -"silmek için izine sahip değil." - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' nesnesinin silinmesi, aşağıda korunan " -"ilgili nesnelerin silinmesini gerektirecek:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"%(object_name)s \"%(escaped_object)s\" nesnesini silmek istediğinize emin " -"misiniz? Aşağıdaki ilgili öğelerin tümü silinecektir:" - -msgid "Objects" -msgstr "Nesneler" - -msgid "Yes, I’m sure" -msgstr "Evet, eminim" - -msgid "No, take me back" -msgstr "Hayır, beni geri götür" - -msgid "Delete multiple objects" -msgstr "Birden fazla nesneyi sil" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Seçilen %(objects_name)s nesnelerinin silinmesi, ilgili nesnelerin silinmesi " -"ile sonuçlanacak, ancak hesabınız aşağıdaki nesnelerin türünü silmek için " -"izine sahip değil." - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Seçilen %(objects_name)s nesnelerinin silinmesi, aşağıda korunan ilgili " -"nesnelerin silinmesini gerektirecek:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Seçilen %(objects_name)s nesnelerini silmek istediğinize emin misiniz? " -"Aşağıdaki nesnelerin tümü ve onların ilgili öğeleri silinecektir:" - -msgid "Delete?" -msgstr "Silinsin mi?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s süzgecine göre" - -msgid "Summary" -msgstr "Özet" - -msgid "Recent actions" -msgstr "Son eylemler" - -msgid "My actions" -msgstr "Eylemlerim" - -msgid "None available" -msgstr "Mevcut değil" - -msgid "Unknown content" -msgstr "Bilinmeyen içerik" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Veritabanı kurulumunuz ile ilgili birşeyler yanlış. Uygun veritabanı " -"tablolarının oluşturulduğundan ve veritabanının uygun kullanıcı tarafından " -"okunabilir olduğundan emin olun." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"%(username)s olarak kimlik doğrulamanız yapıldı, ancak bu sayfaya erişmek " -"için yetkili değilsiniz. Farklı bir hesapla oturum açmak ister misiniz?" - -msgid "Forgotten your password or username?" -msgstr "Kullanıcı adınızı veya parolanızı mı unuttunuz?" - -msgid "Toggle navigation" -msgstr "Gezinmeyi aç/kapat" - -msgid "Sidebar" -msgstr "Kenar çubuğu" - -msgid "Start typing to filter…" -msgstr "Süzmek için yazmaya başlayın..." - -msgid "Filter navigation items" -msgstr "Gezinti öğelerini süz" - -msgid "Date/time" -msgstr "Tarih/saat" - -msgid "User" -msgstr "Kullanıcı" - -msgid "Action" -msgstr "Eylem" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "giriş" -msgstr[1] "giriş" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Bu nesne değişme geçmişine sahip değil. Muhtemelen bu yönetici sitesi " -"aracılığıyla eklenmedi." - -msgid "Show all" -msgstr "Tümünü göster" - -msgid "Save" -msgstr "Kaydet" - -msgid "Popup closing…" -msgstr "Açılır pencere kapanıyor…" - -msgid "Search" -msgstr "Ara" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s sonuç" -msgstr[1] "%(counter)s sonuç" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "toplam %(full_result_count)s" - -msgid "Save as new" -msgstr "Yeni olarak kaydet" - -msgid "Save and add another" -msgstr "Kaydet ve başka birini ekle" - -msgid "Save and continue editing" -msgstr "Kaydet ve düzenlemeye devam et" - -msgid "Save and view" -msgstr "Kaydet ve göster" - -msgid "Close" -msgstr "Kapat" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Seçilen %(model)s değiştir" - -#, python-format -msgid "Add another %(model)s" -msgstr "Başka bir %(model)s ekle" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Seçilen %(model)s sil" - -#, python-format -msgid "View selected %(model)s" -msgstr "Seçilen %(model)s görüntüle" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Bugün web sitesine ayırdığınız kaliteli zaman için teşekkür ederiz." - -msgid "Log in again" -msgstr "Tekrar oturum aç" - -msgid "Password change" -msgstr "Parola değiştime" - -msgid "Your password was changed." -msgstr "Parolanız değiştirildi." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Güvenliğiniz için, lütfen eski parolanızı girin, ve ondan sonra yeni " -"parolanızı iki kere girin böylece doğru olarak yazdığınızı doğrulayabilelim." - -msgid "Change my password" -msgstr "Parolamı değiştir" - -msgid "Password reset" -msgstr "Parolayı sıfırla" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Parolanız ayarlandı. Şimdi devam edebilir ve oturum açabilirsiniz." - -msgid "Password reset confirmation" -msgstr "Parola sıfırlama onayı" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Lütfen yeni parolanızı iki kere girin böylece böylece doğru olarak " -"yazdığınızı doğrulayabilelim." - -msgid "New password:" -msgstr "Yeni parola:" - -msgid "Confirm password:" -msgstr "Parolayı onayla:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Parola sıfırlama bağlantısı geçersiz olmuş, çünkü zaten kullanılmış. Lütfen " -"yeni bir parola sıfırlama isteyin." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Eğer girdiğiniz e-posta ile bir hesabınız varsa, parolanızın ayarlanması " -"için size talimatları e-posta ile gönderdik. En kısa sürede almalısınız." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Eğer bir e-posta almadıysanız, lütfen kayıt olurken girdiğiniz adresi " -"kullandığınızdan emin olun ve istenmeyen mesajlar klasörünü kontrol edin." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Bu e-postayı alıyorsunuz çünkü %(site_name)s sitesindeki kullanıcı hesabınız " -"için bir parola sıfırlama istediniz." - -msgid "Please go to the following page and choose a new password:" -msgstr "Lütfen şurada belirtilen sayfaya gidin ve yeni bir parola seçin:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Unutma ihtimalinize karşı, kullanıcı adınız:" - -msgid "Thanks for using our site!" -msgstr "Sitemizi kullandığınız için teşekkürler!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s ekibi" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Parolanızı mı unuttunuz? Aşağıya e-posta adresinizi girin ve yeni bir tane " -"ayarlamak için talimatları e-posta ile gönderelim." - -msgid "Email address:" -msgstr "E-posta adresi:" - -msgid "Reset my password" -msgstr "Parolamı sıfırla" - -msgid "All dates" -msgstr "Tüm tarihler" - -#, python-format -msgid "Select %s" -msgstr "%s seç" - -#, python-format -msgid "Select %s to change" -msgstr "Değiştirmek için %s seçin" - -#, python-format -msgid "Select %s to view" -msgstr "Göstermek için %s seçin" - -msgid "Date:" -msgstr "Tarih:" - -msgid "Time:" -msgstr "Saat:" - -msgid "Lookup" -msgstr "Arama" - -msgid "Currently:" -msgstr "Şu anda:" - -msgid "Change:" -msgstr "Değiştir:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo deleted file mode 100644 index b46cf55..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po deleted file mode 100644 index 367e85f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,279 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# BouRock, 2015-2016,2019-2023 -# BouRock, 2014 -# Jannis Leidel , 2011 -# Metin Amiroff , 2011 -# Murat Çorlu , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: BouRock, 2015-2016,2019-2023\n" -"Language-Team: Turkish (http://www.transifex.com/django/django/language/" -"tr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "Mevcut %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Bu mevcut %s listesidir. Aşağıdaki kutudan bazılarını işaretleyerek ve ondan " -"sonra iki kutu arasındaki \"Seçin\" okuna tıklayarak seçebilirsiniz." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Mevcut %s listesini süzmek için bu kutu içine yazın." - -msgid "Filter" -msgstr "Süzgeç" - -msgid "Choose all" -msgstr "Tümünü seçin" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Bir kerede tüm %s seçilmesi için tıklayın." - -msgid "Choose" -msgstr "Seçin" - -msgid "Remove" -msgstr "Kaldır" - -#, javascript-format -msgid "Chosen %s" -msgstr "Seçilen %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Bu seçilen %s listesidir. Aşağıdaki kutudan bazılarını işaretleyerek ve " -"ondan sonra iki kutu arasındaki \"Kaldır\" okuna tıklayarak " -"kaldırabilirsiniz." - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "Seçilen %s listesini süzmek için bu kutu içine yazın." - -msgid "Remove all" -msgstr "Tümünü kaldır" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Bir kerede tüm seçilen %s kaldırılması için tıklayın." - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "%s seçilen seçenek görünür değil" -msgstr[1] "%s seçilen seçenek görünür değil" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(sel)s / %(cnt)s seçildi" -msgstr[1] "%(sel)s / %(cnt)s seçildi" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Bireysel düzenlenebilir alanlarda kaydedilmemiş değişiklikleriniz var. Eğer " -"bir eylem çalıştırırsanız, kaydedilmemiş değişiklikleriniz kaybolacaktır." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Bir eylem seçtiniz, ancak değişikliklerinizi tek tek alanlara kaydetmediniz. " -"Kaydetmek için lütfen TAMAM düğmesine tıklayın. Eylemi yeniden çalıştırmanız " -"gerekecek." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Bir eylem seçtiniz, ancak tek tek alanlarda herhangi bir değişiklik " -"yapmadınız. Muhtemelen Kaydet düğmesi yerine Git düğmesini arıyorsunuz." - -msgid "Now" -msgstr "Şimdi" - -msgid "Midnight" -msgstr "Geceyarısı" - -msgid "6 a.m." -msgstr "Sabah 6" - -msgid "Noon" -msgstr "Öğle" - -msgid "6 p.m." -msgstr "6 ö.s." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Not: Sunucu saatinin %s saat ilerisindesiniz." -msgstr[1] "Not: Sunucu saatinin %s saat ilerisindesiniz." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Not: Sunucu saatinin %s saat gerisindesiniz." -msgstr[1] "Not: Sunucu saatinin %s saat gerisindesiniz." - -msgid "Choose a Time" -msgstr "Bir Saat Seçin" - -msgid "Choose a time" -msgstr "Bir saat seçin" - -msgid "Cancel" -msgstr "İptal" - -msgid "Today" -msgstr "Bugün" - -msgid "Choose a Date" -msgstr "Bir Tarih Seçin" - -msgid "Yesterday" -msgstr "Dün" - -msgid "Tomorrow" -msgstr "Yarın" - -msgid "January" -msgstr "Ocak" - -msgid "February" -msgstr "Şubat" - -msgid "March" -msgstr "Mart" - -msgid "April" -msgstr "Nisan" - -msgid "May" -msgstr "Mayıs" - -msgid "June" -msgstr "Haziran" - -msgid "July" -msgstr "Temmuz" - -msgid "August" -msgstr "Ağustos" - -msgid "September" -msgstr "Eylül" - -msgid "October" -msgstr "Ekim" - -msgid "November" -msgstr "Kasım" - -msgid "December" -msgstr "Aralık" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Oca" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Şub" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Mar" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Nis" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "May" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Haz" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Tem" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Ağu" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Eyl" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Eki" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Kas" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Ara" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "P" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Pt" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "S" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Ç" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Pe" - -msgctxt "one letter Friday" -msgid "F" -msgstr "C" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Ct" - -msgid "Show" -msgstr "Göster" - -msgid "Hide" -msgstr "Gizle" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.mo deleted file mode 100644 index 6bfde60..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.po deleted file mode 100644 index 9d0260b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/django.po +++ /dev/null @@ -1,655 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Azat Khasanshin , 2011 -# v_ildar , 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Tatar (http://www.transifex.com/django/django/language/tt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tt\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s уңышлы рәвештә бетерелгән." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s бетереп булмады" - -msgid "Are you sure?" -msgstr "Сез инанып карар кылдыгызмы?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Сайланган %(verbose_name_plural)s бетерергә" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "Барысы" - -msgid "Yes" -msgstr "Әйе" - -msgid "No" -msgstr "Юк" - -msgid "Unknown" -msgstr "Билгесез" - -msgid "Any date" -msgstr "Теләсә нинди көн һәм вакыт" - -msgid "Today" -msgstr "Бүген" - -msgid "Past 7 days" -msgstr "Соңгы 7 көн" - -msgid "This month" -msgstr "Бу ай" - -msgid "This year" -msgstr "Бу ел" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "Гамәл:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Тагын бер %(verbose_name)s өстәргә" - -msgid "Remove" -msgstr "Бетерергә" - -msgid "action time" -msgstr "гамәл вакыты" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "объект идентификаторы" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "объект фаразы" - -msgid "action flag" -msgstr "гамәл тибы" - -msgid "change message" -msgstr "үзгәрү белдерүе" - -msgid "log entry" -msgstr "журнал язмасы" - -msgid "log entries" -msgstr "журнал язмалары" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "һәм" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "Үзгәртелгән кырлар юк." - -msgid "None" -msgstr "Юк" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Элементар өстеннән гамәл кылу өчен алар сайланган булырга тиеш. Элементлар " -"үзгәртелмәгән." - -msgid "No action selected." -msgstr "Гамәл сайланмаган." - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" уңышлы рәвештә бетерелгән." - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s өстәргә" - -#, python-format -msgid "Change %s" -msgstr "%s үзгәртергә" - -msgid "Database error" -msgstr "Бирелмәләр базасы хатасы" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s уңышлы рәвештә үзгәртелгән." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s сайланган" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "Барлык %(cnt)s объектан 0 сайланган" - -#, python-format -msgid "Change history: %s" -msgstr "Үзгәртү тарихы: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "Django сайты идарәсе" - -msgid "Django administration" -msgstr "Django идарәсе" - -msgid "Site administration" -msgstr "Сайт идарәсе" - -msgid "Log in" -msgstr "Керергә" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "Сәхифә табылмаган" - -msgid "We're sorry, but the requested page could not be found." -msgstr "Кызганычка каршы, соралган сәхифә табылмады." - -msgid "Home" -msgstr "Башбит" - -msgid "Server error" -msgstr "Сервер хатасы" - -msgid "Server error (500)" -msgstr "Сервер хатасы (500)" - -msgid "Server Error (500)" -msgstr "Сервер хатасы (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Сайланган гамәлне башкарырга" - -msgid "Go" -msgstr "Башкарырга" - -msgid "Click here to select the objects across all pages" -msgstr "Барлык сәхифәләрдә булган объектларны сайлау өчен монда чирттерегез" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Бөтен %(total_count)s %(module_name)s сайларга" - -msgid "Clear selection" -msgstr "Сайланганлыкны алырга" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Баштан логин һәм серсүзне кертегез. Аннан соң сез кулланучы турында күбрәк " -"мәгълүматне төзәтә алырсыз." - -msgid "Enter a username and password." -msgstr "Логин һәм серсүзне кертегез." - -msgid "Change password" -msgstr "Серсүзне үзгәртергә" - -msgid "Please correct the error below." -msgstr "Зинһар, биредәге хаталарны төзәтегез." - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "%(username)s кулланучы өчен яңа серсүзне кертегез." - -msgid "Welcome," -msgstr "Рәхим итегез," - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "Документация" - -msgid "Log out" -msgstr "Чыгарга" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s өстәргә" - -msgid "History" -msgstr "Тарих" - -msgid "View on site" -msgstr "Сайтта карарга" - -msgid "Filter" -msgstr "Филтер" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "Бетерергә" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' бетереүе аның белән бәйләнгән " -"объектларның бетерелүенә китерә ала, әмма сезнең хисап язмагызның киләсе " -"объект тибларын бетерү өчен хокуклары җитми:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' бетерүе киләсе сакланган объектларның " -"бетерелүен таләп итә:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Сез инанып %(object_name)s \"%(escaped_object)s\" бетерергә телисезме? " -"Барлык киләсе бәйләнгән объектлар да бетерелер:" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "Әйе, мин инандым" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "Берничә объектны бетерергә" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Сайланган %(objects_name)s бетерүе аның белән бәйләнгән объектларның " -"бетерелүенә китерә ала, әмма сезнең хисап язмагызның киләсе объект тибларын " -"бетерү өчен хокуклары җитми:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"%(objects_name)s бетерүе киләсе аның белән бәйләнгән сакланган объектларның " -"бетерелүен таләп итә:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Сез инанып %(objects_name)s бетерергә телисезме? Барлык киләсе объектлар һәм " -"алар белән бәйләнгән элементлар да бетерелер:" - -msgid "Change" -msgstr "Үзгәртергә" - -msgid "Delete?" -msgstr "Бетерергә?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "%(filter_title)s буенча" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "Өстәргә" - -msgid "You don't have permission to edit anything." -msgstr "Төзәтү өчен хокукларыгыз җитми." - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "Тарих юк" - -msgid "Unknown content" -msgstr "Билгесез тип" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Сезнең бирелмәләр базасы дөрес итем көйләнмәгән. Тиешле җәдвәлләр төзелгәнен " -"һәм тиешле кулланучының хокуклары җитәрлек булуын тикшерегез." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "Көн һәм вакыт" - -msgid "User" -msgstr "Кулланучы" - -msgid "Action" -msgstr "Гамәл" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Әлеге объектның үзгәртү тарихы юк. Бу идарә итү сайты буенча өстәлмәгән " -"булуы ихтимал." - -msgid "Show all" -msgstr "Бөтенесен күрсәтергә" - -msgid "Save" -msgstr "Сакларга" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "Эзләргә" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s нәтиҗә" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "барлыгы %(full_result_count)s" - -msgid "Save as new" -msgstr "Яңа объект итеп сакларга" - -msgid "Save and add another" -msgstr "Сакларга һәм бүтән объектны өстәргә" - -msgid "Save and continue editing" -msgstr "Сакларга һәм төзәтүне дәвам итәргә" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Сайтыбызда үткәргән вакыт өчен рәхмәт." - -msgid "Log in again" -msgstr "Тагын керергә" - -msgid "Password change" -msgstr "Серсүзне үзгәртү" - -msgid "Your password was changed." -msgstr "Серсүзегез үзгәртелгән." - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Хәвефсезлек сәбәпле, зинһар, үзегезнең иске серсүзне кертегез, аннан яңа " -"серсүзне ике тапкыр кертегез (дөрес язылышын тикшерү өчен)." - -msgid "Change my password" -msgstr "Серсүземне үзгәртергә" - -msgid "Password reset" -msgstr "Серсүзне торгызу" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Серсүзегез үзгәртелгән. Сез хәзер керә аласыз." - -msgid "Password reset confirmation" -msgstr "Серсүзне торгызу раслау" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "Зинһар, тикшерү өчен яңа серсүзегезне ике тапкыр кертегез." - -msgid "New password:" -msgstr "Яңа серсуз:" - -msgid "Confirm password:" -msgstr "Серсүзне раслагыз:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Серсүзне торгызу өчен сылтама хаталы. Бәлки аның белән инде кулланганнар. " -"Зинһар, серсүзне тагын бер тапкыр торгызып карагыз." - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "Зинһар, бу сәхифәгә юнәлегез һәм яңа серсүзне кертегез:" - -msgid "Your username, in case you've forgotten:" -msgstr "Сезнең кулланучы исемегез (оныткан булсагыз):" - -msgid "Thanks for using our site!" -msgstr "Безнең сайтны куллану өчен рәхмәт!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s сайтының төркеме" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "Эл. почта адресы:" - -msgid "Reset my password" -msgstr "Серсүземне торгызырга" - -msgid "All dates" -msgstr "Бөтен көннәр" - -#, python-format -msgid "Select %s" -msgstr "%s сайлагыз" - -#, python-format -msgid "Select %s to change" -msgstr "Үзгәртү өчен %s сайлагыз" - -msgid "Date:" -msgstr "Көн:" - -msgid "Time:" -msgstr "Вакыт:" - -msgid "Lookup" -msgstr "Эзләү" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 16af5a0..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po deleted file mode 100644 index 36e7c72..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,208 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Azat Khasanshin , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Tatar (http://www.transifex.com/django/django/language/tt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tt\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "Рөхсәт ителгән %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "Фильтр" - -msgid "Choose all" -msgstr "Барысын сайларга" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "Бетерергә" - -#, javascript-format -msgid "Chosen %s" -msgstr "Сайланган %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s арасыннан %(sel)s сайланган" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Кайбер кырларда сакланмаган төзәтүләр кала. Сез гамәлне башкарсагыз, сезнең " -"сакланмаган үзгәртүләр югалачаклар." - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"Сез гамәлне сайладыгыз, әмма кайбер кырлардагы төзәтүләрне сакламадыгыз. " -"Аларны саклау өчен OK төймәсенә басыгыз. Аннан соң гамәлне тагын бер тапкыр " -"башкарырга туры килер." - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Сез гамәлне сайладыгыз һәм төзәтүләрне башкармадыгыз. Бәлки сез \"Сакларга\" " -"төймәсе урынына \"Башкарырга\" төймәсен кулланырга теләдегез." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" - -msgid "Now" -msgstr "Хәзер" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "Вакыт сайлагыз" - -msgid "Midnight" -msgstr "Төн уртасы" - -msgid "6 a.m." -msgstr "Иртәнге 6" - -msgid "Noon" -msgstr "Төш" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "Юкка чыгарырга" - -msgid "Today" -msgstr "Бүген" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "Кичә" - -msgid "Tomorrow" -msgstr "Иртәгә" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "Күрсәтергә" - -msgid "Hide" -msgstr "Яшерергә" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.mo deleted file mode 100644 index d51b11a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.po deleted file mode 100644 index df03f5f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/django.po +++ /dev/null @@ -1,606 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2015-01-18 08:31+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Udmurt (http://www.transifex.com/projects/p/django/language/" -"udm/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: udm\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "" - -msgid "Are you sure?" -msgstr "" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "" - -msgid "Yes" -msgstr "Бен" - -msgid "No" -msgstr "" - -msgid "Unknown" -msgstr "Тодымтэ" - -msgid "Any date" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Past 7 days" -msgstr "" - -msgid "This month" -msgstr "" - -msgid "This year" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "" - -msgid "action time" -msgstr "" - -msgid "object id" -msgstr "" - -msgid "object repr" -msgstr "" - -msgid "action flag" -msgstr "" - -msgid "change message" -msgstr "" - -msgid "log entry" -msgstr "" - -msgid "log entries" -msgstr "" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -msgid "None" -msgstr "" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-format -msgid "Changed %s." -msgstr "" - -msgid "and" -msgstr "" - -#, python-format -msgid "Added %(name)s \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed %(list)s for %(name)s \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Deleted %(name)s \"%(object)s\"." -msgstr "" - -msgid "No fields changed." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may add another " -"%(name)s below." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was changed successfully. You may edit it again " -"below." -msgstr "" - -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was changed successfully. You may add another " -"%(name)s below." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "" - -#, python-format -msgid "%(name)s object with primary key %(key)r does not exist." -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "" - -#, python-format -msgid "Change %s" -msgstr "" - -msgid "Database error" -msgstr "" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "" - -msgid "Django administration" -msgstr "" - -msgid "Site administration" -msgstr "" - -msgid "Log in" -msgstr "" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "" - -msgid "We're sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "" - -msgid "Server error" -msgstr "" - -msgid "Server error (500)" -msgstr "" - -msgid "Server Error (500)" -msgstr "" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "" - -msgid "Go" -msgstr "" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "" - -msgid "Change password" -msgstr "" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "" - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "" - -msgid "Log out" -msgstr "" - -msgid "Add" -msgstr "" - -msgid "History" -msgstr "" - -msgid "View on site" -msgstr "" - -#, python-format -msgid "Add %(name)s" -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "Ӵушоно" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Change" -msgstr "Тупатъяно" - -msgid "Remove" -msgstr "" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "" - -msgid "Delete?" -msgstr "" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "You don't have permission to edit anything." -msgstr "" - -msgid "Recent Actions" -msgstr "" - -msgid "My Actions" -msgstr "" - -msgid "None available" -msgstr "" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "" - -msgid "User" -msgstr "" - -msgid "Action" -msgstr "" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "" - -msgid "Save" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -msgid "Save as new" -msgstr "" - -msgid "Save and add another" -msgstr "" - -msgid "Save and continue editing" -msgstr "" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "" - -msgid "Log in again" -msgstr "" - -msgid "Password change" -msgstr "" - -msgid "Your password was changed." -msgstr "" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "" - -msgid "Password reset" -msgstr "" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "" - -msgid "Confirm password:" -msgstr "" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you've forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "" - -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "" - -msgid "All dates" -msgstr "" - -msgid "(None)" -msgstr "" - -#, python-format -msgid "Select %s" -msgstr "" - -#, python-format -msgid "Select %s to change" -msgstr "" - -msgid "Date:" -msgstr "" - -msgid "Time:" -msgstr "" - -msgid "Lookup" -msgstr "" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo deleted file mode 100644 index af7ab53..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.po deleted file mode 100644 index e3826f0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,142 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-17 11:07+0100\n" -"PO-Revision-Date: 2014-10-05 20:13+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Udmurt (http://www.transifex.com/projects/p/django/language/" -"udm/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: udm\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "" - -msgid "Choose all" -msgstr "" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "" - -#, javascript-format -msgid "Chosen %s" -msgstr "" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" - -msgid "Now" -msgstr "" - -msgid "Clock" -msgstr "" - -msgid "Choose a time" -msgstr "" - -msgid "Midnight" -msgstr "" - -msgid "6 a.m." -msgstr "" - -msgid "Noon" -msgstr "" - -msgid "Cancel" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Calendar" -msgstr "" - -msgid "Yesterday" -msgstr "" - -msgid "Tomorrow" -msgstr "" - -msgid "" -"January February March April May June July August September October November " -"December" -msgstr "" - -msgid "S M T W T F S" -msgstr "" - -msgid "Show" -msgstr "" - -msgid "Hide" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo deleted file mode 100644 index e4abcc6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.po deleted file mode 100644 index 1ce9de4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/django.po +++ /dev/null @@ -1,775 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Abbl Kto , 2021 -# Oleksandr Chernihov , 2014 -# Andriy Sokolovskiy , 2015 -# Boryslav Larin , 2011 -# Denis Podlesniy , 2016 -# Igor Melnyk, 2014,2017 -# Illia Volochii , 2021-2023 -# Ivan Dmytrenko , 2019 -# Jannis Leidel , 2011 -# Kirill Gagarski , 2015 -# Max V. Stotsky , 2014 -# Mikhail Kolesnik , 2015 -# Mykola Holovetskyi, 2022 -# Mykola Zamkovoi , 2014 -# Sergiy Kuzmenko , 2011 -# tarasyyyk , 2018 -# Zoriana Zaiats, 2016 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: Illia Volochii , 2021-2023\n" -"Language-Team: Ukrainian (http://www.transifex.com/django/django/language/" -"uk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: uk\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != " -"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % " -"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || " -"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Видалити обрані %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Успішно видалено %(count)d %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Не вдається видалити %(name)s" - -msgid "Are you sure?" -msgstr "Ви впевнені?" - -msgid "Administration" -msgstr "Адміністрування" - -msgid "All" -msgstr "Всі" - -msgid "Yes" -msgstr "Так" - -msgid "No" -msgstr "Ні" - -msgid "Unknown" -msgstr "Невідомо" - -msgid "Any date" -msgstr "Будь-яка дата" - -msgid "Today" -msgstr "Сьогодні" - -msgid "Past 7 days" -msgstr "Останні 7 днів" - -msgid "This month" -msgstr "Цього місяця" - -msgid "This year" -msgstr "Цього року" - -msgid "No date" -msgstr "Без дати" - -msgid "Has date" -msgstr "Має дату" - -msgid "Empty" -msgstr "Порожні" - -msgid "Not empty" -msgstr "Непорожні" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Будь ласка, введіть правильні %(username)s і пароль для облікового запису " -"персоналу. Зауважте, що обидва поля можуть бути чутливі до регістру." - -msgid "Action:" -msgstr "Дія:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Додати ще %(verbose_name)s" - -msgid "Remove" -msgstr "Видалити" - -msgid "Addition" -msgstr "Додавання" - -msgid "Change" -msgstr "Змінити" - -msgid "Deletion" -msgstr "Видалення" - -msgid "action time" -msgstr "час дії" - -msgid "user" -msgstr "користувач" - -msgid "content type" -msgstr "тип вмісту" - -msgid "object id" -msgstr "id об'єкта" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "представлення об'єкта (repr)" - -msgid "action flag" -msgstr "позначка дії" - -msgid "change message" -msgstr "змінити повідомлення" - -msgid "log entry" -msgstr "запис у журналі" - -msgid "log entries" -msgstr "записи в журналі" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Додано \"%(object)s\"." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Змінено \"%(object)s\" - %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Видалено \"%(object)s.\"" - -msgid "LogEntry Object" -msgstr "Об'єкт журнального запису" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Додано {name} \"{object}\"." - -msgid "Added." -msgstr "Додано." - -msgid "and" -msgstr "та" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Змінені {fields} для {name} \"{object}\"." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Змінені {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Видалено {name} \"{object}\"." - -msgid "No fields changed." -msgstr "Поля не змінені." - -msgid "None" -msgstr "Ніщо" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Натисність \"Control\" або \"Command\" на Mac-пристрої, щоб вибрати більше " -"аніж один." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} \"{obj}\" було додано успішно." - -msgid "You may edit it again below." -msgstr "Ви можете відредагувати це знову." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "{name} \"{obj}\" було змінено успішно. Ви можете додати інше {name}." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} \"{obj}\" було змінено успішно. Нижче Ви можете редагувати його знову." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "{name} \"{obj}\" було додано успішно. Ви можете редагувати його знову." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "{name} \"{obj}\" було змінено успішно. Ви можете додати інше {name}." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\" було змінено успішно." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Для виконання дії необхідно обрати елемент. Жодний елемент не був змінений." - -msgid "No action selected." -msgstr "Дія не обрана." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s \"%(obj)s\" був видалений успішно." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s з ID \"%(key)s\" не існує. Можливо, воно було видалене?" - -#, python-format -msgid "Add %s" -msgstr "Додати %s" - -#, python-format -msgid "Change %s" -msgstr "Змінити %s" - -#, python-format -msgid "View %s" -msgstr "Переглянути %s" - -msgid "Database error" -msgstr "Помилка бази даних" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s був успішно змінений." -msgstr[1] "%(count)s %(name)s були успішно змінені." -msgstr[2] "%(count)s %(name)s було успішно змінено." -msgstr[3] "%(count)s %(name)s було успішно змінено." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s обраний" -msgstr[1] "%(total_count)s обрані" -msgstr[2] "Усі %(total_count)s обрано" -msgstr[3] "Усі %(total_count)s обрано" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 з %(cnt)s обрано" - -#, python-format -msgid "Change history: %s" -msgstr "Історія змін: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Видалення %(class_name)s %(instance)s вимагатиме видалення наступних " -"захищених пов'язаних об'єктів: %(related_objects)s" - -msgid "Django site admin" -msgstr "Django сайт адміністрування" - -msgid "Django administration" -msgstr "Django адміністрування" - -msgid "Site administration" -msgstr "Адміністрування сайта" - -msgid "Log in" -msgstr "Увійти" - -#, python-format -msgid "%(app)s administration" -msgstr "Адміністрування %(app)s" - -msgid "Page not found" -msgstr "Сторінка не знайдена" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "На жаль, запрошену сторінку не знайдено." - -msgid "Home" -msgstr "Домівка" - -msgid "Server error" -msgstr "Помилка сервера" - -msgid "Server error (500)" -msgstr "Помилка сервера (500)" - -msgid "Server Error (500)" -msgstr "Помилка сервера (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Сталася помилка. Вона була відправлена адміністраторам сайту через email і " -"має бути вирішена швидко. Дякуємо за ваше терпіння." - -msgid "Run the selected action" -msgstr "Виконати обрану дію" - -msgid "Go" -msgstr "Вперед" - -msgid "Click here to select the objects across all pages" -msgstr "Натисніть тут, щоб вибрати об'єкти на всіх сторінках" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Обрати всі %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Скинути вибір" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Моделі у %(name)s додатку" - -msgid "Add" -msgstr "Додати" - -msgid "View" -msgstr "Переглянути" - -msgid "You don’t have permission to view or edit anything." -msgstr "Ви не маєте дозволу переглядати чи редагувати будь-чого." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Спершу, введіть користувацьке ім'я і пароль. Тоді, ви зможете редагувати " -"більше користувацьких опцій." - -msgid "Enter a username and password." -msgstr "Введіть ім'я користувача і пароль." - -msgid "Change password" -msgstr "Змінити пароль" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Будь ласка, виправте наведену нижче помилку." -msgstr[1] "Будь ласка, виправте наведені нижче помилки." -msgstr[2] "Будь ласка, виправте наведені нижче помилки." -msgstr[3] "Будь ласка, виправте наведені нижче помилки." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Введіть новий пароль для користувача %(username)s." - -msgid "Skip to main content" -msgstr "Перейти до основного вмісту" - -msgid "Welcome," -msgstr "Вітаємо," - -msgid "View site" -msgstr "Дивитися сайт" - -msgid "Documentation" -msgstr "Документація" - -msgid "Log out" -msgstr "Вийти" - -msgid "Breadcrumbs" -msgstr "Навігаційний рядок" - -#, python-format -msgid "Add %(name)s" -msgstr "Додати %(name)s" - -msgid "History" -msgstr "Історія" - -msgid "View on site" -msgstr "Дивитися на сайті" - -msgid "Filter" -msgstr "Відфільтрувати" - -msgid "Clear all filters" -msgstr "Очистити всі фільтри" - -msgid "Remove from sorting" -msgstr "Видалити з сортування" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Пріорітет сортування: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "Сортувати в іншому напрямку" - -msgid "Toggle theme (current theme: auto)" -msgstr "Перемкнути тему (поточна тема: автоматична)" - -msgid "Toggle theme (current theme: light)" -msgstr "Перемкнути тему (поточна тема: світла)" - -msgid "Toggle theme (current theme: dark)" -msgstr "Перемкнути тему (поточна тема: темна)" - -msgid "Delete" -msgstr "Видалити" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Видалення %(object_name)s '%(escaped_object)s' призведе до видалення " -"пов'язаних об'єктів, але ваш реєстраційний запис не має дозволу видаляти " -"наступні типи об'єктів:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Видалення %(object_name)s '%(escaped_object)s' вимагатиме видалення " -"наступних пов'язаних об'єктів:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ви впевнені, що хочете видалити %(object_name)s \"%(escaped_object)s\"? Всі " -"пов'язані записи, що перелічені, будуть видалені:" - -msgid "Objects" -msgstr "Об'єкти" - -msgid "Yes, I’m sure" -msgstr "Так, я впевнений" - -msgid "No, take me back" -msgstr "Ні, повернутись назад" - -msgid "Delete multiple objects" -msgstr "Видалити кілька об'єктів" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Видалення обраних %(objects_name)s вимагатиме видалення пов'язаних об'єктів, " -"але ваш обліковий запис не має прав для видалення таких типів об'єктів:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Видалення обраних %(objects_name)s вимагатиме видалення наступних захищених " -"пов'язаних об'єктів:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Ви впевнені, що хочете видалити вибрані %(objects_name)s? Всі вказані " -"об'єкти та пов'язані з ними елементи будуть видалені:" - -msgid "Delete?" -msgstr "Видалити?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "За %(filter_title)s" - -msgid "Summary" -msgstr "Резюме" - -msgid "Recent actions" -msgstr "Недавні дії" - -msgid "My actions" -msgstr "Мої дії" - -msgid "None available" -msgstr "Немає" - -msgid "Unknown content" -msgstr "Невідомий зміст" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Щось не так з інсталяцією бази даних. Запевніться, що певні таблиці бази " -"даних були створені і що вона може бути прочитана певним користувачем." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Ви аутентифіковані як %(username)s, але вам не надано доступ до цієї " -"сторінки.\n" -"Ввійти в інший аккаунт?" - -msgid "Forgotten your password or username?" -msgstr "Забули пароль або ім'я користувача?" - -msgid "Toggle navigation" -msgstr "Увімкнути навігацію" - -msgid "Sidebar" -msgstr "Бічна панель" - -msgid "Start typing to filter…" -msgstr "Почніть писати для фільтру..." - -msgid "Filter navigation items" -msgstr "Фільтрувати навігаційні об'єкти" - -msgid "Date/time" -msgstr "Дата/час" - -msgid "User" -msgstr "Користувач" - -msgid "Action" -msgstr "Дія" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "запис" -msgstr[1] "записи" -msgstr[2] "записи" -msgstr[3] "записи" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Цей об'єкт не має історії змін. Напевно, він був доданий не через цей сайт " -"адміністрування." - -msgid "Show all" -msgstr "Показати всі" - -msgid "Save" -msgstr "Зберегти" - -msgid "Popup closing…" -msgstr "Закриття спливаючого вікна" - -msgid "Search" -msgstr "Пошук" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s результат" -msgstr[1] "%(counter)s результати" -msgstr[2] "%(counter)s результатів" -msgstr[3] "%(counter)s результатів" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s всього" - -msgid "Save as new" -msgstr "Зберегти як нове" - -msgid "Save and add another" -msgstr "Зберегти і додати інше" - -msgid "Save and continue editing" -msgstr "Зберегти і продовжити редагування" - -msgid "Save and view" -msgstr "Зберегти і переглянути" - -msgid "Close" -msgstr "Закрити" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Змінити обрану %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "Додати ще одну %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Видалити обрану %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "Переглянути обрану %(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Дякуємо за час, який був проведений сьогодні на сайті." - -msgid "Log in again" -msgstr "Увійти знову" - -msgid "Password change" -msgstr "Зміна паролю" - -msgid "Your password was changed." -msgstr "Ваш пароль було змінено." - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Будь ласка введіть ваш старий пароль, заради безпеки, після цього введіть " -"ваш новий пароль двічі для верифікації коректності написаного." - -msgid "Change my password" -msgstr "Змінити мій пароль" - -msgid "Password reset" -msgstr "Перевстановлення паролю" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Пароль встановлено. Ви можете увійти зараз." - -msgid "Password reset confirmation" -msgstr "Підтвердження перевстановлення паролю" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Будь ласка, введіть ваш старий пароль, задля безпеки, потім введіть ваш " -"новий пароль двічі для перевірки." - -msgid "New password:" -msgstr "Новий пароль:" - -msgid "Confirm password:" -msgstr "Підтвердіть пароль:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Посилання на перевстановлення паролю було помилковим. Можливо тому, що воно " -"було вже використано. Будь ласка, замовте нове перевстановлення паролю." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Ми відправили вам інструкції для встановлення пароля, якщо обліковий запис з " -"введеною адресою існує. Ви маєте отримати їх найближчим часом." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Якщо Ви не отримали електронного листа, переконайтеся, будь ласка, в " -"зареєстрованій адресі і перевірте папку \"Спам\"." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Ви отримали цей лист через те, що зробили запит на перевстановлення пароля " -"для облікового запису користувача на %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Будь ласка, перейдіть на цю сторінку, та оберіть новий пароль:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Ваше користувацьке ім'я, у випадку, якщо ви забули:" - -msgid "Thanks for using our site!" -msgstr "Дякуємо за користування нашим сайтом!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Команда сайту %(site_name)s " - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Забули пароль? Введіть свою email-адресу нижче і ми відправимо вам " -"інструкції по встановленню нового." - -msgid "Email address:" -msgstr "Email адреса:" - -msgid "Reset my password" -msgstr "Перевстановіть мій пароль" - -msgid "All dates" -msgstr "Всі дати" - -#, python-format -msgid "Select %s" -msgstr "Вибрати %s" - -#, python-format -msgid "Select %s to change" -msgstr "Виберіть %s щоб змінити" - -#, python-format -msgid "Select %s to view" -msgstr "Вибрати %s для перегляду" - -msgid "Date:" -msgstr "Дата:" - -msgid "Time:" -msgstr "Час:" - -msgid "Lookup" -msgstr "Пошук" - -msgid "Currently:" -msgstr "На даний час:" - -msgid "Change:" -msgstr "Змінено:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 20523ff..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po deleted file mode 100644 index 40e60de..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,275 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Oleksandr Chernihov , 2014 -# Boryslav Larin , 2011 -# Denis Podlesniy , 2016 -# Illia Volochii , 2021 -# Jannis Leidel , 2011 -# Panasoft, 2016 -# Sergey Lysach , 2011-2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-10-21 18:50+0000\n" -"Last-Translator: Illia Volochii \n" -"Language-Team: Ukrainian (http://www.transifex.com/django/django/language/" -"uk/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: uk\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != " -"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % " -"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || " -"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" - -#, javascript-format -msgid "Available %s" -msgstr "В наявності %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Це список всіх доступних %s. Ви можете обрати деякі з них, виділивши їх у " -"полі нижче і натиснувшт кнопку \"Обрати\"." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Почніть вводити текст в цьому полі щоб відфільтрувати список доступних %s." - -msgid "Filter" -msgstr "Фільтр" - -msgid "Choose all" -msgstr "Обрати всі" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Натисніть щоб обрати всі %s відразу." - -msgid "Choose" -msgstr "Обрати" - -msgid "Remove" -msgstr "Видалити" - -#, javascript-format -msgid "Chosen %s" -msgstr "Обрано %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Це список обраних %s. Ви можете видалити деякі з них, виділивши їх у полі " -"нижче і натиснувши кнопку \"Видалити\"." - -msgid "Remove all" -msgstr "Видалити все" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Натисніть щоб видалити всі обрані %s відразу." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "Обрано %(sel)s з %(cnt)s" -msgstr[1] "Обрано %(sel)s з %(cnt)s" -msgstr[2] "Обрано %(sel)s з %(cnt)s" -msgstr[3] "Обрано %(sel)s з %(cnt)s" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Ви зробили якісь зміни у деяких полях. Якщо Ви виконаєте цю дію, всі " -"незбережені зміни буде втрачено." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "Зараз" - -msgid "Midnight" -msgstr "Північ" - -msgid "6 a.m." -msgstr "6" - -msgid "Noon" -msgstr "Полудень" - -msgid "6 p.m." -msgstr "18:00" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Примітка: Ви на %s годину попереду серверного часу." -msgstr[1] "Примітка: Ви на %s години попереду серверного часу." -msgstr[2] "Примітка: Ви на %s годин попереду серверного часу." -msgstr[3] "Примітка: Ви на %s годин попереду серверного часу." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Примітка: Ви на %s годину позаду серверного часу." -msgstr[1] "Примітка: Ви на %s години позаду серверного часу." -msgstr[2] "Примітка: Ви на %s годин позаду серверного часу." -msgstr[3] "Примітка: Ви на %s годин позаду серверного часу." - -msgid "Choose a Time" -msgstr "Оберіть час" - -msgid "Choose a time" -msgstr "Оберіть час" - -msgid "Cancel" -msgstr "Відмінити" - -msgid "Today" -msgstr "Сьогодні" - -msgid "Choose a Date" -msgstr "Оберіть дату" - -msgid "Yesterday" -msgstr "Вчора" - -msgid "Tomorrow" -msgstr "Завтра" - -msgid "January" -msgstr "січня" - -msgid "February" -msgstr "лютого" - -msgid "March" -msgstr "березня" - -msgid "April" -msgstr "квітня" - -msgid "May" -msgstr "травня" - -msgid "June" -msgstr "червня" - -msgid "July" -msgstr "липня" - -msgid "August" -msgstr "серпня" - -msgid "September" -msgstr "вересня" - -msgid "October" -msgstr "жовтня" - -msgid "November" -msgstr "листопада" - -msgid "December" -msgstr "грудня" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Січ." - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Лют." - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Берез." - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Квіт." - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Трав." - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Черв." - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Лип." - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Серп." - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Верес." - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Жовт." - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Листоп." - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Груд." - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Н" - -msgctxt "one letter Monday" -msgid "M" -msgstr "П" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "В" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "С" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Ч" - -msgctxt "one letter Friday" -msgid "F" -msgstr "П" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "С" - -msgid "Show" -msgstr "Показати" - -msgid "Hide" -msgstr "Сховати" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.mo deleted file mode 100644 index 0735f5d..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.po deleted file mode 100644 index 81ef111..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/django.po +++ /dev/null @@ -1,661 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Mansoorulhaq Mansoor , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Urdu (http://www.transifex.com/django/django/language/ur/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ur\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d %(items)s کو کامیابی سے مٹا دیا گیا۔" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s نہیں مٹایا جا سکتا" - -msgid "Are you sure?" -msgstr "آپ کو یقین ھے؟" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "منتخب شدہ %(verbose_name_plural)s مٹائیں" - -msgid "Administration" -msgstr "" - -msgid "All" -msgstr "تمام" - -msgid "Yes" -msgstr "ھاں" - -msgid "No" -msgstr "نھیں" - -msgid "Unknown" -msgstr "نامعلوم" - -msgid "Any date" -msgstr "کوئی تاریخ" - -msgid "Today" -msgstr "آج" - -msgid "Past 7 days" -msgstr "گزشتہ سات دن" - -msgid "This month" -msgstr "یہ مھینہ" - -msgid "This year" -msgstr "یہ سال" - -msgid "No date" -msgstr "" - -msgid "Has date" -msgstr "" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" - -msgid "Action:" -msgstr "کاروائی:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "دوسرا %(verbose_name)s درج کریں" - -msgid "Remove" -msgstr "خارج کریں" - -msgid "action time" -msgstr "کاروائی کا وقت" - -msgid "user" -msgstr "" - -msgid "content type" -msgstr "" - -msgid "object id" -msgstr "شے کا شناختی نمبر" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "شے کا نمائندہ" - -msgid "action flag" -msgstr "کاروائی کا پرچم" - -msgid "change message" -msgstr "پیغام تبدیل کریں" - -msgid "log entry" -msgstr "لاگ کا اندراج" - -msgid "log entries" -msgstr "لاگ کے اندراج" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "" - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "اور" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "" - -msgid "No fields changed." -msgstr "کوئی خانہ تبدیل نھیں کیا گیا۔" - -msgid "None" -msgstr "کوئی نھیں" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"اشیاء پر کاروائی سرانجام دینے کے لئے ان کا منتخب ھونا ضروری ھے۔ کوئی شے " -"تبدیل نھیں کی گئی۔" - -msgid "No action selected." -msgstr "کوئی کاروائی منتخب نھیں کی گئی۔" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" کامیابی سے مٹایا گیا تھا۔" - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "%s کا اضافہ کریں" - -#, python-format -msgid "Change %s" -msgstr "%s تبدیل کریں" - -msgid "Database error" -msgstr "ڈیٹا بیس کی خرابی" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s کامیابی سے تبدیل کیا گیا تھا۔" -msgstr[1] "%(count)s %(name)s کامیابی سے تبدیل کیے گئے تھے۔" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "%(total_count)s منتخب کیا گیا۔" -msgstr[1] "تمام %(total_count)s منتخب کئے گئے۔" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s میں سے 0 منتخب کیا گیا۔" - -#, python-format -msgid "Change history: %s" -msgstr "%s کی تبدیلی کا تاریخ نامہ" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "منتظم برائے جینگو سائٹ" - -msgid "Django administration" -msgstr "انتظامیہ برائے جینگو سائٹ" - -msgid "Site administration" -msgstr "سائٹ کی انتظامیہ" - -msgid "Log in" -msgstr "اندر جائیں" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "صفحہ نھیں ملا" - -msgid "We're sorry, but the requested page could not be found." -msgstr "ھم معذرت خواہ ھیں، مطلوبہ صفحہ نھیں مل سکا۔" - -msgid "Home" -msgstr "گھر" - -msgid "Server error" -msgstr "سرور کی خرابی" - -msgid "Server error (500)" -msgstr "سرور کی خرابی (500)" - -msgid "Server Error (500)" -msgstr "سرور کی خرابی (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "منتخب شدہ کاروائیاں چلائیں" - -msgid "Go" -msgstr "جاؤ" - -msgid "Click here to select the objects across all pages" -msgstr "تمام صفحات میں سے اشیاء منتخب کرنے کے لئے یہاں کلک کریں۔" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "تمام %(total_count)s %(module_name)s منتخب کریں" - -msgid "Clear selection" -msgstr "انتخاب صاف کریں" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"پہلے نام صارف اور لفظ اجازت درج کریں۔ پھر آپ مزید صارف کے حقوق مدوّن کرنے کے " -"قابل ھوں گے۔" - -msgid "Enter a username and password." -msgstr "نام صارف اور لفظ اجازت درج کریں۔" - -msgid "Change password" -msgstr "لفظ اجازت تبدیل کریں" - -msgid "Please correct the error below." -msgstr "براہ کرم نیچے غلطیاں درست کریں۔" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "صارف %(username)s کے لئے نیا لفظ اجازت درج کریں۔" - -msgid "Welcome," -msgstr "خوش آمدید،" - -msgid "View site" -msgstr "" - -msgid "Documentation" -msgstr "طریق استعمال" - -msgid "Log out" -msgstr "باہر جائیں" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s کا اضافہ کریں" - -msgid "History" -msgstr "تاریخ نامہ" - -msgid "View on site" -msgstr "سائٹ پر مشاھدہ کریں" - -msgid "Filter" -msgstr "چھانٹیں" - -msgid "Remove from sorting" -msgstr "" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "مٹائیں" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' کو مٹانے کے نتیجے میں معتلقہ اشیاء مٹ " -"سکتی ھیں، مگر آپ کے کھاتے کو اشیاء کی مندرجہ ذیل اقسام مٹانے کا حق حاصل نھیں " -"ھے۔" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"%(object_name)s '%(escaped_object)s' کو مٹانے کے لئے مندرجہ ذیل محفوظ متعلقہ " -"اشیاء کو مٹانے کی ضرورت پڑ سکتی ھے۔" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"واقعی آپ %(object_name)s \"%(escaped_object)s\" کو مٹانا چاہتے ھیں۔ مندرجہ " -"ذیل تمام متعلقہ اجزاء مٹ جائیں گے۔" - -msgid "Objects" -msgstr "" - -msgid "Yes, I'm sure" -msgstr "ھاں، مجھے یقین ھے" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "متعدد اشیاء مٹائیں" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"منتخب شدہ %(objects_name)s کو مٹانے کے نتیجے میں متعلقہ اشیاء مٹ سکتی ھیں، " -"لیکن آپ کے کھاتے کو اشیاء کی مندرجہ ذیل اقسام کو مٹانے کا حق حاصل نھیں ھے۔" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"منتخب شدہ %(objects_name)s کو مٹانے کے لئے مندرجہ ذیل محفوظ شدہ اشیاء کو " -"مٹانے کی ضرورت پڑ سکتی ھے۔" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"واقعی آپ منتخب شدہ %(objects_name)s مٹانا چاھتے ھیں؟ مندرجہ ذیل اور ان سے " -"متعلقہ تمام اشیاء حذف ھو جائیں گی۔" - -msgid "Change" -msgstr "تدوین" - -msgid "Delete?" -msgstr "مٹاؤں؟" - -#, python-format -msgid " By %(filter_title)s " -msgstr "از %(filter_title)s" - -msgid "Summary" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "اضافہ" - -msgid "You don't have permission to edit anything." -msgstr "آپ کو کوئی چیز مدوّن کرنے کا حق نھیں ھے۔" - -msgid "Recent actions" -msgstr "" - -msgid "My actions" -msgstr "" - -msgid "None available" -msgstr "کچھ دستیاب نھیں" - -msgid "Unknown content" -msgstr "نامعلوم مواد" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"آپ کی ڈیٹا بیس کی تنصیب میں کوئی چیز خراب ھے۔ یقین کر لیں کہ موزون ڈیٹا بیس " -"ٹیبل بنائے گئے تھے، اور یقین کر لیں کہ ڈیٹ بیس مناسب صارف کے پڑھے جانے کے " -"قابل ھے۔" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Date/time" -msgstr "تاریخ/وقت" - -msgid "User" -msgstr "صارف" - -msgid "Action" -msgstr "کاروائی" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"اس شے کا تبدیلی کا تاریخ نامہ نھیں ھے۔ اس کا غالباً بذریعہ اس منتظم سائٹ کے " -"اضافہ نھیں کیا گیا۔" - -msgid "Show all" -msgstr "تمام دکھائیں" - -msgid "Save" -msgstr "محفوظ کریں" - -msgid "Popup closing..." -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Search" -msgstr "تلاش کریں" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s نتیجہ" -msgstr[1] "%(counter)s نتائج" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "کل %(full_result_count)s" - -msgid "Save as new" -msgstr "بطور نیا محفوظ کریں" - -msgid "Save and add another" -msgstr "محفوظ کریں اور مزید اضافہ کریں" - -msgid "Save and continue editing" -msgstr "محفوظ کریں اور تدوین جاری رکھیں" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "ویب سائٹ پر آج کچھ معیاری وقت خرچ کرنے کے لئے شکریہ۔" - -msgid "Log in again" -msgstr "دوبارہ اندر جائیں" - -msgid "Password change" -msgstr "لفظ اجازت کی تبدیلی" - -msgid "Your password was changed." -msgstr "آپ کا لفظ اجازت تبدیل کر دیا گیا تھا۔" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"براہ کرم سیکیورٹی کی خاطر اپنا پرانا لفظ اجازت درج کریں اور پھر اپنا نیا لفظ " -"اجازت دو مرتبہ درج کریں تاکہ ھم توثیق کر سکیں کہ آپ نے اسے درست درج کیا ھے۔" - -msgid "Change my password" -msgstr "میرا لفظ تبدیل کریں" - -msgid "Password reset" -msgstr "لفظ اجازت کی دوبارہ ترتیب" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"آپ کا لفظ اجازت مرتب کر دیا گیا ھے۔ آپ کو آگے بڑھنے اور اندر جانے کی اجازت " -"ھے۔" - -msgid "Password reset confirmation" -msgstr "لفظ اجازت دوبارہ مرتب کرنے کی توثیق" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"براہ مھربانی اپنا نیا لفظ اجازت دو مرتبہ درج کریں تاکہ تاکہ ھم تصدیق کر سکیں " -"کہ تم نے اسے درست درج کیا ھے۔" - -msgid "New password:" -msgstr "نیا لفظ اجازت:" - -msgid "Confirm password:" -msgstr "لفظ اجازت کی توثیق:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"لفظ اجازت دوبارہ مرتب کرنے کا رابطہ (لنک) غلط تھا، غالباً یہ پہلے ھی استعمال " -"کیا چکا تھا۔ براہ مھربانی نیا لفظ اجازت مرتب کرنے کی درخواست کریں۔" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "براہ مھربانی مندرجہ ذیل صفحے پر جائیں اور نیا لفظ اجازت پسند کریں:" - -msgid "Your username, in case you've forgotten:" -msgstr "نام صارف، بھول جانے کی صورت میں:" - -msgid "Thanks for using our site!" -msgstr "ھماری سائٹ استعمال کرنے کے لئے شکریہ" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s کی ٹیم" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "میرا لفظ اجازت دوبارہ مرتب کریں" - -msgid "All dates" -msgstr "تمام تاریخیں" - -#, python-format -msgid "Select %s" -msgstr "%s منتخب کریں" - -#, python-format -msgid "Select %s to change" -msgstr "تبدیل کرنے کے لئے %s منتخب کریں" - -msgid "Date:" -msgstr "تاریخ:" - -msgid "Time:" -msgstr "وقت:" - -msgid "Lookup" -msgstr "ڈھونڈیں" - -msgid "Currently:" -msgstr "" - -msgid "Change:" -msgstr "" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 65de198..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.po deleted file mode 100644 index a4f5642..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,211 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Mansoorulhaq Mansoor , 2011 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Urdu (http://www.transifex.com/django/django/language/ur/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ur\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#, javascript-format -msgid "Available %s" -msgstr "دستیاب %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" - -msgid "Filter" -msgstr "چھانٹیں" - -msgid "Choose all" -msgstr "سب منتخب کریں" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "" - -msgid "Choose" -msgstr "" - -msgid "Remove" -msgstr "خارج کریں" - -#, javascript-format -msgid "Chosen %s" -msgstr "منتخب شدہ %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" - -msgid "Remove all" -msgstr "" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s میں سے %(sel)s منتخب کیا گیا" -msgstr[1] "%(cnt)s میں سے %(sel)s منتخب کیے گئے" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"آپ کے پاس ذاتی قابل تدوین خانوں میں غیر محفوظ تبدیلیاں موجود ھیں۔ اگر آپ " -"کوئی کاروائی کریں گے تو آپ کی غیر محفوظ تبدیلیاں ضائع ھو جائیں گی۔" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"آپ نے ایک کاروائی منتخب کی ھے لیکن ابھی تک آپ نے ذاتی خانوں میں اپنی " -"تبدیلیاں محفوظ نہیں کی ہیں براہ مھربانی محفوط کرنے کے لئے OK پر کلک کریں۔ آپ " -"کاوائی دوبارہ چلانے کی ضرورت ھوگی۔" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"آپ نے ایک کاروائی منتخب کی ھے، اور آپ نے ذاتی خانوں میں کوئی تبدیلی نہیں کی " -"غالباً آپ 'جاؤ' بٹن تلاش کر رھے ھیں بجائے 'مخفوظ کریں' بٹن کے۔" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -msgstr[1] "" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -msgstr[1] "" - -msgid "Now" -msgstr "اب" - -msgid "Choose a Time" -msgstr "" - -msgid "Choose a time" -msgstr "وقت منتخب کریں" - -msgid "Midnight" -msgstr "نصف رات" - -msgid "6 a.m." -msgstr "6 ص" - -msgid "Noon" -msgstr "دوپھر" - -msgid "6 p.m." -msgstr "" - -msgid "Cancel" -msgstr "منسوخ کریں" - -msgid "Today" -msgstr "آج" - -msgid "Choose a Date" -msgstr "" - -msgid "Yesterday" -msgstr "گزشتہ کل" - -msgid "Tomorrow" -msgstr "آئندہ کل" - -msgid "January" -msgstr "" - -msgid "February" -msgstr "" - -msgid "March" -msgstr "" - -msgid "April" -msgstr "" - -msgid "May" -msgstr "" - -msgid "June" -msgstr "" - -msgid "July" -msgstr "" - -msgid "August" -msgstr "" - -msgid "September" -msgstr "" - -msgid "October" -msgstr "" - -msgid "November" -msgstr "" - -msgid "December" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "" - -msgctxt "one letter Monday" -msgid "M" -msgstr "" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "" - -msgctxt "one letter Friday" -msgid "F" -msgstr "" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "" - -msgid "Show" -msgstr "دکھائیں" - -msgid "Hide" -msgstr "چھپائیں" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.mo deleted file mode 100644 index 67c6d07..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.po deleted file mode 100644 index 80dd797..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/django.po +++ /dev/null @@ -1,678 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Alex Ibragimov, 2021 -# Anvar Ulugov , 2020 -# Bedilbek Khamidov , 2019 -# Claude Paroz , 2019 -# Nuriddin Islamov, 2021 -# Shukrullo Turgunov , 2021 -# Sukhrobbek Ismatov , 2019 -# Yet Sum , 2019 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-12-16 12:06+0000\n" -"Last-Translator: Alex Ibragimov\n" -"Language-Team: Uzbek (http://www.transifex.com/django/django/language/uz/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: uz\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "%(verbose_name_plural)s tanlanganlarni o'chirish" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "%(count)d%(items)s muvaffaqiyatli o'chirildi." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "%(name)s o'chirib bo'lmadi" - -msgid "Are you sure?" -msgstr "Ishonchingiz komilmi?" - -msgid "Administration" -msgstr "Administratsiya" - -msgid "All" -msgstr "Hammasi" - -msgid "Yes" -msgstr "Ha" - -msgid "No" -msgstr "Yo'q" - -msgid "Unknown" -msgstr "Noma'lum" - -msgid "Any date" -msgstr "Istalgan kun" - -msgid "Today" -msgstr "Bugun" - -msgid "Past 7 days" -msgstr "O'tgan 7 kun" - -msgid "This month" -msgstr "Shu oyda" - -msgid "This year" -msgstr "Shu yilda" - -msgid "No date" -msgstr "Sanasi yo'q" - -msgid "Has date" -msgstr "Sanasi bor" - -msgid "Empty" -msgstr "Bo'sh" - -msgid "Not empty" -msgstr "Bo'sh emas" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Xodimlar akkaunti uchun to'g'ri %(username)s va parolni kiriting. E'tibor " -"bering, har ikkala maydon ham harf katta-kichikligini hisobga olishi mumkin." - -msgid "Action:" -msgstr "Harakat:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Boshqa %(verbose_name)s qo‘shish" - -msgid "Remove" -msgstr "Olib tashlash" - -msgid "Addition" -msgstr " Qo'shish" - -msgid "Change" -msgstr "O'zgartirish" - -msgid "Deletion" -msgstr "O'chirish" - -msgid "action time" -msgstr "harakat vaqti" - -msgid "user" -msgstr "foydalanuvchi" - -msgid "content type" -msgstr "tarkib turi" - -msgid "object id" -msgstr "obyekt identifikatori" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "obyekt taqdimi" - -msgid "action flag" -msgstr "harakat bayrog'i" - -msgid "change message" -msgstr "xabarni o'zgartirish" - -msgid "log entry" -msgstr "jurnal yozuvi" - -msgid "log entries" -msgstr "jurnal yozuvlari" - -#, python-format -msgid "Added “%(object)s”." -msgstr "\"%(object)s\" qo'shildi." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "%(object)s dan %(changes)sga o'zgartirildi." - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "\"%(object)s\" o'chirildi." - -msgid "LogEntry Object" -msgstr "" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "" - -msgid "Added." -msgstr "" - -msgid "and" -msgstr "va" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "" - -msgid "No fields changed." -msgstr "" - -msgid "None" -msgstr "Bo'sh" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "" - -msgid "You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} \"{obj}\" muvaffaqiyatli o'zgartirildi." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" - -msgid "No action selected." -msgstr "" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s%(obj)smuvaffaqiyatli o'chirildi" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "" - -#, python-format -msgid "Add %s" -msgstr "Qo'shish %s" - -#, python-format -msgid "Change %s" -msgstr "%sni o'zgartirish" - -#, python-format -msgid "View %s" -msgstr "Ko'rish %s" - -msgid "Database error" -msgstr "Ma'lumotlar bazasi xatoligi yuz berdi" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "" - -#, python-format -msgid "Change history: %s" -msgstr "" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" - -msgid "Django site admin" -msgstr "" - -msgid "Django administration" -msgstr "" - -msgid "Site administration" -msgstr "" - -msgid "Log in" -msgstr "" - -#, python-format -msgid "%(app)s administration" -msgstr "" - -msgid "Page not found" -msgstr "" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "" - -msgid "Home" -msgstr "" - -msgid "Server error" -msgstr "Server xatoligi" - -msgid "Server error (500)" -msgstr "Server xatoligi (500)" - -msgid "Server Error (500)" -msgstr "Server xatoligi (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" - -msgid "Run the selected action" -msgstr "Tanlangan faoliyatni ishga tushirish" - -msgid "Go" -msgstr "" - -msgid "Click here to select the objects across all pages" -msgstr "" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "" - -msgid "Clear selection" -msgstr "" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "" - -msgid "Add" -msgstr "Qo'shish" - -msgid "View" -msgstr "Ko'rish" - -msgid "You don’t have permission to view or edit anything." -msgstr "" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" - -msgid "Enter a username and password." -msgstr "Username va parolni kiritish" - -msgid "Change password" -msgstr "Parolni o'zgartirish" - -msgid "Please correct the error below." -msgstr "" - -msgid "Please correct the errors below." -msgstr "" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" - -msgid "Welcome," -msgstr "Xush kelibsiz," - -msgid "View site" -msgstr "Saytni ko'rish" - -msgid "Documentation" -msgstr "Qo'llanma" - -msgid "Log out" -msgstr "Chiqish" - -#, python-format -msgid "Add %(name)s" -msgstr "%(name)sqo'shish" - -msgid "History" -msgstr "" - -msgid "View on site" -msgstr "Saytda ko'rish" - -msgid "Filter" -msgstr "Saralash" - -msgid "Clear all filters" -msgstr "" - -msgid "Remove from sorting" -msgstr "Tartiblashdan chiqarish" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "" - -msgid "Toggle sorting" -msgstr "" - -msgid "Delete" -msgstr "O'chirish" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" - -msgid "Objects" -msgstr "" - -msgid "Yes, I’m sure" -msgstr "" - -msgid "No, take me back" -msgstr "" - -msgid "Delete multiple objects" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" - -msgid "Delete?" -msgstr "O'chirasizmi?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "" - -msgid "Summary" -msgstr "Xulosa" - -msgid "Recent actions" -msgstr "So'ngi harakatlar" - -msgid "My actions" -msgstr "Mening harakatlarim" - -msgid "None available" -msgstr "" - -msgid "Unknown content" -msgstr "" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" - -msgid "Forgotten your password or username?" -msgstr "" - -msgid "Toggle navigation" -msgstr "Navigatsiyani almashtirish" - -msgid "Start typing to filter…" -msgstr "" - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "" - -msgid "User" -msgstr "" - -msgid "Action" -msgstr "" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" - -msgid "Show all" -msgstr "" - -msgid "Save" -msgstr "Saqlash" - -msgid "Popup closing…" -msgstr "" - -msgid "Search" -msgstr "Izlash" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "" - -msgid "Save as new" -msgstr "" - -msgid "Save and add another" -msgstr "" - -msgid "Save and continue editing" -msgstr "" - -msgid "Save and view" -msgstr "" - -msgid "Close" -msgstr "" - -#, python-format -msgid "Change selected %(model)s" -msgstr "" - -#, python-format -msgid "Add another %(model)s" -msgstr "" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "" - -msgid "Log in again" -msgstr "" - -msgid "Password change" -msgstr "" - -msgid "Your password was changed." -msgstr "" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" - -msgid "Change my password" -msgstr "" - -msgid "Password reset" -msgstr "" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "" - -msgid "Password reset confirmation" -msgstr "" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" - -msgid "New password:" -msgstr "" - -msgid "Confirm password:" -msgstr "" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -msgid "Please go to the following page and choose a new password:" -msgstr "" - -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -msgid "Thanks for using our site!" -msgstr "" - -#, python-format -msgid "The %(site_name)s team" -msgstr "" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" - -msgid "Email address:" -msgstr "" - -msgid "Reset my password" -msgstr "Parolimni tiklash" - -msgid "All dates" -msgstr "Barcha sanalar" - -#, python-format -msgid "Select %s" -msgstr "%sni tanlash" - -#, python-format -msgid "Select %s to change" -msgstr "" - -#, python-format -msgid "Select %s to view" -msgstr "" - -msgid "Date:" -msgstr "Sana:" - -msgid "Time:" -msgstr "Vaqt:" - -msgid "Lookup" -msgstr "Izlash" - -msgid "Currently:" -msgstr "Hozirda:" - -msgid "Change:" -msgstr "O'zgartirish:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 7c922f6..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.po deleted file mode 100644 index d731b22..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,261 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Nuriddin Islamov, 2021 -# Otabek Umurzakov , 2019 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-12-15 16:52+0000\n" -"Last-Translator: Nuriddin Islamov\n" -"Language-Team: Uzbek (http://www.transifex.com/django/django/language/uz/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: uz\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "Mavjud %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Bu mavjud %s ro'yxati. Siz ulardan ba'zilarini quyidagi maydonchada " -"belgilab, so'ng ikkala maydonlar orasidagi \"Tanlash\" ko'rsatkichiga bosish " -"orqali tanlashingiz mumkin." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "" -"Mavjud bo'lgan %s larni ro'yxatini filtrlash uchun ushbu maydonchaga " -"kiriting." - -msgid "Filter" -msgstr "Filtrlash" - -msgid "Choose all" -msgstr "Barchasini tanlash" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Barcha %s larni birdan tanlash uchun bosing." - -msgid "Choose" -msgstr "Tanlash" - -msgid "Remove" -msgstr "O'chirish" - -#, javascript-format -msgid "Chosen %s" -msgstr "Tanlangan %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Bu tanlangan %s ro'yxati. Siz ulardan ba'zilarini quyidagi maydonchada " -"belgilab, so'ng ikkala maydonlar orasidagi \"O'chirish\" ko'rsatkichiga " -"bosish orqali o'chirishingiz mumkin." - -msgid "Remove all" -msgstr "Barchasini o'chirish" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Barcha tanlangan %s larni birdan o'chirib tashlash uchun bosing." - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s dan %(sel)s tanlandi" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Siz alohida tahrirlash mumkin bo'lgan maydonlarda saqlanmagan " -"o‘zgarishlaringiz mavjud. Agar siz harakatni ishga tushirsangiz, saqlanmagan " -"o'zgarishlaringiz yo'qotiladi." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" - -msgid "Now" -msgstr "Hozir" - -msgid "Midnight" -msgstr "Yarim tun" - -msgid "6 a.m." -msgstr "6 t.o." - -msgid "Noon" -msgstr "Kun o'rtasi" - -msgid "6 p.m." -msgstr "6 t.k." - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "Eslatma: Siz server vaqtidan %s soat oldindasiz." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "Eslatma: Siz server vaqtidan %s soat orqadasiz." - -msgid "Choose a Time" -msgstr "Vaqtni tanlang" - -msgid "Choose a time" -msgstr "Vaqtni tanlang" - -msgid "Cancel" -msgstr "Bekor qilish" - -msgid "Today" -msgstr "Bugun" - -msgid "Choose a Date" -msgstr "Sanani tanlang" - -msgid "Yesterday" -msgstr "Kecha" - -msgid "Tomorrow" -msgstr "Ertaga" - -msgid "January" -msgstr "Yanvar" - -msgid "February" -msgstr "Fevral" - -msgid "March" -msgstr "Mart" - -msgid "April" -msgstr "Aprel" - -msgid "May" -msgstr "May" - -msgid "June" -msgstr "Iyun" - -msgid "July" -msgstr "Iyul" - -msgid "August" -msgstr "Avgust" - -msgid "September" -msgstr "Sentabr" - -msgid "October" -msgstr "Oktabr" - -msgid "November" -msgstr "Noyabr" - -msgid "December" -msgstr "Dekabr" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "Ya" - -msgctxt "one letter Monday" -msgid "M" -msgstr "Du" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "Se" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "Ch" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "Pa" - -msgctxt "one letter Friday" -msgid "F" -msgstr "Ju" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "Sh" - -msgid "Show" -msgstr "Ko'rsatish" - -msgid "Hide" -msgstr "Bekitish" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.mo deleted file mode 100644 index 1091b6f..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.po deleted file mode 100644 index 60fe2ce..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/django.po +++ /dev/null @@ -1,726 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Dimitris Glezos , 2012 -# Jannis Leidel , 2011 -# Thanh Le Viet , 2013 -# Tran , 2011 -# Tran Van , 2011-2013,2016,2018 -# tinnguyen121221, 2021 -# Vuong Nguyen , 2011 -# xgenvn , 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-21 10:22+0200\n" -"PO-Revision-Date: 2021-12-23 17:57+0000\n" -"Last-Translator: tinnguyen121221\n" -"Language-Team: Vietnamese (http://www.transifex.com/django/django/language/" -"vi/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: vi\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "Xóa các %(verbose_name_plural)s đã chọn" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "Đã xóa thành công %(count)d %(items)s ." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "Không thể xóa %(name)s" - -msgid "Are you sure?" -msgstr "Bạn có chắc chắn không?" - -msgid "Administration" -msgstr "Quản trị website" - -msgid "All" -msgstr "Tất cả" - -msgid "Yes" -msgstr "Có" - -msgid "No" -msgstr "Không" - -msgid "Unknown" -msgstr "Chưa xác định" - -msgid "Any date" -msgstr "Bất kì ngày nào" - -msgid "Today" -msgstr "Hôm nay" - -msgid "Past 7 days" -msgstr "7 ngày trước" - -msgid "This month" -msgstr "Tháng này" - -msgid "This year" -msgstr "Năm nay" - -msgid "No date" -msgstr "Không có ngày" - -msgid "Has date" -msgstr "Có ngày" - -msgid "Empty" -msgstr "Rỗng" - -msgid "Not empty" -msgstr "Không rỗng" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "" -"Bạn hãy nhập đúng %(username)s và mật khẩu. (Có phân biệt chữ hoa, thường)" - -msgid "Action:" -msgstr "Hoạt động:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "Thêm một %(verbose_name)s " - -msgid "Remove" -msgstr "Gỡ bỏ" - -msgid "Addition" -msgstr "Thêm" - -msgid "Change" -msgstr "Thay đổi" - -msgid "Deletion" -msgstr "Xóa" - -msgid "action time" -msgstr "Thời gian tác động" - -msgid "user" -msgstr "người dùng" - -msgid "content type" -msgstr "kiểu nội dung" - -msgid "object id" -msgstr "Mã đối tượng" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "đối tượng repr" - -msgid "action flag" -msgstr "hiệu hành động" - -msgid "change message" -msgstr "thay đổi tin nhắn" - -msgid "log entry" -msgstr "đăng nhập" - -msgid "log entries" -msgstr "mục đăng nhập" - -#, python-format -msgid "Added “%(object)s”." -msgstr "Đã thêm “%(object)s”." - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "Đã thay đổi “%(object)s” — %(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "Đã xóa “%(object)s.”" - -msgid "LogEntry Object" -msgstr "LogEntry Object" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "Đã thêm {name} “{object}”." - -msgid "Added." -msgstr "Được thêm." - -msgid "and" -msgstr "và" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "Đã thay đổi {fields} cho {name} “{object}”." - -#, python-brace-format -msgid "Changed {fields}." -msgstr "Đã thay đổi {fields}." - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "Đã xóa {name} “{object}”." - -msgid "No fields changed." -msgstr "Không có trường nào thay đổi" - -msgid "None" -msgstr "Không" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "" -"Nhấn giữ phím “Control”, hoặc “Command” trên máy Mac, để chọn nhiều hơn một." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "{name} “{obj}” được thêm vào thành công." - -msgid "You may edit it again below." -msgstr "Bạn có thể chỉnh sửa lại bên dưới." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "" -"{name} “{obj}” được thêm vào thành công. Bạn có thể thêm một {name} khác bên " -"dưới." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” được chỉnh sửa thành công. Bạn có thể chỉnh sửa lại bên dưới." - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "" -"{name} “{obj}” được thêm vào thành công. Bạn có thể chỉnh sửa lại bên dưới." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "" -"{name} “{obj}” được chỉnh sửa thành công. Bạn có thể thêm một {name} khác " -"bên dưới." - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "{name} “{obj}” đã được thay đổi thành công." - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "" -"Mục tiêu phải được chọn mới có thể thực hiện hành động trên chúng. Không có " -"mục tiêu nào đã được thay đổi." - -msgid "No action selected." -msgstr "Không có hoạt động nào được lựa chọn." - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "%(name)s “%(obj)s” đã được xóa thành công." - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "%(name)s với ID “%(key)s” không tồn tại. Có lẽ nó đã bị xóa?" - -#, python-format -msgid "Add %s" -msgstr "Thêm %s" - -#, python-format -msgid "Change %s" -msgstr "Thay đổi %s" - -#, python-format -msgid "View %s" -msgstr "Xem %s" - -msgid "Database error" -msgstr "Cơ sở dữ liệu bị lỗi" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] " %(count)s %(name)s đã được thay đổi thành công." - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "Tất cả %(total_count)s đã được chọn" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "0 của %(cnt)s được chọn" - -#, python-format -msgid "Change history: %s" -msgstr "Lịch sử thay đổi: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"Xóa %(class_name)s %(instance)s sẽ tự động xóa các đối tượng liên quan sau: " -"%(related_objects)s" - -msgid "Django site admin" -msgstr "Trang web admin Django" - -msgid "Django administration" -msgstr "Trang quản trị cho Django" - -msgid "Site administration" -msgstr "Site quản trị hệ thống." - -msgid "Log in" -msgstr "Đăng nhập" - -#, python-format -msgid "%(app)s administration" -msgstr "Quản lý %(app)s" - -msgid "Page not found" -msgstr "Không tìm thấy trang nào" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "Rất tiếc, không thể tìm thấy trang được yêu cầu." - -msgid "Home" -msgstr "Trang chủ" - -msgid "Server error" -msgstr "Lỗi máy chủ" - -msgid "Server error (500)" -msgstr "Lỗi máy chủ (500)" - -msgid "Server Error (500)" -msgstr "Lỗi máy chủ (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"Có lỗi xảy ra. Lỗi sẽ được gửi đến quản trị website qua email và sẽ được " -"khắc phục sớm. Cám ơn bạn." - -msgid "Run the selected action" -msgstr "Bắt đầu hành động lựa chọn" - -msgid "Go" -msgstr "Đi đến" - -msgid "Click here to select the objects across all pages" -msgstr "Click vào đây để lựa chọn các đối tượng trên tất cả các trang" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "Hãy chọn tất cả %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "Xóa lựa chọn" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "Các mô models trong %(name)s" - -msgid "Add" -msgstr "Thêm vào" - -msgid "View" -msgstr "Xem" - -msgid "You don’t have permission to view or edit anything." -msgstr "Bạn không có quyền xem hoặc chỉnh sửa bất cứ gì." - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "" -"Đầu tiên, điền tên đăng nhập và mật khẩu. Sau đó, bạn mới có thể chỉnh sửa " -"nhiều hơn lựa chọn của người dùng." - -msgid "Enter a username and password." -msgstr "Điền tên đăng nhập và mật khẩu." - -msgid "Change password" -msgstr "Đổi mật khẩu" - -msgid "Please correct the error below." -msgstr "Hãy sửa lỗi sai dưới đây" - -msgid "Please correct the errors below." -msgstr "Hãy chỉnh sửa lại các lỗi sau." - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Hãy nhập mật khẩu mới cho người sử dụng %(username)s." - -msgid "Welcome," -msgstr "Chào mừng bạn," - -msgid "View site" -msgstr "Xem trang web" - -msgid "Documentation" -msgstr "Tài liệu" - -msgid "Log out" -msgstr "Thoát" - -#, python-format -msgid "Add %(name)s" -msgstr "Thêm vào %(name)s" - -msgid "History" -msgstr "Bản ghi nhớ" - -msgid "View on site" -msgstr "Xem trên trang web" - -msgid "Filter" -msgstr "Bộ lọc" - -msgid "Clear all filters" -msgstr "Xóa tất cả bộ lọc" - -msgid "Remove from sorting" -msgstr "Bỏ khỏi sắp xếp" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "Sắp xếp theo:%(priority_number)s" - -msgid "Toggle sorting" -msgstr "Hoán đổi sắp xếp" - -msgid "Delete" -msgstr "Xóa" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Xóa %(object_name)s '%(escaped_object)s' sẽ làm mất những dữ liệu có liên " -"quan. Tài khoản của bạn không được cấp quyển xóa những dữ liệu đi kèm theo." - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"Xóa các %(object_name)s ' %(escaped_object)s ' sẽ bắt buộc xóa các đối " -"tượng được bảo vệ sau đây:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Bạn có chắc là muốn xóa %(object_name)s \"%(escaped_object)s\"?Tất cả những " -"dữ liệu đi kèm dưới đây cũng sẽ bị mất:" - -msgid "Objects" -msgstr "Đối tượng" - -msgid "Yes, I’m sure" -msgstr "Có, tôi chắc chắn" - -msgid "No, take me back" -msgstr "Không, đưa tôi trở lại" - -msgid "Delete multiple objects" -msgstr "Xóa nhiều đối tượng" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"Xóa các %(objects_name)s sẽ bắt buộc xóa các đối tượng liên quan, nhưng tài " -"khoản của bạn không có quyền xóa các loại đối tượng sau đây:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "" -"Xóa các %(objects_name)s sẽ bắt buộc xóa các đối tượng đã được bảo vệ sau " -"đây:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"Bạn chắc chắn muốn xóa những lựa chọn %(objects_name)s? Tất cả những đối " -"tượng sau và những đối tượng liên quan sẽ được xóa:" - -msgid "Delete?" -msgstr "Bạn muốn xóa?" - -#, python-format -msgid " By %(filter_title)s " -msgstr "Bởi %(filter_title)s " - -msgid "Summary" -msgstr "Tóm tắt" - -msgid "Recent actions" -msgstr "Hoạt động gần đây" - -msgid "My actions" -msgstr "Hoạt động của tôi" - -msgid "None available" -msgstr "Không có sẵn" - -msgid "Unknown content" -msgstr "Không biết nội dung" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Một vài lỗi với cơ sở dữ liệu cài đặt của bạn. Hãy chắc chắn bảng biểu dữ " -"liệu được tạo phù hợp và dữ liệu có thể được đọc bởi những người sử dụng phù " -"hợp." - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"Bạn đã xác thực bằng tài khoản %(username)s, nhưng không đủ quyền để truy " -"cập trang này. Bạn có muốn đăng nhập bằng một tài khoản khác?" - -msgid "Forgotten your password or username?" -msgstr "Bạn quên mật khẩu hoặc tài khoản?" - -msgid "Toggle navigation" -msgstr "" - -msgid "Start typing to filter…" -msgstr "Nhập để lọc..." - -msgid "Filter navigation items" -msgstr "" - -msgid "Date/time" -msgstr "Ngày/giờ" - -msgid "User" -msgstr "Người dùng" - -msgid "Action" -msgstr "Hành động" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "" -"Đối tượng này không có một lịch sử thay đổi. Nó có lẽ đã không được thêm vào " -"qua trang web admin." - -msgid "Show all" -msgstr "Hiện tất cả" - -msgid "Save" -msgstr "Lưu lại" - -msgid "Popup closing…" -msgstr "Đang đóng cửa sổ popup ..." - -msgid "Search" -msgstr "Tìm kiếm" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s kết quả" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "tổng số %(full_result_count)s" - -msgid "Save as new" -msgstr "Lưu mới" - -msgid "Save and add another" -msgstr "Lưu và thêm mới" - -msgid "Save and continue editing" -msgstr "Lưu và tiếp tục chỉnh sửa" - -msgid "Save and view" -msgstr "Lưu lại và xem" - -msgid "Close" -msgstr "Đóng" - -#, python-format -msgid "Change selected %(model)s" -msgstr "Thay đổi %(model)s đã chọn" - -#, python-format -msgid "Add another %(model)s" -msgstr "Thêm %(model)s khác" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "Xóa %(model)s đã chọn" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "Cảm ơn bạn đã dành thời gian với trang web." - -msgid "Log in again" -msgstr "Đăng nhập lại" - -msgid "Password change" -msgstr "Thay đổi mật khẩu" - -msgid "Your password was changed." -msgstr "Mật khẩu của bạn đã được thay đổi" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Hãy nhập lại mật khẩu cũ và sau đó nhập mật khẩu mới hai lần để chúng tôi có " -"thể kiểm tra lại xem bạn đã gõ chính xác hay chưa." - -msgid "Change my password" -msgstr "Thay đổi mật khẩu" - -msgid "Password reset" -msgstr "Lập lại mật khẩu" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Mật khẩu của bạn đã được lập lại. Bạn hãy thử đăng nhập." - -msgid "Password reset confirmation" -msgstr "Xác nhận việc lập lại mật khẩu" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Hãy nhập mật khẩu mới hai lần để chúng tôi có thể kiểm tra xem bạn đã gõ " -"chính xác chưa" - -msgid "New password:" -msgstr "Mật khẩu mới" - -msgid "Confirm password:" -msgstr "Nhập lại mật khẩu:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Liên kết đặt lại mật khẩu không hợp lệ, có thể vì nó đã được sử dụng. Xin " -"vui lòng yêu cầu đặt lại mật khẩu mới." - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Chúng tôi đã gửi cho bạn hướng dẫn thiết lập mật khẩu của bạn qua email, nếu " -"tài khoản tồn tại với email bạn đã nhập. Bạn sẽ nhận được chúng sớm." - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Nếu bạn không nhận được email, hãy đảm bảo rằng bạn đã nhập địa chỉ mà bạn " -"đã đăng ký và kiểm tra thư mục spam của mình." - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" -"Bạn nhận được email này vì bạn đã yêu cầu làm mới lại mật khẩu cho tài khoản " -"của bạn tại %(site_name)s." - -msgid "Please go to the following page and choose a new password:" -msgstr "Hãy vào đường link dưới đây và chọn một mật khẩu mới" - -msgid "Your username, in case you’ve forgotten:" -msgstr "Tên đăng nhập của bạn, trường hợp bạn quên nó:" - -msgid "Thanks for using our site!" -msgstr "Cảm ơn bạn đã sử dụng website của chúng tôi!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "Đội của %(site_name)s" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"Quên mật khẩu? Nhập địa chỉ email vào ô dưới đây. Chúng tôi sẽ email cho bạn " -"hướng dẫn cách thiết lập mật khẩu mới." - -msgid "Email address:" -msgstr "Địa chỉ Email:" - -msgid "Reset my password" -msgstr "Làm lại mật khẩu" - -msgid "All dates" -msgstr "Tất cả các ngày" - -#, python-format -msgid "Select %s" -msgstr "Chọn %s" - -#, python-format -msgid "Select %s to change" -msgstr "Chọn %s để thay đổi" - -#, python-format -msgid "Select %s to view" -msgstr "Chọn %s để xem" - -msgid "Date:" -msgstr "Ngày:" - -msgid "Time:" -msgstr "Giờ:" - -msgid "Lookup" -msgstr "Tìm" - -msgid "Currently:" -msgstr "Hiện nay:" - -msgid "Change:" -msgstr "Thay đổi:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo deleted file mode 100644 index c9d57cd..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.po deleted file mode 100644 index a3faf74..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,268 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011 -# Tran , 2011 -# Tran Van , 2013 -# tinnguyen121221, 2021 -# Vuong Nguyen , 2011 -# xgenvn , 2014 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 09:00+0100\n" -"PO-Revision-Date: 2021-12-23 17:25+0000\n" -"Last-Translator: tinnguyen121221\n" -"Language-Team: Vietnamese (http://www.transifex.com/django/django/language/" -"vi/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: vi\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "Có sẵn %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"Danh sách các lựa chọn đang có %s. Bạn có thể chọn bằng bách click vào mũi " -"tên \"Chọn\" nằm giữa hai hộp." - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "Bạn hãy nhập vào ô này để lọc các danh sách sau %s." - -msgid "Filter" -msgstr "Lọc" - -msgid "Choose all" -msgstr "Chọn tất cả" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "Click để chọn tất cả %s ." - -msgid "Choose" -msgstr "Chọn" - -msgid "Remove" -msgstr "Xóa" - -#, javascript-format -msgid "Chosen %s" -msgstr "Chọn %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"Danh sách bạn đã chọn %s. Bạn có thể bỏ chọn bằng cách click vào mũi tên " -"\"Xoá\" nằm giữa hai ô." - -msgid "Remove all" -msgstr "Xoá tất cả" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "Click để bỏ chọn tất cả %s" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] " %(sel)s của %(cnt)s được chọn" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"Bạn chưa lưu những trường đã chỉnh sửa. Nếu bạn chọn hành động này, những " -"chỉnh sửa chưa được lưu sẽ bị mất." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"Bạn đã chọn một hành động, nhưng bạn chưa lưu các thay đổi trên các trường. " -"Vui lòng bấm OK để lưu lại. Bạn sẽ cần chạy lại hành dộng." - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"Bạn đã chọn một hành động và bạn đã không thực hiện bất kỳ thay đổi nào trên " -"các trường. Có lẽ bạn nên bấm nút Đi đến hơn là nút Lưu lại." - -msgid "Now" -msgstr "Bây giờ" - -msgid "Midnight" -msgstr "Nửa đêm" - -msgid "6 a.m." -msgstr "6 giờ sáng" - -msgid "Noon" -msgstr "Buổi trưa" - -msgid "6 p.m." -msgstr "6 giờ chiều" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "" -"Lưu ý: Hiện tại bạn đang thấy thời gian trước %s giờ so với thời gian máy " -"chủ." - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "" -"Lưu ý: Hiện tại bạn đang thấy thời gian sau %s giờ so với thời gian máy chủ." - -msgid "Choose a Time" -msgstr "Chọn Thời gian" - -msgid "Choose a time" -msgstr "Chọn giờ" - -msgid "Cancel" -msgstr "Hủy bỏ" - -msgid "Today" -msgstr "Hôm nay" - -msgid "Choose a Date" -msgstr "Chọn Ngày" - -msgid "Yesterday" -msgstr "Hôm qua" - -msgid "Tomorrow" -msgstr "Ngày mai" - -msgid "January" -msgstr "Tháng Một" - -msgid "February" -msgstr "Tháng Hai" - -msgid "March" -msgstr "Tháng Ba" - -msgid "April" -msgstr "Tháng Tư" - -msgid "May" -msgstr "Tháng Năm" - -msgid "June" -msgstr "Tháng Sáu" - -msgid "July" -msgstr "Tháng Bảy" - -msgid "August" -msgstr "Tháng Tám" - -msgid "September" -msgstr "Tháng Chín" - -msgid "October" -msgstr "Tháng Mười" - -msgid "November" -msgstr "Tháng Mười Một" - -msgid "December" -msgstr "Tháng Mười Hai" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "Tháng Một" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "Tháng Hai" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "Tháng Ba" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "Tháng Tư" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "Tháng Năm" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "Tháng Sáu" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "Tháng Bảy" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "Tháng Tám" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "Tháng Chín" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "Tháng Mười" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "Tháng Mười Một" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "Tháng Mười Hai" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "CN" - -msgctxt "one letter Monday" -msgid "M" -msgstr "2" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "3" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "4" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "5" - -msgctxt "one letter Friday" -msgid "F" -msgstr "6" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "7" - -msgid "Show" -msgstr "Hiện ra" - -msgid "Hide" -msgstr "Dấu đi" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo deleted file mode 100644 index 524cb0f..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po deleted file mode 100644 index e3be306..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po +++ /dev/null @@ -1,744 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# lanbla , 2021 -# Brian Wang , 2018 -# Fulong Sun , 2016 -# Huanqun Yang, 2022 -# Jannis Leidel , 2011 -# Kevin Sze , 2012 -# Lele Long , 2011,2015 -# Le Yang , 2018 -# li beite , 2020 -# Liping Wang , 2016-2017 -# mozillazg , 2016 -# Ronald White , 2013-2014 -# Sean Lee , 2013 -# Sean Lee , 2013 -# slene , 2011 -# Suntravel Chris , 2019 -# Wentao Han , 2018,2020 -# xuyi wang , 2018 -# yf zhan , 2018 -# dykai , 2019 -# ced773123cfad7b4e8b79ca80f736af9, 2012 -# Fangjiaqi77 <370358679@qq.com>, 2020 -# Kevin Sze , 2012 -# 考证 李 , 2020 -# 雨翌 , 2016 -# 高乐喆 , 2023 -# Ronald White , 2013 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-17 02:13-0600\n" -"PO-Revision-Date: 2023-04-25 07:05+0000\n" -"Last-Translator: 高乐喆 , 2023\n" -"Language-Team: Chinese (China) (http://www.transifex.com/django/django/" -"language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "删除所选的 %(verbose_name_plural)s" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "成功删除了 %(count)d 个 %(items)s" - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "无法删除 %(name)s" - -msgid "Are you sure?" -msgstr "你确定吗?" - -msgid "Administration" -msgstr "管理" - -msgid "All" -msgstr "全部" - -msgid "Yes" -msgstr "是" - -msgid "No" -msgstr "否" - -msgid "Unknown" -msgstr "未知" - -msgid "Any date" -msgstr "任意日期" - -msgid "Today" -msgstr "今天" - -msgid "Past 7 days" -msgstr "过去7天" - -msgid "This month" -msgstr "本月" - -msgid "This year" -msgstr "今年" - -msgid "No date" -msgstr "没有日期" - -msgid "Has date" -msgstr "具有日期" - -msgid "Empty" -msgstr "空" - -msgid "Not empty" -msgstr "非空" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "请输入一个正确的 %(username)s 和密码. 注意他们都是区分大小写的." - -msgid "Action:" -msgstr "动作" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "添加另一个 %(verbose_name)s" - -msgid "Remove" -msgstr "删除" - -msgid "Addition" -msgstr "添加" - -msgid "Change" -msgstr "修改" - -msgid "Deletion" -msgstr "删除" - -msgid "action time" -msgstr "操作时间" - -msgid "user" -msgstr "用户" - -msgid "content type" -msgstr "内容类型" - -msgid "object id" -msgstr "对象id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/library/functions.html#repr) -msgid "object repr" -msgstr "对象表示" - -msgid "action flag" -msgstr "动作标志" - -msgid "change message" -msgstr "修改消息" - -msgid "log entry" -msgstr "日志记录" - -msgid "log entries" -msgstr "日志记录" - -#, python-format -msgid "Added “%(object)s”." -msgstr "添加了“%(object)s”。" - -#, python-format -msgid "Changed “%(object)s” — %(changes)s" -msgstr "修改了“%(object)s”—%(changes)s" - -#, python-format -msgid "Deleted “%(object)s.”" -msgstr "删除了“%(object)s”。" - -msgid "LogEntry Object" -msgstr "LogEntry对象" - -#, python-brace-format -msgid "Added {name} “{object}”." -msgstr "添加了 {name}“{object}”。" - -msgid "Added." -msgstr "已添加。" - -msgid "and" -msgstr "和" - -#, python-brace-format -msgid "Changed {fields} for {name} “{object}”." -msgstr "修改了 {name}“{object}”的 {fields}。" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "已修改{fields}。" - -#, python-brace-format -msgid "Deleted {name} “{object}”." -msgstr "删除了 {name}“{object}”。" - -msgid "No fields changed." -msgstr "没有字段被修改。" - -msgid "None" -msgstr "无" - -msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." -msgstr "按住 Control 键或 Mac 上的 Command 键来选择多项。" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully." -msgstr "成功添加了 {name}“{obj}”。" - -msgid "You may edit it again below." -msgstr "您可以在下面再次编辑它." - -#, python-brace-format -msgid "" -"The {name} “{obj}” was added successfully. You may add another {name} below." -msgstr "成功添加了 {name}“{obj}”。你可以在下面添加另一个 {name}。" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may edit it again below." -msgstr "成功修改了 {name}“{obj}”。你可以在下面再次编辑它。" - -#, python-brace-format -msgid "The {name} “{obj}” was added successfully. You may edit it again below." -msgstr "成功添加了 {name}“{obj}”。你可以在下面再次编辑它。" - -#, python-brace-format -msgid "" -"The {name} “{obj}” was changed successfully. You may add another {name} " -"below." -msgstr "成功修改了 {name}“{obj}”。你可以在下面添加另一个 {name}。" - -#, python-brace-format -msgid "The {name} “{obj}” was changed successfully." -msgstr "成功修改了 {name}“{obj}”。" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "条目必须选中以对其进行操作。没有任何条目被更改。" - -msgid "No action selected." -msgstr "未选择动作" - -#, python-format -msgid "The %(name)s “%(obj)s” was deleted successfully." -msgstr "成功删除了 %(name)s“%(obj)s”。" - -#, python-format -msgid "%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?" -msgstr "ID 为“%(key)s”的 %(name)s 不存在。可能已经被删除了?" - -#, python-format -msgid "Add %s" -msgstr "增加 %s" - -#, python-format -msgid "Change %s" -msgstr "修改 %s" - -#, python-format -msgid "View %s" -msgstr "查看 %s" - -msgid "Database error" -msgstr "数据库错误" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "总共 %(count)s 个 %(name)s 变更成功。" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "选中了 %(total_count)s 个" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s 个中 0 个被选" - -#, python-format -msgid "Change history: %s" -msgstr "变更历史: %s" - -#. Translators: Model verbose name and instance -#. representation, suitable to be an item in a -#. list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"删除 %(class_name)s %(instance)s 将需要删除以下受保护的相关对象: " -"%(related_objects)s" - -msgid "Django site admin" -msgstr "Django 站点管理员" - -msgid "Django administration" -msgstr "Django 管理" - -msgid "Site administration" -msgstr "站点管理" - -msgid "Log in" -msgstr "登录" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s 管理" - -msgid "Page not found" -msgstr "页面没有找到" - -msgid "We’re sorry, but the requested page could not be found." -msgstr "非常抱歉,请求的页面不存在。" - -msgid "Home" -msgstr "首页" - -msgid "Server error" -msgstr "服务器错误" - -msgid "Server error (500)" -msgstr "服务器错误(500)" - -msgid "Server Error (500)" -msgstr "服务器错误 (500)" - -msgid "" -"There’s been an error. It’s been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"发生了错误,已经通过电子邮件报告给了网站管理员。我们会尽快修复,感谢您的耐心" -"等待。" - -msgid "Run the selected action" -msgstr "运行选中的动作" - -msgid "Go" -msgstr "执行" - -msgid "Click here to select the objects across all pages" -msgstr "点击此处选择所有页面中包含的对象。" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "选中所有的 %(total_count)s 个 %(module_name)s" - -msgid "Clear selection" -msgstr "清除选中" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "在应用程序 %(name)s 中的模型" - -msgid "Add" -msgstr "增加" - -msgid "View" -msgstr "查看" - -msgid "You don’t have permission to view or edit anything." -msgstr "你没有查看或编辑的权限。" - -msgid "" -"First, enter a username and password. Then, you’ll be able to edit more user " -"options." -msgstr "输入用户名和密码后,你将能够编辑更多的用户选项。" - -msgid "Enter a username and password." -msgstr "输入用户名和密码" - -msgid "Change password" -msgstr "修改密码" - -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "请更正以下错误。" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "为用户 %(username)s 输入一个新的密码。" - -msgid "Skip to main content" -msgstr "跳到主要内容" - -msgid "Welcome," -msgstr "欢迎," - -msgid "View site" -msgstr "查看站点" - -msgid "Documentation" -msgstr "文档" - -msgid "Log out" -msgstr "注销" - -msgid "Breadcrumbs" -msgstr "面包屑" - -#, python-format -msgid "Add %(name)s" -msgstr "增加 %(name)s" - -msgid "History" -msgstr "历史" - -msgid "View on site" -msgstr "在站点上查看" - -msgid "Filter" -msgstr "过滤器" - -msgid "Clear all filters" -msgstr "清除所有过滤器" - -msgid "Remove from sorting" -msgstr "删除排序" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "排序优先级: %(priority_number)s" - -msgid "Toggle sorting" -msgstr "正逆序切换" - -msgid "Toggle theme (current theme: auto)" -msgstr "切换主题(当前主题:自动)" - -msgid "Toggle theme (current theme: light)" -msgstr "切换主题(当前主题:浅色)" - -msgid "Toggle theme (current theme: dark)" -msgstr "切换主题(当前主题:深色)" - -msgid "Delete" -msgstr "删除" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"删除 %(object_name)s '%(escaped_object)s' 会导致删除相关的对象,但你的帐号无" -"权删除下列类型的对象:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"要删除 %(object_name)s '%(escaped_object)s', 将要求删除以下受保护的相关对象:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"你确认想要删除 %(object_name)s \"%(escaped_object)s\"? 下列所有相关的项目都" -"将被删除:" - -msgid "Objects" -msgstr "对象" - -msgid "Yes, I’m sure" -msgstr "是的,我确定" - -msgid "No, take me back" -msgstr "不,返回" - -msgid "Delete multiple objects" -msgstr "删除多个对象" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"要删除所选的 %(objects_name)s 结果会删除相关对象, 但你的账户没有权限删除这类" -"对象:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "要删除所选的 %(objects_name)s, 将要求删除以下受保护的相关对象:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"请确认要删除选中的 %(objects_name)s 吗?以下所有对象和余它们相关的条目将都会" -"被删除:" - -msgid "Delete?" -msgstr "删除?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " 以 %(filter_title)s" - -msgid "Summary" -msgstr "概览" - -msgid "Recent actions" -msgstr "最近动作" - -msgid "My actions" -msgstr "我的动作" - -msgid "None available" -msgstr "无可用的" - -msgid "Unknown content" -msgstr "未知内容" - -msgid "" -"Something’s wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"数据库设置有误。请检查所需的数据库表格是否已经创建,以及数据库用户是否具有正" -"确的权限。" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"您当前以%(username)s登录,但是没有这个页面的访问权限。您想使用另外一个账号登" -"录吗?" - -msgid "Forgotten your password or username?" -msgstr "忘记了您的密码或用户名?" - -msgid "Toggle navigation" -msgstr "切换导航" - -msgid "Sidebar" -msgstr "侧边栏" - -msgid "Start typing to filter…" -msgstr "开始输入以筛选..." - -msgid "Filter navigation items" -msgstr "筛选导航项目" - -msgid "Date/time" -msgstr "日期/时间" - -msgid "User" -msgstr "用户" - -msgid "Action" -msgstr "动作" - -msgid "entry" -msgid_plural "entries" -msgstr[0] "条目" - -msgid "" -"This object doesn’t have a change history. It probably wasn’t added via this " -"admin site." -msgstr "此对象没有修改历史。它可能不是通过管理站点添加的。" - -msgid "Show all" -msgstr "显示全部" - -msgid "Save" -msgstr "保存" - -msgid "Popup closing…" -msgstr "弹窗关闭中..." - -msgid "Search" -msgstr "搜索" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s 条结果。" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "总共 %(full_result_count)s" - -msgid "Save as new" -msgstr "保存为新的" - -msgid "Save and add another" -msgstr "保存并增加另一个" - -msgid "Save and continue editing" -msgstr "保存并继续编辑" - -msgid "Save and view" -msgstr "保存并查看" - -msgid "Close" -msgstr "关闭" - -#, python-format -msgid "Change selected %(model)s" -msgstr "更改选中的%(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "增加另一个 %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "取消选中 %(model)s" - -#, python-format -msgid "View selected %(model)s" -msgstr "查看已选择的%(model)s" - -msgid "Thanks for spending some quality time with the web site today." -msgstr "感谢您今天与本网站共度一段高品质时光。" - -msgid "Log in again" -msgstr "重新登录" - -msgid "Password change" -msgstr "密码修改" - -msgid "Your password was changed." -msgstr "你的密码已修改。" - -msgid "" -"Please enter your old password, for security’s sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "安全起见请输入你的旧密码。然后输入两次你的新密码以确保输入正确。" - -msgid "Change my password" -msgstr "修改我的密码" - -msgid "Password reset" -msgstr "密码重设" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "你的密码己经设置完成,现在你可以继续进行登录。" - -msgid "Password reset confirmation" -msgstr "密码重设确认" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "请输入两遍新密码,以便我们校验你输入的是否正确。" - -msgid "New password:" -msgstr "新密码:" - -msgid "Confirm password:" -msgstr "确认密码:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "密码重置链接无效,可能是因为它已使用。可以请求一次新的密码重置。" - -msgid "" -"We’ve emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"如果你所输入的电子邮箱存在对应的用户,我们将通过电子邮件向你发送设置密码的操" -"作步骤说明。你应该很快就会收到。" - -msgid "" -"If you don’t receive an email, please make sure you’ve entered the address " -"you registered with, and check your spam folder." -msgstr "" -"如果你没有收到电子邮件,请检查输入的是你注册的电子邮箱地址。另外,也请检查你" -"的垃圾邮件文件夹。" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "你收到这封邮件是因为你请求重置你在网站 %(site_name)s上的用户账户密码。" - -msgid "Please go to the following page and choose a new password:" -msgstr "请访问该页面并选择一个新密码:" - -msgid "Your username, in case you’ve forgotten:" -msgstr "提醒一下,你的用户名是:" - -msgid "Thanks for using our site!" -msgstr "感谢使用我们的站点!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s 团队" - -msgid "" -"Forgotten your password? Enter your email address below, and we’ll email " -"instructions for setting a new one." -msgstr "" -"忘记密码?在下面输入你的电子邮箱地址,我们将会把设置新密码的操作步骤说明通过" -"电子邮件发送给你。" - -msgid "Email address:" -msgstr "电子邮件地址:" - -msgid "Reset my password" -msgstr "重设我的密码" - -msgid "All dates" -msgstr "所有日期" - -#, python-format -msgid "Select %s" -msgstr "选择 %s" - -#, python-format -msgid "Select %s to change" -msgstr "选择 %s 来修改" - -#, python-format -msgid "Select %s to view" -msgstr "选择%s查看" - -msgid "Date:" -msgstr "日期:" - -msgid "Time:" -msgstr "时间:" - -msgid "Lookup" -msgstr "查询" - -msgid "Currently:" -msgstr "当前:" - -msgid "Change:" -msgstr "更改:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 5e6d29a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po deleted file mode 100644 index 42bd5f7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,281 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# HuanCheng Bai白宦成(Bestony) , 2018 -# Fan Xu , 2022 -# Jannis Leidel , 2011 -# Kewei Ma , 2016 -# Lele Long , 2011,2015 -# Liping Wang , 2016 -# matthew Yip , 2020 -# mozillazg , 2016 -# slene , 2011 -# Veoco , 2021 -# spaceoi , 2016 -# ced773123cfad7b4e8b79ca80f736af9, 2012 -# Kevin Sze , 2012 -# 高乐喆 , 2023 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-17 03:19-0500\n" -"PO-Revision-Date: 2023-04-25 07:59+0000\n" -"Last-Translator: 高乐喆 , 2023\n" -"Language-Team: Chinese (China) (http://www.transifex.com/django/django/" -"language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "可用 %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"这是可用的%s列表。你可以在选择框下面进行选择,然后点击两选框之间的“选择”箭" -"头。" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "在此框中键入以过滤可用的%s列表" - -msgid "Filter" -msgstr "过滤" - -msgid "Choose all" -msgstr "全选" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "点击选择全部%s。" - -msgid "Choose" -msgstr "选择" - -msgid "Remove" -msgstr "删除" - -#, javascript-format -msgid "Chosen %s" -msgstr "选中的 %s" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"这是选中的 %s 的列表。你可以在选择框下面进行选择,然后点击两选框之间的“删" -"除”箭头进行删除。" - -#, javascript-format -msgid "Type into this box to filter down the list of selected %s." -msgstr "在该框中键入以过滤所选%s的列表。" - -msgid "Remove all" -msgstr "删除全部" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "删除所有已选择的%s。" - -#, javascript-format -msgid "%s selected option not visible" -msgid_plural "%s selected options not visible" -msgstr[0] "" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "选中了 %(cnt)s 个中的 %(sel)s 个" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "" -"你尚未保存一个可编辑栏位的变更. 如果你进行别的动作, 未保存的变更将会丢失." - -msgid "" -"You have selected an action, but you haven’t saved your changes to " -"individual fields yet. Please click OK to save. You’ll need to re-run the " -"action." -msgstr "" -"你已经选择一个动作,但是你没有保存你单独修改的地方。请点击OK保存。你需要再重" -"新跑这个动作。" - -msgid "" -"You have selected an action, and you haven’t made any changes on individual " -"fields. You’re probably looking for the Go button rather than the Save " -"button." -msgstr "" -"你已经选择一个动作,但是没有单独修改任何一处。你可以选择'Go'按键而不" -"是'Save'按键。" - -msgid "Now" -msgstr "现在" - -msgid "Midnight" -msgstr "午夜" - -msgid "6 a.m." -msgstr "上午6点" - -msgid "Noon" -msgstr "正午" - -msgid "6 p.m." -msgstr "下午6点" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "注意:你比服务器时间超前 %s 个小时。" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "注意:你比服务器时间滞后 %s 个小时。" - -msgid "Choose a Time" -msgstr "选择一个时间" - -msgid "Choose a time" -msgstr "选择一个时间" - -msgid "Cancel" -msgstr "取消" - -msgid "Today" -msgstr "今天" - -msgid "Choose a Date" -msgstr "选择一个日期" - -msgid "Yesterday" -msgstr "昨天" - -msgid "Tomorrow" -msgstr "明天" - -msgid "January" -msgstr "一月" - -msgid "February" -msgstr "二月" - -msgid "March" -msgstr "三月" - -msgid "April" -msgstr "四月" - -msgid "May" -msgstr "五月" - -msgid "June" -msgstr "六月" - -msgid "July" -msgstr "七月" - -msgid "August" -msgstr "八月" - -msgid "September" -msgstr "九月" - -msgid "October" -msgstr "十月" - -msgid "November" -msgstr "十一月" - -msgid "December" -msgstr "十二月" - -msgctxt "abbrev. month January" -msgid "Jan" -msgstr "一月" - -msgctxt "abbrev. month February" -msgid "Feb" -msgstr "二月" - -msgctxt "abbrev. month March" -msgid "Mar" -msgstr "三月" - -msgctxt "abbrev. month April" -msgid "Apr" -msgstr "四月" - -msgctxt "abbrev. month May" -msgid "May" -msgstr "五月" - -msgctxt "abbrev. month June" -msgid "Jun" -msgstr "六月" - -msgctxt "abbrev. month July" -msgid "Jul" -msgstr "七月" - -msgctxt "abbrev. month August" -msgid "Aug" -msgstr "八月" - -msgctxt "abbrev. month September" -msgid "Sep" -msgstr "九月" - -msgctxt "abbrev. month October" -msgid "Oct" -msgstr "十月" - -msgctxt "abbrev. month November" -msgid "Nov" -msgstr "十一月" - -msgctxt "abbrev. month December" -msgid "Dec" -msgstr "十二月" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "S" - -msgctxt "one letter Monday" -msgid "M" -msgstr "M" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "T" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "W" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "T" - -msgctxt "one letter Friday" -msgid "F" -msgstr "F" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "S" - -msgid "Show" -msgstr "显示" - -msgid "Hide" -msgstr "隐藏" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo deleted file mode 100644 index a96ef9a..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.po deleted file mode 100644 index a2a1d9a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.po +++ /dev/null @@ -1,660 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Chen Chun-Chia , 2015 -# ilay , 2012 -# Jannis Leidel , 2011 -# mail6543210 , 2013-2014 -# ming hsien tzang , 2011 -# tcc , 2011 -# Tzu-ping Chung , 2016-2017 -# Yeh-Yung , 2013 -# Yeh-Yung , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-19 16:49+0100\n" -"PO-Revision-Date: 2017-09-19 16:40+0000\n" -"Last-Translator: Tzu-ping Chung \n" -"Language-Team: Chinese (Taiwan) (http://www.transifex.com/django/django/" -"language/zh_TW/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_TW\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, python-format -msgid "Successfully deleted %(count)d %(items)s." -msgstr "成功的刪除了 %(count)d 個 %(items)s." - -#, python-format -msgid "Cannot delete %(name)s" -msgstr "無法刪除 %(name)s" - -msgid "Are you sure?" -msgstr "你確定嗎?" - -#, python-format -msgid "Delete selected %(verbose_name_plural)s" -msgstr "刪除所選的 %(verbose_name_plural)s" - -msgid "Administration" -msgstr "管理" - -msgid "All" -msgstr "全部" - -msgid "Yes" -msgstr "是" - -msgid "No" -msgstr "否" - -msgid "Unknown" -msgstr "未知" - -msgid "Any date" -msgstr "任何日期" - -msgid "Today" -msgstr "今天" - -msgid "Past 7 days" -msgstr "過去 7 天" - -msgid "This month" -msgstr "本月" - -msgid "This year" -msgstr "今年" - -msgid "No date" -msgstr "沒有日期" - -msgid "Has date" -msgstr "有日期" - -#, python-format -msgid "" -"Please enter the correct %(username)s and password for a staff account. Note " -"that both fields may be case-sensitive." -msgstr "請輸入正確的工作人員%(username)s及密碼。請注意兩者皆區分大小寫。" - -msgid "Action:" -msgstr "動作:" - -#, python-format -msgid "Add another %(verbose_name)s" -msgstr "新增其它 %(verbose_name)s" - -msgid "Remove" -msgstr "移除" - -msgid "action time" -msgstr "動作時間" - -msgid "user" -msgstr "使用者" - -msgid "content type" -msgstr "內容類型" - -msgid "object id" -msgstr "物件 id" - -#. Translators: 'repr' means representation -#. (https://docs.python.org/3/library/functions.html#repr) -msgid "object repr" -msgstr "物件 repr" - -msgid "action flag" -msgstr "動作旗標" - -msgid "change message" -msgstr "變更訊息" - -msgid "log entry" -msgstr "紀錄項目" - -msgid "log entries" -msgstr "紀錄項目" - -#, python-format -msgid "Added \"%(object)s\"." -msgstr "\"%(object)s\" 已新增。" - -#, python-format -msgid "Changed \"%(object)s\" - %(changes)s" -msgstr "\"%(object)s\" - %(changes)s 已變更。" - -#, python-format -msgid "Deleted \"%(object)s.\"" -msgstr "\"%(object)s\" 已刪除。" - -msgid "LogEntry Object" -msgstr "紀錄項目" - -#, python-brace-format -msgid "Added {name} \"{object}\"." -msgstr "{name} \"{object}\" 已新增。" - -msgid "Added." -msgstr "已新增。" - -msgid "and" -msgstr "和" - -#, python-brace-format -msgid "Changed {fields} for {name} \"{object}\"." -msgstr "{name} \"{object}\" 的 {fields} 已變更。" - -#, python-brace-format -msgid "Changed {fields}." -msgstr "{fields} 已變更。" - -#, python-brace-format -msgid "Deleted {name} \"{object}\"." -msgstr "{name} \"{object}\" 已刪除。" - -msgid "No fields changed." -msgstr "沒有欄位被變更。" - -msgid "None" -msgstr "無" - -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "按住 \"Control\" 或 \"Command\" (Mac),可選取多個值" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may edit it again below." -msgstr "{name} \"{obj}\" 新增成功。你可以在下面再次編輯它。" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was added successfully. You may add another {name} " -"below." -msgstr "{name} \"{obj}\" 新增成功。你可以在下方加入其他 {name}。" - -#, python-brace-format -msgid "The {name} \"{obj}\" was added successfully." -msgstr "{name} \"{obj}\" 已成功新增。" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may edit it again below." -msgstr "{name} \"{obj}\" 變更成功。你可以在下方再次編輯。" - -#, python-brace-format -msgid "" -"The {name} \"{obj}\" was changed successfully. You may add another {name} " -"below." -msgstr "{name} \"{obj}\" 變更成功。你可以在下方加入其他 {name}。" - -#, python-brace-format -msgid "The {name} \"{obj}\" was changed successfully." -msgstr "{name} \"{obj}\" 已成功變更。" - -msgid "" -"Items must be selected in order to perform actions on them. No items have " -"been changed." -msgstr "必須要有項目被選到才能對它們進行動作。沒有項目變更。" - -msgid "No action selected." -msgstr "沒有動作被選。" - -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" 已成功刪除。" - -#, python-format -msgid "%(name)s with ID \"%(key)s\" doesn't exist. Perhaps it was deleted?" -msgstr "不存在 ID 為「%(key)s」的 %(name)s。或許它已被刪除?" - -#, python-format -msgid "Add %s" -msgstr "新增 %s" - -#, python-format -msgid "Change %s" -msgstr "變更 %s" - -msgid "Database error" -msgstr "資料庫錯誤" - -#, python-format -msgid "%(count)s %(name)s was changed successfully." -msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "共 %(count)s %(name)s 已變更成功。" - -#, python-format -msgid "%(total_count)s selected" -msgid_plural "All %(total_count)s selected" -msgstr[0] "全部 %(total_count)s 個被選" - -#, python-format -msgid "0 of %(cnt)s selected" -msgstr "%(cnt)s 中 0 個被選" - -#, python-format -msgid "Change history: %s" -msgstr "變更歷史: %s" - -#. Translators: Model verbose name and instance representation, -#. suitable to be an item in a list. -#, python-format -msgid "%(class_name)s %(instance)s" -msgstr "%(class_name)s %(instance)s" - -#, python-format -msgid "" -"Deleting %(class_name)s %(instance)s would require deleting the following " -"protected related objects: %(related_objects)s" -msgstr "" -"刪除 %(class_name)s %(instance)s 將會同時刪除下面受保護的相關物件:" -"%(related_objects)s" - -msgid "Django site admin" -msgstr "Django 網站管理" - -msgid "Django administration" -msgstr "Django 管理" - -msgid "Site administration" -msgstr "網站管理" - -msgid "Log in" -msgstr "登入" - -#, python-format -msgid "%(app)s administration" -msgstr "%(app)s 管理" - -msgid "Page not found" -msgstr "頁面沒有找到" - -msgid "We're sorry, but the requested page could not be found." -msgstr "很抱歉,請求頁面無法找到。" - -msgid "Home" -msgstr "首頁" - -msgid "Server error" -msgstr "伺服器錯誤" - -msgid "Server error (500)" -msgstr "伺服器錯誤 (500)" - -msgid "Server Error (500)" -msgstr "伺服器錯誤 (500)" - -msgid "" -"There's been an error. It's been reported to the site administrators via " -"email and should be fixed shortly. Thanks for your patience." -msgstr "" -"存在一個錯誤。已透過電子郵件回報給網站管理員,並且應該很快就會被修正。謝謝你" -"的關心。" - -msgid "Run the selected action" -msgstr "執行選擇的動作" - -msgid "Go" -msgstr "去" - -msgid "Click here to select the objects across all pages" -msgstr "點選這裡可選取全部頁面的物件" - -#, python-format -msgid "Select all %(total_count)s %(module_name)s" -msgstr "選擇全部 %(total_count)s %(module_name)s" - -msgid "Clear selection" -msgstr "清除選擇" - -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "首先,輸入一個使用者名稱和密碼。然後你可以編輯更多使用者選項。" - -msgid "Enter a username and password." -msgstr "輸入一個使用者名稱和密碼。" - -msgid "Change password" -msgstr "變更密碼" - -msgid "Please correct the error below." -msgstr "請更正下面的錯誤。" - -msgid "Please correct the errors below." -msgstr "請修正以下錯誤" - -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "為使用者%(username)s輸入一個新的密碼。" - -msgid "Welcome," -msgstr "歡迎," - -msgid "View site" -msgstr "檢視網站" - -msgid "Documentation" -msgstr "文件" - -msgid "Log out" -msgstr "登出" - -#, python-format -msgid "Add %(name)s" -msgstr "新增 %(name)s" - -msgid "History" -msgstr "歷史" - -msgid "View on site" -msgstr "在網站上檢視" - -msgid "Filter" -msgstr "過濾器" - -msgid "Remove from sorting" -msgstr "從排序中移除" - -#, python-format -msgid "Sorting priority: %(priority_number)s" -msgstr "優先排序:%(priority_number)s" - -msgid "Toggle sorting" -msgstr "切換排序" - -msgid "Delete" -msgstr "刪除" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"刪除 %(object_name)s '%(escaped_object)s' 會把相關的物件也刪除,不過你的帳號" -"並沒有刪除以下型態物件的權限:" - -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " -"following protected related objects:" -msgstr "" -"要刪除 %(object_name)s '%(escaped_object)s', 將要求刪除下面受保護的相關物件:" - -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"你確定想要刪除 %(object_name)s \"%(escaped_object)s\"?以下所有的相關項目都會" -"被刪除:" - -msgid "Objects" -msgstr "物件" - -msgid "Yes, I'm sure" -msgstr "是的,我確定" - -msgid "No, take me back" -msgstr "不,請帶我回去" - -msgid "Delete multiple objects" -msgstr "刪除多個物件" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would result in deleting related " -"objects, but your account doesn't have permission to delete the following " -"types of objects:" -msgstr "" -"要刪除所選的 %(objects_name)s, 結果會刪除相關物件, 但你的帳號無權刪除下面物件" -"型態:" - -#, python-format -msgid "" -"Deleting the selected %(objects_name)s would require deleting the following " -"protected related objects:" -msgstr "要刪除所選的 %(objects_name)s, 將要求刪除下面受保護的相關物件:" - -#, python-format -msgid "" -"Are you sure you want to delete the selected %(objects_name)s? All of the " -"following objects and their related items will be deleted:" -msgstr "" -"你是否確定要刪除已選的 %(objects_name)s? 下面全部物件及其相關項目都將被刪除:" - -msgid "Change" -msgstr "變更" - -msgid "Delete?" -msgstr "刪除?" - -#, python-format -msgid " By %(filter_title)s " -msgstr " 以 %(filter_title)s" - -msgid "Summary" -msgstr "總結" - -#, python-format -msgid "Models in the %(name)s application" -msgstr "%(name)s 應用程式中的Model" - -msgid "Add" -msgstr "新增" - -msgid "You don't have permission to edit anything." -msgstr "你沒有編輯任何東西的權限。" - -msgid "Recent actions" -msgstr "最近的動作" - -msgid "My actions" -msgstr "我的動作" - -msgid "None available" -msgstr "無可用的" - -msgid "Unknown content" -msgstr "未知內容" - -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"你的資料庫安裝有錯誤。確定資料庫表格已經建立,並確定資料庫可被合適的使用者讀" -"取。" - -#, python-format -msgid "" -"You are authenticated as %(username)s, but are not authorized to access this " -"page. Would you like to login to a different account?" -msgstr "" -"您已認證為 %(username)s,但並沒有瀏覽此頁面的權限。您是否希望以其他帳號登入?" - -msgid "Forgotten your password or username?" -msgstr "忘了你的密碼或是使用者名稱?" - -msgid "Date/time" -msgstr "日期/時間" - -msgid "User" -msgstr "使用者" - -msgid "Action" -msgstr "動作" - -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "這個物件沒有變更的歷史。它可能不是透過這個管理網站新增的。" - -msgid "Show all" -msgstr "顯示全部" - -msgid "Save" -msgstr "儲存" - -msgid "Popup closing..." -msgstr "關閉彈出視窗中⋯⋯" - -#, python-format -msgid "Change selected %(model)s" -msgstr "變更所選的 %(model)s" - -#, python-format -msgid "Add another %(model)s" -msgstr "新增其它 %(model)s" - -#, python-format -msgid "Delete selected %(model)s" -msgstr "刪除所選的 %(model)s" - -msgid "Search" -msgstr "搜尋" - -#, python-format -msgid "%(counter)s result" -msgid_plural "%(counter)s results" -msgstr[0] "%(counter)s 結果" - -#, python-format -msgid "%(full_result_count)s total" -msgstr "總共 %(full_result_count)s" - -msgid "Save as new" -msgstr "儲存為新的" - -msgid "Save and add another" -msgstr "儲存並新增另一個" - -msgid "Save and continue editing" -msgstr "儲存並繼續編輯" - -msgid "Thanks for spending some quality time with the Web site today." -msgstr "感謝你今天花了重要的時間停留在本網站。" - -msgid "Log in again" -msgstr "重新登入" - -msgid "Password change" -msgstr "密碼變更" - -msgid "Your password was changed." -msgstr "你的密碼已變更。" - -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"為了安全上的考量,請輸入你的舊密碼,再輸入新密碼兩次,讓我們核驗你已正確地輸" -"入。" - -msgid "Change my password" -msgstr "變更我的密碼" - -msgid "Password reset" -msgstr "密碼重設" - -msgid "Your password has been set. You may go ahead and log in now." -msgstr "你的密碼已設置,現在可以繼續登入。" - -msgid "Password reset confirmation" -msgstr "密碼重設確認" - -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "請輸入你的新密碼兩次, 這樣我們才能檢查你的輸入是否正確。" - -msgid "New password:" -msgstr "新密碼:" - -msgid "Confirm password:" -msgstr "確認密碼:" - -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "密碼重設連結無效,可能因為他已使用。請重新請求密碼重設。" - -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"若您提交的電子郵件地址存在對應帳號,我們已寄出重設密碼的相關指示。您應該很快" -"就會收到。" - -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"如果您未收到電子郵件,請確認您輸入的電子郵件地址與您註冊時輸入的一致,並檢查" -"您的垃圾郵件匣。" - -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "這封電子郵件來自 %(site_name)s,因為你要求為帳號重新設定密碼。" - -msgid "Please go to the following page and choose a new password:" -msgstr "請到該頁面選擇一個新的密碼:" - -msgid "Your username, in case you've forgotten:" -msgstr "你的使用者名稱,萬一你已經忘記的話:" - -msgid "Thanks for using our site!" -msgstr "感謝使用本網站!" - -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s 團隊" - -msgid "" -"Forgotten your password? Enter your email address below, and we'll email " -"instructions for setting a new one." -msgstr "" -"忘記你的密碼? 請在下面輸入你的電子郵件位址, 然後我們會寄出設定新密碼的操作指" -"示。" - -msgid "Email address:" -msgstr "電子信箱:" - -msgid "Reset my password" -msgstr "重設我的密碼" - -msgid "All dates" -msgstr "所有日期" - -#, python-format -msgid "Select %s" -msgstr "選擇 %s" - -#, python-format -msgid "Select %s to change" -msgstr "選擇 %s 來變更" - -msgid "Date:" -msgstr "日期" - -msgid "Time:" -msgstr "時間" - -msgid "Lookup" -msgstr "查詢" - -msgid "Currently:" -msgstr "目前:" - -msgid "Change:" -msgstr "變動:" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo deleted file mode 100644 index 9368f69..0000000 Binary files a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo and /dev/null differ diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po deleted file mode 100644 index 48739ec..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,213 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# ilay , 2012 -# mail6543210 , 2013 -# tcc , 2011 -# Tzu-ping Chung , 2016 -# Yeh-Yung , 2012 -msgid "" -msgstr "" -"Project-Id-Version: django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-17 23:12+0200\n" -"PO-Revision-Date: 2017-09-19 16:41+0000\n" -"Last-Translator: Tzu-ping Chung \n" -"Language-Team: Chinese (Taiwan) (http://www.transifex.com/django/django/" -"language/zh_TW/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_TW\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#, javascript-format -msgid "Available %s" -msgstr "可用 %s" - -#, javascript-format -msgid "" -"This is the list of available %s. You may choose some by selecting them in " -"the box below and then clicking the \"Choose\" arrow between the two boxes." -msgstr "" -"可用的 %s 列表。你可以在下方的方框內選擇後,點擊兩個方框中的\"選取\"箭頭以選" -"取。" - -#, javascript-format -msgid "Type into this box to filter down the list of available %s." -msgstr "輸入到這個方框以過濾可用的 %s 列表。" - -msgid "Filter" -msgstr "過濾器" - -msgid "Choose all" -msgstr "全選" - -#, javascript-format -msgid "Click to choose all %s at once." -msgstr "點擊以一次選取所有的 %s" - -msgid "Choose" -msgstr "選取" - -msgid "Remove" -msgstr "移除" - -#, javascript-format -msgid "Chosen %s" -msgstr "%s 被選" - -#, javascript-format -msgid "" -"This is the list of chosen %s. You may remove some by selecting them in the " -"box below and then clicking the \"Remove\" arrow between the two boxes." -msgstr "" -"選取的 %s 列表。你可以在下方的方框內選擇後,點擊兩個方框中的\"移除\"箭頭以移" -"除。" - -msgid "Remove all" -msgstr "全部移除" - -#, javascript-format -msgid "Click to remove all chosen %s at once." -msgstr "點擊以一次移除所有選取的 %s" - -msgid "%(sel)s of %(cnt)s selected" -msgid_plural "%(sel)s of %(cnt)s selected" -msgstr[0] "%(cnt)s 中 %(sel)s 個被選" - -msgid "" -"You have unsaved changes on individual editable fields. If you run an " -"action, your unsaved changes will be lost." -msgstr "你尚未儲存一個可編輯欄位的變更。如果你執行動作, 未儲存的變更將會遺失。" - -msgid "" -"You have selected an action, but you haven't saved your changes to " -"individual fields yet. Please click OK to save. You'll need to re-run the " -"action." -msgstr "" -"你已選了一個動作, 但有一個可編輯欄位的變更尚未儲存。請點選 OK 進行儲存。你需" -"要重新執行該動作。" - -msgid "" -"You have selected an action, and you haven't made any changes on individual " -"fields. You're probably looking for the Go button rather than the Save " -"button." -msgstr "" -"你已選了一個動作, 但沒有任何改變。你可能動到 '去' 按鈕, 而不是 '儲存' 按鈕。" - -#, javascript-format -msgid "Note: You are %s hour ahead of server time." -msgid_plural "Note: You are %s hours ahead of server time." -msgstr[0] "備註:您的電腦時間比伺服器快 %s 小時。" - -#, javascript-format -msgid "Note: You are %s hour behind server time." -msgid_plural "Note: You are %s hours behind server time." -msgstr[0] "備註:您的電腦時間比伺服器慢 %s 小時。" - -msgid "Now" -msgstr "現在" - -msgid "Choose a Time" -msgstr "選擇一個時間" - -msgid "Choose a time" -msgstr "選擇一個時間" - -msgid "Midnight" -msgstr "午夜" - -msgid "6 a.m." -msgstr "上午 6 點" - -msgid "Noon" -msgstr "中午" - -msgid "6 p.m." -msgstr "下午 6 點" - -msgid "Cancel" -msgstr "取消" - -msgid "Today" -msgstr "今天" - -msgid "Choose a Date" -msgstr "選擇一個日期" - -msgid "Yesterday" -msgstr "昨天" - -msgid "Tomorrow" -msgstr "明天" - -msgid "January" -msgstr "一月" - -msgid "February" -msgstr "二月" - -msgid "March" -msgstr "三月" - -msgid "April" -msgstr "四月" - -msgid "May" -msgstr "五月" - -msgid "June" -msgstr "六月" - -msgid "July" -msgstr "七月" - -msgid "August" -msgstr "八月" - -msgid "September" -msgstr "九月" - -msgid "October" -msgstr "十月" - -msgid "November" -msgstr "十一月" - -msgid "December" -msgstr "十二月" - -msgctxt "one letter Sunday" -msgid "S" -msgstr "日" - -msgctxt "one letter Monday" -msgid "M" -msgstr "一" - -msgctxt "one letter Tuesday" -msgid "T" -msgstr "二" - -msgctxt "one letter Wednesday" -msgid "W" -msgstr "三" - -msgctxt "one letter Thursday" -msgid "T" -msgstr "四" - -msgctxt "one letter Friday" -msgid "F" -msgstr "五" - -msgctxt "one letter Saturday" -msgid "S" -msgstr "六" - -msgid "Show" -msgstr "顯示" - -msgid "Hide" -msgstr "隱藏" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0001_initial.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0001_initial.py deleted file mode 100644 index 6270e10..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0001_initial.py +++ /dev/null @@ -1,75 +0,0 @@ -import django.contrib.admin.models -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ("contenttypes", "__first__"), - ] - - operations = [ - migrations.CreateModel( - name="LogEntry", - fields=[ - ( - "id", - models.AutoField( - verbose_name="ID", - serialize=False, - auto_created=True, - primary_key=True, - ), - ), - ( - "action_time", - models.DateTimeField(auto_now=True, verbose_name="action time"), - ), - ( - "object_id", - models.TextField(null=True, verbose_name="object id", blank=True), - ), - ( - "object_repr", - models.CharField(max_length=200, verbose_name="object repr"), - ), - ( - "action_flag", - models.PositiveSmallIntegerField(verbose_name="action flag"), - ), - ( - "change_message", - models.TextField(verbose_name="change message", blank=True), - ), - ( - "content_type", - models.ForeignKey( - on_delete=models.SET_NULL, - blank=True, - null=True, - to="contenttypes.ContentType", - verbose_name="content type", - ), - ), - ( - "user", - models.ForeignKey( - to=settings.AUTH_USER_MODEL, - on_delete=models.CASCADE, - verbose_name="user", - ), - ), - ], - options={ - "ordering": ["-action_time"], - "db_table": "django_admin_log", - "verbose_name": "log entry", - "verbose_name_plural": "log entries", - }, - bases=(models.Model,), - managers=[ - ("objects", django.contrib.admin.models.LogEntryManager()), - ], - ), - ] diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py deleted file mode 100644 index 7fcf9c0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0002_logentry_remove_auto_add.py +++ /dev/null @@ -1,21 +0,0 @@ -from django.db import migrations, models -from django.utils import timezone - - -class Migration(migrations.Migration): - dependencies = [ - ("admin", "0001_initial"), - ] - - # No database changes; removes auto_add and adds default/editable. - operations = [ - migrations.AlterField( - model_name="logentry", - name="action_time", - field=models.DateTimeField( - verbose_name="action time", - default=timezone.now, - editable=False, - ), - ), - ] diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py deleted file mode 100644 index a73e55f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py +++ /dev/null @@ -1,19 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("admin", "0002_logentry_remove_auto_add"), - ] - - # No database changes; adds choices to action_flag. - operations = [ - migrations.AlterField( - model_name="logentry", - name="action_flag", - field=models.PositiveSmallIntegerField( - choices=[(1, "Addition"), (2, "Change"), (3, "Deletion")], - verbose_name="action flag", - ), - ), - ] diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/__init__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/models.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/models.py deleted file mode 100644 index 0219841..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/models.py +++ /dev/null @@ -1,190 +0,0 @@ -import json - -from django.conf import settings -from django.contrib.admin.utils import quote -from django.contrib.contenttypes.models import ContentType -from django.db import models -from django.urls import NoReverseMatch, reverse -from django.utils import timezone -from django.utils.text import get_text_list -from django.utils.translation import gettext -from django.utils.translation import gettext_lazy as _ - -ADDITION = 1 -CHANGE = 2 -DELETION = 3 - -ACTION_FLAG_CHOICES = [ - (ADDITION, _("Addition")), - (CHANGE, _("Change")), - (DELETION, _("Deletion")), -] - - -class LogEntryManager(models.Manager): - use_in_migrations = True - - def log_action( - self, - user_id, - content_type_id, - object_id, - object_repr, - action_flag, - change_message="", - ): - if isinstance(change_message, list): - change_message = json.dumps(change_message) - return self.model.objects.create( - user_id=user_id, - content_type_id=content_type_id, - object_id=str(object_id), - object_repr=object_repr[:200], - action_flag=action_flag, - change_message=change_message, - ) - - -class LogEntry(models.Model): - action_time = models.DateTimeField( - _("action time"), - default=timezone.now, - editable=False, - ) - user = models.ForeignKey( - settings.AUTH_USER_MODEL, - models.CASCADE, - verbose_name=_("user"), - ) - content_type = models.ForeignKey( - ContentType, - models.SET_NULL, - verbose_name=_("content type"), - blank=True, - null=True, - ) - object_id = models.TextField(_("object id"), blank=True, null=True) - # Translators: 'repr' means representation - # (https://docs.python.org/library/functions.html#repr) - object_repr = models.CharField(_("object repr"), max_length=200) - action_flag = models.PositiveSmallIntegerField( - _("action flag"), choices=ACTION_FLAG_CHOICES - ) - # change_message is either a string or a JSON structure - change_message = models.TextField(_("change message"), blank=True) - - objects = LogEntryManager() - - class Meta: - verbose_name = _("log entry") - verbose_name_plural = _("log entries") - db_table = "django_admin_log" - ordering = ["-action_time"] - - def __repr__(self): - return str(self.action_time) - - def __str__(self): - if self.is_addition(): - return gettext("Added “%(object)s”.") % {"object": self.object_repr} - elif self.is_change(): - return gettext("Changed “%(object)s” — %(changes)s") % { - "object": self.object_repr, - "changes": self.get_change_message(), - } - elif self.is_deletion(): - return gettext("Deleted “%(object)s.”") % {"object": self.object_repr} - - return gettext("LogEntry Object") - - def is_addition(self): - return self.action_flag == ADDITION - - def is_change(self): - return self.action_flag == CHANGE - - def is_deletion(self): - return self.action_flag == DELETION - - def get_change_message(self): - """ - If self.change_message is a JSON structure, interpret it as a change - string, properly translated. - """ - if self.change_message and self.change_message[0] == "[": - try: - change_message = json.loads(self.change_message) - except json.JSONDecodeError: - return self.change_message - messages = [] - for sub_message in change_message: - if "added" in sub_message: - if sub_message["added"]: - sub_message["added"]["name"] = gettext( - sub_message["added"]["name"] - ) - messages.append( - gettext("Added {name} “{object}”.").format( - **sub_message["added"] - ) - ) - else: - messages.append(gettext("Added.")) - - elif "changed" in sub_message: - sub_message["changed"]["fields"] = get_text_list( - [ - gettext(field_name) - for field_name in sub_message["changed"]["fields"] - ], - gettext("and"), - ) - if "name" in sub_message["changed"]: - sub_message["changed"]["name"] = gettext( - sub_message["changed"]["name"] - ) - messages.append( - gettext("Changed {fields} for {name} “{object}”.").format( - **sub_message["changed"] - ) - ) - else: - messages.append( - gettext("Changed {fields}.").format( - **sub_message["changed"] - ) - ) - - elif "deleted" in sub_message: - sub_message["deleted"]["name"] = gettext( - sub_message["deleted"]["name"] - ) - messages.append( - gettext("Deleted {name} “{object}”.").format( - **sub_message["deleted"] - ) - ) - - change_message = " ".join(msg[0].upper() + msg[1:] for msg in messages) - return change_message or gettext("No fields changed.") - else: - return self.change_message - - def get_edited_object(self): - """Return the edited object represented by this log entry.""" - return self.content_type.get_object_for_this_type(pk=self.object_id) - - def get_admin_url(self): - """ - Return the admin URL to edit the object represented by this log entry. - """ - if self.content_type and self.object_id: - url_name = "admin:%s_%s_change" % ( - self.content_type.app_label, - self.content_type.model, - ) - try: - return reverse(url_name, args=(quote(self.object_id),)) - except NoReverseMatch: - pass - return None diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/options.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/options.py deleted file mode 100644 index 1bbb302..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/options.py +++ /dev/null @@ -1,2501 +0,0 @@ -import copy -import json -import re -from functools import partial, update_wrapper -from urllib.parse import quote as urlquote - -from django import forms -from django.conf import settings -from django.contrib import messages -from django.contrib.admin import helpers, widgets -from django.contrib.admin.checks import ( - BaseModelAdminChecks, - InlineModelAdminChecks, - ModelAdminChecks, -) -from django.contrib.admin.decorators import display -from django.contrib.admin.exceptions import DisallowedModelAdminToField -from django.contrib.admin.templatetags.admin_urls import add_preserved_filters -from django.contrib.admin.utils import ( - NestedObjects, - construct_change_message, - flatten_fieldsets, - get_deleted_objects, - lookup_spawns_duplicates, - model_format_dict, - model_ngettext, - quote, - unquote, -) -from django.contrib.admin.widgets import AutocompleteSelect, AutocompleteSelectMultiple -from django.contrib.auth import get_permission_codename -from django.core.exceptions import ( - FieldDoesNotExist, - FieldError, - PermissionDenied, - ValidationError, -) -from django.core.paginator import Paginator -from django.db import models, router, transaction -from django.db.models.constants import LOOKUP_SEP -from django.forms.formsets import DELETION_FIELD_NAME, all_valid -from django.forms.models import ( - BaseInlineFormSet, - inlineformset_factory, - modelform_defines_fields, - modelform_factory, - modelformset_factory, -) -from django.forms.widgets import CheckboxSelectMultiple, SelectMultiple -from django.http import HttpResponseRedirect -from django.http.response import HttpResponseBase -from django.template.response import SimpleTemplateResponse, TemplateResponse -from django.urls import reverse -from django.utils.decorators import method_decorator -from django.utils.html import format_html -from django.utils.http import urlencode -from django.utils.safestring import mark_safe -from django.utils.text import ( - capfirst, - format_lazy, - get_text_list, - smart_split, - unescape_string_literal, -) -from django.utils.translation import gettext as _ -from django.utils.translation import ngettext -from django.views.decorators.csrf import csrf_protect -from django.views.generic import RedirectView - -IS_POPUP_VAR = "_popup" -TO_FIELD_VAR = "_to_field" - - -HORIZONTAL, VERTICAL = 1, 2 - - -def get_content_type_for_model(obj): - # Since this module gets imported in the application's root package, - # it cannot import models from other applications at the module level. - from django.contrib.contenttypes.models import ContentType - - return ContentType.objects.get_for_model(obj, for_concrete_model=False) - - -def get_ul_class(radio_style): - return "radiolist" if radio_style == VERTICAL else "radiolist inline" - - -class IncorrectLookupParameters(Exception): - pass - - -# Defaults for formfield_overrides. ModelAdmin subclasses can change this -# by adding to ModelAdmin.formfield_overrides. - -FORMFIELD_FOR_DBFIELD_DEFAULTS = { - models.DateTimeField: { - "form_class": forms.SplitDateTimeField, - "widget": widgets.AdminSplitDateTime, - }, - models.DateField: {"widget": widgets.AdminDateWidget}, - models.TimeField: {"widget": widgets.AdminTimeWidget}, - models.TextField: {"widget": widgets.AdminTextareaWidget}, - models.URLField: {"widget": widgets.AdminURLFieldWidget}, - models.IntegerField: {"widget": widgets.AdminIntegerFieldWidget}, - models.BigIntegerField: {"widget": widgets.AdminBigIntegerFieldWidget}, - models.CharField: {"widget": widgets.AdminTextInputWidget}, - models.ImageField: {"widget": widgets.AdminFileWidget}, - models.FileField: {"widget": widgets.AdminFileWidget}, - models.EmailField: {"widget": widgets.AdminEmailInputWidget}, - models.UUIDField: {"widget": widgets.AdminUUIDInputWidget}, -} - -csrf_protect_m = method_decorator(csrf_protect) - - -class BaseModelAdmin(metaclass=forms.MediaDefiningClass): - """Functionality common to both ModelAdmin and InlineAdmin.""" - - autocomplete_fields = () - raw_id_fields = () - fields = None - exclude = None - fieldsets = None - form = forms.ModelForm - filter_vertical = () - filter_horizontal = () - radio_fields = {} - prepopulated_fields = {} - formfield_overrides = {} - readonly_fields = () - ordering = None - sortable_by = None - view_on_site = True - show_full_result_count = True - checks_class = BaseModelAdminChecks - - def check(self, **kwargs): - return self.checks_class().check(self, **kwargs) - - def __init__(self): - # Merge FORMFIELD_FOR_DBFIELD_DEFAULTS with the formfield_overrides - # rather than simply overwriting. - overrides = copy.deepcopy(FORMFIELD_FOR_DBFIELD_DEFAULTS) - for k, v in self.formfield_overrides.items(): - overrides.setdefault(k, {}).update(v) - self.formfield_overrides = overrides - - def formfield_for_dbfield(self, db_field, request, **kwargs): - """ - Hook for specifying the form Field instance for a given database Field - instance. - - If kwargs are given, they're passed to the form Field's constructor. - """ - # If the field specifies choices, we don't need to look for special - # admin widgets - we just need to use a select widget of some kind. - if db_field.choices: - return self.formfield_for_choice_field(db_field, request, **kwargs) - - # ForeignKey or ManyToManyFields - if isinstance(db_field, (models.ForeignKey, models.ManyToManyField)): - # Combine the field kwargs with any options for formfield_overrides. - # Make sure the passed in **kwargs override anything in - # formfield_overrides because **kwargs is more specific, and should - # always win. - if db_field.__class__ in self.formfield_overrides: - kwargs = {**self.formfield_overrides[db_field.__class__], **kwargs} - - # Get the correct formfield. - if isinstance(db_field, models.ForeignKey): - formfield = self.formfield_for_foreignkey(db_field, request, **kwargs) - elif isinstance(db_field, models.ManyToManyField): - formfield = self.formfield_for_manytomany(db_field, request, **kwargs) - - # For non-raw_id fields, wrap the widget with a wrapper that adds - # extra HTML -- the "add other" interface -- to the end of the - # rendered output. formfield can be None if it came from a - # OneToOneField with parent_link=True or a M2M intermediary. - if formfield and db_field.name not in self.raw_id_fields: - related_modeladmin = self.admin_site._registry.get( - db_field.remote_field.model - ) - wrapper_kwargs = {} - if related_modeladmin: - wrapper_kwargs.update( - can_add_related=related_modeladmin.has_add_permission(request), - can_change_related=related_modeladmin.has_change_permission( - request - ), - can_delete_related=related_modeladmin.has_delete_permission( - request - ), - can_view_related=related_modeladmin.has_view_permission( - request - ), - ) - formfield.widget = widgets.RelatedFieldWidgetWrapper( - formfield.widget, - db_field.remote_field, - self.admin_site, - **wrapper_kwargs, - ) - - return formfield - - # If we've got overrides for the formfield defined, use 'em. **kwargs - # passed to formfield_for_dbfield override the defaults. - for klass in db_field.__class__.mro(): - if klass in self.formfield_overrides: - kwargs = {**copy.deepcopy(self.formfield_overrides[klass]), **kwargs} - return db_field.formfield(**kwargs) - - # For any other type of field, just call its formfield() method. - return db_field.formfield(**kwargs) - - def formfield_for_choice_field(self, db_field, request, **kwargs): - """ - Get a form Field for a database Field that has declared choices. - """ - # If the field is named as a radio_field, use a RadioSelect - if db_field.name in self.radio_fields: - # Avoid stomping on custom widget/choices arguments. - if "widget" not in kwargs: - kwargs["widget"] = widgets.AdminRadioSelect( - attrs={ - "class": get_ul_class(self.radio_fields[db_field.name]), - } - ) - if "choices" not in kwargs: - kwargs["choices"] = db_field.get_choices( - include_blank=db_field.blank, blank_choice=[("", _("None"))] - ) - return db_field.formfield(**kwargs) - - def get_field_queryset(self, db, db_field, request): - """ - If the ModelAdmin specifies ordering, the queryset should respect that - ordering. Otherwise don't specify the queryset, let the field decide - (return None in that case). - """ - related_admin = self.admin_site._registry.get(db_field.remote_field.model) - if related_admin is not None: - ordering = related_admin.get_ordering(request) - if ordering is not None and ordering != (): - return db_field.remote_field.model._default_manager.using(db).order_by( - *ordering - ) - return None - - def formfield_for_foreignkey(self, db_field, request, **kwargs): - """ - Get a form Field for a ForeignKey. - """ - db = kwargs.get("using") - - if "widget" not in kwargs: - if db_field.name in self.get_autocomplete_fields(request): - kwargs["widget"] = AutocompleteSelect( - db_field, self.admin_site, using=db - ) - elif db_field.name in self.raw_id_fields: - kwargs["widget"] = widgets.ForeignKeyRawIdWidget( - db_field.remote_field, self.admin_site, using=db - ) - elif db_field.name in self.radio_fields: - kwargs["widget"] = widgets.AdminRadioSelect( - attrs={ - "class": get_ul_class(self.radio_fields[db_field.name]), - } - ) - kwargs["empty_label"] = ( - kwargs.get("empty_label", _("None")) if db_field.blank else None - ) - - if "queryset" not in kwargs: - queryset = self.get_field_queryset(db, db_field, request) - if queryset is not None: - kwargs["queryset"] = queryset - - return db_field.formfield(**kwargs) - - def formfield_for_manytomany(self, db_field, request, **kwargs): - """ - Get a form Field for a ManyToManyField. - """ - # If it uses an intermediary model that isn't auto created, don't show - # a field in admin. - if not db_field.remote_field.through._meta.auto_created: - return None - db = kwargs.get("using") - - if "widget" not in kwargs: - autocomplete_fields = self.get_autocomplete_fields(request) - if db_field.name in autocomplete_fields: - kwargs["widget"] = AutocompleteSelectMultiple( - db_field, - self.admin_site, - using=db, - ) - elif db_field.name in self.raw_id_fields: - kwargs["widget"] = widgets.ManyToManyRawIdWidget( - db_field.remote_field, - self.admin_site, - using=db, - ) - elif db_field.name in [*self.filter_vertical, *self.filter_horizontal]: - kwargs["widget"] = widgets.FilteredSelectMultiple( - db_field.verbose_name, db_field.name in self.filter_vertical - ) - if "queryset" not in kwargs: - queryset = self.get_field_queryset(db, db_field, request) - if queryset is not None: - kwargs["queryset"] = queryset - - form_field = db_field.formfield(**kwargs) - if ( - isinstance(form_field.widget, SelectMultiple) - and form_field.widget.allow_multiple_selected - and not isinstance( - form_field.widget, (CheckboxSelectMultiple, AutocompleteSelectMultiple) - ) - ): - msg = _( - "Hold down “Control”, or “Command” on a Mac, to select more than one." - ) - help_text = form_field.help_text - form_field.help_text = ( - format_lazy("{} {}", help_text, msg) if help_text else msg - ) - return form_field - - def get_autocomplete_fields(self, request): - """ - Return a list of ForeignKey and/or ManyToMany fields which should use - an autocomplete widget. - """ - return self.autocomplete_fields - - def get_view_on_site_url(self, obj=None): - if obj is None or not self.view_on_site: - return None - - if callable(self.view_on_site): - return self.view_on_site(obj) - elif hasattr(obj, "get_absolute_url"): - # use the ContentType lookup if view_on_site is True - return reverse( - "admin:view_on_site", - kwargs={ - "content_type_id": get_content_type_for_model(obj).pk, - "object_id": obj.pk, - }, - current_app=self.admin_site.name, - ) - - def get_empty_value_display(self): - """ - Return the empty_value_display set on ModelAdmin or AdminSite. - """ - try: - return mark_safe(self.empty_value_display) - except AttributeError: - return mark_safe(self.admin_site.empty_value_display) - - def get_exclude(self, request, obj=None): - """ - Hook for specifying exclude. - """ - return self.exclude - - def get_fields(self, request, obj=None): - """ - Hook for specifying fields. - """ - if self.fields: - return self.fields - # _get_form_for_get_fields() is implemented in subclasses. - form = self._get_form_for_get_fields(request, obj) - return [*form.base_fields, *self.get_readonly_fields(request, obj)] - - def get_fieldsets(self, request, obj=None): - """ - Hook for specifying fieldsets. - """ - if self.fieldsets: - return self.fieldsets - return [(None, {"fields": self.get_fields(request, obj)})] - - def get_inlines(self, request, obj): - """Hook for specifying custom inlines.""" - return self.inlines - - def get_ordering(self, request): - """ - Hook for specifying field ordering. - """ - return self.ordering or () # otherwise we might try to *None, which is bad ;) - - def get_readonly_fields(self, request, obj=None): - """ - Hook for specifying custom readonly fields. - """ - return self.readonly_fields - - def get_prepopulated_fields(self, request, obj=None): - """ - Hook for specifying custom prepopulated fields. - """ - return self.prepopulated_fields - - def get_queryset(self, request): - """ - Return a QuerySet of all model instances that can be edited by the - admin site. This is used by changelist_view. - """ - qs = self.model._default_manager.get_queryset() - # TODO: this should be handled by some parameter to the ChangeList. - ordering = self.get_ordering(request) - if ordering: - qs = qs.order_by(*ordering) - return qs - - def get_sortable_by(self, request): - """Hook for specifying which fields can be sorted in the changelist.""" - return ( - self.sortable_by - if self.sortable_by is not None - else self.get_list_display(request) - ) - - def lookup_allowed(self, lookup, value): - from django.contrib.admin.filters import SimpleListFilter - - model = self.model - # Check FKey lookups that are allowed, so that popups produced by - # ForeignKeyRawIdWidget, on the basis of ForeignKey.limit_choices_to, - # are allowed to work. - for fk_lookup in model._meta.related_fkey_lookups: - # As ``limit_choices_to`` can be a callable, invoke it here. - if callable(fk_lookup): - fk_lookup = fk_lookup() - if (lookup, value) in widgets.url_params_from_lookup_dict( - fk_lookup - ).items(): - return True - - relation_parts = [] - prev_field = None - for part in lookup.split(LOOKUP_SEP): - try: - field = model._meta.get_field(part) - except FieldDoesNotExist: - # Lookups on nonexistent fields are ok, since they're ignored - # later. - break - # It is allowed to filter on values that would be found from local - # model anyways. For example, if you filter on employee__department__id, - # then the id value would be found already from employee__department_id. - if not prev_field or ( - prev_field.is_relation - and field not in prev_field.path_infos[-1].target_fields - ): - relation_parts.append(part) - if not getattr(field, "path_infos", None): - # This is not a relational field, so further parts - # must be transforms. - break - prev_field = field - model = field.path_infos[-1].to_opts.model - - if len(relation_parts) <= 1: - # Either a local field filter, or no fields at all. - return True - valid_lookups = {self.date_hierarchy} - for filter_item in self.list_filter: - if isinstance(filter_item, type) and issubclass( - filter_item, SimpleListFilter - ): - valid_lookups.add(filter_item.parameter_name) - elif isinstance(filter_item, (list, tuple)): - valid_lookups.add(filter_item[0]) - else: - valid_lookups.add(filter_item) - - # Is it a valid relational lookup? - return not { - LOOKUP_SEP.join(relation_parts), - LOOKUP_SEP.join(relation_parts + [part]), - }.isdisjoint(valid_lookups) - - def to_field_allowed(self, request, to_field): - """ - Return True if the model associated with this admin should be - allowed to be referenced by the specified field. - """ - try: - field = self.opts.get_field(to_field) - except FieldDoesNotExist: - return False - - # Always allow referencing the primary key since it's already possible - # to get this information from the change view URL. - if field.primary_key: - return True - - # Allow reverse relationships to models defining m2m fields if they - # target the specified field. - for many_to_many in self.opts.many_to_many: - if many_to_many.m2m_target_field_name() == to_field: - return True - - # Make sure at least one of the models registered for this site - # references this field through a FK or a M2M relationship. - registered_models = set() - for model, admin in self.admin_site._registry.items(): - registered_models.add(model) - for inline in admin.inlines: - registered_models.add(inline.model) - - related_objects = ( - f - for f in self.opts.get_fields(include_hidden=True) - if (f.auto_created and not f.concrete) - ) - for related_object in related_objects: - related_model = related_object.related_model - remote_field = related_object.field.remote_field - if ( - any(issubclass(model, related_model) for model in registered_models) - and hasattr(remote_field, "get_related_field") - and remote_field.get_related_field() == field - ): - return True - - return False - - def has_add_permission(self, request): - """ - Return True if the given request has permission to add an object. - Can be overridden by the user in subclasses. - """ - opts = self.opts - codename = get_permission_codename("add", opts) - return request.user.has_perm("%s.%s" % (opts.app_label, codename)) - - def has_change_permission(self, request, obj=None): - """ - Return True if the given request has permission to change the given - Django model instance, the default implementation doesn't examine the - `obj` parameter. - - Can be overridden by the user in subclasses. In such case it should - return True if the given request has permission to change the `obj` - model instance. If `obj` is None, this should return True if the given - request has permission to change *any* object of the given type. - """ - opts = self.opts - codename = get_permission_codename("change", opts) - return request.user.has_perm("%s.%s" % (opts.app_label, codename)) - - def has_delete_permission(self, request, obj=None): - """ - Return True if the given request has permission to delete the given - Django model instance, the default implementation doesn't examine the - `obj` parameter. - - Can be overridden by the user in subclasses. In such case it should - return True if the given request has permission to delete the `obj` - model instance. If `obj` is None, this should return True if the given - request has permission to delete *any* object of the given type. - """ - opts = self.opts - codename = get_permission_codename("delete", opts) - return request.user.has_perm("%s.%s" % (opts.app_label, codename)) - - def has_view_permission(self, request, obj=None): - """ - Return True if the given request has permission to view the given - Django model instance. The default implementation doesn't examine the - `obj` parameter. - - If overridden by the user in subclasses, it should return True if the - given request has permission to view the `obj` model instance. If `obj` - is None, it should return True if the request has permission to view - any object of the given type. - """ - opts = self.opts - codename_view = get_permission_codename("view", opts) - codename_change = get_permission_codename("change", opts) - return request.user.has_perm( - "%s.%s" % (opts.app_label, codename_view) - ) or request.user.has_perm("%s.%s" % (opts.app_label, codename_change)) - - def has_view_or_change_permission(self, request, obj=None): - return self.has_view_permission(request, obj) or self.has_change_permission( - request, obj - ) - - def has_module_permission(self, request): - """ - Return True if the given request has any permission in the given - app label. - - Can be overridden by the user in subclasses. In such case it should - return True if the given request has permission to view the module on - the admin index page and access the module's index page. Overriding it - does not restrict access to the add, change or delete views. Use - `ModelAdmin.has_(add|change|delete)_permission` for that. - """ - return request.user.has_module_perms(self.opts.app_label) - - -class ModelAdmin(BaseModelAdmin): - """Encapsulate all admin options and functionality for a given model.""" - - list_display = ("__str__",) - list_display_links = () - list_filter = () - list_select_related = False - list_per_page = 100 - list_max_show_all = 200 - list_editable = () - search_fields = () - search_help_text = None - date_hierarchy = None - save_as = False - save_as_continue = True - save_on_top = False - paginator = Paginator - preserve_filters = True - inlines = () - - # Custom templates (designed to be over-ridden in subclasses) - add_form_template = None - change_form_template = None - change_list_template = None - delete_confirmation_template = None - delete_selected_confirmation_template = None - object_history_template = None - popup_response_template = None - - # Actions - actions = () - action_form = helpers.ActionForm - actions_on_top = True - actions_on_bottom = False - actions_selection_counter = True - checks_class = ModelAdminChecks - - def __init__(self, model, admin_site): - self.model = model - self.opts = model._meta - self.admin_site = admin_site - super().__init__() - - def __str__(self): - return "%s.%s" % (self.opts.app_label, self.__class__.__name__) - - def __repr__(self): - return ( - f"<{self.__class__.__qualname__}: model={self.model.__qualname__} " - f"site={self.admin_site!r}>" - ) - - def get_inline_instances(self, request, obj=None): - inline_instances = [] - for inline_class in self.get_inlines(request, obj): - inline = inline_class(self.model, self.admin_site) - if request: - if not ( - inline.has_view_or_change_permission(request, obj) - or inline.has_add_permission(request, obj) - or inline.has_delete_permission(request, obj) - ): - continue - if not inline.has_add_permission(request, obj): - inline.max_num = 0 - inline_instances.append(inline) - - return inline_instances - - def get_urls(self): - from django.urls import path - - def wrap(view): - def wrapper(*args, **kwargs): - return self.admin_site.admin_view(view)(*args, **kwargs) - - wrapper.model_admin = self - return update_wrapper(wrapper, view) - - info = self.opts.app_label, self.opts.model_name - - return [ - path("", wrap(self.changelist_view), name="%s_%s_changelist" % info), - path("add/", wrap(self.add_view), name="%s_%s_add" % info), - path( - "/history/", - wrap(self.history_view), - name="%s_%s_history" % info, - ), - path( - "/delete/", - wrap(self.delete_view), - name="%s_%s_delete" % info, - ), - path( - "/change/", - wrap(self.change_view), - name="%s_%s_change" % info, - ), - # For backwards compatibility (was the change url before 1.9) - path( - "/", - wrap( - RedirectView.as_view( - pattern_name="%s:%s_%s_change" - % ((self.admin_site.name,) + info) - ) - ), - ), - ] - - @property - def urls(self): - return self.get_urls() - - @property - def media(self): - extra = "" if settings.DEBUG else ".min" - js = [ - "vendor/jquery/jquery%s.js" % extra, - "jquery.init.js", - "core.js", - "admin/RelatedObjectLookups.js", - "actions.js", - "urlify.js", - "prepopulate.js", - "vendor/xregexp/xregexp%s.js" % extra, - ] - return forms.Media(js=["admin/js/%s" % url for url in js]) - - def get_model_perms(self, request): - """ - Return a dict of all perms for this model. This dict has the keys - ``add``, ``change``, ``delete``, and ``view`` mapping to the True/False - for each of those actions. - """ - return { - "add": self.has_add_permission(request), - "change": self.has_change_permission(request), - "delete": self.has_delete_permission(request), - "view": self.has_view_permission(request), - } - - def _get_form_for_get_fields(self, request, obj): - return self.get_form(request, obj, fields=None) - - def get_form(self, request, obj=None, change=False, **kwargs): - """ - Return a Form class for use in the admin add view. This is used by - add_view and change_view. - """ - if "fields" in kwargs: - fields = kwargs.pop("fields") - else: - fields = flatten_fieldsets(self.get_fieldsets(request, obj)) - excluded = self.get_exclude(request, obj) - exclude = [] if excluded is None else list(excluded) - readonly_fields = self.get_readonly_fields(request, obj) - exclude.extend(readonly_fields) - # Exclude all fields if it's a change form and the user doesn't have - # the change permission. - if ( - change - and hasattr(request, "user") - and not self.has_change_permission(request, obj) - ): - exclude.extend(fields) - if excluded is None and hasattr(self.form, "_meta") and self.form._meta.exclude: - # Take the custom ModelForm's Meta.exclude into account only if the - # ModelAdmin doesn't define its own. - exclude.extend(self.form._meta.exclude) - # if exclude is an empty list we pass None to be consistent with the - # default on modelform_factory - exclude = exclude or None - - # Remove declared form fields which are in readonly_fields. - new_attrs = dict.fromkeys( - f for f in readonly_fields if f in self.form.declared_fields - ) - form = type(self.form.__name__, (self.form,), new_attrs) - - defaults = { - "form": form, - "fields": fields, - "exclude": exclude, - "formfield_callback": partial(self.formfield_for_dbfield, request=request), - **kwargs, - } - - if defaults["fields"] is None and not modelform_defines_fields( - defaults["form"] - ): - defaults["fields"] = forms.ALL_FIELDS - - try: - return modelform_factory(self.model, **defaults) - except FieldError as e: - raise FieldError( - "%s. Check fields/fieldsets/exclude attributes of class %s." - % (e, self.__class__.__name__) - ) - - def get_changelist(self, request, **kwargs): - """ - Return the ChangeList class for use on the changelist page. - """ - from django.contrib.admin.views.main import ChangeList - - return ChangeList - - def get_changelist_instance(self, request): - """ - Return a `ChangeList` instance based on `request`. May raise - `IncorrectLookupParameters`. - """ - list_display = self.get_list_display(request) - list_display_links = self.get_list_display_links(request, list_display) - # Add the action checkboxes if any actions are available. - if self.get_actions(request): - list_display = ["action_checkbox", *list_display] - sortable_by = self.get_sortable_by(request) - ChangeList = self.get_changelist(request) - return ChangeList( - request, - self.model, - list_display, - list_display_links, - self.get_list_filter(request), - self.date_hierarchy, - self.get_search_fields(request), - self.get_list_select_related(request), - self.list_per_page, - self.list_max_show_all, - self.list_editable, - self, - sortable_by, - self.search_help_text, - ) - - def get_object(self, request, object_id, from_field=None): - """ - Return an instance matching the field and value provided, the primary - key is used if no field is provided. Return ``None`` if no match is - found or the object_id fails validation. - """ - queryset = self.get_queryset(request) - model = queryset.model - field = ( - model._meta.pk if from_field is None else model._meta.get_field(from_field) - ) - try: - object_id = field.to_python(object_id) - return queryset.get(**{field.name: object_id}) - except (model.DoesNotExist, ValidationError, ValueError): - return None - - def get_changelist_form(self, request, **kwargs): - """ - Return a Form class for use in the Formset on the changelist page. - """ - defaults = { - "formfield_callback": partial(self.formfield_for_dbfield, request=request), - **kwargs, - } - if defaults.get("fields") is None and not modelform_defines_fields( - defaults.get("form") - ): - defaults["fields"] = forms.ALL_FIELDS - - return modelform_factory(self.model, **defaults) - - def get_changelist_formset(self, request, **kwargs): - """ - Return a FormSet class for use on the changelist page if list_editable - is used. - """ - defaults = { - "formfield_callback": partial(self.formfield_for_dbfield, request=request), - **kwargs, - } - return modelformset_factory( - self.model, - self.get_changelist_form(request), - extra=0, - fields=self.list_editable, - **defaults, - ) - - def get_formsets_with_inlines(self, request, obj=None): - """ - Yield formsets and the corresponding inlines. - """ - for inline in self.get_inline_instances(request, obj): - yield inline.get_formset(request, obj), inline - - def get_paginator( - self, request, queryset, per_page, orphans=0, allow_empty_first_page=True - ): - return self.paginator(queryset, per_page, orphans, allow_empty_first_page) - - def log_addition(self, request, obj, message): - """ - Log that an object has been successfully added. - - The default implementation creates an admin LogEntry object. - """ - from django.contrib.admin.models import ADDITION, LogEntry - - return LogEntry.objects.log_action( - user_id=request.user.pk, - content_type_id=get_content_type_for_model(obj).pk, - object_id=obj.pk, - object_repr=str(obj), - action_flag=ADDITION, - change_message=message, - ) - - def log_change(self, request, obj, message): - """ - Log that an object has been successfully changed. - - The default implementation creates an admin LogEntry object. - """ - from django.contrib.admin.models import CHANGE, LogEntry - - return LogEntry.objects.log_action( - user_id=request.user.pk, - content_type_id=get_content_type_for_model(obj).pk, - object_id=obj.pk, - object_repr=str(obj), - action_flag=CHANGE, - change_message=message, - ) - - def log_deletion(self, request, obj, object_repr): - """ - Log that an object will be deleted. Note that this method must be - called before the deletion. - - The default implementation creates an admin LogEntry object. - """ - from django.contrib.admin.models import DELETION, LogEntry - - return LogEntry.objects.log_action( - user_id=request.user.pk, - content_type_id=get_content_type_for_model(obj).pk, - object_id=obj.pk, - object_repr=object_repr, - action_flag=DELETION, - ) - - @display(description=mark_safe('')) - def action_checkbox(self, obj): - """ - A list_display column containing a checkbox widget. - """ - return helpers.checkbox.render(helpers.ACTION_CHECKBOX_NAME, str(obj.pk)) - - @staticmethod - def _get_action_description(func, name): - return getattr(func, "short_description", capfirst(name.replace("_", " "))) - - def _get_base_actions(self): - """Return the list of actions, prior to any request-based filtering.""" - actions = [] - base_actions = (self.get_action(action) for action in self.actions or []) - # get_action might have returned None, so filter any of those out. - base_actions = [action for action in base_actions if action] - base_action_names = {name for _, name, _ in base_actions} - - # Gather actions from the admin site first - for name, func in self.admin_site.actions: - if name in base_action_names: - continue - description = self._get_action_description(func, name) - actions.append((func, name, description)) - # Add actions from this ModelAdmin. - actions.extend(base_actions) - return actions - - def _filter_actions_by_permissions(self, request, actions): - """Filter out any actions that the user doesn't have access to.""" - filtered_actions = [] - for action in actions: - callable = action[0] - if not hasattr(callable, "allowed_permissions"): - filtered_actions.append(action) - continue - permission_checks = ( - getattr(self, "has_%s_permission" % permission) - for permission in callable.allowed_permissions - ) - if any(has_permission(request) for has_permission in permission_checks): - filtered_actions.append(action) - return filtered_actions - - def get_actions(self, request): - """ - Return a dictionary mapping the names of all actions for this - ModelAdmin to a tuple of (callable, name, description) for each action. - """ - # If self.actions is set to None that means actions are disabled on - # this page. - if self.actions is None or IS_POPUP_VAR in request.GET: - return {} - actions = self._filter_actions_by_permissions(request, self._get_base_actions()) - return {name: (func, name, desc) for func, name, desc in actions} - - def get_action_choices(self, request, default_choices=models.BLANK_CHOICE_DASH): - """ - Return a list of choices for use in a form object. Each choice is a - tuple (name, description). - """ - choices = [] + default_choices - for func, name, description in self.get_actions(request).values(): - choice = (name, description % model_format_dict(self.opts)) - choices.append(choice) - return choices - - def get_action(self, action): - """ - Return a given action from a parameter, which can either be a callable, - or the name of a method on the ModelAdmin. Return is a tuple of - (callable, name, description). - """ - # If the action is a callable, just use it. - if callable(action): - func = action - action = action.__name__ - - # Next, look for a method. Grab it off self.__class__ to get an unbound - # method instead of a bound one; this ensures that the calling - # conventions are the same for functions and methods. - elif hasattr(self.__class__, action): - func = getattr(self.__class__, action) - - # Finally, look for a named method on the admin site - else: - try: - func = self.admin_site.get_action(action) - except KeyError: - return None - - description = self._get_action_description(func, action) - return func, action, description - - def get_list_display(self, request): - """ - Return a sequence containing the fields to be displayed on the - changelist. - """ - return self.list_display - - def get_list_display_links(self, request, list_display): - """ - Return a sequence containing the fields to be displayed as links - on the changelist. The list_display parameter is the list of fields - returned by get_list_display(). - """ - if ( - self.list_display_links - or self.list_display_links is None - or not list_display - ): - return self.list_display_links - else: - # Use only the first item in list_display as link - return list(list_display)[:1] - - def get_list_filter(self, request): - """ - Return a sequence containing the fields to be displayed as filters in - the right sidebar of the changelist page. - """ - return self.list_filter - - def get_list_select_related(self, request): - """ - Return a list of fields to add to the select_related() part of the - changelist items query. - """ - return self.list_select_related - - def get_search_fields(self, request): - """ - Return a sequence containing the fields to be searched whenever - somebody submits a search query. - """ - return self.search_fields - - def get_search_results(self, request, queryset, search_term): - """ - Return a tuple containing a queryset to implement the search - and a boolean indicating if the results may contain duplicates. - """ - - # Apply keyword searches. - def construct_search(field_name): - if field_name.startswith("^"): - return "%s__istartswith" % field_name[1:] - elif field_name.startswith("="): - return "%s__iexact" % field_name[1:] - elif field_name.startswith("@"): - return "%s__search" % field_name[1:] - # Use field_name if it includes a lookup. - opts = queryset.model._meta - lookup_fields = field_name.split(LOOKUP_SEP) - # Go through the fields, following all relations. - prev_field = None - for path_part in lookup_fields: - if path_part == "pk": - path_part = opts.pk.name - try: - field = opts.get_field(path_part) - except FieldDoesNotExist: - # Use valid query lookups. - if prev_field and prev_field.get_lookup(path_part): - return field_name - else: - prev_field = field - if hasattr(field, "path_infos"): - # Update opts to follow the relation. - opts = field.path_infos[-1].to_opts - # Otherwise, use the field with icontains. - return "%s__icontains" % field_name - - may_have_duplicates = False - search_fields = self.get_search_fields(request) - if search_fields and search_term: - orm_lookups = [ - construct_search(str(search_field)) for search_field in search_fields - ] - term_queries = [] - for bit in smart_split(search_term): - if bit.startswith(('"', "'")) and bit[0] == bit[-1]: - bit = unescape_string_literal(bit) - or_queries = models.Q.create( - [(orm_lookup, bit) for orm_lookup in orm_lookups], - connector=models.Q.OR, - ) - term_queries.append(or_queries) - queryset = queryset.filter(models.Q.create(term_queries)) - may_have_duplicates |= any( - lookup_spawns_duplicates(self.opts, search_spec) - for search_spec in orm_lookups - ) - return queryset, may_have_duplicates - - def get_preserved_filters(self, request): - """ - Return the preserved filters querystring. - """ - match = request.resolver_match - if self.preserve_filters and match: - current_url = "%s:%s" % (match.app_name, match.url_name) - changelist_url = "admin:%s_%s_changelist" % ( - self.opts.app_label, - self.opts.model_name, - ) - if current_url == changelist_url: - preserved_filters = request.GET.urlencode() - else: - preserved_filters = request.GET.get("_changelist_filters") - - if preserved_filters: - return urlencode({"_changelist_filters": preserved_filters}) - return "" - - def construct_change_message(self, request, form, formsets, add=False): - """ - Construct a JSON structure describing changes from a changed object. - """ - return construct_change_message(form, formsets, add) - - def message_user( - self, request, message, level=messages.INFO, extra_tags="", fail_silently=False - ): - """ - Send a message to the user. The default implementation - posts a message using the django.contrib.messages backend. - - Exposes almost the same API as messages.add_message(), but accepts the - positional arguments in a different order to maintain backwards - compatibility. For convenience, it accepts the `level` argument as - a string rather than the usual level number. - """ - if not isinstance(level, int): - # attempt to get the level if passed a string - try: - level = getattr(messages.constants, level.upper()) - except AttributeError: - levels = messages.constants.DEFAULT_TAGS.values() - levels_repr = ", ".join("`%s`" % level for level in levels) - raise ValueError( - "Bad message level string: `%s`. Possible values are: %s" - % (level, levels_repr) - ) - - messages.add_message( - request, level, message, extra_tags=extra_tags, fail_silently=fail_silently - ) - - def save_form(self, request, form, change): - """ - Given a ModelForm return an unsaved instance. ``change`` is True if - the object is being changed, and False if it's being added. - """ - return form.save(commit=False) - - def save_model(self, request, obj, form, change): - """ - Given a model instance save it to the database. - """ - obj.save() - - def delete_model(self, request, obj): - """ - Given a model instance delete it from the database. - """ - obj.delete() - - def delete_queryset(self, request, queryset): - """Given a queryset, delete it from the database.""" - queryset.delete() - - def save_formset(self, request, form, formset, change): - """ - Given an inline formset save it to the database. - """ - formset.save() - - def save_related(self, request, form, formsets, change): - """ - Given the ``HttpRequest``, the parent ``ModelForm`` instance, the - list of inline formsets and a boolean value based on whether the - parent is being added or changed, save the related objects to the - database. Note that at this point save_form() and save_model() have - already been called. - """ - form.save_m2m() - for formset in formsets: - self.save_formset(request, form, formset, change=change) - - def render_change_form( - self, request, context, add=False, change=False, form_url="", obj=None - ): - app_label = self.opts.app_label - preserved_filters = self.get_preserved_filters(request) - form_url = add_preserved_filters( - {"preserved_filters": preserved_filters, "opts": self.opts}, form_url - ) - view_on_site_url = self.get_view_on_site_url(obj) - has_editable_inline_admin_formsets = False - for inline in context["inline_admin_formsets"]: - if ( - inline.has_add_permission - or inline.has_change_permission - or inline.has_delete_permission - ): - has_editable_inline_admin_formsets = True - break - context.update( - { - "add": add, - "change": change, - "has_view_permission": self.has_view_permission(request, obj), - "has_add_permission": self.has_add_permission(request), - "has_change_permission": self.has_change_permission(request, obj), - "has_delete_permission": self.has_delete_permission(request, obj), - "has_editable_inline_admin_formsets": ( - has_editable_inline_admin_formsets - ), - "has_file_field": context["adminform"].form.is_multipart() - or any( - admin_formset.formset.is_multipart() - for admin_formset in context["inline_admin_formsets"] - ), - "has_absolute_url": view_on_site_url is not None, - "absolute_url": view_on_site_url, - "form_url": form_url, - "opts": self.opts, - "content_type_id": get_content_type_for_model(self.model).pk, - "save_as": self.save_as, - "save_on_top": self.save_on_top, - "to_field_var": TO_FIELD_VAR, - "is_popup_var": IS_POPUP_VAR, - "app_label": app_label, - } - ) - if add and self.add_form_template is not None: - form_template = self.add_form_template - else: - form_template = self.change_form_template - - request.current_app = self.admin_site.name - - return TemplateResponse( - request, - form_template - or [ - "admin/%s/%s/change_form.html" % (app_label, self.opts.model_name), - "admin/%s/change_form.html" % app_label, - "admin/change_form.html", - ], - context, - ) - - def response_add(self, request, obj, post_url_continue=None): - """ - Determine the HttpResponse for the add_view stage. - """ - opts = obj._meta - preserved_filters = self.get_preserved_filters(request) - obj_url = reverse( - "admin:%s_%s_change" % (opts.app_label, opts.model_name), - args=(quote(obj.pk),), - current_app=self.admin_site.name, - ) - # Add a link to the object's change form if the user can edit the obj. - if self.has_change_permission(request, obj): - obj_repr = format_html('{}', urlquote(obj_url), obj) - else: - obj_repr = str(obj) - msg_dict = { - "name": opts.verbose_name, - "obj": obj_repr, - } - # Here, we distinguish between different save types by checking for - # the presence of keys in request.POST. - - if IS_POPUP_VAR in request.POST: - to_field = request.POST.get(TO_FIELD_VAR) - if to_field: - attr = str(to_field) - else: - attr = obj._meta.pk.attname - value = obj.serializable_value(attr) - popup_response_data = json.dumps( - { - "value": str(value), - "obj": str(obj), - } - ) - return TemplateResponse( - request, - self.popup_response_template - or [ - "admin/%s/%s/popup_response.html" - % (opts.app_label, opts.model_name), - "admin/%s/popup_response.html" % opts.app_label, - "admin/popup_response.html", - ], - { - "popup_response_data": popup_response_data, - }, - ) - - elif "_continue" in request.POST or ( - # Redirecting after "Save as new". - "_saveasnew" in request.POST - and self.save_as_continue - and self.has_change_permission(request, obj) - ): - msg = _("The {name} “{obj}” was added successfully.") - if self.has_change_permission(request, obj): - msg += " " + _("You may edit it again below.") - self.message_user(request, format_html(msg, **msg_dict), messages.SUCCESS) - if post_url_continue is None: - post_url_continue = obj_url - post_url_continue = add_preserved_filters( - {"preserved_filters": preserved_filters, "opts": opts}, - post_url_continue, - ) - return HttpResponseRedirect(post_url_continue) - - elif "_addanother" in request.POST: - msg = format_html( - _( - "The {name} “{obj}” was added successfully. You may add another " - "{name} below." - ), - **msg_dict, - ) - self.message_user(request, msg, messages.SUCCESS) - redirect_url = request.path - redirect_url = add_preserved_filters( - {"preserved_filters": preserved_filters, "opts": opts}, redirect_url - ) - return HttpResponseRedirect(redirect_url) - - else: - msg = format_html( - _("The {name} “{obj}” was added successfully."), **msg_dict - ) - self.message_user(request, msg, messages.SUCCESS) - return self.response_post_save_add(request, obj) - - def response_change(self, request, obj): - """ - Determine the HttpResponse for the change_view stage. - """ - - if IS_POPUP_VAR in request.POST: - opts = obj._meta - to_field = request.POST.get(TO_FIELD_VAR) - attr = str(to_field) if to_field else opts.pk.attname - value = request.resolver_match.kwargs["object_id"] - new_value = obj.serializable_value(attr) - popup_response_data = json.dumps( - { - "action": "change", - "value": str(value), - "obj": str(obj), - "new_value": str(new_value), - } - ) - return TemplateResponse( - request, - self.popup_response_template - or [ - "admin/%s/%s/popup_response.html" - % (opts.app_label, opts.model_name), - "admin/%s/popup_response.html" % opts.app_label, - "admin/popup_response.html", - ], - { - "popup_response_data": popup_response_data, - }, - ) - - opts = self.opts - preserved_filters = self.get_preserved_filters(request) - - msg_dict = { - "name": opts.verbose_name, - "obj": format_html('{}', urlquote(request.path), obj), - } - if "_continue" in request.POST: - msg = format_html( - _( - "The {name} “{obj}” was changed successfully. You may edit it " - "again below." - ), - **msg_dict, - ) - self.message_user(request, msg, messages.SUCCESS) - redirect_url = request.path - redirect_url = add_preserved_filters( - {"preserved_filters": preserved_filters, "opts": opts}, redirect_url - ) - return HttpResponseRedirect(redirect_url) - - elif "_saveasnew" in request.POST: - msg = format_html( - _( - "The {name} “{obj}” was added successfully. You may edit it again " - "below." - ), - **msg_dict, - ) - self.message_user(request, msg, messages.SUCCESS) - redirect_url = reverse( - "admin:%s_%s_change" % (opts.app_label, opts.model_name), - args=(obj.pk,), - current_app=self.admin_site.name, - ) - redirect_url = add_preserved_filters( - {"preserved_filters": preserved_filters, "opts": opts}, redirect_url - ) - return HttpResponseRedirect(redirect_url) - - elif "_addanother" in request.POST: - msg = format_html( - _( - "The {name} “{obj}” was changed successfully. You may add another " - "{name} below." - ), - **msg_dict, - ) - self.message_user(request, msg, messages.SUCCESS) - redirect_url = reverse( - "admin:%s_%s_add" % (opts.app_label, opts.model_name), - current_app=self.admin_site.name, - ) - redirect_url = add_preserved_filters( - {"preserved_filters": preserved_filters, "opts": opts}, redirect_url - ) - return HttpResponseRedirect(redirect_url) - - else: - msg = format_html( - _("The {name} “{obj}” was changed successfully."), **msg_dict - ) - self.message_user(request, msg, messages.SUCCESS) - return self.response_post_save_change(request, obj) - - def _response_post_save(self, request, obj): - if self.has_view_or_change_permission(request): - post_url = reverse( - "admin:%s_%s_changelist" % (self.opts.app_label, self.opts.model_name), - current_app=self.admin_site.name, - ) - preserved_filters = self.get_preserved_filters(request) - post_url = add_preserved_filters( - {"preserved_filters": preserved_filters, "opts": self.opts}, post_url - ) - else: - post_url = reverse("admin:index", current_app=self.admin_site.name) - return HttpResponseRedirect(post_url) - - def response_post_save_add(self, request, obj): - """ - Figure out where to redirect after the 'Save' button has been pressed - when adding a new object. - """ - return self._response_post_save(request, obj) - - def response_post_save_change(self, request, obj): - """ - Figure out where to redirect after the 'Save' button has been pressed - when editing an existing object. - """ - return self._response_post_save(request, obj) - - def response_action(self, request, queryset): - """ - Handle an admin action. This is called if a request is POSTed to the - changelist; it returns an HttpResponse if the action was handled, and - None otherwise. - """ - - # There can be multiple action forms on the page (at the top - # and bottom of the change list, for example). Get the action - # whose button was pushed. - try: - action_index = int(request.POST.get("index", 0)) - except ValueError: - action_index = 0 - - # Construct the action form. - data = request.POST.copy() - data.pop(helpers.ACTION_CHECKBOX_NAME, None) - data.pop("index", None) - - # Use the action whose button was pushed - try: - data.update({"action": data.getlist("action")[action_index]}) - except IndexError: - # If we didn't get an action from the chosen form that's invalid - # POST data, so by deleting action it'll fail the validation check - # below. So no need to do anything here - pass - - action_form = self.action_form(data, auto_id=None) - action_form.fields["action"].choices = self.get_action_choices(request) - - # If the form's valid we can handle the action. - if action_form.is_valid(): - action = action_form.cleaned_data["action"] - select_across = action_form.cleaned_data["select_across"] - func = self.get_actions(request)[action][0] - - # Get the list of selected PKs. If nothing's selected, we can't - # perform an action on it, so bail. Except we want to perform - # the action explicitly on all objects. - selected = request.POST.getlist(helpers.ACTION_CHECKBOX_NAME) - if not selected and not select_across: - # Reminder that something needs to be selected or nothing will happen - msg = _( - "Items must be selected in order to perform " - "actions on them. No items have been changed." - ) - self.message_user(request, msg, messages.WARNING) - return None - - if not select_across: - # Perform the action only on the selected objects - queryset = queryset.filter(pk__in=selected) - - response = func(self, request, queryset) - - # Actions may return an HttpResponse-like object, which will be - # used as the response from the POST. If not, we'll be a good - # little HTTP citizen and redirect back to the changelist page. - if isinstance(response, HttpResponseBase): - return response - else: - return HttpResponseRedirect(request.get_full_path()) - else: - msg = _("No action selected.") - self.message_user(request, msg, messages.WARNING) - return None - - def response_delete(self, request, obj_display, obj_id): - """ - Determine the HttpResponse for the delete_view stage. - """ - if IS_POPUP_VAR in request.POST: - popup_response_data = json.dumps( - { - "action": "delete", - "value": str(obj_id), - } - ) - return TemplateResponse( - request, - self.popup_response_template - or [ - "admin/%s/%s/popup_response.html" - % (self.opts.app_label, self.opts.model_name), - "admin/%s/popup_response.html" % self.opts.app_label, - "admin/popup_response.html", - ], - { - "popup_response_data": popup_response_data, - }, - ) - - self.message_user( - request, - _("The %(name)s “%(obj)s” was deleted successfully.") - % { - "name": self.opts.verbose_name, - "obj": obj_display, - }, - messages.SUCCESS, - ) - - if self.has_change_permission(request, None): - post_url = reverse( - "admin:%s_%s_changelist" % (self.opts.app_label, self.opts.model_name), - current_app=self.admin_site.name, - ) - preserved_filters = self.get_preserved_filters(request) - post_url = add_preserved_filters( - {"preserved_filters": preserved_filters, "opts": self.opts}, post_url - ) - else: - post_url = reverse("admin:index", current_app=self.admin_site.name) - return HttpResponseRedirect(post_url) - - def render_delete_form(self, request, context): - app_label = self.opts.app_label - - request.current_app = self.admin_site.name - context.update( - to_field_var=TO_FIELD_VAR, - is_popup_var=IS_POPUP_VAR, - media=self.media, - ) - - return TemplateResponse( - request, - self.delete_confirmation_template - or [ - "admin/{}/{}/delete_confirmation.html".format( - app_label, self.opts.model_name - ), - "admin/{}/delete_confirmation.html".format(app_label), - "admin/delete_confirmation.html", - ], - context, - ) - - def get_inline_formsets(self, request, formsets, inline_instances, obj=None): - # Edit permissions on parent model are required for editable inlines. - can_edit_parent = ( - self.has_change_permission(request, obj) - if obj - else self.has_add_permission(request) - ) - inline_admin_formsets = [] - for inline, formset in zip(inline_instances, formsets): - fieldsets = list(inline.get_fieldsets(request, obj)) - readonly = list(inline.get_readonly_fields(request, obj)) - if can_edit_parent: - has_add_permission = inline.has_add_permission(request, obj) - has_change_permission = inline.has_change_permission(request, obj) - has_delete_permission = inline.has_delete_permission(request, obj) - else: - # Disable all edit-permissions, and override formset settings. - has_add_permission = ( - has_change_permission - ) = has_delete_permission = False - formset.extra = formset.max_num = 0 - has_view_permission = inline.has_view_permission(request, obj) - prepopulated = dict(inline.get_prepopulated_fields(request, obj)) - inline_admin_formset = helpers.InlineAdminFormSet( - inline, - formset, - fieldsets, - prepopulated, - readonly, - model_admin=self, - has_add_permission=has_add_permission, - has_change_permission=has_change_permission, - has_delete_permission=has_delete_permission, - has_view_permission=has_view_permission, - ) - inline_admin_formsets.append(inline_admin_formset) - return inline_admin_formsets - - def get_changeform_initial_data(self, request): - """ - Get the initial form data from the request's GET params. - """ - initial = dict(request.GET.items()) - for k in initial: - try: - f = self.opts.get_field(k) - except FieldDoesNotExist: - continue - # We have to special-case M2Ms as a list of comma-separated PKs. - if isinstance(f, models.ManyToManyField): - initial[k] = initial[k].split(",") - return initial - - def _get_obj_does_not_exist_redirect(self, request, opts, object_id): - """ - Create a message informing the user that the object doesn't exist - and return a redirect to the admin index page. - """ - msg = _("%(name)s with ID “%(key)s” doesn’t exist. Perhaps it was deleted?") % { - "name": opts.verbose_name, - "key": unquote(object_id), - } - self.message_user(request, msg, messages.WARNING) - url = reverse("admin:index", current_app=self.admin_site.name) - return HttpResponseRedirect(url) - - @csrf_protect_m - def changeform_view(self, request, object_id=None, form_url="", extra_context=None): - with transaction.atomic(using=router.db_for_write(self.model)): - return self._changeform_view(request, object_id, form_url, extra_context) - - def _changeform_view(self, request, object_id, form_url, extra_context): - to_field = request.POST.get(TO_FIELD_VAR, request.GET.get(TO_FIELD_VAR)) - if to_field and not self.to_field_allowed(request, to_field): - raise DisallowedModelAdminToField( - "The field %s cannot be referenced." % to_field - ) - - if request.method == "POST" and "_saveasnew" in request.POST: - object_id = None - - add = object_id is None - - if add: - if not self.has_add_permission(request): - raise PermissionDenied - obj = None - - else: - obj = self.get_object(request, unquote(object_id), to_field) - - if request.method == "POST": - if not self.has_change_permission(request, obj): - raise PermissionDenied - else: - if not self.has_view_or_change_permission(request, obj): - raise PermissionDenied - - if obj is None: - return self._get_obj_does_not_exist_redirect( - request, self.opts, object_id - ) - - fieldsets = self.get_fieldsets(request, obj) - ModelForm = self.get_form( - request, obj, change=not add, fields=flatten_fieldsets(fieldsets) - ) - if request.method == "POST": - form = ModelForm(request.POST, request.FILES, instance=obj) - formsets, inline_instances = self._create_formsets( - request, - form.instance, - change=not add, - ) - form_validated = form.is_valid() - if form_validated: - new_object = self.save_form(request, form, change=not add) - else: - new_object = form.instance - if all_valid(formsets) and form_validated: - self.save_model(request, new_object, form, not add) - self.save_related(request, form, formsets, not add) - change_message = self.construct_change_message( - request, form, formsets, add - ) - if add: - self.log_addition(request, new_object, change_message) - return self.response_add(request, new_object) - else: - self.log_change(request, new_object, change_message) - return self.response_change(request, new_object) - else: - form_validated = False - else: - if add: - initial = self.get_changeform_initial_data(request) - form = ModelForm(initial=initial) - formsets, inline_instances = self._create_formsets( - request, form.instance, change=False - ) - else: - form = ModelForm(instance=obj) - formsets, inline_instances = self._create_formsets( - request, obj, change=True - ) - - if not add and not self.has_change_permission(request, obj): - readonly_fields = flatten_fieldsets(fieldsets) - else: - readonly_fields = self.get_readonly_fields(request, obj) - admin_form = helpers.AdminForm( - form, - list(fieldsets), - # Clear prepopulated fields on a view-only form to avoid a crash. - self.get_prepopulated_fields(request, obj) - if add or self.has_change_permission(request, obj) - else {}, - readonly_fields, - model_admin=self, - ) - media = self.media + admin_form.media - - inline_formsets = self.get_inline_formsets( - request, formsets, inline_instances, obj - ) - for inline_formset in inline_formsets: - media += inline_formset.media - - if add: - title = _("Add %s") - elif self.has_change_permission(request, obj): - title = _("Change %s") - else: - title = _("View %s") - context = { - **self.admin_site.each_context(request), - "title": title % self.opts.verbose_name, - "subtitle": str(obj) if obj else None, - "adminform": admin_form, - "object_id": object_id, - "original": obj, - "is_popup": IS_POPUP_VAR in request.POST or IS_POPUP_VAR in request.GET, - "to_field": to_field, - "media": media, - "inline_admin_formsets": inline_formsets, - "errors": helpers.AdminErrorList(form, formsets), - "preserved_filters": self.get_preserved_filters(request), - } - - # Hide the "Save" and "Save and continue" buttons if "Save as New" was - # previously chosen to prevent the interface from getting confusing. - if ( - request.method == "POST" - and not form_validated - and "_saveasnew" in request.POST - ): - context["show_save"] = False - context["show_save_and_continue"] = False - # Use the change template instead of the add template. - add = False - - context.update(extra_context or {}) - - return self.render_change_form( - request, context, add=add, change=not add, obj=obj, form_url=form_url - ) - - def add_view(self, request, form_url="", extra_context=None): - return self.changeform_view(request, None, form_url, extra_context) - - def change_view(self, request, object_id, form_url="", extra_context=None): - return self.changeform_view(request, object_id, form_url, extra_context) - - def _get_edited_object_pks(self, request, prefix): - """Return POST data values of list_editable primary keys.""" - pk_pattern = re.compile( - r"{}-\d+-{}$".format(re.escape(prefix), self.opts.pk.name) - ) - return [value for key, value in request.POST.items() if pk_pattern.match(key)] - - def _get_list_editable_queryset(self, request, prefix): - """ - Based on POST data, return a queryset of the objects that were edited - via list_editable. - """ - object_pks = self._get_edited_object_pks(request, prefix) - queryset = self.get_queryset(request) - validate = queryset.model._meta.pk.to_python - try: - for pk in object_pks: - validate(pk) - except ValidationError: - # Disable the optimization if the POST data was tampered with. - return queryset - return queryset.filter(pk__in=object_pks) - - @csrf_protect_m - def changelist_view(self, request, extra_context=None): - """ - The 'change list' admin view for this model. - """ - from django.contrib.admin.views.main import ERROR_FLAG - - app_label = self.opts.app_label - if not self.has_view_or_change_permission(request): - raise PermissionDenied - - try: - cl = self.get_changelist_instance(request) - except IncorrectLookupParameters: - # Wacky lookup parameters were given, so redirect to the main - # changelist page, without parameters, and pass an 'invalid=1' - # parameter via the query string. If wacky parameters were given - # and the 'invalid=1' parameter was already in the query string, - # something is screwed up with the database, so display an error - # page. - if ERROR_FLAG in request.GET: - return SimpleTemplateResponse( - "admin/invalid_setup.html", - { - "title": _("Database error"), - }, - ) - return HttpResponseRedirect(request.path + "?" + ERROR_FLAG + "=1") - - # If the request was POSTed, this might be a bulk action or a bulk - # edit. Try to look up an action or confirmation first, but if this - # isn't an action the POST will fall through to the bulk edit check, - # below. - action_failed = False - selected = request.POST.getlist(helpers.ACTION_CHECKBOX_NAME) - - actions = self.get_actions(request) - # Actions with no confirmation - if ( - actions - and request.method == "POST" - and "index" in request.POST - and "_save" not in request.POST - ): - if selected: - response = self.response_action( - request, queryset=cl.get_queryset(request) - ) - if response: - return response - else: - action_failed = True - else: - msg = _( - "Items must be selected in order to perform " - "actions on them. No items have been changed." - ) - self.message_user(request, msg, messages.WARNING) - action_failed = True - - # Actions with confirmation - if ( - actions - and request.method == "POST" - and helpers.ACTION_CHECKBOX_NAME in request.POST - and "index" not in request.POST - and "_save" not in request.POST - ): - if selected: - response = self.response_action( - request, queryset=cl.get_queryset(request) - ) - if response: - return response - else: - action_failed = True - - if action_failed: - # Redirect back to the changelist page to avoid resubmitting the - # form if the user refreshes the browser or uses the "No, take - # me back" button on the action confirmation page. - return HttpResponseRedirect(request.get_full_path()) - - # If we're allowing changelist editing, we need to construct a formset - # for the changelist given all the fields to be edited. Then we'll - # use the formset to validate/process POSTed data. - formset = cl.formset = None - - # Handle POSTed bulk-edit data. - if request.method == "POST" and cl.list_editable and "_save" in request.POST: - if not self.has_change_permission(request): - raise PermissionDenied - FormSet = self.get_changelist_formset(request) - modified_objects = self._get_list_editable_queryset( - request, FormSet.get_default_prefix() - ) - formset = cl.formset = FormSet( - request.POST, request.FILES, queryset=modified_objects - ) - if formset.is_valid(): - changecount = 0 - with transaction.atomic(using=router.db_for_write(self.model)): - for form in formset.forms: - if form.has_changed(): - obj = self.save_form(request, form, change=True) - self.save_model(request, obj, form, change=True) - self.save_related(request, form, formsets=[], change=True) - change_msg = self.construct_change_message( - request, form, None - ) - self.log_change(request, obj, change_msg) - changecount += 1 - if changecount: - msg = ngettext( - "%(count)s %(name)s was changed successfully.", - "%(count)s %(name)s were changed successfully.", - changecount, - ) % { - "count": changecount, - "name": model_ngettext(self.opts, changecount), - } - self.message_user(request, msg, messages.SUCCESS) - - return HttpResponseRedirect(request.get_full_path()) - - # Handle GET -- construct a formset for display. - elif cl.list_editable and self.has_change_permission(request): - FormSet = self.get_changelist_formset(request) - formset = cl.formset = FormSet(queryset=cl.result_list) - - # Build the list of media to be used by the formset. - if formset: - media = self.media + formset.media - else: - media = self.media - - # Build the action form and populate it with available actions. - if actions: - action_form = self.action_form(auto_id=None) - action_form.fields["action"].choices = self.get_action_choices(request) - media += action_form.media - else: - action_form = None - - selection_note_all = ngettext( - "%(total_count)s selected", "All %(total_count)s selected", cl.result_count - ) - - context = { - **self.admin_site.each_context(request), - "module_name": str(self.opts.verbose_name_plural), - "selection_note": _("0 of %(cnt)s selected") % {"cnt": len(cl.result_list)}, - "selection_note_all": selection_note_all % {"total_count": cl.result_count}, - "title": cl.title, - "subtitle": None, - "is_popup": cl.is_popup, - "to_field": cl.to_field, - "cl": cl, - "media": media, - "has_add_permission": self.has_add_permission(request), - "opts": cl.opts, - "action_form": action_form, - "actions_on_top": self.actions_on_top, - "actions_on_bottom": self.actions_on_bottom, - "actions_selection_counter": self.actions_selection_counter, - "preserved_filters": self.get_preserved_filters(request), - **(extra_context or {}), - } - - request.current_app = self.admin_site.name - - return TemplateResponse( - request, - self.change_list_template - or [ - "admin/%s/%s/change_list.html" % (app_label, self.opts.model_name), - "admin/%s/change_list.html" % app_label, - "admin/change_list.html", - ], - context, - ) - - def get_deleted_objects(self, objs, request): - """ - Hook for customizing the delete process for the delete view and the - "delete selected" action. - """ - return get_deleted_objects(objs, request, self.admin_site) - - @csrf_protect_m - def delete_view(self, request, object_id, extra_context=None): - with transaction.atomic(using=router.db_for_write(self.model)): - return self._delete_view(request, object_id, extra_context) - - def _delete_view(self, request, object_id, extra_context): - "The 'delete' admin view for this model." - app_label = self.opts.app_label - - to_field = request.POST.get(TO_FIELD_VAR, request.GET.get(TO_FIELD_VAR)) - if to_field and not self.to_field_allowed(request, to_field): - raise DisallowedModelAdminToField( - "The field %s cannot be referenced." % to_field - ) - - obj = self.get_object(request, unquote(object_id), to_field) - - if not self.has_delete_permission(request, obj): - raise PermissionDenied - - if obj is None: - return self._get_obj_does_not_exist_redirect(request, self.opts, object_id) - - # Populate deleted_objects, a data structure of all related objects that - # will also be deleted. - ( - deleted_objects, - model_count, - perms_needed, - protected, - ) = self.get_deleted_objects([obj], request) - - if request.POST and not protected: # The user has confirmed the deletion. - if perms_needed: - raise PermissionDenied - obj_display = str(obj) - attr = str(to_field) if to_field else self.opts.pk.attname - obj_id = obj.serializable_value(attr) - self.log_deletion(request, obj, obj_display) - self.delete_model(request, obj) - - return self.response_delete(request, obj_display, obj_id) - - object_name = str(self.opts.verbose_name) - - if perms_needed or protected: - title = _("Cannot delete %(name)s") % {"name": object_name} - else: - title = _("Are you sure?") - - context = { - **self.admin_site.each_context(request), - "title": title, - "subtitle": None, - "object_name": object_name, - "object": obj, - "deleted_objects": deleted_objects, - "model_count": dict(model_count).items(), - "perms_lacking": perms_needed, - "protected": protected, - "opts": self.opts, - "app_label": app_label, - "preserved_filters": self.get_preserved_filters(request), - "is_popup": IS_POPUP_VAR in request.POST or IS_POPUP_VAR in request.GET, - "to_field": to_field, - **(extra_context or {}), - } - - return self.render_delete_form(request, context) - - def history_view(self, request, object_id, extra_context=None): - "The 'history' admin view for this model." - from django.contrib.admin.models import LogEntry - from django.contrib.admin.views.main import PAGE_VAR - - # First check if the user can see this history. - model = self.model - obj = self.get_object(request, unquote(object_id)) - if obj is None: - return self._get_obj_does_not_exist_redirect( - request, model._meta, object_id - ) - - if not self.has_view_or_change_permission(request, obj): - raise PermissionDenied - - # Then get the history for this object. - app_label = self.opts.app_label - action_list = ( - LogEntry.objects.filter( - object_id=unquote(object_id), - content_type=get_content_type_for_model(model), - ) - .select_related() - .order_by("action_time") - ) - - paginator = self.get_paginator(request, action_list, 100) - page_number = request.GET.get(PAGE_VAR, 1) - page_obj = paginator.get_page(page_number) - page_range = paginator.get_elided_page_range(page_obj.number) - - context = { - **self.admin_site.each_context(request), - "title": _("Change history: %s") % obj, - "subtitle": None, - "action_list": page_obj, - "page_range": page_range, - "page_var": PAGE_VAR, - "pagination_required": paginator.count > 100, - "module_name": str(capfirst(self.opts.verbose_name_plural)), - "object": obj, - "opts": self.opts, - "preserved_filters": self.get_preserved_filters(request), - **(extra_context or {}), - } - - request.current_app = self.admin_site.name - - return TemplateResponse( - request, - self.object_history_template - or [ - "admin/%s/%s/object_history.html" % (app_label, self.opts.model_name), - "admin/%s/object_history.html" % app_label, - "admin/object_history.html", - ], - context, - ) - - def get_formset_kwargs(self, request, obj, inline, prefix): - formset_params = { - "instance": obj, - "prefix": prefix, - "queryset": inline.get_queryset(request), - } - if request.method == "POST": - formset_params.update( - { - "data": request.POST.copy(), - "files": request.FILES, - "save_as_new": "_saveasnew" in request.POST, - } - ) - return formset_params - - def _create_formsets(self, request, obj, change): - "Helper function to generate formsets for add/change_view." - formsets = [] - inline_instances = [] - prefixes = {} - get_formsets_args = [request] - if change: - get_formsets_args.append(obj) - for FormSet, inline in self.get_formsets_with_inlines(*get_formsets_args): - prefix = FormSet.get_default_prefix() - prefixes[prefix] = prefixes.get(prefix, 0) + 1 - if prefixes[prefix] != 1 or not prefix: - prefix = "%s-%s" % (prefix, prefixes[prefix]) - formset_params = self.get_formset_kwargs(request, obj, inline, prefix) - formset = FormSet(**formset_params) - - def user_deleted_form(request, obj, formset, index, inline): - """Return whether or not the user deleted the form.""" - return ( - inline.has_delete_permission(request, obj) - and "{}-{}-DELETE".format(formset.prefix, index) in request.POST - ) - - # Bypass validation of each view-only inline form (since the form's - # data won't be in request.POST), unless the form was deleted. - if not inline.has_change_permission(request, obj if change else None): - for index, form in enumerate(formset.initial_forms): - if user_deleted_form(request, obj, formset, index, inline): - continue - form._errors = {} - form.cleaned_data = form.initial - formsets.append(formset) - inline_instances.append(inline) - return formsets, inline_instances - - -class InlineModelAdmin(BaseModelAdmin): - """ - Options for inline editing of ``model`` instances. - - Provide ``fk_name`` to specify the attribute name of the ``ForeignKey`` - from ``model`` to its parent. This is required if ``model`` has more than - one ``ForeignKey`` to its parent. - """ - - model = None - fk_name = None - formset = BaseInlineFormSet - extra = 3 - min_num = None - max_num = None - template = None - verbose_name = None - verbose_name_plural = None - can_delete = True - show_change_link = False - checks_class = InlineModelAdminChecks - classes = None - - def __init__(self, parent_model, admin_site): - self.admin_site = admin_site - self.parent_model = parent_model - self.opts = self.model._meta - self.has_registered_model = admin_site.is_registered(self.model) - super().__init__() - if self.verbose_name_plural is None: - if self.verbose_name is None: - self.verbose_name_plural = self.opts.verbose_name_plural - else: - self.verbose_name_plural = format_lazy("{}s", self.verbose_name) - if self.verbose_name is None: - self.verbose_name = self.opts.verbose_name - - @property - def media(self): - extra = "" if settings.DEBUG else ".min" - js = ["vendor/jquery/jquery%s.js" % extra, "jquery.init.js", "inlines.js"] - if self.filter_vertical or self.filter_horizontal: - js.extend(["SelectBox.js", "SelectFilter2.js"]) - if self.classes and "collapse" in self.classes: - js.append("collapse.js") - return forms.Media(js=["admin/js/%s" % url for url in js]) - - def get_extra(self, request, obj=None, **kwargs): - """Hook for customizing the number of extra inline forms.""" - return self.extra - - def get_min_num(self, request, obj=None, **kwargs): - """Hook for customizing the min number of inline forms.""" - return self.min_num - - def get_max_num(self, request, obj=None, **kwargs): - """Hook for customizing the max number of extra inline forms.""" - return self.max_num - - def get_formset(self, request, obj=None, **kwargs): - """Return a BaseInlineFormSet class for use in admin add/change views.""" - if "fields" in kwargs: - fields = kwargs.pop("fields") - else: - fields = flatten_fieldsets(self.get_fieldsets(request, obj)) - excluded = self.get_exclude(request, obj) - exclude = [] if excluded is None else list(excluded) - exclude.extend(self.get_readonly_fields(request, obj)) - if excluded is None and hasattr(self.form, "_meta") and self.form._meta.exclude: - # Take the custom ModelForm's Meta.exclude into account only if the - # InlineModelAdmin doesn't define its own. - exclude.extend(self.form._meta.exclude) - # If exclude is an empty list we use None, since that's the actual - # default. - exclude = exclude or None - can_delete = self.can_delete and self.has_delete_permission(request, obj) - defaults = { - "form": self.form, - "formset": self.formset, - "fk_name": self.fk_name, - "fields": fields, - "exclude": exclude, - "formfield_callback": partial(self.formfield_for_dbfield, request=request), - "extra": self.get_extra(request, obj, **kwargs), - "min_num": self.get_min_num(request, obj, **kwargs), - "max_num": self.get_max_num(request, obj, **kwargs), - "can_delete": can_delete, - **kwargs, - } - - base_model_form = defaults["form"] - can_change = self.has_change_permission(request, obj) if request else True - can_add = self.has_add_permission(request, obj) if request else True - - class DeleteProtectedModelForm(base_model_form): - def hand_clean_DELETE(self): - """ - We don't validate the 'DELETE' field itself because on - templates it's not rendered using the field information, but - just using a generic "deletion_field" of the InlineModelAdmin. - """ - if self.cleaned_data.get(DELETION_FIELD_NAME, False): - using = router.db_for_write(self._meta.model) - collector = NestedObjects(using=using) - if self.instance._state.adding: - return - collector.collect([self.instance]) - if collector.protected: - objs = [] - for p in collector.protected: - objs.append( - # Translators: Model verbose name and instance - # representation, suitable to be an item in a - # list. - _("%(class_name)s %(instance)s") - % {"class_name": p._meta.verbose_name, "instance": p} - ) - params = { - "class_name": self._meta.model._meta.verbose_name, - "instance": self.instance, - "related_objects": get_text_list(objs, _("and")), - } - msg = _( - "Deleting %(class_name)s %(instance)s would require " - "deleting the following protected related objects: " - "%(related_objects)s" - ) - raise ValidationError( - msg, code="deleting_protected", params=params - ) - - def is_valid(self): - result = super().is_valid() - self.hand_clean_DELETE() - return result - - def has_changed(self): - # Protect against unauthorized edits. - if not can_change and not self.instance._state.adding: - return False - if not can_add and self.instance._state.adding: - return False - return super().has_changed() - - defaults["form"] = DeleteProtectedModelForm - - if defaults["fields"] is None and not modelform_defines_fields( - defaults["form"] - ): - defaults["fields"] = forms.ALL_FIELDS - - return inlineformset_factory(self.parent_model, self.model, **defaults) - - def _get_form_for_get_fields(self, request, obj=None): - return self.get_formset(request, obj, fields=None).form - - def get_queryset(self, request): - queryset = super().get_queryset(request) - if not self.has_view_or_change_permission(request): - queryset = queryset.none() - return queryset - - def _has_any_perms_for_target_model(self, request, perms): - """ - This method is called only when the ModelAdmin's model is for an - ManyToManyField's implicit through model (if self.opts.auto_created). - Return True if the user has any of the given permissions ('add', - 'change', etc.) for the model that points to the through model. - """ - opts = self.opts - # Find the target model of an auto-created many-to-many relationship. - for field in opts.fields: - if field.remote_field and field.remote_field.model != self.parent_model: - opts = field.remote_field.model._meta - break - return any( - request.user.has_perm( - "%s.%s" % (opts.app_label, get_permission_codename(perm, opts)) - ) - for perm in perms - ) - - def has_add_permission(self, request, obj): - if self.opts.auto_created: - # Auto-created intermediate models don't have their own - # permissions. The user needs to have the change permission for the - # related model in order to be able to do anything with the - # intermediate model. - return self._has_any_perms_for_target_model(request, ["change"]) - return super().has_add_permission(request) - - def has_change_permission(self, request, obj=None): - if self.opts.auto_created: - # Same comment as has_add_permission(). - return self._has_any_perms_for_target_model(request, ["change"]) - return super().has_change_permission(request) - - def has_delete_permission(self, request, obj=None): - if self.opts.auto_created: - # Same comment as has_add_permission(). - return self._has_any_perms_for_target_model(request, ["change"]) - return super().has_delete_permission(request, obj) - - def has_view_permission(self, request, obj=None): - if self.opts.auto_created: - # Same comment as has_add_permission(). The 'change' permission - # also implies the 'view' permission. - return self._has_any_perms_for_target_model(request, ["view", "change"]) - return super().has_view_permission(request) - - -class StackedInline(InlineModelAdmin): - template = "admin/edit_inline/stacked.html" - - -class TabularInline(InlineModelAdmin): - template = "admin/edit_inline/tabular.html" diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/sites.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/sites.py deleted file mode 100644 index 47a2560..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/sites.py +++ /dev/null @@ -1,606 +0,0 @@ -import re -from functools import update_wrapper -from weakref import WeakSet - -from django.apps import apps -from django.conf import settings -from django.contrib.admin import ModelAdmin, actions -from django.contrib.admin.views.autocomplete import AutocompleteJsonView -from django.contrib.auth import REDIRECT_FIELD_NAME -from django.core.exceptions import ImproperlyConfigured -from django.db.models.base import ModelBase -from django.http import Http404, HttpResponsePermanentRedirect, HttpResponseRedirect -from django.template.response import TemplateResponse -from django.urls import NoReverseMatch, Resolver404, resolve, reverse -from django.utils.decorators import method_decorator -from django.utils.functional import LazyObject -from django.utils.module_loading import import_string -from django.utils.text import capfirst -from django.utils.translation import gettext as _ -from django.utils.translation import gettext_lazy -from django.views.decorators.cache import never_cache -from django.views.decorators.common import no_append_slash -from django.views.decorators.csrf import csrf_protect -from django.views.i18n import JavaScriptCatalog - -all_sites = WeakSet() - - -class AlreadyRegistered(Exception): - pass - - -class NotRegistered(Exception): - pass - - -class AdminSite: - """ - An AdminSite object encapsulates an instance of the Django admin application, ready - to be hooked in to your URLconf. Models are registered with the AdminSite using the - register() method, and the get_urls() method can then be used to access Django view - functions that present a full admin interface for the collection of registered - models. - """ - - # Text to put at the end of each page's . - site_title = gettext_lazy("Django site admin") - - # Text to put in each page's <h1>. - site_header = gettext_lazy("Django administration") - - # Text to put at the top of the admin index page. - index_title = gettext_lazy("Site administration") - - # URL for the "View site" link at the top of each admin page. - site_url = "/" - - enable_nav_sidebar = True - - empty_value_display = "-" - - login_form = None - index_template = None - app_index_template = None - login_template = None - logout_template = None - password_change_template = None - password_change_done_template = None - - final_catch_all_view = True - - def __init__(self, name="admin"): - self._registry = {} # model_class class -> admin_class instance - self.name = name - self._actions = {"delete_selected": actions.delete_selected} - self._global_actions = self._actions.copy() - all_sites.add(self) - - def __repr__(self): - return f"{self.__class__.__name__}(name={self.name!r})" - - def check(self, app_configs): - """ - Run the system checks on all ModelAdmins, except if they aren't - customized at all. - """ - if app_configs is None: - app_configs = apps.get_app_configs() - app_configs = set(app_configs) # Speed up lookups below - - errors = [] - modeladmins = ( - o for o in self._registry.values() if o.__class__ is not ModelAdmin - ) - for modeladmin in modeladmins: - if modeladmin.model._meta.app_config in app_configs: - errors.extend(modeladmin.check()) - return errors - - def register(self, model_or_iterable, admin_class=None, **options): - """ - Register the given model(s) with the given admin class. - - The model(s) should be Model classes, not instances. - - If an admin class isn't given, use ModelAdmin (the default admin - options). If keyword arguments are given -- e.g., list_display -- - apply them as options to the admin class. - - If a model is already registered, raise AlreadyRegistered. - - If a model is abstract, raise ImproperlyConfigured. - """ - admin_class = admin_class or ModelAdmin - if isinstance(model_or_iterable, ModelBase): - model_or_iterable = [model_or_iterable] - for model in model_or_iterable: - if model._meta.abstract: - raise ImproperlyConfigured( - "The model %s is abstract, so it cannot be registered with admin." - % model.__name__ - ) - - if model in self._registry: - registered_admin = str(self._registry[model]) - msg = "The model %s is already registered " % model.__name__ - if registered_admin.endswith(".ModelAdmin"): - # Most likely registered without a ModelAdmin subclass. - msg += "in app %r." % re.sub(r"\.ModelAdmin$", "", registered_admin) - else: - msg += "with %r." % registered_admin - raise AlreadyRegistered(msg) - - # Ignore the registration if the model has been - # swapped out. - if not model._meta.swapped: - # If we got **options then dynamically construct a subclass of - # admin_class with those **options. - if options: - # For reasons I don't quite understand, without a __module__ - # the created class appears to "live" in the wrong place, - # which causes issues later on. - options["__module__"] = __name__ - admin_class = type( - "%sAdmin" % model.__name__, (admin_class,), options - ) - - # Instantiate the admin class to save in the registry - self._registry[model] = admin_class(model, self) - - def unregister(self, model_or_iterable): - """ - Unregister the given model(s). - - If a model isn't already registered, raise NotRegistered. - """ - if isinstance(model_or_iterable, ModelBase): - model_or_iterable = [model_or_iterable] - for model in model_or_iterable: - if model not in self._registry: - raise NotRegistered("The model %s is not registered" % model.__name__) - del self._registry[model] - - def is_registered(self, model): - """ - Check if a model class is registered with this `AdminSite`. - """ - return model in self._registry - - def add_action(self, action, name=None): - """ - Register an action to be available globally. - """ - name = name or action.__name__ - self._actions[name] = action - self._global_actions[name] = action - - def disable_action(self, name): - """ - Disable a globally-registered action. Raise KeyError for invalid names. - """ - del self._actions[name] - - def get_action(self, name): - """ - Explicitly get a registered global action whether it's enabled or - not. Raise KeyError for invalid names. - """ - return self._global_actions[name] - - @property - def actions(self): - """ - Get all the enabled actions as an iterable of (name, func). - """ - return self._actions.items() - - def has_permission(self, request): - """ - Return True if the given HttpRequest has permission to view - *at least one* page in the admin site. - """ - return request.user.is_active and request.user.is_staff - - def admin_view(self, view, cacheable=False): - """ - Decorator to create an admin view attached to this ``AdminSite``. This - wraps the view and provides permission checking by calling - ``self.has_permission``. - - You'll want to use this from within ``AdminSite.get_urls()``: - - class MyAdminSite(AdminSite): - - def get_urls(self): - from django.urls import path - - urls = super().get_urls() - urls += [ - path('my_view/', self.admin_view(some_view)) - ] - return urls - - By default, admin_views are marked non-cacheable using the - ``never_cache`` decorator. If the view can be safely cached, set - cacheable=True. - """ - - def inner(request, *args, **kwargs): - if not self.has_permission(request): - if request.path == reverse("admin:logout", current_app=self.name): - index_path = reverse("admin:index", current_app=self.name) - return HttpResponseRedirect(index_path) - # Inner import to prevent django.contrib.admin (app) from - # importing django.contrib.auth.models.User (unrelated model). - from django.contrib.auth.views import redirect_to_login - - return redirect_to_login( - request.get_full_path(), - reverse("admin:login", current_app=self.name), - ) - return view(request, *args, **kwargs) - - if not cacheable: - inner = never_cache(inner) - # We add csrf_protect here so this function can be used as a utility - # function for any view, without having to repeat 'csrf_protect'. - if not getattr(view, "csrf_exempt", False): - inner = csrf_protect(inner) - return update_wrapper(inner, view) - - def get_urls(self): - # Since this module gets imported in the application's root package, - # it cannot import models from other applications at the module level, - # and django.contrib.contenttypes.views imports ContentType. - from django.contrib.contenttypes import views as contenttype_views - from django.urls import include, path, re_path - - def wrap(view, cacheable=False): - def wrapper(*args, **kwargs): - return self.admin_view(view, cacheable)(*args, **kwargs) - - wrapper.admin_site = self - return update_wrapper(wrapper, view) - - # Admin-site-wide views. - urlpatterns = [ - path("", wrap(self.index), name="index"), - path("login/", self.login, name="login"), - path("logout/", wrap(self.logout), name="logout"), - path( - "password_change/", - wrap(self.password_change, cacheable=True), - name="password_change", - ), - path( - "password_change/done/", - wrap(self.password_change_done, cacheable=True), - name="password_change_done", - ), - path("autocomplete/", wrap(self.autocomplete_view), name="autocomplete"), - path("jsi18n/", wrap(self.i18n_javascript, cacheable=True), name="jsi18n"), - path( - "r/<int:content_type_id>/<path:object_id>/", - wrap(contenttype_views.shortcut), - name="view_on_site", - ), - ] - - # Add in each model's views, and create a list of valid URLS for the - # app_index - valid_app_labels = [] - for model, model_admin in self._registry.items(): - urlpatterns += [ - path( - "%s/%s/" % (model._meta.app_label, model._meta.model_name), - include(model_admin.urls), - ), - ] - if model._meta.app_label not in valid_app_labels: - valid_app_labels.append(model._meta.app_label) - - # If there were ModelAdmins registered, we should have a list of app - # labels for which we need to allow access to the app_index view, - if valid_app_labels: - regex = r"^(?P<app_label>" + "|".join(valid_app_labels) + ")/$" - urlpatterns += [ - re_path(regex, wrap(self.app_index), name="app_list"), - ] - - if self.final_catch_all_view: - urlpatterns.append(re_path(r"(?P<url>.*)$", wrap(self.catch_all_view))) - - return urlpatterns - - @property - def urls(self): - return self.get_urls(), "admin", self.name - - def each_context(self, request): - """ - Return a dictionary of variables to put in the template context for - *every* page in the admin site. - - For sites running on a subpath, use the SCRIPT_NAME value if site_url - hasn't been customized. - """ - script_name = request.META["SCRIPT_NAME"] - site_url = ( - script_name if self.site_url == "/" and script_name else self.site_url - ) - return { - "site_title": self.site_title, - "site_header": self.site_header, - "site_url": site_url, - "has_permission": self.has_permission(request), - "available_apps": self.get_app_list(request), - "is_popup": False, - "is_nav_sidebar_enabled": self.enable_nav_sidebar, - } - - def password_change(self, request, extra_context=None): - """ - Handle the "change password" task -- both form display and validation. - """ - from django.contrib.admin.forms import AdminPasswordChangeForm - from django.contrib.auth.views import PasswordChangeView - - url = reverse("admin:password_change_done", current_app=self.name) - defaults = { - "form_class": AdminPasswordChangeForm, - "success_url": url, - "extra_context": {**self.each_context(request), **(extra_context or {})}, - } - if self.password_change_template is not None: - defaults["template_name"] = self.password_change_template - request.current_app = self.name - return PasswordChangeView.as_view(**defaults)(request) - - def password_change_done(self, request, extra_context=None): - """ - Display the "success" page after a password change. - """ - from django.contrib.auth.views import PasswordChangeDoneView - - defaults = { - "extra_context": {**self.each_context(request), **(extra_context or {})}, - } - if self.password_change_done_template is not None: - defaults["template_name"] = self.password_change_done_template - request.current_app = self.name - return PasswordChangeDoneView.as_view(**defaults)(request) - - def i18n_javascript(self, request, extra_context=None): - """ - Display the i18n JavaScript that the Django admin requires. - - `extra_context` is unused but present for consistency with the other - admin views. - """ - return JavaScriptCatalog.as_view(packages=["django.contrib.admin"])(request) - - def logout(self, request, extra_context=None): - """ - Log out the user for the given HttpRequest. - - This should *not* assume the user is already logged in. - """ - from django.contrib.auth.views import LogoutView - - defaults = { - "extra_context": { - **self.each_context(request), - # Since the user isn't logged out at this point, the value of - # has_permission must be overridden. - "has_permission": False, - **(extra_context or {}), - }, - } - if self.logout_template is not None: - defaults["template_name"] = self.logout_template - request.current_app = self.name - return LogoutView.as_view(**defaults)(request) - - @method_decorator(never_cache) - def login(self, request, extra_context=None): - """ - Display the login form for the given HttpRequest. - """ - if request.method == "GET" and self.has_permission(request): - # Already logged-in, redirect to admin index - index_path = reverse("admin:index", current_app=self.name) - return HttpResponseRedirect(index_path) - - # Since this module gets imported in the application's root package, - # it cannot import models from other applications at the module level, - # and django.contrib.admin.forms eventually imports User. - from django.contrib.admin.forms import AdminAuthenticationForm - from django.contrib.auth.views import LoginView - - context = { - **self.each_context(request), - "title": _("Log in"), - "subtitle": None, - "app_path": request.get_full_path(), - "username": request.user.get_username(), - } - if ( - REDIRECT_FIELD_NAME not in request.GET - and REDIRECT_FIELD_NAME not in request.POST - ): - context[REDIRECT_FIELD_NAME] = reverse("admin:index", current_app=self.name) - context.update(extra_context or {}) - - defaults = { - "extra_context": context, - "authentication_form": self.login_form or AdminAuthenticationForm, - "template_name": self.login_template or "admin/login.html", - } - request.current_app = self.name - return LoginView.as_view(**defaults)(request) - - def autocomplete_view(self, request): - return AutocompleteJsonView.as_view(admin_site=self)(request) - - @no_append_slash - def catch_all_view(self, request, url): - if settings.APPEND_SLASH and not url.endswith("/"): - urlconf = getattr(request, "urlconf", None) - try: - match = resolve("%s/" % request.path_info, urlconf) - except Resolver404: - pass - else: - if getattr(match.func, "should_append_slash", True): - return HttpResponsePermanentRedirect("%s/" % request.path) - raise Http404 - - def _build_app_dict(self, request, label=None): - """ - Build the app dictionary. The optional `label` parameter filters models - of a specific app. - """ - app_dict = {} - - if label: - models = { - m: m_a - for m, m_a in self._registry.items() - if m._meta.app_label == label - } - else: - models = self._registry - - for model, model_admin in models.items(): - app_label = model._meta.app_label - - has_module_perms = model_admin.has_module_permission(request) - if not has_module_perms: - continue - - perms = model_admin.get_model_perms(request) - - # Check whether user has any perm for this module. - # If so, add the module to the model_list. - if True not in perms.values(): - continue - - info = (app_label, model._meta.model_name) - model_dict = { - "model": model, - "name": capfirst(model._meta.verbose_name_plural), - "object_name": model._meta.object_name, - "perms": perms, - "admin_url": None, - "add_url": None, - } - if perms.get("change") or perms.get("view"): - model_dict["view_only"] = not perms.get("change") - try: - model_dict["admin_url"] = reverse( - "admin:%s_%s_changelist" % info, current_app=self.name - ) - except NoReverseMatch: - pass - if perms.get("add"): - try: - model_dict["add_url"] = reverse( - "admin:%s_%s_add" % info, current_app=self.name - ) - except NoReverseMatch: - pass - - if app_label in app_dict: - app_dict[app_label]["models"].append(model_dict) - else: - app_dict[app_label] = { - "name": apps.get_app_config(app_label).verbose_name, - "app_label": app_label, - "app_url": reverse( - "admin:app_list", - kwargs={"app_label": app_label}, - current_app=self.name, - ), - "has_module_perms": has_module_perms, - "models": [model_dict], - } - - return app_dict - - def get_app_list(self, request, app_label=None): - """ - Return a sorted list of all the installed apps that have been - registered in this site. - """ - app_dict = self._build_app_dict(request, app_label) - - # Sort the apps alphabetically. - app_list = sorted(app_dict.values(), key=lambda x: x["name"].lower()) - - # Sort the models alphabetically within each app. - for app in app_list: - app["models"].sort(key=lambda x: x["name"]) - - return app_list - - def index(self, request, extra_context=None): - """ - Display the main admin index page, which lists all of the installed - apps that have been registered in this site. - """ - app_list = self.get_app_list(request) - - context = { - **self.each_context(request), - "title": self.index_title, - "subtitle": None, - "app_list": app_list, - **(extra_context or {}), - } - - request.current_app = self.name - - return TemplateResponse( - request, self.index_template or "admin/index.html", context - ) - - def app_index(self, request, app_label, extra_context=None): - app_list = self.get_app_list(request, app_label) - - if not app_list: - raise Http404("The requested admin page does not exist.") - - context = { - **self.each_context(request), - "title": _("%(app)s administration") % {"app": app_list[0]["name"]}, - "subtitle": None, - "app_list": app_list, - "app_label": app_label, - **(extra_context or {}), - } - - request.current_app = self.name - - return TemplateResponse( - request, - self.app_index_template - or ["admin/%s/app_index.html" % app_label, "admin/app_index.html"], - context, - ) - - -class DefaultAdminSite(LazyObject): - def _setup(self): - AdminSiteClass = import_string(apps.get_app_config("admin").default_site) - self._wrapped = AdminSiteClass() - - def __repr__(self): - return repr(self._wrapped) - - -# This global object represents the default admin site, for the common case. -# You can provide your own AdminSite using the (Simple)AdminConfig.default_site -# attribute. You can also instantiate AdminSite in your own code to create a -# custom admin site. -site = DefaultAdminSite() diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/autocomplete.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/autocomplete.css deleted file mode 100644 index 69c94e7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/autocomplete.css +++ /dev/null @@ -1,275 +0,0 @@ -select.admin-autocomplete { - width: 20em; -} - -.select2-container--admin-autocomplete.select2-container { - min-height: 30px; -} - -.select2-container--admin-autocomplete .select2-selection--single, -.select2-container--admin-autocomplete .select2-selection--multiple { - min-height: 30px; - padding: 0; -} - -.select2-container--admin-autocomplete.select2-container--focus .select2-selection, -.select2-container--admin-autocomplete.select2-container--open .select2-selection { - border-color: var(--body-quiet-color); - min-height: 30px; -} - -.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single, -.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single { - padding: 0; -} - -.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple, -.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple { - padding: 0; -} - -.select2-container--admin-autocomplete .select2-selection--single { - background-color: var(--body-bg); - border: 1px solid var(--border-color); - border-radius: 4px; -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { - color: var(--body-fg); - line-height: 30px; -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder { - color: var(--body-quiet-color); -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { - height: 26px; - position: absolute; - top: 1px; - right: 1px; - width: 20px; -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - height: 0; - left: 50%; - margin-left: -4px; - margin-top: -2px; - position: absolute; - top: 50%; - width: 0; -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear { - float: left; -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow { - left: 1px; - right: auto; -} - -.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single { - background-color: var(--darkened-bg); - cursor: default; -} - -.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear { - display: none; -} - -.select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; -} - -.select2-container--admin-autocomplete .select2-selection--multiple { - background-color: var(--body-bg); - border: 1px solid var(--border-color); - border-radius: 4px; - cursor: text; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered { - box-sizing: border-box; - list-style: none; - margin: 0; - padding: 0 10px 5px 5px; - width: 100%; - display: flex; - flex-wrap: wrap; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li { - list-style: none; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder { - color: var(--body-quiet-color); - margin-top: 5px; - float: left; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin: 5px; - position: absolute; - right: 0; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice { - background-color: var(--darkened-bg); - border: 1px solid var(--border-color); - border-radius: 4px; - cursor: default; - float: left; - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove { - color: var(--body-quiet-color); - cursor: pointer; - display: inline-block; - font-weight: bold; - margin-right: 2px; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover { - color: var(--body-fg); -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline { - float: right; -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - margin-left: 5px; - margin-right: auto; -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; -} - -.select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple { - border: solid var(--body-quiet-color) 1px; - outline: 0; -} - -.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple { - background-color: var(--darkened-bg); - cursor: default; -} - -.select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove { - display: none; -} - -.select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple { - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -.select2-container--admin-autocomplete .select2-search--dropdown { - background: var(--darkened-bg); -} - -.select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field { - background: var(--body-bg); - color: var(--body-fg); - border: 1px solid var(--border-color); - border-radius: 4px; -} - -.select2-container--admin-autocomplete .select2-search--inline .select2-search__field { - background: transparent; - color: var(--body-fg); - border: none; - outline: 0; - box-shadow: none; - -webkit-appearance: textfield; -} - -.select2-container--admin-autocomplete .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; - color: var(--body-fg); - background: var(--body-bg); -} - -.select2-container--admin-autocomplete .select2-results__option[role=group] { - padding: 0; -} - -.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { - color: var(--body-quiet-color); -} - -.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { - background-color: var(--selected-bg); - color: var(--body-fg); -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option { - padding-left: 1em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { - padding-left: 0; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { - margin-left: -1em; - padding-left: 2em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -2em; - padding-left: 3em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -3em; - padding-left: 4em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -4em; - padding-left: 5em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -5em; - padding-left: 6em; -} - -.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { - background-color: var(--primary); - color: var(--primary-fg); -} - -.select2-container--admin-autocomplete .select2-results__group { - cursor: default; - display: block; - padding: 6px; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/base.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/base.css deleted file mode 100644 index 93db7d0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/base.css +++ /dev/null @@ -1,1145 +0,0 @@ -/* - DJANGO Admin styles -*/ - -/* VARIABLE DEFINITIONS */ -html[data-theme="light"], -:root { - --primary: #79aec8; - --secondary: #417690; - --accent: #f5dd5d; - --primary-fg: #fff; - - --body-fg: #333; - --body-bg: #fff; - --body-quiet-color: #666; - --body-loud-color: #000; - - --header-color: #ffc; - --header-branding-color: var(--accent); - --header-bg: var(--secondary); - --header-link-color: var(--primary-fg); - - --breadcrumbs-fg: #c4dce8; - --breadcrumbs-link-fg: var(--body-bg); - --breadcrumbs-bg: var(--primary); - - --link-fg: #417893; - --link-hover-color: #036; - --link-selected-fg: #5b80b2; - - --hairline-color: #e8e8e8; - --border-color: #ccc; - - --error-fg: #ba2121; - - --message-success-bg: #dfd; - --message-warning-bg: #ffc; - --message-error-bg: #ffefef; - - --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */ - --selected-bg: #e4e4e4; /* E.g. selected table cells */ - --selected-row: #ffc; - - --button-fg: #fff; - --button-bg: var(--primary); - --button-hover-bg: #609ab6; - --default-button-bg: var(--secondary); - --default-button-hover-bg: #205067; - --close-button-bg: #747474; - --close-button-hover-bg: #333; - --delete-button-bg: #ba2121; - --delete-button-hover-bg: #a41515; - - --object-tools-fg: var(--button-fg); - --object-tools-bg: var(--close-button-bg); - --object-tools-hover-bg: var(--close-button-hover-bg); - - --font-family-primary: - -apple-system, - BlinkMacSystemFont, - "Segoe UI", - system-ui, - Roboto, - "Helvetica Neue", - Arial, - sans-serif, - "Apple Color Emoji", - "Segoe UI Emoji", - "Segoe UI Symbol", - "Noto Color Emoji"; - --font-family-monospace: - ui-monospace, - Menlo, - Monaco, - "Cascadia Mono", - "Segoe UI Mono", - "Roboto Mono", - "Oxygen Mono", - "Ubuntu Monospace", - "Source Code Pro", - "Fira Mono", - "Droid Sans Mono", - "Courier New", - monospace, - "Apple Color Emoji", - "Segoe UI Emoji", - "Segoe UI Symbol", - "Noto Color Emoji"; -} - -html, body { - height: 100%; -} - -body { - margin: 0; - padding: 0; - font-size: 0.875rem; - font-family: var(--font-family-primary); - color: var(--body-fg); - background: var(--body-bg); -} - -/* LINKS */ - -a:link, a:visited { - color: var(--link-fg); - text-decoration: none; - transition: color 0.15s, background 0.15s; -} - -a:focus, a:hover { - color: var(--link-hover-color); -} - -a:focus { - text-decoration: underline; -} - -a img { - border: none; -} - -a.section:link, a.section:visited { - color: var(--header-link-color); - text-decoration: none; -} - -a.section:focus, a.section:hover { - text-decoration: underline; -} - -/* GLOBAL DEFAULTS */ - -p, ol, ul, dl { - margin: .2em 0 .8em 0; -} - -p { - padding: 0; - line-height: 140%; -} - -h1,h2,h3,h4,h5 { - font-weight: bold; -} - -h1 { - margin: 0 0 20px; - font-weight: 300; - font-size: 1.25rem; - color: var(--body-quiet-color); -} - -h2 { - font-size: 1rem; - margin: 1em 0 .5em 0; -} - -h2.subhead { - font-weight: normal; - margin-top: 0; -} - -h3 { - font-size: 0.875rem; - margin: .8em 0 .3em 0; - color: var(--body-quiet-color); - font-weight: bold; -} - -h4 { - font-size: 0.75rem; - margin: 1em 0 .8em 0; - padding-bottom: 3px; -} - -h5 { - font-size: 0.625rem; - margin: 1.5em 0 .5em 0; - color: var(--body-quiet-color); - text-transform: uppercase; - letter-spacing: 1px; -} - -ul > li { - list-style-type: square; - padding: 1px 0; -} - -li ul { - margin-bottom: 0; -} - -li, dt, dd { - font-size: 0.8125rem; - line-height: 1.25rem; -} - -dt { - font-weight: bold; - margin-top: 4px; -} - -dd { - margin-left: 0; -} - -form { - margin: 0; - padding: 0; -} - -fieldset { - margin: 0; - min-width: 0; - padding: 0; - border: none; - border-top: 1px solid var(--hairline-color); -} - -blockquote { - font-size: 0.6875rem; - color: #777; - margin-left: 2px; - padding-left: 10px; - border-left: 5px solid #ddd; -} - -code, pre { - font-family: var(--font-family-monospace); - color: var(--body-quiet-color); - font-size: 0.75rem; - overflow-x: auto; -} - -pre.literal-block { - margin: 10px; - background: var(--darkened-bg); - padding: 6px 8px; -} - -code strong { - color: #930; -} - -hr { - clear: both; - color: var(--hairline-color); - background-color: var(--hairline-color); - height: 1px; - border: none; - margin: 0; - padding: 0; - line-height: 1px; -} - -/* TEXT STYLES & MODIFIERS */ - -.small { - font-size: 0.6875rem; -} - -.mini { - font-size: 0.625rem; -} - -.help, p.help, form p.help, div.help, form div.help, div.help li { - font-size: 0.6875rem; - color: var(--body-quiet-color); -} - -div.help ul { - margin-bottom: 0; -} - -.help-tooltip { - cursor: help; -} - -p img, h1 img, h2 img, h3 img, h4 img, td img { - vertical-align: middle; -} - -.quiet, a.quiet:link, a.quiet:visited { - color: var(--body-quiet-color); - font-weight: normal; -} - -.clear { - clear: both; -} - -.nowrap { - white-space: nowrap; -} - -.hidden { - display: none !important; -} - -/* TABLES */ - -table { - border-collapse: collapse; - border-color: var(--border-color); -} - -td, th { - font-size: 0.8125rem; - line-height: 1rem; - border-bottom: 1px solid var(--hairline-color); - vertical-align: top; - padding: 8px; -} - -th { - font-weight: 600; - text-align: left; -} - -thead th, -tfoot td { - color: var(--body-quiet-color); - padding: 5px 10px; - font-size: 0.6875rem; - background: var(--body-bg); - border: none; - border-top: 1px solid var(--hairline-color); - border-bottom: 1px solid var(--hairline-color); -} - -tfoot td { - border-bottom: none; - border-top: 1px solid var(--hairline-color); -} - -thead th.required { - color: var(--body-loud-color); -} - -tr.alt { - background: var(--darkened-bg); -} - -tr:nth-child(odd), .row-form-errors { - background: var(--body-bg); -} - -tr:nth-child(even), -tr:nth-child(even) .errorlist, -tr:nth-child(odd) + .row-form-errors, -tr:nth-child(odd) + .row-form-errors .errorlist { - background: var(--darkened-bg); -} - -/* SORTABLE TABLES */ - -thead th { - padding: 5px 10px; - line-height: normal; - text-transform: uppercase; - background: var(--darkened-bg); -} - -thead th a:link, thead th a:visited { - color: var(--body-quiet-color); -} - -thead th.sorted { - background: var(--selected-bg); -} - -thead th.sorted .text { - padding-right: 42px; -} - -table thead th .text span { - padding: 8px 10px; - display: block; -} - -table thead th .text a { - display: block; - cursor: pointer; - padding: 8px 10px; -} - -table thead th .text a:focus, table thead th .text a:hover { - background: var(--selected-bg); -} - -thead th.sorted a.sortremove { - visibility: hidden; -} - -table thead th.sorted:hover a.sortremove { - visibility: visible; -} - -table thead th.sorted .sortoptions { - display: block; - padding: 9px 5px 0 5px; - float: right; - text-align: right; -} - -table thead th.sorted .sortpriority { - font-size: .8em; - min-width: 12px; - text-align: center; - vertical-align: 3px; - margin-left: 2px; - margin-right: 2px; -} - -table thead th.sorted .sortoptions a { - position: relative; - width: 14px; - height: 14px; - display: inline-block; - background: url(../img/sorting-icons.svg) 0 0 no-repeat; - background-size: 14px auto; -} - -table thead th.sorted .sortoptions a.sortremove { - background-position: 0 0; -} - -table thead th.sorted .sortoptions a.sortremove:after { - content: '\\'; - position: absolute; - top: -6px; - left: 3px; - font-weight: 200; - font-size: 1.125rem; - color: var(--body-quiet-color); -} - -table thead th.sorted .sortoptions a.sortremove:focus:after, -table thead th.sorted .sortoptions a.sortremove:hover:after { - color: var(--link-fg); -} - -table thead th.sorted .sortoptions a.sortremove:focus, -table thead th.sorted .sortoptions a.sortremove:hover { - background-position: 0 -14px; -} - -table thead th.sorted .sortoptions a.ascending { - background-position: 0 -28px; -} - -table thead th.sorted .sortoptions a.ascending:focus, -table thead th.sorted .sortoptions a.ascending:hover { - background-position: 0 -42px; -} - -table thead th.sorted .sortoptions a.descending { - top: 1px; - background-position: 0 -56px; -} - -table thead th.sorted .sortoptions a.descending:focus, -table thead th.sorted .sortoptions a.descending:hover { - background-position: 0 -70px; -} - -/* FORM DEFAULTS */ - -input, textarea, select, .form-row p, form .button { - margin: 2px 0; - padding: 2px 3px; - vertical-align: middle; - font-family: var(--font-family-primary); - font-weight: normal; - font-size: 0.8125rem; -} -.form-row div.help { - padding: 2px 3px; -} - -textarea { - vertical-align: top; -} - -input[type=text], input[type=password], input[type=email], input[type=url], -input[type=number], input[type=tel], textarea, select, .vTextField { - border: 1px solid var(--border-color); - border-radius: 4px; - padding: 5px 6px; - margin-top: 0; - color: var(--body-fg); - background-color: var(--body-bg); -} - -input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, -input[type=url]:focus, input[type=number]:focus, input[type=tel]:focus, -textarea:focus, select:focus, .vTextField:focus { - border-color: var(--body-quiet-color); -} - -select { - height: 1.875rem; -} - -select[multiple] { - /* Allow HTML size attribute to override the height in the rule above. */ - height: auto; - min-height: 150px; -} - -/* FORM BUTTONS */ - -.button, input[type=submit], input[type=button], .submit-row input, a.button { - background: var(--button-bg); - padding: 10px 15px; - border: none; - border-radius: 4px; - color: var(--button-fg); - cursor: pointer; - transition: background 0.15s; -} - -a.button { - padding: 4px 5px; -} - -.button:active, input[type=submit]:active, input[type=button]:active, -.button:focus, input[type=submit]:focus, input[type=button]:focus, -.button:hover, input[type=submit]:hover, input[type=button]:hover { - background: var(--button-hover-bg); -} - -.button[disabled], input[type=submit][disabled], input[type=button][disabled] { - opacity: 0.4; -} - -.button.default, input[type=submit].default, .submit-row input.default { - border: none; - font-weight: 400; - background: var(--default-button-bg); -} - -.button.default:active, input[type=submit].default:active, -.button.default:focus, input[type=submit].default:focus, -.button.default:hover, input[type=submit].default:hover { - background: var(--default-button-hover-bg); -} - -.button[disabled].default, -input[type=submit][disabled].default, -input[type=button][disabled].default { - opacity: 0.4; -} - - -/* MODULES */ - -.module { - border: none; - margin-bottom: 30px; - background: var(--body-bg); -} - -.module p, .module ul, .module h3, .module h4, .module dl, .module pre { - padding-left: 10px; - padding-right: 10px; -} - -.module blockquote { - margin-left: 12px; -} - -.module ul, .module ol { - margin-left: 1.5em; -} - -.module h3 { - margin-top: .6em; -} - -.module h2, .module caption, .inline-group h2 { - margin: 0; - padding: 8px; - font-weight: 400; - font-size: 0.8125rem; - text-align: left; - background: var(--primary); - color: var(--header-link-color); -} - -.module caption, -.inline-group h2 { - font-size: 0.75rem; - letter-spacing: 0.5px; - text-transform: uppercase; -} - -.module table { - border-collapse: collapse; -} - -/* MESSAGES & ERRORS */ - -ul.messagelist { - padding: 0; - margin: 0; -} - -ul.messagelist li { - display: block; - font-weight: 400; - font-size: 0.8125rem; - padding: 10px 10px 10px 65px; - margin: 0 0 10px 0; - background: var(--message-success-bg) url(../img/icon-yes.svg) 40px 12px no-repeat; - background-size: 16px auto; - color: var(--body-fg); - word-break: break-word; -} - -ul.messagelist li.warning { - background: var(--message-warning-bg) url(../img/icon-alert.svg) 40px 14px no-repeat; - background-size: 14px auto; -} - -ul.messagelist li.error { - background: var(--message-error-bg) url(../img/icon-no.svg) 40px 12px no-repeat; - background-size: 16px auto; -} - -.errornote { - font-size: 0.875rem; - font-weight: 700; - display: block; - padding: 10px 12px; - margin: 0 0 10px 0; - color: var(--error-fg); - border: 1px solid var(--error-fg); - border-radius: 4px; - background-color: var(--body-bg); - background-position: 5px 12px; - overflow-wrap: break-word; -} - -ul.errorlist { - margin: 0 0 4px; - padding: 0; - color: var(--error-fg); - background: var(--body-bg); -} - -ul.errorlist li { - font-size: 0.8125rem; - display: block; - margin-bottom: 4px; - overflow-wrap: break-word; -} - -ul.errorlist li:first-child { - margin-top: 0; -} - -ul.errorlist li a { - color: inherit; - text-decoration: underline; -} - -td ul.errorlist { - margin: 0; - padding: 0; -} - -td ul.errorlist li { - margin: 0; -} - -.form-row.errors { - margin: 0; - border: none; - border-bottom: 1px solid var(--hairline-color); - background: none; -} - -.form-row.errors ul.errorlist li { - padding-left: 0; -} - -.errors input, .errors select, .errors textarea, -td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { - border: 1px solid var(--error-fg); -} - -.description { - font-size: 0.75rem; - padding: 5px 0 0 12px; -} - -/* BREADCRUMBS */ - -div.breadcrumbs { - background: var(--breadcrumbs-bg); - padding: 10px 40px; - border: none; - color: var(--breadcrumbs-fg); - text-align: left; -} - -div.breadcrumbs a { - color: var(--breadcrumbs-link-fg); -} - -div.breadcrumbs a:focus, div.breadcrumbs a:hover { - color: var(--breadcrumbs-fg); -} - -/* ACTION ICONS */ - -.viewlink, .inlineviewlink { - padding-left: 16px; - background: url(../img/icon-viewlink.svg) 0 1px no-repeat; -} - -.addlink { - padding-left: 16px; - background: url(../img/icon-addlink.svg) 0 1px no-repeat; -} - -.changelink, .inlinechangelink { - padding-left: 16px; - background: url(../img/icon-changelink.svg) 0 1px no-repeat; -} - -.deletelink { - padding-left: 16px; - background: url(../img/icon-deletelink.svg) 0 1px no-repeat; -} - -a.deletelink:link, a.deletelink:visited { - color: #CC3434; /* XXX Probably unused? */ -} - -a.deletelink:focus, a.deletelink:hover { - color: #993333; /* XXX Probably unused? */ - text-decoration: none; -} - -/* OBJECT TOOLS */ - -.object-tools { - font-size: 0.625rem; - font-weight: bold; - padding-left: 0; - float: right; - position: relative; - margin-top: -48px; -} - -.object-tools li { - display: block; - float: left; - margin-left: 5px; - height: 1rem; -} - -.object-tools a { - border-radius: 15px; -} - -.object-tools a:link, .object-tools a:visited { - display: block; - float: left; - padding: 3px 12px; - background: var(--object-tools-bg); - color: var(--object-tools-fg); - font-weight: 400; - font-size: 0.6875rem; - text-transform: uppercase; - letter-spacing: 0.5px; -} - -.object-tools a:focus, .object-tools a:hover { - background-color: var(--object-tools-hover-bg); -} - -.object-tools a:focus{ - text-decoration: none; -} - -.object-tools a.viewsitelink, .object-tools a.addlink { - background-repeat: no-repeat; - background-position: right 7px center; - padding-right: 26px; -} - -.object-tools a.viewsitelink { - background-image: url(../img/tooltag-arrowright.svg); -} - -.object-tools a.addlink { - background-image: url(../img/tooltag-add.svg); -} - -/* OBJECT HISTORY */ - -#change-history table { - width: 100%; -} - -#change-history table tbody th { - width: 16em; -} - -#change-history .paginator { - color: var(--body-quiet-color); - border-bottom: 1px solid var(--hairline-color); - background: var(--body-bg); - overflow: hidden; -} - -/* PAGE STRUCTURE */ - -#container { - position: relative; - width: 100%; - min-width: 980px; - padding: 0; - display: flex; - flex-direction: column; - height: 100%; -} - -#container > div { - flex-shrink: 0; -} - -#container > .main { - display: flex; - flex: 1 0 auto; -} - -.main > .content { - flex: 1 0; - max-width: 100%; -} - -.skip-to-content-link { - position: absolute; - top: -999px; - margin: 5px; - padding: 5px; - background: var(--body-bg); - z-index: 1; -} - -.skip-to-content-link:focus { - left: 0px; - top: 0px; -} - -#content { - padding: 20px 40px; -} - -.dashboard #content { - width: 600px; -} - -#content-main { - float: left; - width: 100%; -} - -#content-related { - float: right; - width: 260px; - position: relative; - margin-right: -300px; -} - -#footer { - clear: both; - padding: 10px; -} - -/* COLUMN TYPES */ - -.colMS { - margin-right: 300px; -} - -.colSM { - margin-left: 300px; -} - -.colSM #content-related { - float: left; - margin-right: 0; - margin-left: -300px; -} - -.colSM #content-main { - float: right; -} - -.popup .colM { - width: auto; -} - -/* HEADER */ - -#header { - width: auto; - height: auto; - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px 40px; - background: var(--header-bg); - color: var(--header-color); - overflow: hidden; -} - -#header a:link, #header a:visited, #logout-form button { - color: var(--header-link-color); -} - -#header a:focus , #header a:hover { - text-decoration: underline; -} - -#branding { - display: flex; -} - -#branding h1 { - padding: 0; - margin: 0; - margin-inline-end: 20px; - font-weight: 300; - font-size: 1.5rem; - color: var(--header-branding-color); -} - -#branding h1 a:link, #branding h1 a:visited { - color: var(--accent); -} - -#branding h2 { - padding: 0 10px; - font-size: 0.875rem; - margin: -8px 0 8px 0; - font-weight: normal; - color: var(--header-color); -} - -#branding a:hover { - text-decoration: none; -} - -#logout-form { - display: inline; -} - -#logout-form button { - background: none; - border: 0; - cursor: pointer; - font-family: var(--font-family-primary); -} - -#user-tools { - float: right; - margin: 0 0 0 20px; - text-align: right; -} - -#user-tools, #logout-form button{ - padding: 0; - font-weight: 300; - font-size: 0.6875rem; - letter-spacing: 0.5px; - text-transform: uppercase; -} - -#user-tools a, #logout-form button { - border-bottom: 1px solid rgba(255, 255, 255, 0.25); -} - -#user-tools a:focus, #user-tools a:hover, -#logout-form button:active, #logout-form button:hover { - text-decoration: none; - border-bottom: 0; -} - -#logout-form button:active, #logout-form button:hover { - margin-bottom: 1px; -} - -/* SIDEBAR */ - -#content-related { - background: var(--darkened-bg); -} - -#content-related .module { - background: none; -} - -#content-related h3 { - color: var(--body-quiet-color); - padding: 0 16px; - margin: 0 0 16px; -} - -#content-related h4 { - font-size: 0.8125rem; -} - -#content-related p { - padding-left: 16px; - padding-right: 16px; -} - -#content-related .actionlist { - padding: 0; - margin: 16px; -} - -#content-related .actionlist li { - line-height: 1.2; - margin-bottom: 10px; - padding-left: 18px; -} - -#content-related .module h2 { - background: none; - padding: 16px; - margin-bottom: 16px; - border-bottom: 1px solid var(--hairline-color); - font-size: 1.125rem; - color: var(--body-fg); -} - -.delete-confirmation form input[type="submit"] { - background: var(--delete-button-bg); - border-radius: 4px; - padding: 10px 15px; - color: var(--button-fg); -} - -.delete-confirmation form input[type="submit"]:active, -.delete-confirmation form input[type="submit"]:focus, -.delete-confirmation form input[type="submit"]:hover { - background: var(--delete-button-hover-bg); -} - -.delete-confirmation form .cancel-link { - display: inline-block; - vertical-align: middle; - height: 0.9375rem; - line-height: 0.9375rem; - border-radius: 4px; - padding: 10px 15px; - color: var(--button-fg); - background: var(--close-button-bg); - margin: 0 0 0 10px; -} - -.delete-confirmation form .cancel-link:active, -.delete-confirmation form .cancel-link:focus, -.delete-confirmation form .cancel-link:hover { - background: var(--close-button-hover-bg); -} - -/* POPUP */ -.popup #content { - padding: 20px; -} - -.popup #container { - min-width: 0; -} - -.popup #header { - padding: 10px 20px; -} - -/* PAGINATOR */ - -.paginator { - display: flex; - align-items: center; - gap: 4px; - font-size: 0.8125rem; - padding-top: 10px; - padding-bottom: 10px; - line-height: 22px; - margin: 0; - border-top: 1px solid var(--hairline-color); - width: 100%; -} - -.paginator a:link, .paginator a:visited { - padding: 2px 6px; - background: var(--button-bg); - text-decoration: none; - color: var(--button-fg); -} - -.paginator a.showall { - border: none; - background: none; - color: var(--link-fg); -} - -.paginator a.showall:focus, .paginator a.showall:hover { - background: none; - color: var(--link-hover-color); -} - -.paginator .end { - margin-right: 6px; -} - -.paginator .this-page { - padding: 2px 6px; - font-weight: bold; - font-size: 0.8125rem; - vertical-align: top; -} - -.paginator a:focus, .paginator a:hover { - color: white; - background: var(--link-hover-color); -} - -.paginator input { - margin-left: auto; -} - -.base-svgs { - display: none; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/changelists.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/changelists.css deleted file mode 100644 index a754513..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/changelists.css +++ /dev/null @@ -1,328 +0,0 @@ -/* CHANGELISTS */ - -#changelist { - display: flex; - align-items: flex-start; - justify-content: space-between; -} - -#changelist .changelist-form-container { - flex: 1 1 auto; - min-width: 0; -} - -#changelist table { - width: 100%; -} - -.change-list .hiddenfields { display:none; } - -.change-list .filtered table { - border-right: none; -} - -.change-list .filtered { - min-height: 400px; -} - -.change-list .filtered .results, .change-list .filtered .paginator, -.filtered #toolbar, .filtered div.xfull { - width: auto; -} - -.change-list .filtered table tbody th { - padding-right: 1em; -} - -#changelist-form .results { - overflow-x: auto; - width: 100%; -} - -#changelist .toplinks { - border-bottom: 1px solid var(--hairline-color); -} - -#changelist .paginator { - color: var(--body-quiet-color); - border-bottom: 1px solid var(--hairline-color); - background: var(--body-bg); - overflow: hidden; -} - -/* CHANGELIST TABLES */ - -#changelist table thead th { - padding: 0; - white-space: nowrap; - vertical-align: middle; -} - -#changelist table thead th.action-checkbox-column { - width: 1.5em; - text-align: center; -} - -#changelist table tbody td.action-checkbox { - text-align: center; -} - -#changelist table tfoot { - color: var(--body-quiet-color); -} - -/* TOOLBAR */ - -#toolbar { - padding: 8px 10px; - margin-bottom: 15px; - border-top: 1px solid var(--hairline-color); - border-bottom: 1px solid var(--hairline-color); - background: var(--darkened-bg); - color: var(--body-quiet-color); -} - -#toolbar form input { - border-radius: 4px; - font-size: 0.875rem; - padding: 5px; - color: var(--body-fg); -} - -#toolbar #searchbar { - height: 1.1875rem; - border: 1px solid var(--border-color); - padding: 2px 5px; - margin: 0; - vertical-align: top; - font-size: 0.8125rem; - max-width: 100%; -} - -#toolbar #searchbar:focus { - border-color: var(--body-quiet-color); -} - -#toolbar form input[type="submit"] { - border: 1px solid var(--border-color); - font-size: 0.8125rem; - padding: 4px 8px; - margin: 0; - vertical-align: middle; - background: var(--body-bg); - box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; - cursor: pointer; - color: var(--body-fg); -} - -#toolbar form input[type="submit"]:focus, -#toolbar form input[type="submit"]:hover { - border-color: var(--body-quiet-color); -} - -#changelist-search img { - vertical-align: middle; - margin-right: 4px; -} - -#changelist-search .help { - word-break: break-word; -} - -/* FILTER COLUMN */ - -#changelist-filter { - flex: 0 0 240px; - order: 1; - background: var(--darkened-bg); - border-left: none; - margin: 0 0 0 30px; -} - -#changelist-filter h2 { - font-size: 0.875rem; - text-transform: uppercase; - letter-spacing: 0.5px; - padding: 5px 15px; - margin-bottom: 12px; - border-bottom: none; -} - -#changelist-filter h3, -#changelist-filter details summary { - font-weight: 400; - padding: 0 15px; - margin-bottom: 10px; -} - -#changelist-filter details summary > * { - display: inline; -} - -#changelist-filter details > summary { - list-style-type: none; -} - -#changelist-filter details > summary::-webkit-details-marker { - display: none; -} - -#changelist-filter details > summary::before { - content: '→'; - font-weight: bold; - color: var(--link-hover-color); -} - -#changelist-filter details[open] > summary::before { - content: '↓'; -} - -#changelist-filter ul { - margin: 5px 0; - padding: 0 15px 15px; - border-bottom: 1px solid var(--hairline-color); -} - -#changelist-filter ul:last-child { - border-bottom: none; -} - -#changelist-filter li { - list-style-type: none; - margin-left: 0; - padding-left: 0; -} - -#changelist-filter a { - display: block; - color: var(--body-quiet-color); - word-break: break-word; -} - -#changelist-filter li.selected { - border-left: 5px solid var(--hairline-color); - padding-left: 10px; - margin-left: -15px; -} - -#changelist-filter li.selected a { - color: var(--link-selected-fg); -} - -#changelist-filter a:focus, #changelist-filter a:hover, -#changelist-filter li.selected a:focus, -#changelist-filter li.selected a:hover { - color: var(--link-hover-color); -} - -#changelist-filter #changelist-filter-clear a { - font-size: 0.8125rem; - padding-bottom: 10px; - border-bottom: 1px solid var(--hairline-color); -} - -/* DATE DRILLDOWN */ - -.change-list .toplinks { - display: flex; - padding-bottom: 5px; - flex-wrap: wrap; - gap: 3px 17px; - font-weight: bold; -} - -.change-list .toplinks a { - font-size: 0.8125rem; -} - -.change-list .toplinks .date-back { - color: var(--body-quiet-color); -} - -.change-list .toplinks .date-back:focus, -.change-list .toplinks .date-back:hover { - color: var(--link-hover-color); -} - -/* ACTIONS */ - -.filtered .actions { - border-right: none; -} - -#changelist table input { - margin: 0; - vertical-align: baseline; -} - -/* Once the :has() pseudo-class is supported by all browsers, the tr.selected - selector and the JS adding the class can be removed. */ -#changelist tbody tr.selected { - background-color: var(--selected-row); -} - -#changelist tbody tr:has(.action-select:checked) { - background-color: var(--selected-row); -} - -#changelist .actions { - padding: 10px; - background: var(--body-bg); - border-top: none; - border-bottom: none; - line-height: 1.5rem; - color: var(--body-quiet-color); - width: 100%; -} - -#changelist .actions span.all, -#changelist .actions span.action-counter, -#changelist .actions span.clear, -#changelist .actions span.question { - font-size: 0.8125rem; - margin: 0 0.5em; -} - -#changelist .actions:last-child { - border-bottom: none; -} - -#changelist .actions select { - vertical-align: top; - height: 1.5rem; - color: var(--body-fg); - border: 1px solid var(--border-color); - border-radius: 4px; - font-size: 0.875rem; - padding: 0 0 0 4px; - margin: 0; - margin-left: 10px; -} - -#changelist .actions select:focus { - border-color: var(--body-quiet-color); -} - -#changelist .actions label { - display: inline-block; - vertical-align: middle; - font-size: 0.8125rem; -} - -#changelist .actions .button { - font-size: 0.8125rem; - border: 1px solid var(--border-color); - border-radius: 4px; - background: var(--body-bg); - box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; - cursor: pointer; - height: 1.5rem; - line-height: 1; - padding: 4px 8px; - margin: 0; - color: var(--body-fg); -} - -#changelist .actions .button:focus, #changelist .actions .button:hover { - border-color: var(--body-quiet-color); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/dark_mode.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/dark_mode.css deleted file mode 100644 index 6d08233..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/dark_mode.css +++ /dev/null @@ -1,137 +0,0 @@ -@media (prefers-color-scheme: dark) { - :root { - --primary: #264b5d; - --primary-fg: #f7f7f7; - - --body-fg: #eeeeee; - --body-bg: #121212; - --body-quiet-color: #e0e0e0; - --body-loud-color: #ffffff; - - --breadcrumbs-link-fg: #e0e0e0; - --breadcrumbs-bg: var(--primary); - - --link-fg: #81d4fa; - --link-hover-color: #4ac1f7; - --link-selected-fg: #6f94c6; - - --hairline-color: #272727; - --border-color: #353535; - - --error-fg: #e35f5f; - --message-success-bg: #006b1b; - --message-warning-bg: #583305; - --message-error-bg: #570808; - - --darkened-bg: #212121; - --selected-bg: #1b1b1b; - --selected-row: #00363a; - - --close-button-bg: #333333; - --close-button-hover-bg: #666666; - } - } - - -html[data-theme="dark"] { - --primary: #264b5d; - --primary-fg: #f7f7f7; - - --body-fg: #eeeeee; - --body-bg: #121212; - --body-quiet-color: #e0e0e0; - --body-loud-color: #ffffff; - - --breadcrumbs-link-fg: #e0e0e0; - --breadcrumbs-bg: var(--primary); - - --link-fg: #81d4fa; - --link-hover-color: #4ac1f7; - --link-selected-fg: #6f94c6; - - --hairline-color: #272727; - --border-color: #353535; - - --error-fg: #e35f5f; - --message-success-bg: #006b1b; - --message-warning-bg: #583305; - --message-error-bg: #570808; - - --darkened-bg: #212121; - --selected-bg: #1b1b1b; - --selected-row: #00363a; - - --close-button-bg: #333333; - --close-button-hover-bg: #666666; -} - -/* THEME SWITCH */ -.theme-toggle { - cursor: pointer; - border: none; - padding: 0; - background: transparent; - vertical-align: middle; - margin-inline-start: 5px; - margin-top: -1px; -} - -.theme-toggle svg { - vertical-align: middle; - height: 1rem; - width: 1rem; - display: none; -} - -/* -Fully hide screen reader text so we only show the one matching the current -theme. -*/ -.theme-toggle .visually-hidden { - display: none; -} - -html[data-theme="auto"] .theme-toggle .theme-label-when-auto { - display: block; -} - -html[data-theme="dark"] .theme-toggle .theme-label-when-dark { - display: block; -} - -html[data-theme="light"] .theme-toggle .theme-label-when-light { - display: block; -} - -/* ICONS */ -.theme-toggle svg.theme-icon-when-auto, -.theme-toggle svg.theme-icon-when-dark, -.theme-toggle svg.theme-icon-when-light { - fill: var(--header-link-color); - color: var(--header-bg); -} - -html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto { - display: block; -} - -html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark { - display: block; -} - -html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { - display: block; -} - -.visually-hidden { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - border: 0; - color: var(--body-fg); - background-color: var(--body-bg); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/dashboard.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/dashboard.css deleted file mode 100644 index 242b81a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/dashboard.css +++ /dev/null @@ -1,29 +0,0 @@ -/* DASHBOARD */ -.dashboard td, .dashboard th { - word-break: break-word; -} - -.dashboard .module table th { - width: 100%; -} - -.dashboard .module table td { - white-space: nowrap; -} - -.dashboard .module table td a { - display: block; - padding-right: .6em; -} - -/* RECENT ACTIONS MODULE */ - -.module ul.actionlist { - margin-left: 0; -} - -ul.actionlist li { - list-style-type: none; - overflow: hidden; - text-overflow: ellipsis; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/forms.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/forms.css deleted file mode 100644 index 9a8dad0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/forms.css +++ /dev/null @@ -1,534 +0,0 @@ -@import url('widgets.css'); - -/* FORM ROWS */ - -.form-row { - overflow: hidden; - padding: 10px; - font-size: 0.8125rem; - border-bottom: 1px solid var(--hairline-color); -} - -.form-row img, .form-row input { - vertical-align: middle; -} - -.form-row label input[type="checkbox"] { - margin-top: 0; - vertical-align: 0; -} - -form .form-row p { - padding-left: 0; -} - -.flex-container { - display: flex; -} - -.form-multiline { - flex-wrap: wrap; -} - -.form-multiline > div { - padding-bottom: 10px; -} - -/* FORM LABELS */ - -label { - font-weight: normal; - color: var(--body-quiet-color); - font-size: 0.8125rem; -} - -.required label, label.required { - font-weight: bold; - color: var(--body-fg); -} - -/* RADIO BUTTONS */ - -form div.radiolist div { - padding-right: 7px; -} - -form div.radiolist.inline div { - display: inline-block; -} - -form div.radiolist label { - width: auto; -} - -form div.radiolist input[type="radio"] { - margin: -2px 4px 0 0; - padding: 0; -} - -form ul.inline { - margin-left: 0; - padding: 0; -} - -form ul.inline li { - float: left; - padding-right: 7px; -} - -/* ALIGNED FIELDSETS */ - -.aligned label { - display: block; - padding: 4px 10px 0 0; - min-width: 160px; - width: 160px; - word-wrap: break-word; - line-height: 1; -} - -.aligned label:not(.vCheckboxLabel):after { - content: ''; - display: inline-block; - vertical-align: middle; - height: 1.625rem; -} - -.aligned label + p, .aligned .checkbox-row + div.help, .aligned label + div.readonly { - padding: 6px 0; - margin-top: 0; - margin-bottom: 0; - margin-left: 0; - overflow-wrap: break-word; -} - -.aligned ul label { - display: inline; - float: none; - width: auto; -} - -.aligned .form-row input { - margin-bottom: 0; -} - -.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { - width: 350px; -} - -form .aligned ul { - margin-left: 160px; - padding-left: 10px; -} - -form .aligned div.radiolist { - display: inline-block; - margin: 0; - padding: 0; -} - -form .aligned p.help, -form .aligned div.help { - margin-top: 0; - margin-left: 160px; - padding-left: 10px; -} - -form .aligned p.date div.help.timezonewarning, -form .aligned p.datetime div.help.timezonewarning, -form .aligned p.time div.help.timezonewarning { - margin-left: 0; - padding-left: 0; - font-weight: normal; -} - -form .aligned p.help:last-child, -form .aligned div.help:last-child { - margin-bottom: 0; - padding-bottom: 0; -} - -form .aligned input + p.help, -form .aligned textarea + p.help, -form .aligned select + p.help, -form .aligned input + div.help, -form .aligned textarea + div.help, -form .aligned select + div.help { - margin-left: 160px; - padding-left: 10px; -} - -form .aligned ul li { - list-style: none; -} - -form .aligned table p { - margin-left: 0; - padding-left: 0; -} - -.aligned .vCheckboxLabel { - float: none; - width: auto; - display: inline-block; - vertical-align: -3px; - padding: 0 0 5px 5px; -} - -.aligned .vCheckboxLabel + p.help, -.aligned .vCheckboxLabel + div.help { - margin-top: -4px; -} - -.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField { - width: 610px; -} - -fieldset .fieldBox { - margin-right: 20px; -} - -/* WIDE FIELDSETS */ - -.wide label { - width: 200px; -} - -form .wide p, -form .wide ul.errorlist, -form .wide input + p.help, -form .wide input + div.help { - margin-left: 200px; -} - -form .wide p.help, -form .wide div.help { - padding-left: 50px; -} - -form div.help ul { - padding-left: 0; - margin-left: 0; -} - -.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField { - width: 450px; -} - -/* COLLAPSED FIELDSETS */ - -fieldset.collapsed * { - display: none; -} - -fieldset.collapsed h2, fieldset.collapsed { - display: block; -} - -fieldset.collapsed { - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; -} - -fieldset.collapsed h2 { - background: var(--darkened-bg); - color: var(--body-quiet-color); -} - -fieldset .collapse-toggle { - color: var(--header-link-color); -} - -fieldset.collapsed .collapse-toggle { - background: transparent; - display: inline; - color: var(--link-fg); -} - -/* MONOSPACE TEXTAREAS */ - -fieldset.monospace textarea { - font-family: var(--font-family-monospace); -} - -/* SUBMIT ROW */ - -.submit-row { - padding: 12px 14px 12px; - margin: 0 0 20px; - background: var(--darkened-bg); - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; - display: flex; - gap: 10px; - flex-wrap: wrap; -} - -body.popup .submit-row { - overflow: auto; -} - -.submit-row input { - height: 2.1875rem; - line-height: 0.9375rem; -} - -.submit-row input, .submit-row a { - margin: 0; -} - -.submit-row input.default { - text-transform: uppercase; -} - -.submit-row a.deletelink { - margin-left: auto; -} - -.submit-row a.deletelink { - display: block; - background: var(--delete-button-bg); - border-radius: 4px; - padding: 0.625rem 0.9375rem; - height: 0.9375rem; - line-height: 0.9375rem; - color: var(--button-fg); -} - -.submit-row a.closelink { - display: inline-block; - background: var(--close-button-bg); - border-radius: 4px; - padding: 10px 15px; - height: 0.9375rem; - line-height: 0.9375rem; - color: var(--button-fg); -} - -.submit-row a.deletelink:focus, -.submit-row a.deletelink:hover, -.submit-row a.deletelink:active { - background: var(--delete-button-hover-bg); - text-decoration: none; -} - -.submit-row a.closelink:focus, -.submit-row a.closelink:hover, -.submit-row a.closelink:active { - background: var(--close-button-hover-bg); - text-decoration: none; -} - -/* CUSTOM FORM FIELDS */ - -.vSelectMultipleField { - vertical-align: top; -} - -.vCheckboxField { - border: none; -} - -.vDateField, .vTimeField { - margin-right: 2px; - margin-bottom: 4px; -} - -.vDateField { - min-width: 6.85em; -} - -.vTimeField { - min-width: 4.7em; -} - -.vURLField { - width: 30em; -} - -.vLargeTextField, .vXMLLargeTextField { - width: 48em; -} - -.flatpages-flatpage #id_content { - height: 40.2em; -} - -.module table .vPositiveSmallIntegerField { - width: 2.2em; -} - -.vIntegerField { - width: 5em; -} - -.vBigIntegerField { - width: 10em; -} - -.vForeignKeyRawIdAdminField { - width: 5em; -} - -.vTextField, .vUUIDField { - width: 20em; -} - -/* INLINES */ - -.inline-group { - padding: 0; - margin: 0 0 30px; -} - -.inline-group thead th { - padding: 8px 10px; -} - -.inline-group .aligned label { - width: 160px; -} - -.inline-related { - position: relative; -} - -.inline-related h3 { - margin: 0; - color: var(--body-quiet-color); - padding: 5px; - font-size: 0.8125rem; - background: var(--darkened-bg); - border-top: 1px solid var(--hairline-color); - border-bottom: 1px solid var(--hairline-color); -} - -.inline-related h3 span.delete { - float: right; -} - -.inline-related h3 span.delete label { - margin-left: 2px; - font-size: 0.6875rem; -} - -.inline-related fieldset { - margin: 0; - background: var(--body-bg); - border: none; - width: 100%; -} - -.inline-related fieldset.module h3 { - margin: 0; - padding: 2px 5px 3px 5px; - font-size: 0.6875rem; - text-align: left; - font-weight: bold; - background: #bcd; - color: var(--body-bg); -} - -.inline-group .tabular fieldset.module { - border: none; -} - -.inline-related.tabular fieldset.module table { - width: 100%; - overflow-x: scroll; -} - -.last-related fieldset { - border: none; -} - -.inline-group .tabular tr.has_original td { - padding-top: 2em; -} - -.inline-group .tabular tr td.original { - padding: 2px 0 0 0; - width: 0; - _position: relative; -} - -.inline-group .tabular th.original { - width: 0px; - padding: 0; -} - -.inline-group .tabular td.original p { - position: absolute; - left: 0; - height: 1.1em; - padding: 2px 9px; - overflow: hidden; - font-size: 0.5625rem; - font-weight: bold; - color: var(--body-quiet-color); - _width: 700px; -} - -.inline-group ul.tools { - padding: 0; - margin: 0; - list-style: none; -} - -.inline-group ul.tools li { - display: inline; - padding: 0 5px; -} - -.inline-group div.add-row, -.inline-group .tabular tr.add-row td { - color: var(--body-quiet-color); - background: var(--darkened-bg); - padding: 8px 10px; - border-bottom: 1px solid var(--hairline-color); -} - -.inline-group .tabular tr.add-row td { - padding: 8px 10px; - border-bottom: 1px solid var(--hairline-color); -} - -.inline-group ul.tools a.add, -.inline-group div.add-row a, -.inline-group .tabular tr.add-row td a { - background: url(../img/icon-addlink.svg) 0 1px no-repeat; - padding-left: 16px; - font-size: 0.75rem; -} - -.empty-form { - display: none; -} - -/* RELATED FIELD ADD ONE / LOOKUP */ - -.related-lookup { - margin-left: 5px; - display: inline-block; - vertical-align: middle; - background-repeat: no-repeat; - background-size: 14px; -} - -.related-lookup { - width: 1rem; - height: 1rem; - background-image: url(../img/search.svg); -} - -form .related-widget-wrapper ul { - display: inline-block; - margin-left: 0; - padding-left: 0; -} - -.clearable-file-input input { - margin-top: 0; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/login.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/login.css deleted file mode 100644 index 389772f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/login.css +++ /dev/null @@ -1,61 +0,0 @@ -/* LOGIN FORM */ - -.login { - background: var(--darkened-bg); - height: auto; -} - -.login #header { - height: auto; - padding: 15px 16px; - justify-content: center; -} - -.login #header h1 { - font-size: 1.125rem; - margin: 0; -} - -.login #header h1 a { - color: var(--header-link-color); -} - -.login #content { - padding: 20px 20px 0; -} - -.login #container { - background: var(--body-bg); - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; - width: 28em; - min-width: 300px; - margin: 100px auto; - height: auto; -} - -.login .form-row { - padding: 4px 0; -} - -.login .form-row label { - display: block; - line-height: 2em; -} - -.login .form-row #id_username, .login .form-row #id_password { - padding: 8px; - width: 100%; - box-sizing: border-box; -} - -.login .submit-row { - padding: 1em 0 0 0; - margin: 0; - text-align: center; -} - -.login .password-reset-link { - text-align: center; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css deleted file mode 100644 index f76e6ce..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css +++ /dev/null @@ -1,144 +0,0 @@ -.sticky { - position: sticky; - top: 0; - max-height: 100vh; -} - -.toggle-nav-sidebar { - z-index: 20; - left: 0; - display: flex; - align-items: center; - justify-content: center; - flex: 0 0 23px; - width: 23px; - border: 0; - border-right: 1px solid var(--hairline-color); - background-color: var(--body-bg); - cursor: pointer; - font-size: 1.25rem; - color: var(--link-fg); - padding: 0; -} - -[dir="rtl"] .toggle-nav-sidebar { - border-left: 1px solid var(--hairline-color); - border-right: 0; -} - -.toggle-nav-sidebar:hover, -.toggle-nav-sidebar:focus { - background-color: var(--darkened-bg); -} - -#nav-sidebar { - z-index: 15; - flex: 0 0 275px; - left: -276px; - margin-left: -276px; - border-top: 1px solid transparent; - border-right: 1px solid var(--hairline-color); - background-color: var(--body-bg); - overflow: auto; -} - -[dir="rtl"] #nav-sidebar { - border-left: 1px solid var(--hairline-color); - border-right: 0; - left: 0; - margin-left: 0; - right: -276px; - margin-right: -276px; -} - -.toggle-nav-sidebar::before { - content: '\00BB'; -} - -.main.shifted .toggle-nav-sidebar::before { - content: '\00AB'; -} - -.main > #nav-sidebar { - visibility: hidden; -} - -.main.shifted > #nav-sidebar { - margin-left: 0; - visibility: visible; -} - -[dir="rtl"] .main.shifted > #nav-sidebar { - margin-right: 0; -} - -#nav-sidebar .module th { - width: 100%; - overflow-wrap: anywhere; -} - -#nav-sidebar .module th, -#nav-sidebar .module caption { - padding-left: 16px; -} - -#nav-sidebar .module td { - white-space: nowrap; -} - -[dir="rtl"] #nav-sidebar .module th, -[dir="rtl"] #nav-sidebar .module caption { - padding-left: 8px; - padding-right: 16px; -} - -#nav-sidebar .current-app .section:link, -#nav-sidebar .current-app .section:visited { - color: var(--header-color); - font-weight: bold; -} - -#nav-sidebar .current-model { - background: var(--selected-row); -} - -.main > #nav-sidebar + .content { - max-width: calc(100% - 23px); -} - -.main.shifted > #nav-sidebar + .content { - max-width: calc(100% - 299px); -} - -@media (max-width: 767px) { - #nav-sidebar, #toggle-nav-sidebar { - display: none; - } - - .main > #nav-sidebar + .content, - .main.shifted > #nav-sidebar + .content { - max-width: 100%; - } -} - -#nav-filter { - width: 100%; - box-sizing: border-box; - padding: 2px 5px; - margin: 5px 0; - border: 1px solid var(--border-color); - background-color: var(--darkened-bg); - color: var(--body-fg); -} - -#nav-filter:focus { - border-color: var(--body-quiet-color); -} - -#nav-filter.no-results { - background: var(--message-error-bg); -} - -#nav-sidebar table { - width: 100%; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/responsive.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/responsive.css deleted file mode 100644 index 1d0a188..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/responsive.css +++ /dev/null @@ -1,999 +0,0 @@ -/* Tablets */ - -input[type="submit"], button { - -webkit-appearance: none; - appearance: none; -} - -@media (max-width: 1024px) { - /* Basic */ - - html { - -webkit-text-size-adjust: 100%; - } - - td, th { - padding: 10px; - font-size: 0.875rem; - } - - .small { - font-size: 0.75rem; - } - - /* Layout */ - - #container { - min-width: 0; - } - - #content { - padding: 15px 20px 20px; - } - - div.breadcrumbs { - padding: 10px 30px; - } - - /* Header */ - - #header { - flex-direction: column; - padding: 15px 30px; - justify-content: flex-start; - } - - #branding h1 { - margin: 0 0 8px; - line-height: 1.2; - } - - #user-tools { - margin: 0; - font-weight: 400; - line-height: 1.85; - text-align: left; - } - - #user-tools a { - display: inline-block; - line-height: 1.4; - } - - /* Dashboard */ - - .dashboard #content { - width: auto; - } - - #content-related { - margin-right: -290px; - } - - .colSM #content-related { - margin-left: -290px; - } - - .colMS { - margin-right: 290px; - } - - .colSM { - margin-left: 290px; - } - - .dashboard .module table td a { - padding-right: 0; - } - - td .changelink, td .addlink { - font-size: 0.8125rem; - } - - /* Changelist */ - - #toolbar { - border: none; - padding: 15px; - } - - #changelist-search > div { - display: flex; - flex-wrap: nowrap; - max-width: 480px; - } - - #changelist-search label { - line-height: 1.375rem; - } - - #toolbar form #searchbar { - flex: 1 0 auto; - width: 0; - height: 1.375rem; - margin: 0 10px 0 6px; - } - - #toolbar form input[type=submit] { - flex: 0 1 auto; - } - - #changelist-search .quiet { - width: 0; - flex: 1 0 auto; - margin: 5px 0 0 25px; - } - - #changelist .actions { - display: flex; - flex-wrap: wrap; - padding: 15px 0; - } - - #changelist .actions label { - display: flex; - } - - #changelist .actions select { - background: var(--body-bg); - } - - #changelist .actions .button { - min-width: 48px; - margin: 0 10px; - } - - #changelist .actions span.all, - #changelist .actions span.clear, - #changelist .actions span.question, - #changelist .actions span.action-counter { - font-size: 0.6875rem; - margin: 0 10px 0 0; - } - - #changelist-filter { - flex-basis: 200px; - } - - .change-list .filtered .results, - .change-list .filtered .paginator, - .filtered #toolbar, - .filtered .actions, - - #changelist .paginator { - border-top-color: var(--hairline-color); /* XXX Is this used at all? */ - } - - #changelist .results + .paginator { - border-top: none; - } - - /* Forms */ - - label { - font-size: 0.875rem; - } - - .form-row input[type=text], - .form-row input[type=password], - .form-row input[type=email], - .form-row input[type=url], - .form-row input[type=tel], - .form-row input[type=number], - .form-row textarea, - .form-row select, - .form-row .vTextField { - box-sizing: border-box; - margin: 0; - padding: 6px 8px; - min-height: 2.25rem; - font-size: 0.875rem; - } - - .form-row select { - height: 2.25rem; - } - - .form-row select[multiple] { - height: auto; - min-height: 0; - } - - fieldset .fieldBox + .fieldBox { - margin-top: 10px; - padding-top: 10px; - border-top: 1px solid var(--hairline-color); - } - - textarea { - max-width: 100%; - max-height: 120px; - } - - .aligned label { - padding-top: 6px; - } - - .aligned .related-lookup, - .aligned .datetimeshortcuts, - .aligned .related-lookup + strong { - align-self: center; - margin-left: 15px; - } - - form .aligned div.radiolist { - margin-left: 2px; - } - - .submit-row { - padding: 8px; - } - - .submit-row a.deletelink { - padding: 10px 7px; - } - - .button, input[type=submit], input[type=button], .submit-row input, a.button { - padding: 7px; - } - - /* Related widget */ - - .related-widget-wrapper { - float: none; - } - - .related-widget-wrapper-link + .selector { - max-width: calc(100% - 30px); - margin-right: 15px; - } - - select + .related-widget-wrapper-link, - .related-widget-wrapper-link + .related-widget-wrapper-link { - margin-left: 10px; - } - - /* Selector */ - - .selector { - display: flex; - width: 100%; - } - - .selector .selector-filter { - display: flex; - align-items: center; - } - - .selector .selector-filter label { - margin: 0 8px 0 0; - } - - .selector .selector-filter input { - width: auto; - min-height: 0; - flex: 1 1; - } - - .selector-available, .selector-chosen { - width: auto; - flex: 1 1; - display: flex; - flex-direction: column; - } - - .selector select { - width: 100%; - flex: 1 0 auto; - margin-bottom: 5px; - } - - .selector ul.selector-chooser { - width: 26px; - height: 52px; - padding: 2px 0; - margin: auto 15px; - border-radius: 20px; - transform: translateY(-10px); - } - - .selector-add, .selector-remove { - width: 20px; - height: 20px; - background-size: 20px auto; - } - - .selector-add { - background-position: 0 -120px; - } - - .selector-remove { - background-position: 0 -80px; - } - - a.selector-chooseall, a.selector-clearall { - align-self: center; - } - - .stacked { - flex-direction: column; - max-width: 480px; - } - - .stacked > * { - flex: 0 1 auto; - } - - .stacked select { - margin-bottom: 0; - } - - .stacked .selector-available, .stacked .selector-chosen { - width: auto; - } - - .stacked ul.selector-chooser { - width: 52px; - height: 26px; - padding: 0 2px; - margin: 15px auto; - transform: none; - } - - .stacked .selector-chooser li { - padding: 3px; - } - - .stacked .selector-add, .stacked .selector-remove { - background-size: 20px auto; - } - - .stacked .selector-add { - background-position: 0 -40px; - } - - .stacked .active.selector-add { - background-position: 0 -40px; - } - - .active.selector-add:focus, .active.selector-add:hover { - background-position: 0 -140px; - } - - .stacked .active.selector-add:focus, .stacked .active.selector-add:hover { - background-position: 0 -60px; - } - - .stacked .selector-remove { - background-position: 0 0; - } - - .stacked .active.selector-remove { - background-position: 0 0; - } - - .active.selector-remove:focus, .active.selector-remove:hover { - background-position: 0 -100px; - } - - .stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover { - background-position: 0 -20px; - } - - .help-tooltip, .selector .help-icon { - display: none; - } - - .datetime input { - width: 50%; - max-width: 120px; - } - - .datetime span { - font-size: 0.8125rem; - } - - .datetime .timezonewarning { - display: block; - font-size: 0.6875rem; - color: var(--body-quiet-color); - } - - .datetimeshortcuts { - color: var(--border-color); /* XXX Redundant, .datetime span also sets #ccc */ - } - - .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { - width: 75%; - } - - .inline-group { - overflow: auto; - } - - /* Messages */ - - ul.messagelist li { - padding-left: 55px; - background-position: 30px 12px; - } - - ul.messagelist li.error { - background-position: 30px 12px; - } - - ul.messagelist li.warning { - background-position: 30px 14px; - } - - /* Login */ - - .login #header { - padding: 15px 20px; - } - - .login #branding h1 { - margin: 0; - } - - /* GIS */ - - div.olMap { - max-width: calc(100vw - 30px); - max-height: 300px; - } - - .olMap + .clear_features { - display: block; - margin-top: 10px; - } - - /* Docs */ - - .module table.xfull { - width: 100%; - } - - pre.literal-block { - overflow: auto; - } -} - -/* Mobile */ - -@media (max-width: 767px) { - /* Layout */ - - #header, #content, #footer { - padding: 15px; - } - - #footer:empty { - padding: 0; - } - - div.breadcrumbs { - padding: 10px 15px; - } - - /* Dashboard */ - - .colMS, .colSM { - margin: 0; - } - - #content-related, .colSM #content-related { - width: 100%; - margin: 0; - } - - #content-related .module { - margin-bottom: 0; - } - - #content-related .module h2 { - padding: 10px 15px; - font-size: 1rem; - } - - /* Changelist */ - - #changelist { - align-items: stretch; - flex-direction: column; - } - - #toolbar { - padding: 10px; - } - - #changelist-filter { - margin-left: 0; - } - - #changelist .actions label { - flex: 1 1; - } - - #changelist .actions select { - flex: 1 0; - width: 100%; - } - - #changelist .actions span { - flex: 1 0 100%; - } - - #changelist-filter { - position: static; - width: auto; - margin-top: 30px; - } - - .object-tools { - float: none; - margin: 0 0 15px; - padding: 0; - overflow: hidden; - } - - .object-tools li { - height: auto; - margin-left: 0; - } - - .object-tools li + li { - margin-left: 15px; - } - - /* Forms */ - - .form-row { - padding: 15px 0; - } - - .aligned .form-row, - .aligned .form-row > div { - max-width: 100vw; - } - - .aligned .form-row > div { - width: calc(100vw - 30px); - } - - .flex-container { - flex-flow: column; - } - - .flex-container.checkbox-row { - flex-flow: row; - } - - textarea { - max-width: none; - } - - .vURLField { - width: auto; - } - - fieldset .fieldBox + .fieldBox { - margin-top: 15px; - padding-top: 15px; - } - - fieldset.collapsed .form-row { - display: none; - } - - .aligned label { - width: 100%; - min-width: auto; - padding: 0 0 10px; - } - - .aligned label:after { - max-height: 0; - } - - .aligned .form-row input, - .aligned .form-row select, - .aligned .form-row textarea { - flex: 1 1 auto; - max-width: 100%; - } - - .aligned .checkbox-row input { - flex: 0 1 auto; - margin: 0; - } - - .aligned .vCheckboxLabel { - flex: 1 0; - padding: 1px 0 0 5px; - } - - .aligned label + p, - .aligned label + div.help, - .aligned label + div.readonly { - padding: 0; - margin-left: 0; - } - - .aligned p.file-upload { - font-size: 0.8125rem; - } - - span.clearable-file-input { - margin-left: 15px; - } - - span.clearable-file-input label { - font-size: 0.8125rem; - padding-bottom: 0; - } - - .aligned .timezonewarning { - flex: 1 0 100%; - margin-top: 5px; - } - - form .aligned .form-row div.help { - width: 100%; - margin: 5px 0 0; - padding: 0; - } - - form .aligned ul, - form .aligned ul.errorlist { - margin-left: 0; - padding-left: 0; - } - - form .aligned div.radiolist { - margin-top: 5px; - margin-right: 15px; - margin-bottom: -3px; - } - - form .aligned div.radiolist:not(.inline) div + div { - margin-top: 5px; - } - - /* Related widget */ - - .related-widget-wrapper { - width: 100%; - display: flex; - align-items: flex-start; - } - - .related-widget-wrapper .selector { - order: 1; - } - - .related-widget-wrapper > a { - order: 2; - } - - .related-widget-wrapper .radiolist ~ a { - align-self: flex-end; - } - - .related-widget-wrapper > select ~ a { - align-self: center; - } - - select + .related-widget-wrapper-link, - .related-widget-wrapper-link + .related-widget-wrapper-link { - margin-left: 15px; - } - - /* Selector */ - - .selector { - flex-direction: column; - } - - .selector > * { - float: none; - } - - .selector-available, .selector-chosen { - margin-bottom: 0; - flex: 1 1 auto; - } - - .selector select { - max-height: 96px; - } - - .selector ul.selector-chooser { - display: block; - float: none; - width: 52px; - height: 26px; - padding: 0 2px; - margin: 15px auto 20px; - transform: none; - } - - .selector ul.selector-chooser li { - float: left; - } - - .selector-remove { - background-position: 0 0; - } - - .active.selector-remove:focus, .active.selector-remove:hover { - background-position: 0 -20px; - } - - .selector-add { - background-position: 0 -40px; - } - - .active.selector-add:focus, .active.selector-add:hover { - background-position: 0 -60px; - } - - /* Inlines */ - - .inline-group[data-inline-type="stacked"] .inline-related { - border: 1px solid var(--hairline-color); - border-radius: 4px; - margin-top: 15px; - overflow: auto; - } - - .inline-group[data-inline-type="stacked"] .inline-related > * { - box-sizing: border-box; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module { - padding: 0 10px; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module .form-row { - border-top: 1px solid var(--hairline-color); - border-bottom: none; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module .form-row:first-child { - border-top: none; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 { - padding: 10px; - border-top-width: 0; - border-bottom-width: 2px; - display: flex; - flex-wrap: wrap; - align-items: center; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 .inline_label { - margin-right: auto; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 span.delete { - float: none; - flex: 1 1 100%; - margin-top: 5px; - } - - .inline-group[data-inline-type="stacked"] .aligned .form-row > div:not([class]) { - width: 100%; - } - - .inline-group[data-inline-type="stacked"] .aligned label { - width: 100%; - } - - .inline-group[data-inline-type="stacked"] div.add-row { - margin-top: 15px; - border: 1px solid var(--hairline-color); - border-radius: 4px; - } - - .inline-group div.add-row, - .inline-group .tabular tr.add-row td { - padding: 0; - } - - .inline-group div.add-row a, - .inline-group .tabular tr.add-row td a { - display: block; - padding: 8px 10px 8px 26px; - background-position: 8px 9px; - } - - /* Submit row */ - - .submit-row { - padding: 10px; - margin: 0 0 15px; - flex-direction: column; - gap: 8px; - } - - .submit-row input, .submit-row input.default, .submit-row a { - text-align: center; - } - - .submit-row a.closelink { - padding: 10px 0; - text-align: center; - } - - .submit-row a.deletelink { - margin: 0; - } - - /* Messages */ - - ul.messagelist li { - padding-left: 40px; - background-position: 15px 12px; - } - - ul.messagelist li.error { - background-position: 15px 12px; - } - - ul.messagelist li.warning { - background-position: 15px 14px; - } - - /* Paginator */ - - .paginator .this-page, .paginator a:link, .paginator a:visited { - padding: 4px 10px; - } - - /* Login */ - - body.login { - padding: 0 15px; - } - - .login #container { - width: auto; - max-width: 480px; - margin: 50px auto; - } - - .login #header, - .login #content { - padding: 15px; - } - - .login #content-main { - float: none; - } - - .login .form-row { - padding: 0; - } - - .login .form-row + .form-row { - margin-top: 15px; - } - - .login .form-row label { - margin: 0 0 5px; - line-height: 1.2; - } - - .login .submit-row { - padding: 15px 0 0; - } - - .login br { - display: none; - } - - .login .submit-row input { - margin: 0; - text-transform: uppercase; - } - - .errornote { - margin: 0 0 20px; - padding: 8px 12px; - font-size: 0.8125rem; - } - - /* Calendar and clock */ - - .calendarbox, .clockbox { - position: fixed !important; - top: 50% !important; - left: 50% !important; - transform: translate(-50%, -50%); - margin: 0; - border: none; - overflow: visible; - } - - .calendarbox:before, .clockbox:before { - content: ''; - position: fixed; - top: 50%; - left: 50%; - width: 100vw; - height: 100vh; - background: rgba(0, 0, 0, 0.75); - transform: translate(-50%, -50%); - } - - .calendarbox > *, .clockbox > * { - position: relative; - z-index: 1; - } - - .calendarbox > div:first-child { - z-index: 2; - } - - .calendarbox .calendar, .clockbox h2 { - border-radius: 4px 4px 0 0; - overflow: hidden; - } - - .calendarbox .calendar-cancel, .clockbox .calendar-cancel { - border-radius: 0 0 4px 4px; - overflow: hidden; - } - - .calendar-shortcuts { - padding: 10px 0; - font-size: 0.75rem; - line-height: 0.75rem; - } - - .calendar-shortcuts a { - margin: 0 4px; - } - - .timelist a { - background: var(--body-bg); - padding: 4px; - } - - .calendar-cancel { - padding: 8px 10px; - } - - .clockbox h2 { - padding: 8px 15px; - } - - .calendar caption { - padding: 10px; - } - - .calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { - z-index: 1; - top: 10px; - } - - /* History */ - - table#change-history tbody th, table#change-history tbody td { - font-size: 0.8125rem; - word-break: break-word; - } - - table#change-history tbody th { - width: auto; - } - - /* Docs */ - - table.model tbody th, table.model tbody td { - font-size: 0.8125rem; - word-break: break-word; - } -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css deleted file mode 100644 index 31dc8ff..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css +++ /dev/null @@ -1,84 +0,0 @@ -/* TABLETS */ - -@media (max-width: 1024px) { - [dir="rtl"] .colMS { - margin-right: 0; - } - - [dir="rtl"] #user-tools { - text-align: right; - } - - [dir="rtl"] #changelist .actions label { - padding-left: 10px; - padding-right: 0; - } - - [dir="rtl"] #changelist .actions select { - margin-left: 0; - margin-right: 15px; - } - - [dir="rtl"] .change-list .filtered .results, - [dir="rtl"] .change-list .filtered .paginator, - [dir="rtl"] .filtered #toolbar, - [dir="rtl"] .filtered div.xfull, - [dir="rtl"] .filtered .actions, - [dir="rtl"] #changelist-filter { - margin-left: 0; - } - - [dir="rtl"] .inline-group ul.tools a.add, - [dir="rtl"] .inline-group div.add-row a, - [dir="rtl"] .inline-group .tabular tr.add-row td a { - padding: 8px 26px 8px 10px; - background-position: calc(100% - 8px) 9px; - } - - [dir="rtl"] .related-widget-wrapper-link + .selector { - margin-right: 0; - margin-left: 15px; - } - - [dir="rtl"] .selector .selector-filter label { - margin-right: 0; - margin-left: 8px; - } - - [dir="rtl"] .object-tools li { - float: right; - } - - [dir="rtl"] .object-tools li + li { - margin-left: 0; - margin-right: 15px; - } - - [dir="rtl"] .dashboard .module table td a { - padding-left: 0; - padding-right: 16px; - } -} - -/* MOBILE */ - -@media (max-width: 767px) { - [dir="rtl"] .aligned .related-lookup, - [dir="rtl"] .aligned .datetimeshortcuts { - margin-left: 0; - margin-right: 15px; - } - - [dir="rtl"] .aligned ul, - [dir="rtl"] form .aligned ul.errorlist { - margin-right: 0; - } - - [dir="rtl"] #changelist-filter { - margin-left: 0; - margin-right: 0; - } - [dir="rtl"] .aligned .vCheckboxLabel { - padding: 1px 5px 0 0; - } -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/rtl.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/rtl.css deleted file mode 100644 index c349a93..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/rtl.css +++ /dev/null @@ -1,298 +0,0 @@ -/* GLOBAL */ - -th { - text-align: right; -} - -.module h2, .module caption { - text-align: right; -} - -.module ul, .module ol { - margin-left: 0; - margin-right: 1.5em; -} - -.viewlink, .addlink, .changelink { - padding-left: 0; - padding-right: 16px; - background-position: 100% 1px; -} - -.deletelink { - padding-left: 0; - padding-right: 16px; - background-position: 100% 1px; -} - -.object-tools { - float: left; -} - -thead th:first-child, -tfoot td:first-child { - border-left: none; -} - -/* LAYOUT */ - -#user-tools { - right: auto; - left: 0; - text-align: left; -} - -div.breadcrumbs { - text-align: right; -} - -#content-main { - float: right; -} - -#content-related { - float: left; - margin-left: -300px; - margin-right: auto; -} - -.colMS { - margin-left: 300px; - margin-right: 0; -} - -/* SORTABLE TABLES */ - -table thead th.sorted .sortoptions { - float: left; -} - -thead th.sorted .text { - padding-right: 0; - padding-left: 42px; -} - -/* dashboard styles */ - -.dashboard .module table td a { - padding-left: .6em; - padding-right: 16px; -} - -/* changelists styles */ - -.change-list .filtered table { - border-left: none; - border-right: 0px none; -} - -#changelist-filter { - border-left: none; - border-right: none; - margin-left: 0; - margin-right: 30px; -} - -#changelist-filter li.selected { - border-left: none; - padding-left: 10px; - margin-left: 0; - border-right: 5px solid var(--hairline-color); - padding-right: 10px; - margin-right: -15px; -} - -#changelist table tbody td:first-child, #changelist table tbody th:first-child { - border-right: none; - border-left: none; -} - -.paginator .end { - margin-left: 6px; - margin-right: 0; -} - -.paginator input { - margin-left: 0; - margin-right: auto; -} - -/* FORMS */ - -.aligned label { - padding: 0 0 3px 1em; -} - -.submit-row a.deletelink { - margin-left: 0; - margin-right: auto; -} - -.vDateField, .vTimeField { - margin-left: 2px; -} - -.aligned .form-row input { - margin-left: 5px; -} - -form .aligned ul { - margin-right: 163px; - padding-right: 10px; - margin-left: 0; - padding-left: 0; -} - -form ul.inline li { - float: right; - padding-right: 0; - padding-left: 7px; -} - -form .aligned p.help, -form .aligned div.help { - margin-right: 160px; - padding-right: 10px; -} - -form div.help ul, -form .aligned .checkbox-row + .help, -form .aligned p.date div.help.timezonewarning, -form .aligned p.datetime div.help.timezonewarning, -form .aligned p.time div.help.timezonewarning { - margin-right: 0; - padding-right: 0; -} - -form .wide p.help, form .wide div.help { - padding-left: 0; - padding-right: 50px; -} - -form .wide p, -form .wide ul.errorlist, -form .wide input + p.help, -form .wide input + div.help { - margin-right: 200px; - margin-left: 0px; -} - -.submit-row { - text-align: right; -} - -fieldset .fieldBox { - margin-left: 20px; - margin-right: 0; -} - -.errorlist li { - background-position: 100% 12px; - padding: 0; -} - -.errornote { - background-position: 100% 12px; - padding: 10px 12px; -} - -/* WIDGETS */ - -.calendarnav-previous { - top: 0; - left: auto; - right: 10px; - background: url(../img/calendar-icons.svg) 0 -30px no-repeat; -} - -.calendarbox .calendarnav-previous:focus, -.calendarbox .calendarnav-previous:hover { - background-position: 0 -45px; -} - -.calendarnav-next { - top: 0; - right: auto; - left: 10px; - background: url(../img/calendar-icons.svg) 0 0 no-repeat; -} - -.calendarbox .calendarnav-next:focus, -.calendarbox .calendarnav-next:hover { - background-position: 0 -15px; -} - -.calendar caption, .calendarbox h2 { - text-align: center; -} - -.selector { - float: right; -} - -.selector .selector-filter { - text-align: right; -} - -.selector-add { - background: url(../img/selector-icons.svg) 0 -64px no-repeat; -} - -.active.selector-add:focus, .active.selector-add:hover { - background-position: 0 -80px; -} - -.selector-remove { - background: url(../img/selector-icons.svg) 0 -96px no-repeat; -} - -.active.selector-remove:focus, .active.selector-remove:hover { - background-position: 0 -112px; -} - -a.selector-chooseall { - background: url(../img/selector-icons.svg) right -128px no-repeat; -} - -a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { - background-position: 100% -144px; -} - -a.selector-clearall { - background: url(../img/selector-icons.svg) 0 -160px no-repeat; -} - -a.active.selector-clearall:focus, a.active.selector-clearall:hover { - background-position: 0 -176px; -} - -.inline-deletelink { - float: left; -} - -form .form-row p.datetime { - overflow: hidden; -} - -.related-widget-wrapper { - float: right; -} - -/* MISC */ - -.inline-related h2, .inline-group h2 { - text-align: right -} - -.inline-related h3 span.delete { - padding-right: 20px; - padding-left: inherit; - left: 10px; - right: inherit; - float:left; -} - -.inline-related h3 span.delete label { - margin-left: inherit; - margin-right: 2px; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md deleted file mode 100644 index 8cb8a2b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css deleted file mode 100644 index 750b320..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css +++ /dev/null @@ -1,481 +0,0 @@ -.select2-container { - box-sizing: border-box; - display: inline-block; - margin: 0; - position: relative; - vertical-align: middle; } - .select2-container .select2-selection--single { - box-sizing: border-box; - cursor: pointer; - display: block; - height: 28px; - user-select: none; - -webkit-user-select: none; } - .select2-container .select2-selection--single .select2-selection__rendered { - display: block; - padding-left: 8px; - padding-right: 20px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - .select2-container .select2-selection--single .select2-selection__clear { - position: relative; } - .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { - padding-right: 8px; - padding-left: 20px; } - .select2-container .select2-selection--multiple { - box-sizing: border-box; - cursor: pointer; - display: block; - min-height: 32px; - user-select: none; - -webkit-user-select: none; } - .select2-container .select2-selection--multiple .select2-selection__rendered { - display: inline-block; - overflow: hidden; - padding-left: 8px; - text-overflow: ellipsis; - white-space: nowrap; } - .select2-container .select2-search--inline { - float: left; } - .select2-container .select2-search--inline .select2-search__field { - box-sizing: border-box; - border: none; - font-size: 100%; - margin-top: 5px; - padding: 0; } - .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button { - -webkit-appearance: none; } - -.select2-dropdown { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - box-sizing: border-box; - display: block; - position: absolute; - left: -100000px; - width: 100%; - z-index: 1051; } - -.select2-results { - display: block; } - -.select2-results__options { - list-style: none; - margin: 0; - padding: 0; } - -.select2-results__option { - padding: 6px; - user-select: none; - -webkit-user-select: none; } - .select2-results__option[aria-selected] { - cursor: pointer; } - -.select2-container--open .select2-dropdown { - left: 0; } - -.select2-container--open .select2-dropdown--above { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - -.select2-container--open .select2-dropdown--below { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.select2-search--dropdown { - display: block; - padding: 4px; } - .select2-search--dropdown .select2-search__field { - padding: 4px; - width: 100%; - box-sizing: border-box; } - .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button { - -webkit-appearance: none; } - .select2-search--dropdown.select2-search--hide { - display: none; } - -.select2-close-mask { - border: 0; - margin: 0; - padding: 0; - display: block; - position: fixed; - left: 0; - top: 0; - min-height: 100%; - min-width: 100%; - height: auto; - width: auto; - opacity: 0; - z-index: 99; - background-color: #fff; - filter: alpha(opacity=0); } - -.select2-hidden-accessible { - border: 0 !important; - clip: rect(0 0 0 0) !important; - -webkit-clip-path: inset(50%) !important; - clip-path: inset(50%) !important; - height: 1px !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - width: 1px !important; - white-space: nowrap !important; } - -.select2-container--default .select2-selection--single { - background-color: #fff; - border: 1px solid #aaa; - border-radius: 4px; } - .select2-container--default .select2-selection--single .select2-selection__rendered { - color: #444; - line-height: 28px; } - .select2-container--default .select2-selection--single .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; } - .select2-container--default .select2-selection--single .select2-selection__placeholder { - color: #999; } - .select2-container--default .select2-selection--single .select2-selection__arrow { - height: 26px; - position: absolute; - top: 1px; - right: 1px; - width: 20px; } - .select2-container--default .select2-selection--single .select2-selection__arrow b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - height: 0; - left: 50%; - margin-left: -4px; - margin-top: -2px; - position: absolute; - top: 50%; - width: 0; } - -.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { - float: left; } - -.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { - left: 1px; - right: auto; } - -.select2-container--default.select2-container--disabled .select2-selection--single { - background-color: #eee; - cursor: default; } - .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { - display: none; } - -.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; } - -.select2-container--default .select2-selection--multiple { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - cursor: text; } - .select2-container--default .select2-selection--multiple .select2-selection__rendered { - box-sizing: border-box; - list-style: none; - margin: 0; - padding: 0 5px; - width: 100%; } - .select2-container--default .select2-selection--multiple .select2-selection__rendered li { - list-style: none; } - .select2-container--default .select2-selection--multiple .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin-top: 5px; - margin-right: 10px; - padding: 1px; } - .select2-container--default .select2-selection--multiple .select2-selection__choice { - background-color: #e4e4e4; - border: 1px solid #aaa; - border-radius: 4px; - cursor: default; - float: left; - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; } - .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { - color: #999; - cursor: pointer; - display: inline-block; - font-weight: bold; - margin-right: 2px; } - .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #333; } - -.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline { - float: right; } - -.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - margin-left: 5px; - margin-right: auto; } - -.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; } - -.select2-container--default.select2-container--focus .select2-selection--multiple { - border: solid black 1px; - outline: 0; } - -.select2-container--default.select2-container--disabled .select2-selection--multiple { - background-color: #eee; - cursor: default; } - -.select2-container--default.select2-container--disabled .select2-selection__choice__remove { - display: none; } - -.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - -.select2-container--default .select2-search--dropdown .select2-search__field { - border: 1px solid #aaa; } - -.select2-container--default .select2-search--inline .select2-search__field { - background: transparent; - border: none; - outline: 0; - box-shadow: none; - -webkit-appearance: textfield; } - -.select2-container--default .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; } - -.select2-container--default .select2-results__option[role=group] { - padding: 0; } - -.select2-container--default .select2-results__option[aria-disabled=true] { - color: #999; } - -.select2-container--default .select2-results__option[aria-selected=true] { - background-color: #ddd; } - -.select2-container--default .select2-results__option .select2-results__option { - padding-left: 1em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__group { - padding-left: 0; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option { - margin-left: -1em; - padding-left: 2em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -2em; - padding-left: 3em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -3em; - padding-left: 4em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -4em; - padding-left: 5em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -5em; - padding-left: 6em; } - -.select2-container--default .select2-results__option--highlighted[aria-selected] { - background-color: #5897fb; - color: white; } - -.select2-container--default .select2-results__group { - cursor: default; - display: block; - padding: 6px; } - -.select2-container--classic .select2-selection--single { - background-color: #f7f7f7; - border: 1px solid #aaa; - border-radius: 4px; - outline: 0; - background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%); - background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%); - background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } - .select2-container--classic .select2-selection--single:focus { - border: 1px solid #5897fb; } - .select2-container--classic .select2-selection--single .select2-selection__rendered { - color: #444; - line-height: 28px; } - .select2-container--classic .select2-selection--single .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin-right: 10px; } - .select2-container--classic .select2-selection--single .select2-selection__placeholder { - color: #999; } - .select2-container--classic .select2-selection--single .select2-selection__arrow { - background-color: #ddd; - border: none; - border-left: 1px solid #aaa; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - height: 26px; - position: absolute; - top: 1px; - right: 1px; - width: 20px; - background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%); - background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%); - background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } - .select2-container--classic .select2-selection--single .select2-selection__arrow b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - height: 0; - left: 50%; - margin-left: -4px; - margin-top: -2px; - position: absolute; - top: 50%; - width: 0; } - -.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear { - float: left; } - -.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow { - border: none; - border-right: 1px solid #aaa; - border-radius: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - left: 1px; - right: auto; } - -.select2-container--classic.select2-container--open .select2-selection--single { - border: 1px solid #5897fb; } - .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow { - background: transparent; - border: none; } - .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; } - -.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; - background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%); - background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%); - background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } - -.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%); - background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%); - background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } - -.select2-container--classic .select2-selection--multiple { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - cursor: text; - outline: 0; } - .select2-container--classic .select2-selection--multiple:focus { - border: 1px solid #5897fb; } - .select2-container--classic .select2-selection--multiple .select2-selection__rendered { - list-style: none; - margin: 0; - padding: 0 5px; } - .select2-container--classic .select2-selection--multiple .select2-selection__clear { - display: none; } - .select2-container--classic .select2-selection--multiple .select2-selection__choice { - background-color: #e4e4e4; - border: 1px solid #aaa; - border-radius: 4px; - cursor: default; - float: left; - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; } - .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { - color: #888; - cursor: pointer; - display: inline-block; - font-weight: bold; - margin-right: 2px; } - .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #555; } - -.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - float: right; - margin-left: 5px; - margin-right: auto; } - -.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; } - -.select2-container--classic.select2-container--open .select2-selection--multiple { - border: 1px solid #5897fb; } - -.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - -.select2-container--classic .select2-search--dropdown .select2-search__field { - border: 1px solid #aaa; - outline: 0; } - -.select2-container--classic .select2-search--inline .select2-search__field { - outline: 0; - box-shadow: none; } - -.select2-container--classic .select2-dropdown { - background-color: white; - border: 1px solid transparent; } - -.select2-container--classic .select2-dropdown--above { - border-bottom: none; } - -.select2-container--classic .select2-dropdown--below { - border-top: none; } - -.select2-container--classic .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; } - -.select2-container--classic .select2-results__option[role=group] { - padding: 0; } - -.select2-container--classic .select2-results__option[aria-disabled=true] { - color: grey; } - -.select2-container--classic .select2-results__option--highlighted[aria-selected] { - background-color: #3875d7; - color: white; } - -.select2-container--classic .select2-results__group { - cursor: default; - display: block; - padding: 6px; } - -.select2-container--classic.select2-container--open .select2-dropdown { - border-color: #5897fb; } diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css deleted file mode 100644 index 7c18ad5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css +++ /dev/null @@ -1 +0,0 @@ -.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/widgets.css b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/widgets.css deleted file mode 100644 index 1104e8b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/css/widgets.css +++ /dev/null @@ -1,604 +0,0 @@ -/* SELECTOR (FILTER INTERFACE) */ - -.selector { - width: 800px; - float: left; - display: flex; -} - -.selector select { - width: 380px; - height: 17.2em; - flex: 1 0 auto; -} - -.selector-available, .selector-chosen { - width: 380px; - text-align: center; - margin-bottom: 5px; - display: flex; - flex-direction: column; -} - -.selector-available h2, .selector-chosen h2 { - border: 1px solid var(--border-color); - border-radius: 4px 4px 0 0; -} - -.selector-chosen .list-footer-display { - border: 1px solid var(--border-color); - border-top: none; - border-radius: 0 0 4px 4px; - margin: 0 0 10px; - padding: 8px; - text-align: center; - background: var(--primary); - color: var(--header-link-color); - cursor: pointer; -} -.selector-chosen .list-footer-display__clear { - color: var(--breadcrumbs-fg); -} - -.selector-chosen h2 { - background: var(--primary); - color: var(--header-link-color); -} - -.selector .selector-available h2 { - background: var(--darkened-bg); - color: var(--body-quiet-color); -} - -.selector .selector-filter { - border: 1px solid var(--border-color); - border-width: 0 1px; - padding: 8px; - color: var(--body-quiet-color); - font-size: 0.625rem; - margin: 0; - text-align: left; -} - -.selector .selector-filter label, -.inline-group .aligned .selector .selector-filter label { - float: left; - margin: 7px 0 0; - width: 18px; - height: 18px; - padding: 0; - overflow: hidden; - line-height: 1; - min-width: auto; -} - -.selector .selector-available input, -.selector .selector-chosen input { - width: 320px; - margin-left: 8px; -} - -.selector ul.selector-chooser { - align-self: center; - width: 22px; - background-color: var(--selected-bg); - border-radius: 10px; - margin: 0 5px; - padding: 0; - transform: translateY(-17px); -} - -.selector-chooser li { - margin: 0; - padding: 3px; - list-style-type: none; -} - -.selector select { - padding: 0 10px; - margin: 0 0 10px; - border-radius: 0 0 4px 4px; -} -.selector .selector-chosen--with-filtered select { - margin: 0; - border-radius: 0; - height: 14em; -} - -.selector .selector-chosen:not(.selector-chosen--with-filtered) .list-footer-display { - display: none; -} - -.selector-add, .selector-remove { - width: 16px; - height: 16px; - display: block; - text-indent: -3000px; - overflow: hidden; - cursor: default; - opacity: 0.55; -} - -.active.selector-add, .active.selector-remove { - opacity: 1; -} - -.active.selector-add:hover, .active.selector-remove:hover { - cursor: pointer; -} - -.selector-add { - background: url(../img/selector-icons.svg) 0 -96px no-repeat; -} - -.active.selector-add:focus, .active.selector-add:hover { - background-position: 0 -112px; -} - -.selector-remove { - background: url(../img/selector-icons.svg) 0 -64px no-repeat; -} - -.active.selector-remove:focus, .active.selector-remove:hover { - background-position: 0 -80px; -} - -a.selector-chooseall, a.selector-clearall { - display: inline-block; - height: 16px; - text-align: left; - margin: 1px auto 3px; - overflow: hidden; - font-weight: bold; - line-height: 16px; - color: var(--body-quiet-color); - text-decoration: none; - opacity: 0.55; -} - -a.active.selector-chooseall:focus, a.active.selector-clearall:focus, -a.active.selector-chooseall:hover, a.active.selector-clearall:hover { - color: var(--link-fg); -} - -a.active.selector-chooseall, a.active.selector-clearall { - opacity: 1; -} - -a.active.selector-chooseall:hover, a.active.selector-clearall:hover { - cursor: pointer; -} - -a.selector-chooseall { - padding: 0 18px 0 0; - background: url(../img/selector-icons.svg) right -160px no-repeat; - cursor: default; -} - -a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { - background-position: 100% -176px; -} - -a.selector-clearall { - padding: 0 0 0 18px; - background: url(../img/selector-icons.svg) 0 -128px no-repeat; - cursor: default; -} - -a.active.selector-clearall:focus, a.active.selector-clearall:hover { - background-position: 0 -144px; -} - -/* STACKED SELECTORS */ - -.stacked { - float: left; - width: 490px; - display: block; -} - -.stacked select { - width: 480px; - height: 10.1em; -} - -.stacked .selector-available, .stacked .selector-chosen { - width: 480px; -} - -.stacked .selector-available { - margin-bottom: 0; -} - -.stacked .selector-available input { - width: 422px; -} - -.stacked ul.selector-chooser { - height: 22px; - width: 50px; - margin: 0 0 10px 40%; - background-color: #eee; - border-radius: 10px; - transform: none; -} - -.stacked .selector-chooser li { - float: left; - padding: 3px 3px 3px 5px; -} - -.stacked .selector-chooseall, .stacked .selector-clearall { - display: none; -} - -.stacked .selector-add { - background: url(../img/selector-icons.svg) 0 -32px no-repeat; - cursor: default; -} - -.stacked .active.selector-add { - background-position: 0 -32px; - cursor: pointer; -} - -.stacked .active.selector-add:focus, .stacked .active.selector-add:hover { - background-position: 0 -48px; - cursor: pointer; -} - -.stacked .selector-remove { - background: url(../img/selector-icons.svg) 0 0 no-repeat; - cursor: default; -} - -.stacked .active.selector-remove { - background-position: 0 0px; - cursor: pointer; -} - -.stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover { - background-position: 0 -16px; - cursor: pointer; -} - -.selector .help-icon { - background: url(../img/icon-unknown.svg) 0 0 no-repeat; - display: inline-block; - vertical-align: middle; - margin: -2px 0 0 2px; - width: 13px; - height: 13px; -} - -.selector .selector-chosen .help-icon { - background: url(../img/icon-unknown-alt.svg) 0 0 no-repeat; -} - -.selector .search-label-icon { - background: url(../img/search.svg) 0 0 no-repeat; - display: inline-block; - height: 1.125rem; - width: 1.125rem; -} - -/* DATE AND TIME */ - -p.datetime { - line-height: 20px; - margin: 0; - padding: 0; - color: var(--body-quiet-color); - font-weight: bold; -} - -.datetime span { - white-space: nowrap; - font-weight: normal; - font-size: 0.6875rem; - color: var(--body-quiet-color); -} - -.datetime input, .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { - margin-left: 5px; - margin-bottom: 4px; -} - -table p.datetime { - font-size: 0.6875rem; - margin-left: 0; - padding-left: 0; -} - -.datetimeshortcuts .clock-icon, .datetimeshortcuts .date-icon { - position: relative; - display: inline-block; - vertical-align: middle; - height: 16px; - width: 16px; - overflow: hidden; -} - -.datetimeshortcuts .clock-icon { - background: url(../img/icon-clock.svg) 0 0 no-repeat; -} - -.datetimeshortcuts a:focus .clock-icon, -.datetimeshortcuts a:hover .clock-icon { - background-position: 0 -16px; -} - -.datetimeshortcuts .date-icon { - background: url(../img/icon-calendar.svg) 0 0 no-repeat; - top: -1px; -} - -.datetimeshortcuts a:focus .date-icon, -.datetimeshortcuts a:hover .date-icon { - background-position: 0 -16px; -} - -.timezonewarning { - font-size: 0.6875rem; - color: var(--body-quiet-color); -} - -/* URL */ - -p.url { - line-height: 20px; - margin: 0; - padding: 0; - color: var(--body-quiet-color); - font-size: 0.6875rem; - font-weight: bold; -} - -.url a { - font-weight: normal; -} - -/* FILE UPLOADS */ - -p.file-upload { - line-height: 20px; - margin: 0; - padding: 0; - color: var(--body-quiet-color); - font-size: 0.6875rem; - font-weight: bold; -} - -.file-upload a { - font-weight: normal; -} - -.file-upload .deletelink { - margin-left: 5px; -} - -span.clearable-file-input label { - color: var(--body-fg); - font-size: 0.6875rem; - display: inline; - float: none; -} - -/* CALENDARS & CLOCKS */ - -.calendarbox, .clockbox { - margin: 5px auto; - font-size: 0.75rem; - width: 19em; - text-align: center; - background: var(--body-bg); - color: var(--body-fg); - border: 1px solid var(--hairline-color); - border-radius: 4px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); - overflow: hidden; - position: relative; -} - -.clockbox { - width: auto; -} - -.calendar { - margin: 0; - padding: 0; -} - -.calendar table { - margin: 0; - padding: 0; - border-collapse: collapse; - background: white; - width: 100%; -} - -.calendar caption, .calendarbox h2 { - margin: 0; - text-align: center; - border-top: none; - font-weight: 700; - font-size: 0.75rem; - color: #333; - background: var(--accent); -} - -.calendar th { - padding: 8px 5px; - background: var(--darkened-bg); - border-bottom: 1px solid var(--border-color); - font-weight: 400; - font-size: 0.75rem; - text-align: center; - color: var(--body-quiet-color); -} - -.calendar td { - font-weight: 400; - font-size: 0.75rem; - text-align: center; - padding: 0; - border-top: 1px solid var(--hairline-color); - border-bottom: none; -} - -.calendar td.selected a { - background: var(--primary); - color: var(--button-fg); -} - -.calendar td.nonday { - background: var(--darkened-bg); -} - -.calendar td.today a { - font-weight: 700; -} - -.calendar td a, .timelist a { - display: block; - font-weight: 400; - padding: 6px; - text-decoration: none; - color: var(--body-quiet-color); -} - -.calendar td a:focus, .timelist a:focus, -.calendar td a:hover, .timelist a:hover { - background: var(--primary); - color: white; -} - -.calendar td a:active, .timelist a:active { - background: var(--header-bg); - color: white; -} - -.calendarnav { - font-size: 0.625rem; - text-align: center; - color: #ccc; - margin: 0; - padding: 1px 3px; -} - -.calendarnav a:link, #calendarnav a:visited, -#calendarnav a:focus, #calendarnav a:hover { - color: var(--body-quiet-color); -} - -.calendar-shortcuts { - background: var(--body-bg); - color: var(--body-quiet-color); - font-size: 0.6875rem; - line-height: 0.6875rem; - border-top: 1px solid var(--hairline-color); - padding: 8px 0; -} - -.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { - display: block; - position: absolute; - top: 8px; - width: 15px; - height: 15px; - text-indent: -9999px; - padding: 0; -} - -.calendarnav-previous { - left: 10px; - background: url(../img/calendar-icons.svg) 0 0 no-repeat; -} - -.calendarbox .calendarnav-previous:focus, -.calendarbox .calendarnav-previous:hover { - background-position: 0 -15px; -} - -.calendarnav-next { - right: 10px; - background: url(../img/calendar-icons.svg) 0 -30px no-repeat; -} - -.calendarbox .calendarnav-next:focus, -.calendarbox .calendarnav-next:hover { - background-position: 0 -45px; -} - -.calendar-cancel { - margin: 0; - padding: 4px 0; - font-size: 0.75rem; - background: #eee; - border-top: 1px solid var(--border-color); - color: var(--body-fg); -} - -.calendar-cancel:focus, .calendar-cancel:hover { - background: #ddd; -} - -.calendar-cancel a { - color: black; - display: block; -} - -ul.timelist, .timelist li { - list-style-type: none; - margin: 0; - padding: 0; -} - -.timelist a { - padding: 2px; -} - -/* EDIT INLINE */ - -.inline-deletelink { - float: right; - text-indent: -9999px; - background: url(../img/inline-delete.svg) 0 0 no-repeat; - width: 16px; - height: 16px; - border: 0px none; -} - -.inline-deletelink:focus, .inline-deletelink:hover { - cursor: pointer; -} - -/* RELATED WIDGET WRAPPER */ -.related-widget-wrapper { - float: left; /* display properly in form rows with multiple fields */ - overflow: hidden; /* clear floated contents */ -} - -.related-widget-wrapper-link { - opacity: 0.3; -} - -.related-widget-wrapper-link:link { - opacity: .8; -} - -.related-widget-wrapper-link:link:focus, -.related-widget-wrapper-link:link:hover { - opacity: 1; -} - -select + .related-widget-wrapper-link, -.related-widget-wrapper-link + .related-widget-wrapper-link { - margin-left: 7px; -} - -/* GIS MAPS */ -.dj_map { - width: 600px; - height: 400px; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/LICENSE b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/LICENSE deleted file mode 100644 index a4faaa1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Code Charm Ltd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/README.txt b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/README.txt deleted file mode 100644 index 4eb2e49..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/README.txt +++ /dev/null @@ -1,7 +0,0 @@ -All icons are taken from Font Awesome (http://fontawesome.io/) project. -The Font Awesome font is licensed under the SIL OFL 1.1: -- https://scripts.sil.org/OFL - -SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG -Font-Awesome-SVG-PNG is licensed under the MIT license (see file license -in current folder). diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg deleted file mode 100644 index dbf21c3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg width="15" height="60" viewBox="0 0 1792 7168" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <defs> - <g id="previous"> - <path d="M1037 1395l102-102q19-19 19-45t-19-45l-307-307 307-307q19-19 19-45t-19-45l-102-102q-19-19-45-19t-45 19l-454 454q-19 19-19 45t19 45l454 454q19 19 45 19t45-19zm627-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - <g id="next"> - <path d="M845 1395l454-454q19-19 19-45t-19-45l-454-454q-19-19-45-19t-45 19l-102 102q-19 19-19 45t19 45l307 307-307 307q-19 19-19 45t19 45l102 102q19 19 45 19t45-19zm819-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - </defs> - <use xlink:href="#previous" x="0" y="0" fill="#333333" /> - <use xlink:href="#previous" x="0" y="1792" fill="#000000" /> - <use xlink:href="#next" x="0" y="3584" fill="#333333" /> - <use xlink:href="#next" x="0" y="5376" fill="#000000" /> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg deleted file mode 100644 index 228854f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg +++ /dev/null @@ -1 +0,0 @@ -<svg width="24" height="22" viewBox="0 0 847 779" xmlns="http://www.w3.org/2000/svg"><g><path fill="#EBECE6" d="M120 1h607c66 0 120 54 120 120v536c0 66-54 120-120 120h-607c-66 0-120-54-120-120v-536c0-66 54-120 120-120z"/><path fill="#9E9E93" d="M120 1h607c66 0 120 54 120 120v536c0 66-54 120-120 120h-607c-66 0-120-54-120-120v-536c0-66 54-120 120-120zm607 25h-607c-26 0-50 11-67 28-17 18-28 41-28 67v536c0 27 11 50 28 68 17 17 41 27 67 27h607c26 0 49-10 67-27 17-18 28-41 28-68v-536c0-26-11-49-28-67-18-17-41-28-67-28z"/><path stroke="#A9A8A4" stroke-width="20" d="M706 295l-68 281"/><path stroke="#E47474" stroke-width="20" d="M316 648l390-353M141 435l175 213"/><path stroke="#C9C9C9" stroke-width="20" d="M319 151l-178 284M706 295l-387-144"/><g fill="#040405"><path d="M319 111c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40zM141 395c22 0 40 18 40 40s-18 40-40 40c-23 0-41-18-41-40s18-40 41-40zM316 608c22 0 40 18 40 40 0 23-18 41-40 41s-40-18-40-41c0-22 18-40 40-40zM706 254c22 0 40 18 40 41 0 22-18 40-40 40s-40-18-40-40c0-23 18-41 40-41zM638 536c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40z"/></g></g></svg> \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg deleted file mode 100644 index 96b87fd..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg +++ /dev/null @@ -1 +0,0 @@ -<svg width="24" height="22" viewBox="0 0 847 779" xmlns="http://www.w3.org/2000/svg"><g><path fill="#F1C02A" d="M120 1h607c66 0 120 54 120 120v536c0 66-54 120-120 120h-607c-66 0-120-54-120-120v-536c0-66 54-120 120-120z"/><path fill="#9E9E93" d="M120 1h607c66 0 120 54 120 120v536c0 66-54 120-120 120h-607c-66 0-120-54-120-120v-536c0-66 54-120 120-120zm607 25h-607c-26 0-50 11-67 28-17 18-28 41-28 67v536c0 27 11 50 28 68 17 17 41 27 67 27h607c26 0 49-10 67-27 17-18 28-41 28-68v-536c0-26-11-49-28-67-18-17-41-28-67-28z"/><path stroke="#A9A8A4" stroke-width="20" d="M706 295l-68 281"/><path stroke="#E47474" stroke-width="20" d="M316 648l390-353M141 435l175 213"/><path stroke="#C9A741" stroke-width="20" d="M319 151l-178 284M706 295l-387-144"/><g fill="#040405"><path d="M319 111c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40zM141 395c22 0 40 18 40 40s-18 40-40 40c-23 0-41-18-41-40s18-40 41-40zM316 608c22 0 40 18 40 40 0 23-18 41-40 41s-40-18-40-41c0-22 18-40 40-40zM706 254c22 0 40 18 40 41 0 22-18 40-40 40s-40-18-40-40c0-23 18-41 40-41zM638 536c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40z"/></g></g></svg> \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg deleted file mode 100644 index e004fb1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#70bf2b" d="M1600 796v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg deleted file mode 100644 index e51ea83..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="14" height="14" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#efb80b" d="M1024 1375v-190q0-14-9.5-23.5t-22.5-9.5h-192q-13 0-22.5 9.5t-9.5 23.5v190q0 14 9.5 23.5t22.5 9.5h192q13 0 22.5-9.5t9.5-23.5zm-2-374l18-459q0-12-10-19-13-11-24-11h-220q-11 0-24 11-10 7-10 21l17 457q0 10 10 16.5t24 6.5h185q14 0 23.5-6.5t10.5-16.5zm-14-934l768 1408q35 63-2 126-17 29-46.5 46t-63.5 17h-1536q-34 0-63.5-17t-46.5-46q-37-63-2-126l768-1408q17-31 47-49t65-18 65 18 47 49z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg deleted file mode 100644 index 97910a9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg width="16" height="32" viewBox="0 0 1792 3584" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <defs> - <g id="icon"> - <path d="M192 1664h288v-288h-288v288zm352 0h320v-288h-320v288zm-352-352h288v-320h-288v320zm352 0h320v-320h-320v320zm-352-384h288v-288h-288v288zm736 736h320v-288h-320v288zm-384-736h320v-288h-320v288zm768 736h288v-288h-288v288zm-384-352h320v-320h-320v320zm-352-864v-288q0-13-9.5-22.5t-22.5-9.5h-64q-13 0-22.5 9.5t-9.5 22.5v288q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5-9.5t9.5-22.5zm736 864h288v-320h-288v320zm-384-384h320v-288h-320v288zm384 0h288v-288h-288v288zm32-480v-288q0-13-9.5-22.5t-22.5-9.5h-64q-13 0-22.5 9.5t-9.5 22.5v288q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5-9.5t9.5-22.5zm384-64v1280q0 52-38 90t-90 38h-1408q-52 0-90-38t-38-90v-1280q0-52 38-90t90-38h128v-96q0-66 47-113t113-47h64q66 0 113 47t47 113v96h384v-96q0-66 47-113t113-47h64q66 0 113 47t47 113v96h128q52 0 90 38t38 90z"/> - </g> - </defs> - <use xlink:href="#icon" x="0" y="0" fill="#447e9b" /> - <use xlink:href="#icon" x="0" y="1792" fill="#003366" /> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg deleted file mode 100644 index bbb137a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#efb80b" d="M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg deleted file mode 100644 index bf9985d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg width="16" height="32" viewBox="0 0 1792 3584" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <defs> - <g id="icon"> - <path d="M1024 544v448q0 14-9 23t-23 9h-320q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h224v-352q0-14 9-23t23-9h64q14 0 23 9t9 23zm416 352q0-148-73-273t-198-198-273-73-273 73-198 198-73 273 73 273 198 198 273 73 273-73 198-198 73-273zm224 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - </defs> - <use xlink:href="#icon" x="0" y="0" fill="#447e9b" /> - <use xlink:href="#icon" x="0" y="1792" fill="#003366" /> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg deleted file mode 100644 index 4059b15..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="14" height="14" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#dd4646" d="M1490 1322q0 40-28 68l-136 136q-28 28-68 28t-68-28l-294-294-294 294q-28 28-68 28t-68-28l-136-136q-28-28-28-68t28-68l294-294-294-294q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 294 294-294q28-28 68-28t68 28l136 136q28 28 28 68t-28 68l-294 294 294 294q28 28 28 68z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-no.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-no.svg deleted file mode 100644 index 2e0d383..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-no.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#dd4646" d="M1277 1122q0-26-19-45l-181-181 181-181q19-19 19-45 0-27-19-46l-90-90q-19-19-46-19-26 0-45 19l-181 181-181-181q-19-19-45-19-27 0-46 19l-90 90q-19 19-19 46 0 26 19 45l181 181-181 181q-19 19-19 45 0 27 19 46l90 90q19 19 46 19 26 0 45-19l181-181 181 181q19 19 45 19 27 0 46-19l90-90q19-19 19-46zm387-226q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg deleted file mode 100644 index 1c6b99f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#ffffff" d="M1024 1376v-192q0-14-9-23t-23-9h-192q-14 0-23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23-9t9-23zm256-672q0-88-55.5-163t-138.5-116-170-41q-243 0-371 213-15 24 8 42l132 100q7 6 19 6 16 0 25-12 53-68 86-92 34-24 86-24 48 0 85.5 26t37.5 59q0 38-20 61t-68 45q-63 28-115.5 86.5t-52.5 125.5v36q0 14 9 23t23 9h192q14 0 23-9t9-23q0-19 21.5-49.5t54.5-49.5q32-18 49-28.5t46-35 44.5-48 28-60.5 12.5-81zm384 192q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg deleted file mode 100644 index 50b4f97..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#666666" d="M1024 1376v-192q0-14-9-23t-23-9h-192q-14 0-23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23-9t9-23zm256-672q0-88-55.5-163t-138.5-116-170-41q-243 0-371 213-15 24 8 42l132 100q7 6 19 6 16 0 25-12 53-68 86-92 34-24 86-24 48 0 85.5 26t37.5 59q0 38-20 61t-68 45q-63 28-115.5 86.5t-52.5 125.5v36q0 14 9 23t23 9h192q14 0 23-9t9-23q0-19 21.5-49.5t54.5-49.5q32-18 49-28.5t46-35 44.5-48 28-60.5 12.5-81zm384 192q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg deleted file mode 100644 index a1ca1d3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#2b70bf" d="M1664 960q-152-236-381-353 61 104 61 225 0 185-131.5 316.5t-316.5 131.5-316.5-131.5-131.5-316.5q0-121 61-225-229 117-381 353 133 205 333.5 326.5t434.5 121.5 434.5-121.5 333.5-326.5zm-720-384q0-20-14-34t-34-14q-125 0-214.5 89.5t-89.5 214.5q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm848 384q0 34-20 69-140 230-376.5 368.5t-499.5 138.5-499.5-139-376.5-368q-20-35-20-69t20-69q140-229 376.5-368t499.5-139 499.5 139 376.5 368q20 35 20 69z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg deleted file mode 100644 index 5883d87..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#70bf2b" d="M1412 734q0-28-18-46l-91-90q-19-19-45-19t-45 19l-408 407-226-226q-19-19-45-19t-45 19l-91 90q-18 18-18 46 0 27 18 45l362 362q19 19 45 19 27 0 46-19l543-543q18-18 18-45zm252 162q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg deleted file mode 100644 index 17d1ad6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="16" height="16" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#999999" d="M1277 1122q0-26-19-45l-181-181 181-181q19-19 19-45 0-27-19-46l-90-90q-19-19-46-19-26 0-45 19l-181 181-181-181q-19-19-45-19-27 0-46 19l-90 90q-19 19-19 46 0 26 19 45l181 181-181 181q-19 19-19 45 0 27 19 46l90 90q19 19 46 19 26 0 45-19l181-181 181 181q19 19 45 19 27 0 46-19l90-90q19-19 19-46zm387-226q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/search.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/search.svg deleted file mode 100644 index c8c69b2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/search.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="15" height="15" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#555555" d="M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg deleted file mode 100644 index 926b8e2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg +++ /dev/null @@ -1,34 +0,0 @@ -<svg width="16" height="192" viewBox="0 0 1792 21504" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <defs> - <g id="up"> - <path d="M1412 895q0-27-18-45l-362-362-91-91q-18-18-45-18t-45 18l-91 91-362 362q-18 18-18 45t18 45l91 91q18 18 45 18t45-18l189-189v502q0 26 19 45t45 19h128q26 0 45-19t19-45v-502l189 189q19 19 45 19t45-19l91-91q18-18 18-45zm252 1q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - <g id="down"> - <path d="M1412 897q0-27-18-45l-91-91q-18-18-45-18t-45 18l-189 189v-502q0-26-19-45t-45-19h-128q-26 0-45 19t-19 45v502l-189-189q-19-19-45-19t-45 19l-91 91q-18 18-18 45t18 45l362 362 91 91q18 18 45 18t45-18l91-91 362-362q18-18 18-45zm252-1q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - <g id="left"> - <path d="M1408 960v-128q0-26-19-45t-45-19h-502l189-189q19-19 19-45t-19-45l-91-91q-18-18-45-18t-45 18l-362 362-91 91q-18 18-18 45t18 45l91 91 362 362q18 18 45 18t45-18l91-91q18-18 18-45t-18-45l-189-189h502q26 0 45-19t19-45zm256-64q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - <g id="right"> - <path d="M1413 896q0-27-18-45l-91-91-362-362q-18-18-45-18t-45 18l-91 91q-18 18-18 45t18 45l189 189h-502q-26 0-45 19t-19 45v128q0 26 19 45t45 19h502l-189 189q-19 19-19 45t19 45l91 91q18 18 45 18t45-18l362-362 91-91q18-18 18-45zm251 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - <g id="clearall"> - <path transform="translate(336, 336) scale(0.75)" d="M1037 1395l102-102q19-19 19-45t-19-45l-307-307 307-307q19-19 19-45t-19-45l-102-102q-19-19-45-19t-45 19l-454 454q-19 19-19 45t19 45l454 454q19 19 45 19t45-19zm627-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - <g id="chooseall"> - <path transform="translate(336, 336) scale(0.75)" d="M845 1395l454-454q19-19 19-45t-19-45l-454-454q-19-19-45-19t-45 19l-102 102q-19 19-19 45t19 45l307 307-307 307q-19 19-19 45t19 45l102 102q19 19 45 19t45-19zm819-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> - </g> - </defs> - <use xlink:href="#up" x="0" y="0" fill="#666666" /> - <use xlink:href="#up" x="0" y="1792" fill="#447e9b" /> - <use xlink:href="#down" x="0" y="3584" fill="#666666" /> - <use xlink:href="#down" x="0" y="5376" fill="#447e9b" /> - <use xlink:href="#left" x="0" y="7168" fill="#666666" /> - <use xlink:href="#left" x="0" y="8960" fill="#447e9b" /> - <use xlink:href="#right" x="0" y="10752" fill="#666666" /> - <use xlink:href="#right" x="0" y="12544" fill="#447e9b" /> - <use xlink:href="#clearall" x="0" y="14336" fill="#666666" /> - <use xlink:href="#clearall" x="0" y="16128" fill="#447e9b" /> - <use xlink:href="#chooseall" x="0" y="17920" fill="#666666" /> - <use xlink:href="#chooseall" x="0" y="19712" fill="#447e9b" /> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg deleted file mode 100644 index 7c31ec9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg +++ /dev/null @@ -1,19 +0,0 @@ -<svg width="14" height="84" viewBox="0 0 1792 10752" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <defs> - <g id="sort"> - <path d="M1408 1088q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45zm0-384q0 26-19 45t-45 19h-896q-26 0-45-19t-19-45 19-45l448-448q19-19 45-19t45 19l448 448q19 19 19 45z"/> - </g> - <g id="ascending"> - <path d="M1408 1216q0 26-19 45t-45 19h-896q-26 0-45-19t-19-45 19-45l448-448q19-19 45-19t45 19l448 448q19 19 19 45z"/> - </g> - <g id="descending"> - <path d="M1408 704q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45z"/> - </g> - </defs> - <use xlink:href="#sort" x="0" y="0" fill="#999999" /> - <use xlink:href="#sort" x="0" y="1792" fill="#447e9b" /> - <use xlink:href="#ascending" x="0" y="3584" fill="#999999" /> - <use xlink:href="#ascending" x="0" y="5376" fill="#447e9b" /> - <use xlink:href="#descending" x="0" y="7168" fill="#999999" /> - <use xlink:href="#descending" x="0" y="8960" fill="#447e9b" /> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg deleted file mode 100644 index 1ca64ae..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#ffffff" d="M1600 736v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg deleted file mode 100644 index b664d61..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path fill="#ffffff" d="M1363 877l-742 742q-19 19-45 19t-45-19l-166-166q-19-19-19-45t19-45l531-531-531-531q-19-19-19-45t19-45l166-166q19-19 45-19t45 19l742 742q19 19 19 45t-19 45z"/> -</svg> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/SelectBox.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/SelectBox.js deleted file mode 100644 index 3db4ec7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/SelectBox.js +++ /dev/null @@ -1,116 +0,0 @@ -'use strict'; -{ - const SelectBox = { - cache: {}, - init: function(id) { - const box = document.getElementById(id); - SelectBox.cache[id] = []; - const cache = SelectBox.cache[id]; - for (const node of box.options) { - cache.push({value: node.value, text: node.text, displayed: 1}); - } - }, - redisplay: function(id) { - // Repopulate HTML select box from cache - const box = document.getElementById(id); - const scroll_value_from_top = box.scrollTop; - box.innerHTML = ''; - for (const node of SelectBox.cache[id]) { - if (node.displayed) { - const new_option = new Option(node.text, node.value, false, false); - // Shows a tooltip when hovering over the option - new_option.title = node.text; - box.appendChild(new_option); - } - } - box.scrollTop = scroll_value_from_top; - }, - filter: function(id, text) { - // Redisplay the HTML select box, displaying only the choices containing ALL - // the words in text. (It's an AND search.) - const tokens = text.toLowerCase().split(/\s+/); - for (const node of SelectBox.cache[id]) { - node.displayed = 1; - const node_text = node.text.toLowerCase(); - for (const token of tokens) { - if (!node_text.includes(token)) { - node.displayed = 0; - break; // Once the first token isn't found we're done - } - } - } - SelectBox.redisplay(id); - }, - get_hidden_node_count(id) { - const cache = SelectBox.cache[id] || []; - return cache.filter(node => node.displayed === 0).length; - }, - delete_from_cache: function(id, value) { - let delete_index = null; - const cache = SelectBox.cache[id]; - for (const [i, node] of cache.entries()) { - if (node.value === value) { - delete_index = i; - break; - } - } - cache.splice(delete_index, 1); - }, - add_to_cache: function(id, option) { - SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); - }, - cache_contains: function(id, value) { - // Check if an item is contained in the cache - for (const node of SelectBox.cache[id]) { - if (node.value === value) { - return true; - } - } - return false; - }, - move: function(from, to) { - const from_box = document.getElementById(from); - for (const option of from_box.options) { - const option_value = option.value; - if (option.selected && SelectBox.cache_contains(from, option_value)) { - SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1}); - SelectBox.delete_from_cache(from, option_value); - } - } - SelectBox.redisplay(from); - SelectBox.redisplay(to); - }, - move_all: function(from, to) { - const from_box = document.getElementById(from); - for (const option of from_box.options) { - const option_value = option.value; - if (SelectBox.cache_contains(from, option_value)) { - SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1}); - SelectBox.delete_from_cache(from, option_value); - } - } - SelectBox.redisplay(from); - SelectBox.redisplay(to); - }, - sort: function(id) { - SelectBox.cache[id].sort(function(a, b) { - a = a.text.toLowerCase(); - b = b.text.toLowerCase(); - if (a > b) { - return 1; - } - if (a < b) { - return -1; - } - return 0; - } ); - }, - select_all: function(id) { - const box = document.getElementById(id); - for (const option of box.options) { - option.selected = true; - } - } - }; - window.SelectBox = SelectBox; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js deleted file mode 100644 index 9a4e0a3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js +++ /dev/null @@ -1,283 +0,0 @@ -/*global SelectBox, gettext, interpolate, quickElement, SelectFilter*/ -/* -SelectFilter2 - Turns a multiple-select box into a filter interface. - -Requires core.js and SelectBox.js. -*/ -'use strict'; -{ - window.SelectFilter = { - init: function(field_id, field_name, is_stacked) { - if (field_id.match(/__prefix__/)) { - // Don't initialize on empty forms. - return; - } - const from_box = document.getElementById(field_id); - from_box.id += '_from'; // change its ID - from_box.className = 'filtered'; - - for (const p of from_box.parentNode.getElementsByTagName('p')) { - if (p.classList.contains("info")) { - // Remove <p class="info">, because it just gets in the way. - from_box.parentNode.removeChild(p); - } else if (p.classList.contains("help")) { - // Move help text up to the top so it isn't below the select - // boxes or wrapped off on the side to the right of the add - // button: - from_box.parentNode.insertBefore(p, from_box.parentNode.firstChild); - } - } - - // <div class="selector"> or <div class="selector stacked"> - const selector_div = quickElement('div', from_box.parentNode); - selector_div.className = is_stacked ? 'selector stacked' : 'selector'; - - // <div class="selector-available"> - const selector_available = quickElement('div', selector_div); - selector_available.className = 'selector-available'; - const title_available = quickElement('h2', selector_available, interpolate(gettext('Available %s') + ' ', [field_name])); - quickElement( - 'span', title_available, '', - 'class', 'help help-tooltip help-icon', - 'title', interpolate( - gettext( - 'This is the list of available %s. You may choose some by ' + - 'selecting them in the box below and then clicking the ' + - '"Choose" arrow between the two boxes.' - ), - [field_name] - ) - ); - - const filter_p = quickElement('p', selector_available, '', 'id', field_id + '_filter'); - filter_p.className = 'selector-filter'; - - const search_filter_label = quickElement('label', filter_p, '', 'for', field_id + '_input'); - - quickElement( - 'span', search_filter_label, '', - 'class', 'help-tooltip search-label-icon', - 'title', interpolate(gettext("Type into this box to filter down the list of available %s."), [field_name]) - ); - - filter_p.appendChild(document.createTextNode(' ')); - - const filter_input = quickElement('input', filter_p, '', 'type', 'text', 'placeholder', gettext("Filter")); - filter_input.id = field_id + '_input'; - - selector_available.appendChild(from_box); - const choose_all = quickElement('a', selector_available, gettext('Choose all'), 'title', interpolate(gettext('Click to choose all %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_add_all_link'); - choose_all.className = 'selector-chooseall'; - - // <ul class="selector-chooser"> - const selector_chooser = quickElement('ul', selector_div); - selector_chooser.className = 'selector-chooser'; - const add_link = quickElement('a', quickElement('li', selector_chooser), gettext('Choose'), 'title', gettext('Choose'), 'href', '#', 'id', field_id + '_add_link'); - add_link.className = 'selector-add'; - const remove_link = quickElement('a', quickElement('li', selector_chooser), gettext('Remove'), 'title', gettext('Remove'), 'href', '#', 'id', field_id + '_remove_link'); - remove_link.className = 'selector-remove'; - - // <div class="selector-chosen"> - const selector_chosen = quickElement('div', selector_div, '', 'id', field_id + '_selector_chosen'); - selector_chosen.className = 'selector-chosen'; - const title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name])); - quickElement( - 'span', title_chosen, '', - 'class', 'help help-tooltip help-icon', - 'title', interpolate( - gettext( - 'This is the list of chosen %s. You may remove some by ' + - 'selecting them in the box below and then clicking the ' + - '"Remove" arrow between the two boxes.' - ), - [field_name] - ) - ); - - const filter_selected_p = quickElement('p', selector_chosen, '', 'id', field_id + '_filter_selected'); - filter_selected_p.className = 'selector-filter'; - - const search_filter_selected_label = quickElement('label', filter_selected_p, '', 'for', field_id + '_selected_input'); - - quickElement( - 'span', search_filter_selected_label, '', - 'class', 'help-tooltip search-label-icon', - 'title', interpolate(gettext("Type into this box to filter down the list of selected %s."), [field_name]) - ); - - filter_selected_p.appendChild(document.createTextNode(' ')); - - const filter_selected_input = quickElement('input', filter_selected_p, '', 'type', 'text', 'placeholder', gettext("Filter")); - filter_selected_input.id = field_id + '_selected_input'; - - const to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', '', 'size', from_box.size, 'name', from_box.name); - to_box.className = 'filtered'; - - const warning_footer = quickElement('div', selector_chosen, '', 'class', 'list-footer-display'); - quickElement('span', warning_footer, '', 'id', field_id + '_list-footer-display-text'); - quickElement('span', warning_footer, ' (click to clear)', 'class', 'list-footer-display__clear'); - - const clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_remove_all_link'); - clear_all.className = 'selector-clearall'; - - from_box.name = from_box.name + '_old'; - - // Set up the JavaScript event handlers for the select box filter interface - const move_selection = function(e, elem, move_func, from, to) { - if (elem.classList.contains('active')) { - move_func(from, to); - SelectFilter.refresh_icons(field_id); - SelectFilter.refresh_filtered_selects(field_id); - SelectFilter.refresh_filtered_warning(field_id); - } - e.preventDefault(); - }; - choose_all.addEventListener('click', function(e) { - move_selection(e, this, SelectBox.move_all, field_id + '_from', field_id + '_to'); - }); - add_link.addEventListener('click', function(e) { - move_selection(e, this, SelectBox.move, field_id + '_from', field_id + '_to'); - }); - remove_link.addEventListener('click', function(e) { - move_selection(e, this, SelectBox.move, field_id + '_to', field_id + '_from'); - }); - clear_all.addEventListener('click', function(e) { - move_selection(e, this, SelectBox.move_all, field_id + '_to', field_id + '_from'); - }); - warning_footer.addEventListener('click', function(e) { - filter_selected_input.value = ''; - SelectBox.filter(field_id + '_to', ''); - SelectFilter.refresh_filtered_warning(field_id); - SelectFilter.refresh_icons(field_id); - }); - filter_input.addEventListener('keypress', function(e) { - SelectFilter.filter_key_press(e, field_id, '_from', '_to'); - }); - filter_input.addEventListener('keyup', function(e) { - SelectFilter.filter_key_up(e, field_id, '_from'); - }); - filter_input.addEventListener('keydown', function(e) { - SelectFilter.filter_key_down(e, field_id, '_from', '_to'); - }); - filter_selected_input.addEventListener('keypress', function(e) { - SelectFilter.filter_key_press(e, field_id, '_to', '_from'); - }); - filter_selected_input.addEventListener('keyup', function(e) { - SelectFilter.filter_key_up(e, field_id, '_to', '_selected_input'); - }); - filter_selected_input.addEventListener('keydown', function(e) { - SelectFilter.filter_key_down(e, field_id, '_to', '_from'); - }); - selector_div.addEventListener('change', function(e) { - if (e.target.tagName === 'SELECT') { - SelectFilter.refresh_icons(field_id); - } - }); - selector_div.addEventListener('dblclick', function(e) { - if (e.target.tagName === 'OPTION') { - if (e.target.closest('select').id === field_id + '_to') { - SelectBox.move(field_id + '_to', field_id + '_from'); - } else { - SelectBox.move(field_id + '_from', field_id + '_to'); - } - SelectFilter.refresh_icons(field_id); - } - }); - from_box.closest('form').addEventListener('submit', function() { - SelectBox.filter(field_id + '_to', ''); - SelectBox.select_all(field_id + '_to'); - }); - SelectBox.init(field_id + '_from'); - SelectBox.init(field_id + '_to'); - // Move selected from_box options to to_box - SelectBox.move(field_id + '_from', field_id + '_to'); - - // Initial icon refresh - SelectFilter.refresh_icons(field_id); - }, - any_selected: function(field) { - // Temporarily add the required attribute and check validity. - field.required = true; - const any_selected = field.checkValidity(); - field.required = false; - return any_selected; - }, - refresh_filtered_warning: function(field_id) { - const count = SelectBox.get_hidden_node_count(field_id + '_to'); - const selector = document.getElementById(field_id + '_selector_chosen'); - const warning = document.getElementById(field_id + '_list-footer-display-text'); - selector.className = selector.className.replace('selector-chosen--with-filtered', ''); - warning.textContent = interpolate(ngettext( - '%s selected option not visible', - '%s selected options not visible', - count - ), [count]); - if(count > 0) { - selector.className += ' selector-chosen--with-filtered'; - } - }, - refresh_filtered_selects: function(field_id) { - SelectBox.filter(field_id + '_from', document.getElementById(field_id + "_input").value); - SelectBox.filter(field_id + '_to', document.getElementById(field_id + "_selected_input").value); - }, - refresh_icons: function(field_id) { - const from = document.getElementById(field_id + '_from'); - const to = document.getElementById(field_id + '_to'); - // Active if at least one item is selected - document.getElementById(field_id + '_add_link').classList.toggle('active', SelectFilter.any_selected(from)); - document.getElementById(field_id + '_remove_link').classList.toggle('active', SelectFilter.any_selected(to)); - // Active if the corresponding box isn't empty - document.getElementById(field_id + '_add_all_link').classList.toggle('active', from.querySelector('option')); - document.getElementById(field_id + '_remove_all_link').classList.toggle('active', to.querySelector('option')); - SelectFilter.refresh_filtered_warning(field_id); - }, - filter_key_press: function(event, field_id, source, target) { - const source_box = document.getElementById(field_id + source); - // don't submit form if user pressed Enter - if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) { - source_box.selectedIndex = 0; - SelectBox.move(field_id + source, field_id + target); - source_box.selectedIndex = 0; - event.preventDefault(); - } - }, - filter_key_up: function(event, field_id, source, filter_input) { - const input = filter_input || '_input'; - const source_box = document.getElementById(field_id + source); - const temp = source_box.selectedIndex; - SelectBox.filter(field_id + source, document.getElementById(field_id + input).value); - source_box.selectedIndex = temp; - SelectFilter.refresh_filtered_warning(field_id); - SelectFilter.refresh_icons(field_id); - }, - filter_key_down: function(event, field_id, source, target) { - const source_box = document.getElementById(field_id + source); - // right key (39) or left key (37) - const direction = source === '_from' ? 39 : 37; - // right arrow -- move across - if ((event.which && event.which === direction) || (event.keyCode && event.keyCode === direction)) { - const old_index = source_box.selectedIndex; - SelectBox.move(field_id + source, field_id + target); - SelectFilter.refresh_filtered_selects(field_id); - SelectFilter.refresh_filtered_warning(field_id); - source_box.selectedIndex = (old_index === source_box.length) ? source_box.length - 1 : old_index; - return; - } - // down arrow -- wrap around - if ((event.which && event.which === 40) || (event.keyCode && event.keyCode === 40)) { - source_box.selectedIndex = (source_box.length === source_box.selectedIndex + 1) ? 0 : source_box.selectedIndex + 1; - } - // up arrow -- wrap around - if ((event.which && event.which === 38) || (event.keyCode && event.keyCode === 38)) { - source_box.selectedIndex = (source_box.selectedIndex === 0) ? source_box.length - 1 : source_box.selectedIndex - 1; - } - } - }; - - window.addEventListener('load', function(e) { - document.querySelectorAll('select.selectfilter, select.selectfilterstacked').forEach(function(el) { - const data = el.dataset; - SelectFilter.init(el.id, data.fieldName, parseInt(data.isStacked, 10)); - }); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/actions.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/actions.js deleted file mode 100644 index 20a5c14..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/actions.js +++ /dev/null @@ -1,201 +0,0 @@ -/*global gettext, interpolate, ngettext*/ -'use strict'; -{ - function show(selector) { - document.querySelectorAll(selector).forEach(function(el) { - el.classList.remove('hidden'); - }); - } - - function hide(selector) { - document.querySelectorAll(selector).forEach(function(el) { - el.classList.add('hidden'); - }); - } - - function showQuestion(options) { - hide(options.acrossClears); - show(options.acrossQuestions); - hide(options.allContainer); - } - - function showClear(options) { - show(options.acrossClears); - hide(options.acrossQuestions); - document.querySelector(options.actionContainer).classList.remove(options.selectedClass); - show(options.allContainer); - hide(options.counterContainer); - } - - function reset(options) { - hide(options.acrossClears); - hide(options.acrossQuestions); - hide(options.allContainer); - show(options.counterContainer); - } - - function clearAcross(options) { - reset(options); - const acrossInputs = document.querySelectorAll(options.acrossInput); - acrossInputs.forEach(function(acrossInput) { - acrossInput.value = 0; - }); - document.querySelector(options.actionContainer).classList.remove(options.selectedClass); - } - - function checker(actionCheckboxes, options, checked) { - if (checked) { - showQuestion(options); - } else { - reset(options); - } - actionCheckboxes.forEach(function(el) { - el.checked = checked; - el.closest('tr').classList.toggle(options.selectedClass, checked); - }); - } - - function updateCounter(actionCheckboxes, options) { - const sel = Array.from(actionCheckboxes).filter(function(el) { - return el.checked; - }).length; - const counter = document.querySelector(options.counterContainer); - // data-actions-icnt is defined in the generated HTML - // and contains the total amount of objects in the queryset - const actions_icnt = Number(counter.dataset.actionsIcnt); - counter.textContent = interpolate( - ngettext('%(sel)s of %(cnt)s selected', '%(sel)s of %(cnt)s selected', sel), { - sel: sel, - cnt: actions_icnt - }, true); - const allToggle = document.getElementById(options.allToggleId); - allToggle.checked = sel === actionCheckboxes.length; - if (allToggle.checked) { - showQuestion(options); - } else { - clearAcross(options); - } - } - - const defaults = { - actionContainer: "div.actions", - counterContainer: "span.action-counter", - allContainer: "div.actions span.all", - acrossInput: "div.actions input.select-across", - acrossQuestions: "div.actions span.question", - acrossClears: "div.actions span.clear", - allToggleId: "action-toggle", - selectedClass: "selected" - }; - - window.Actions = function(actionCheckboxes, options) { - options = Object.assign({}, defaults, options); - let list_editable_changed = false; - let lastChecked = null; - let shiftPressed = false; - - document.addEventListener('keydown', (event) => { - shiftPressed = event.shiftKey; - }); - - document.addEventListener('keyup', (event) => { - shiftPressed = event.shiftKey; - }); - - document.getElementById(options.allToggleId).addEventListener('click', function(event) { - checker(actionCheckboxes, options, this.checked); - updateCounter(actionCheckboxes, options); - }); - - document.querySelectorAll(options.acrossQuestions + " a").forEach(function(el) { - el.addEventListener('click', function(event) { - event.preventDefault(); - const acrossInputs = document.querySelectorAll(options.acrossInput); - acrossInputs.forEach(function(acrossInput) { - acrossInput.value = 1; - }); - showClear(options); - }); - }); - - document.querySelectorAll(options.acrossClears + " a").forEach(function(el) { - el.addEventListener('click', function(event) { - event.preventDefault(); - document.getElementById(options.allToggleId).checked = false; - clearAcross(options); - checker(actionCheckboxes, options, false); - updateCounter(actionCheckboxes, options); - }); - }); - - function affectedCheckboxes(target, withModifier) { - const multiSelect = (lastChecked && withModifier && lastChecked !== target); - if (!multiSelect) { - return [target]; - } - const checkboxes = Array.from(actionCheckboxes); - const targetIndex = checkboxes.findIndex(el => el === target); - const lastCheckedIndex = checkboxes.findIndex(el => el === lastChecked); - const startIndex = Math.min(targetIndex, lastCheckedIndex); - const endIndex = Math.max(targetIndex, lastCheckedIndex); - const filtered = checkboxes.filter((el, index) => (startIndex <= index) && (index <= endIndex)); - return filtered; - }; - - Array.from(document.getElementById('result_list').tBodies).forEach(function(el) { - el.addEventListener('change', function(event) { - const target = event.target; - if (target.classList.contains('action-select')) { - const checkboxes = affectedCheckboxes(target, shiftPressed); - checker(checkboxes, options, target.checked); - updateCounter(actionCheckboxes, options); - lastChecked = target; - } else { - list_editable_changed = true; - } - }); - }); - - document.querySelector('#changelist-form button[name=index]').addEventListener('click', function(event) { - if (list_editable_changed) { - const confirmed = confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost.")); - if (!confirmed) { - event.preventDefault(); - } - } - }); - - const el = document.querySelector('#changelist-form input[name=_save]'); - // The button does not exist if no fields are editable. - if (el) { - el.addEventListener('click', function(event) { - if (document.querySelector('[name=action]').value) { - const text = list_editable_changed - ? gettext("You have selected an action, but you haven’t saved your changes to individual fields yet. Please click OK to save. You’ll need to re-run the action.") - : gettext("You have selected an action, and you haven’t made any changes on individual fields. You’re probably looking for the Go button rather than the Save button."); - if (!confirm(text)) { - event.preventDefault(); - } - } - }); - } - }; - - // Call function fn when the DOM is loaded and ready. If it is already - // loaded, call the function now. - // http://youmightnotneedjquery.com/#ready - function ready(fn) { - if (document.readyState !== 'loading') { - fn(); - } else { - document.addEventListener('DOMContentLoaded', fn); - } - } - - ready(function() { - const actionsEls = document.querySelectorAll('tr input.action-select'); - if (actionsEls.length > 0) { - Actions(actionsEls); - } - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js deleted file mode 100644 index aa1cae9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js +++ /dev/null @@ -1,408 +0,0 @@ -/*global Calendar, findPosX, findPosY, get_format, gettext, gettext_noop, interpolate, ngettext, quickElement*/ -// Inserts shortcut buttons after all of the following: -// <input type="text" class="vDateField"> -// <input type="text" class="vTimeField"> -'use strict'; -{ - const DateTimeShortcuts = { - calendars: [], - calendarInputs: [], - clockInputs: [], - clockHours: { - default_: [ - [gettext_noop('Now'), -1], - [gettext_noop('Midnight'), 0], - [gettext_noop('6 a.m.'), 6], - [gettext_noop('Noon'), 12], - [gettext_noop('6 p.m.'), 18] - ] - }, - dismissClockFunc: [], - dismissCalendarFunc: [], - calendarDivName1: 'calendarbox', // name of calendar <div> that gets toggled - calendarDivName2: 'calendarin', // name of <div> that contains calendar - calendarLinkName: 'calendarlink', // name of the link that is used to toggle - clockDivName: 'clockbox', // name of clock <div> that gets toggled - clockLinkName: 'clocklink', // name of the link that is used to toggle - shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts - timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch - timezoneOffset: 0, - init: function() { - const serverOffset = document.body.dataset.adminUtcOffset; - if (serverOffset) { - const localOffset = new Date().getTimezoneOffset() * -60; - DateTimeShortcuts.timezoneOffset = localOffset - serverOffset; - } - - for (const inp of document.getElementsByTagName('input')) { - if (inp.type === 'text' && inp.classList.contains('vTimeField')) { - DateTimeShortcuts.addClock(inp); - DateTimeShortcuts.addTimezoneWarning(inp); - } - else if (inp.type === 'text' && inp.classList.contains('vDateField')) { - DateTimeShortcuts.addCalendar(inp); - DateTimeShortcuts.addTimezoneWarning(inp); - } - } - }, - // Return the current time while accounting for the server timezone. - now: function() { - const serverOffset = document.body.dataset.adminUtcOffset; - if (serverOffset) { - const localNow = new Date(); - const localOffset = localNow.getTimezoneOffset() * -60; - localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset)); - return localNow; - } else { - return new Date(); - } - }, - // Add a warning when the time zone in the browser and backend do not match. - addTimezoneWarning: function(inp) { - const warningClass = DateTimeShortcuts.timezoneWarningClass; - let timezoneOffset = DateTimeShortcuts.timezoneOffset / 3600; - - // Only warn if there is a time zone mismatch. - if (!timezoneOffset) { - return; - } - - // Check if warning is already there. - if (inp.parentNode.querySelectorAll('.' + warningClass).length) { - return; - } - - let message; - if (timezoneOffset > 0) { - message = ngettext( - 'Note: You are %s hour ahead of server time.', - 'Note: You are %s hours ahead of server time.', - timezoneOffset - ); - } - else { - timezoneOffset *= -1; - message = ngettext( - 'Note: You are %s hour behind server time.', - 'Note: You are %s hours behind server time.', - timezoneOffset - ); - } - message = interpolate(message, [timezoneOffset]); - - const warning = document.createElement('div'); - warning.classList.add('help', warningClass); - warning.textContent = message; - inp.parentNode.appendChild(warning); - }, - // Add clock widget to a given field - addClock: function(inp) { - const num = DateTimeShortcuts.clockInputs.length; - DateTimeShortcuts.clockInputs[num] = inp; - DateTimeShortcuts.dismissClockFunc[num] = function() { DateTimeShortcuts.dismissClock(num); return true; }; - - // Shortcut links (clock icon and "Now" link) - const shortcuts_span = document.createElement('span'); - shortcuts_span.className = DateTimeShortcuts.shortCutsClass; - inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); - const now_link = document.createElement('a'); - now_link.href = "#"; - now_link.textContent = gettext('Now'); - now_link.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.handleClockQuicklink(num, -1); - }); - const clock_link = document.createElement('a'); - clock_link.href = '#'; - clock_link.id = DateTimeShortcuts.clockLinkName + num; - clock_link.addEventListener('click', function(e) { - e.preventDefault(); - // avoid triggering the document click handler to dismiss the clock - e.stopPropagation(); - DateTimeShortcuts.openClock(num); - }); - - quickElement( - 'span', clock_link, '', - 'class', 'clock-icon', - 'title', gettext('Choose a Time') - ); - shortcuts_span.appendChild(document.createTextNode('\u00A0')); - shortcuts_span.appendChild(now_link); - shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0')); - shortcuts_span.appendChild(clock_link); - - // Create clock link div - // - // Markup looks like: - // <div id="clockbox1" class="clockbox module"> - // <h2>Choose a time</h2> - // <ul class="timelist"> - // <li><a href="#">Now</a></li> - // <li><a href="#">Midnight</a></li> - // <li><a href="#">6 a.m.</a></li> - // <li><a href="#">Noon</a></li> - // <li><a href="#">6 p.m.</a></li> - // </ul> - // <p class="calendar-cancel"><a href="#">Cancel</a></p> - // </div> - - const clock_box = document.createElement('div'); - clock_box.style.display = 'none'; - clock_box.style.position = 'absolute'; - clock_box.className = 'clockbox module'; - clock_box.id = DateTimeShortcuts.clockDivName + num; - document.body.appendChild(clock_box); - clock_box.addEventListener('click', function(e) { e.stopPropagation(); }); - - quickElement('h2', clock_box, gettext('Choose a time')); - const time_list = quickElement('ul', clock_box); - time_list.className = 'timelist'; - // The list of choices can be overridden in JavaScript like this: - // DateTimeShortcuts.clockHours.name = [['3 a.m.', 3]]; - // where name is the name attribute of the <input>. - const name = typeof DateTimeShortcuts.clockHours[inp.name] === 'undefined' ? 'default_' : inp.name; - DateTimeShortcuts.clockHours[name].forEach(function(element) { - const time_link = quickElement('a', quickElement('li', time_list), gettext(element[0]), 'href', '#'); - time_link.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.handleClockQuicklink(num, element[1]); - }); - }); - - const cancel_p = quickElement('p', clock_box); - cancel_p.className = 'calendar-cancel'; - const cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#'); - cancel_link.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.dismissClock(num); - }); - - document.addEventListener('keyup', function(event) { - if (event.which === 27) { - // ESC key closes popup - DateTimeShortcuts.dismissClock(num); - event.preventDefault(); - } - }); - }, - openClock: function(num) { - const clock_box = document.getElementById(DateTimeShortcuts.clockDivName + num); - const clock_link = document.getElementById(DateTimeShortcuts.clockLinkName + num); - - // Recalculate the clockbox position - // is it left-to-right or right-to-left layout ? - if (window.getComputedStyle(document.body).direction !== 'rtl') { - clock_box.style.left = findPosX(clock_link) + 17 + 'px'; - } - else { - // since style's width is in em, it'd be tough to calculate - // px value of it. let's use an estimated px for now - clock_box.style.left = findPosX(clock_link) - 110 + 'px'; - } - clock_box.style.top = Math.max(0, findPosY(clock_link) - 30) + 'px'; - - // Show the clock box - clock_box.style.display = 'block'; - document.addEventListener('click', DateTimeShortcuts.dismissClockFunc[num]); - }, - dismissClock: function(num) { - document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none'; - document.removeEventListener('click', DateTimeShortcuts.dismissClockFunc[num]); - }, - handleClockQuicklink: function(num, val) { - let d; - if (val === -1) { - d = DateTimeShortcuts.now(); - } - else { - d = new Date(1970, 1, 1, val, 0, 0, 0); - } - DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]); - DateTimeShortcuts.clockInputs[num].focus(); - DateTimeShortcuts.dismissClock(num); - }, - // Add calendar widget to a given field. - addCalendar: function(inp) { - const num = DateTimeShortcuts.calendars.length; - - DateTimeShortcuts.calendarInputs[num] = inp; - DateTimeShortcuts.dismissCalendarFunc[num] = function() { DateTimeShortcuts.dismissCalendar(num); return true; }; - - // Shortcut links (calendar icon and "Today" link) - const shortcuts_span = document.createElement('span'); - shortcuts_span.className = DateTimeShortcuts.shortCutsClass; - inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); - const today_link = document.createElement('a'); - today_link.href = '#'; - today_link.appendChild(document.createTextNode(gettext('Today'))); - today_link.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.handleCalendarQuickLink(num, 0); - }); - const cal_link = document.createElement('a'); - cal_link.href = '#'; - cal_link.id = DateTimeShortcuts.calendarLinkName + num; - cal_link.addEventListener('click', function(e) { - e.preventDefault(); - // avoid triggering the document click handler to dismiss the calendar - e.stopPropagation(); - DateTimeShortcuts.openCalendar(num); - }); - quickElement( - 'span', cal_link, '', - 'class', 'date-icon', - 'title', gettext('Choose a Date') - ); - shortcuts_span.appendChild(document.createTextNode('\u00A0')); - shortcuts_span.appendChild(today_link); - shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0')); - shortcuts_span.appendChild(cal_link); - - // Create calendarbox div. - // - // Markup looks like: - // - // <div id="calendarbox3" class="calendarbox module"> - // <h2> - // <a href="#" class="link-previous">‹</a> - // <a href="#" class="link-next">›</a> February 2003 - // </h2> - // <div class="calendar" id="calendarin3"> - // <!-- (cal) --> - // </div> - // <div class="calendar-shortcuts"> - // <a href="#">Yesterday</a> | <a href="#">Today</a> | <a href="#">Tomorrow</a> - // </div> - // <p class="calendar-cancel"><a href="#">Cancel</a></p> - // </div> - const cal_box = document.createElement('div'); - cal_box.style.display = 'none'; - cal_box.style.position = 'absolute'; - cal_box.className = 'calendarbox module'; - cal_box.id = DateTimeShortcuts.calendarDivName1 + num; - document.body.appendChild(cal_box); - cal_box.addEventListener('click', function(e) { e.stopPropagation(); }); - - // next-prev links - const cal_nav = quickElement('div', cal_box); - const cal_nav_prev = quickElement('a', cal_nav, '<', 'href', '#'); - cal_nav_prev.className = 'calendarnav-previous'; - cal_nav_prev.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.drawPrev(num); - }); - - const cal_nav_next = quickElement('a', cal_nav, '>', 'href', '#'); - cal_nav_next.className = 'calendarnav-next'; - cal_nav_next.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.drawNext(num); - }); - - // main box - const cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num); - cal_main.className = 'calendar'; - DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num)); - DateTimeShortcuts.calendars[num].drawCurrent(); - - // calendar shortcuts - const shortcuts = quickElement('div', cal_box); - shortcuts.className = 'calendar-shortcuts'; - let day_link = quickElement('a', shortcuts, gettext('Yesterday'), 'href', '#'); - day_link.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.handleCalendarQuickLink(num, -1); - }); - shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0')); - day_link = quickElement('a', shortcuts, gettext('Today'), 'href', '#'); - day_link.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.handleCalendarQuickLink(num, 0); - }); - shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0')); - day_link = quickElement('a', shortcuts, gettext('Tomorrow'), 'href', '#'); - day_link.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.handleCalendarQuickLink(num, +1); - }); - - // cancel bar - const cancel_p = quickElement('p', cal_box); - cancel_p.className = 'calendar-cancel'; - const cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#'); - cancel_link.addEventListener('click', function(e) { - e.preventDefault(); - DateTimeShortcuts.dismissCalendar(num); - }); - document.addEventListener('keyup', function(event) { - if (event.which === 27) { - // ESC key closes popup - DateTimeShortcuts.dismissCalendar(num); - event.preventDefault(); - } - }); - }, - openCalendar: function(num) { - const cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1 + num); - const cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName + num); - const inp = DateTimeShortcuts.calendarInputs[num]; - - // Determine if the current value in the input has a valid date. - // If so, draw the calendar with that date's year and month. - if (inp.value) { - const format = get_format('DATE_INPUT_FORMATS')[0]; - const selected = inp.value.strptime(format); - const year = selected.getUTCFullYear(); - const month = selected.getUTCMonth() + 1; - const re = /\d{4}/; - if (re.test(year.toString()) && month >= 1 && month <= 12) { - DateTimeShortcuts.calendars[num].drawDate(month, year, selected); - } - } - - // Recalculate the clockbox position - // is it left-to-right or right-to-left layout ? - if (window.getComputedStyle(document.body).direction !== 'rtl') { - cal_box.style.left = findPosX(cal_link) + 17 + 'px'; - } - else { - // since style's width is in em, it'd be tough to calculate - // px value of it. let's use an estimated px for now - cal_box.style.left = findPosX(cal_link) - 180 + 'px'; - } - cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px'; - - cal_box.style.display = 'block'; - document.addEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]); - }, - dismissCalendar: function(num) { - document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none'; - document.removeEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]); - }, - drawPrev: function(num) { - DateTimeShortcuts.calendars[num].drawPreviousMonth(); - }, - drawNext: function(num) { - DateTimeShortcuts.calendars[num].drawNextMonth(); - }, - handleCalendarCallback: function(num) { - const format = get_format('DATE_INPUT_FORMATS')[0]; - return function(y, m, d) { - DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format); - DateTimeShortcuts.calendarInputs[num].focus(); - document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none'; - }; - }, - handleCalendarQuickLink: function(num, offset) { - const d = DateTimeShortcuts.now(); - d.setDate(d.getDate() + offset); - DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]); - DateTimeShortcuts.calendarInputs[num].focus(); - DateTimeShortcuts.dismissCalendar(num); - } - }; - - window.addEventListener('load', DateTimeShortcuts.init); - window.DateTimeShortcuts = DateTimeShortcuts; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js deleted file mode 100644 index afb6b66..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js +++ /dev/null @@ -1,238 +0,0 @@ -/*global SelectBox, interpolate*/ -// Handles related-objects functionality: lookup link for raw_id_fields -// and Add Another links. -'use strict'; -{ - const $ = django.jQuery; - let popupIndex = 0; - const relatedWindows = []; - - function dismissChildPopups() { - relatedWindows.forEach(function(win) { - if(!win.closed) { - win.dismissChildPopups(); - win.close(); - } - }); - } - - function setPopupIndex() { - if(document.getElementsByName("_popup").length > 0) { - const index = window.name.lastIndexOf("__") + 2; - popupIndex = parseInt(window.name.substring(index)); - } else { - popupIndex = 0; - } - } - - function addPopupIndex(name) { - return name + "__" + (popupIndex + 1); - } - - function removePopupIndex(name) { - return name.replace(new RegExp("__" + (popupIndex + 1) + "$"), ''); - } - - function showAdminPopup(triggeringLink, name_regexp, add_popup) { - const name = addPopupIndex(triggeringLink.id.replace(name_regexp, '')); - const href = new URL(triggeringLink.href); - if (add_popup) { - href.searchParams.set('_popup', 1); - } - const win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); - relatedWindows.push(win); - win.focus(); - return false; - } - - function showRelatedObjectLookupPopup(triggeringLink) { - return showAdminPopup(triggeringLink, /^lookup_/, true); - } - - function dismissRelatedLookupPopup(win, chosenId) { - const name = removePopupIndex(win.name); - const elem = document.getElementById(name); - if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) { - elem.value += ',' + chosenId; - } else { - document.getElementById(name).value = chosenId; - } - const index = relatedWindows.indexOf(win); - if (index > -1) { - relatedWindows.splice(index, 1); - } - win.close(); - } - - function showRelatedObjectPopup(triggeringLink) { - return showAdminPopup(triggeringLink, /^(change|add|delete)_/, false); - } - - function updateRelatedObjectLinks(triggeringLink) { - const $this = $(triggeringLink); - const siblings = $this.nextAll('.view-related, .change-related, .delete-related'); - if (!siblings.length) { - return; - } - const value = $this.val(); - if (value) { - siblings.each(function() { - const elm = $(this); - elm.attr('href', elm.attr('data-href-template').replace('__fk__', value)); - }); - } else { - siblings.removeAttr('href'); - } - } - - function updateRelatedSelectsOptions(currentSelect, win, objId, newRepr, newId) { - // After create/edit a model from the options next to the current - // select (+ or :pencil:) update ForeignKey PK of the rest of selects - // in the page. - - const path = win.location.pathname; - // Extract the model from the popup url '.../<model>/add/' or - // '.../<model>/<id>/change/' depending the action (add or change). - const modelName = path.split('/')[path.split('/').length - (objId ? 4 : 3)]; - // Exclude autocomplete selects. - const selectsRelated = document.querySelectorAll(`[data-model-ref="${modelName}"] select:not(.admin-autocomplete)`); - - selectsRelated.forEach(function(select) { - if (currentSelect === select) { - return; - } - - let option = select.querySelector(`option[value="${objId}"]`); - - if (!option) { - option = new Option(newRepr, newId); - select.options.add(option); - return; - } - - option.textContent = newRepr; - option.value = newId; - }); - } - - function dismissAddRelatedObjectPopup(win, newId, newRepr) { - const name = removePopupIndex(win.name); - const elem = document.getElementById(name); - if (elem) { - const elemName = elem.nodeName.toUpperCase(); - if (elemName === 'SELECT') { - elem.options[elem.options.length] = new Option(newRepr, newId, true, true); - updateRelatedSelectsOptions(elem, win, null, newRepr, newId); - } else if (elemName === 'INPUT') { - if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) { - elem.value += ',' + newId; - } else { - elem.value = newId; - } - } - // Trigger a change event to update related links if required. - $(elem).trigger('change'); - } else { - const toId = name + "_to"; - const o = new Option(newRepr, newId); - SelectBox.add_to_cache(toId, o); - SelectBox.redisplay(toId); - } - const index = relatedWindows.indexOf(win); - if (index > -1) { - relatedWindows.splice(index, 1); - } - win.close(); - } - - function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) { - const id = removePopupIndex(win.name.replace(/^edit_/, '')); - const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); - const selects = $(selectsSelector); - selects.find('option').each(function() { - if (this.value === objId) { - this.textContent = newRepr; - this.value = newId; - } - }).trigger('change'); - updateRelatedSelectsOptions(selects[0], win, objId, newRepr, newId); - selects.next().find('.select2-selection__rendered').each(function() { - // The element can have a clear button as a child. - // Use the lastChild to modify only the displayed value. - this.lastChild.textContent = newRepr; - this.title = newRepr; - }); - const index = relatedWindows.indexOf(win); - if (index > -1) { - relatedWindows.splice(index, 1); - } - win.close(); - } - - function dismissDeleteRelatedObjectPopup(win, objId) { - const id = removePopupIndex(win.name.replace(/^delete_/, '')); - const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); - const selects = $(selectsSelector); - selects.find('option').each(function() { - if (this.value === objId) { - $(this).remove(); - } - }).trigger('change'); - const index = relatedWindows.indexOf(win); - if (index > -1) { - relatedWindows.splice(index, 1); - } - win.close(); - } - - window.showRelatedObjectLookupPopup = showRelatedObjectLookupPopup; - window.dismissRelatedLookupPopup = dismissRelatedLookupPopup; - window.showRelatedObjectPopup = showRelatedObjectPopup; - window.updateRelatedObjectLinks = updateRelatedObjectLinks; - window.dismissAddRelatedObjectPopup = dismissAddRelatedObjectPopup; - window.dismissChangeRelatedObjectPopup = dismissChangeRelatedObjectPopup; - window.dismissDeleteRelatedObjectPopup = dismissDeleteRelatedObjectPopup; - window.dismissChildPopups = dismissChildPopups; - - // Kept for backward compatibility - window.showAddAnotherPopup = showRelatedObjectPopup; - window.dismissAddAnotherPopup = dismissAddRelatedObjectPopup; - - window.addEventListener('unload', function(evt) { - window.dismissChildPopups(); - }); - - $(document).ready(function() { - setPopupIndex(); - $("a[data-popup-opener]").on('click', function(event) { - event.preventDefault(); - opener.dismissRelatedLookupPopup(window, $(this).data("popup-opener")); - }); - $('body').on('click', '.related-widget-wrapper-link[data-popup="yes"]', function(e) { - e.preventDefault(); - if (this.href) { - const event = $.Event('django:show-related', {href: this.href}); - $(this).trigger(event); - if (!event.isDefaultPrevented()) { - showRelatedObjectPopup(this); - } - } - }); - $('body').on('change', '.related-widget-wrapper select', function(e) { - const event = $.Event('django:update-related'); - $(this).trigger(event); - if (!event.isDefaultPrevented()) { - updateRelatedObjectLinks(this); - } - }); - $('.related-widget-wrapper select').trigger('change'); - $('body').on('click', '.related-lookup', function(e) { - e.preventDefault(); - const event = $.Event('django:lookup-related'); - $(this).trigger(event); - if (!event.isDefaultPrevented()) { - showRelatedObjectLookupPopup(this); - } - }); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/autocomplete.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/autocomplete.js deleted file mode 100644 index d3daeab..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/autocomplete.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; -{ - const $ = django.jQuery; - - $.fn.djangoAdminSelect2 = function() { - $.each(this, function(i, element) { - $(element).select2({ - ajax: { - data: (params) => { - return { - term: params.term, - page: params.page, - app_label: element.dataset.appLabel, - model_name: element.dataset.modelName, - field_name: element.dataset.fieldName - }; - } - } - }); - }); - return this; - }; - - $(function() { - // Initialize all autocomplete widgets except the one in the template - // form used when a new formset is added. - $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2(); - }); - - document.addEventListener('formset:added', (event) => { - $(event.target).find('.admin-autocomplete').djangoAdminSelect2(); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/calendar.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/calendar.js deleted file mode 100644 index a62d10a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/calendar.js +++ /dev/null @@ -1,221 +0,0 @@ -/*global gettext, pgettext, get_format, quickElement, removeChildren*/ -/* -calendar.js - Calendar functions by Adrian Holovaty -depends on core.js for utility functions like removeChildren or quickElement -*/ -'use strict'; -{ - // CalendarNamespace -- Provides a collection of HTML calendar-related helper functions - const CalendarNamespace = { - monthsOfYear: [ - gettext('January'), - gettext('February'), - gettext('March'), - gettext('April'), - gettext('May'), - gettext('June'), - gettext('July'), - gettext('August'), - gettext('September'), - gettext('October'), - gettext('November'), - gettext('December') - ], - monthsOfYearAbbrev: [ - pgettext('abbrev. month January', 'Jan'), - pgettext('abbrev. month February', 'Feb'), - pgettext('abbrev. month March', 'Mar'), - pgettext('abbrev. month April', 'Apr'), - pgettext('abbrev. month May', 'May'), - pgettext('abbrev. month June', 'Jun'), - pgettext('abbrev. month July', 'Jul'), - pgettext('abbrev. month August', 'Aug'), - pgettext('abbrev. month September', 'Sep'), - pgettext('abbrev. month October', 'Oct'), - pgettext('abbrev. month November', 'Nov'), - pgettext('abbrev. month December', 'Dec') - ], - daysOfWeek: [ - pgettext('one letter Sunday', 'S'), - pgettext('one letter Monday', 'M'), - pgettext('one letter Tuesday', 'T'), - pgettext('one letter Wednesday', 'W'), - pgettext('one letter Thursday', 'T'), - pgettext('one letter Friday', 'F'), - pgettext('one letter Saturday', 'S') - ], - firstDayOfWeek: parseInt(get_format('FIRST_DAY_OF_WEEK')), - isLeapYear: function(year) { - return (((year % 4) === 0) && ((year % 100) !== 0 ) || ((year % 400) === 0)); - }, - getDaysInMonth: function(month, year) { - let days; - if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) { - days = 31; - } - else if (month === 4 || month === 6 || month === 9 || month === 11) { - days = 30; - } - else if (month === 2 && CalendarNamespace.isLeapYear(year)) { - days = 29; - } - else { - days = 28; - } - return days; - }, - draw: function(month, year, div_id, callback, selected) { // month = 1-12, year = 1-9999 - const today = new Date(); - const todayDay = today.getDate(); - const todayMonth = today.getMonth() + 1; - const todayYear = today.getFullYear(); - let todayClass = ''; - - // Use UTC functions here because the date field does not contain time - // and using the UTC function variants prevent the local time offset - // from altering the date, specifically the day field. For example: - // - // ``` - // var x = new Date('2013-10-02'); - // var day = x.getDate(); - // ``` - // - // The day variable above will be 1 instead of 2 in, say, US Pacific time - // zone. - let isSelectedMonth = false; - if (typeof selected !== 'undefined') { - isSelectedMonth = (selected.getUTCFullYear() === year && (selected.getUTCMonth() + 1) === month); - } - - month = parseInt(month); - year = parseInt(year); - const calDiv = document.getElementById(div_id); - removeChildren(calDiv); - const calTable = document.createElement('table'); - quickElement('caption', calTable, CalendarNamespace.monthsOfYear[month - 1] + ' ' + year); - const tableBody = quickElement('tbody', calTable); - - // Draw days-of-week header - let tableRow = quickElement('tr', tableBody); - for (let i = 0; i < 7; i++) { - quickElement('th', tableRow, CalendarNamespace.daysOfWeek[(i + CalendarNamespace.firstDayOfWeek) % 7]); - } - - const startingPos = new Date(year, month - 1, 1 - CalendarNamespace.firstDayOfWeek).getDay(); - const days = CalendarNamespace.getDaysInMonth(month, year); - - let nonDayCell; - - // Draw blanks before first of month - tableRow = quickElement('tr', tableBody); - for (let i = 0; i < startingPos; i++) { - nonDayCell = quickElement('td', tableRow, ' '); - nonDayCell.className = "nonday"; - } - - function calendarMonth(y, m) { - function onClick(e) { - e.preventDefault(); - callback(y, m, this.textContent); - } - return onClick; - } - - // Draw days of month - let currentDay = 1; - for (let i = startingPos; currentDay <= days; i++) { - if (i % 7 === 0 && currentDay !== 1) { - tableRow = quickElement('tr', tableBody); - } - if ((currentDay === todayDay) && (month === todayMonth) && (year === todayYear)) { - todayClass = 'today'; - } else { - todayClass = ''; - } - - // use UTC function; see above for explanation. - if (isSelectedMonth && currentDay === selected.getUTCDate()) { - if (todayClass !== '') { - todayClass += " "; - } - todayClass += "selected"; - } - - const cell = quickElement('td', tableRow, '', 'class', todayClass); - const link = quickElement('a', cell, currentDay, 'href', '#'); - link.addEventListener('click', calendarMonth(year, month)); - currentDay++; - } - - // Draw blanks after end of month (optional, but makes for valid code) - while (tableRow.childNodes.length < 7) { - nonDayCell = quickElement('td', tableRow, ' '); - nonDayCell.className = "nonday"; - } - - calDiv.appendChild(calTable); - } - }; - - // Calendar -- A calendar instance - function Calendar(div_id, callback, selected) { - // div_id (string) is the ID of the element in which the calendar will - // be displayed - // callback (string) is the name of a JavaScript function that will be - // called with the parameters (year, month, day) when a day in the - // calendar is clicked - this.div_id = div_id; - this.callback = callback; - this.today = new Date(); - this.currentMonth = this.today.getMonth() + 1; - this.currentYear = this.today.getFullYear(); - if (typeof selected !== 'undefined') { - this.selected = selected; - } - } - Calendar.prototype = { - drawCurrent: function() { - CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback, this.selected); - }, - drawDate: function(month, year, selected) { - this.currentMonth = month; - this.currentYear = year; - - if(selected) { - this.selected = selected; - } - - this.drawCurrent(); - }, - drawPreviousMonth: function() { - if (this.currentMonth === 1) { - this.currentMonth = 12; - this.currentYear--; - } - else { - this.currentMonth--; - } - this.drawCurrent(); - }, - drawNextMonth: function() { - if (this.currentMonth === 12) { - this.currentMonth = 1; - this.currentYear++; - } - else { - this.currentMonth++; - } - this.drawCurrent(); - }, - drawPreviousYear: function() { - this.currentYear--; - this.drawCurrent(); - }, - drawNextYear: function() { - this.currentYear++; - this.drawCurrent(); - } - }; - window.Calendar = Calendar; - window.CalendarNamespace = CalendarNamespace; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/cancel.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/cancel.js deleted file mode 100644 index 3069c6f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/cancel.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; -{ - // Call function fn when the DOM is loaded and ready. If it is already - // loaded, call the function now. - // http://youmightnotneedjquery.com/#ready - function ready(fn) { - if (document.readyState !== 'loading') { - fn(); - } else { - document.addEventListener('DOMContentLoaded', fn); - } - } - - ready(function() { - function handleClick(event) { - event.preventDefault(); - const params = new URLSearchParams(window.location.search); - if (params.has('_popup')) { - window.close(); // Close the popup. - } else { - window.history.back(); // Otherwise, go back. - } - } - - document.querySelectorAll('.cancel-link').forEach(function(el) { - el.addEventListener('click', handleClick); - }); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/change_form.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/change_form.js deleted file mode 100644 index 96a4c62..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/change_form.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; -{ - const inputTags = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA']; - const modelName = document.getElementById('django-admin-form-add-constants').dataset.modelName; - if (modelName) { - const form = document.getElementById(modelName + '_form'); - for (const element of form.elements) { - // HTMLElement.offsetParent returns null when the element is not - // rendered. - if (inputTags.includes(element.tagName) && !element.disabled && element.offsetParent) { - element.focus(); - break; - } - } - } -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/collapse.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/collapse.js deleted file mode 100644 index c6c7b0f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/collapse.js +++ /dev/null @@ -1,43 +0,0 @@ -/*global gettext*/ -'use strict'; -{ - window.addEventListener('load', function() { - // Add anchor tag for Show/Hide link - const fieldsets = document.querySelectorAll('fieldset.collapse'); - for (const [i, elem] of fieldsets.entries()) { - // Don't hide if fields in this fieldset have errors - if (elem.querySelectorAll('div.errors, ul.errorlist').length === 0) { - elem.classList.add('collapsed'); - const h2 = elem.querySelector('h2'); - const link = document.createElement('a'); - link.id = 'fieldsetcollapser' + i; - link.className = 'collapse-toggle'; - link.href = '#'; - link.textContent = gettext('Show'); - h2.appendChild(document.createTextNode(' (')); - h2.appendChild(link); - h2.appendChild(document.createTextNode(')')); - } - } - // Add toggle to hide/show anchor tag - const toggleFunc = function(ev) { - if (ev.target.matches('.collapse-toggle')) { - ev.preventDefault(); - ev.stopPropagation(); - const fieldset = ev.target.closest('fieldset'); - if (fieldset.classList.contains('collapsed')) { - // Show - ev.target.textContent = gettext('Hide'); - fieldset.classList.remove('collapsed'); - } else { - // Hide - ev.target.textContent = gettext('Show'); - fieldset.classList.add('collapsed'); - } - } - }; - document.querySelectorAll('fieldset.module').forEach(function(el) { - el.addEventListener('click', toggleFunc); - }); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/core.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/core.js deleted file mode 100644 index 0344a13..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/core.js +++ /dev/null @@ -1,170 +0,0 @@ -// Core JavaScript helper functions -'use strict'; - -// quickElement(tagType, parentReference [, textInChildNode, attribute, attributeValue ...]); -function quickElement() { - const obj = document.createElement(arguments[0]); - if (arguments[2]) { - const textNode = document.createTextNode(arguments[2]); - obj.appendChild(textNode); - } - const len = arguments.length; - for (let i = 3; i < len; i += 2) { - obj.setAttribute(arguments[i], arguments[i + 1]); - } - arguments[1].appendChild(obj); - return obj; -} - -// "a" is reference to an object -function removeChildren(a) { - while (a.hasChildNodes()) { - a.removeChild(a.lastChild); - } -} - -// ---------------------------------------------------------------------------- -// Find-position functions by PPK -// See https://www.quirksmode.org/js/findpos.html -// ---------------------------------------------------------------------------- -function findPosX(obj) { - let curleft = 0; - if (obj.offsetParent) { - while (obj.offsetParent) { - curleft += obj.offsetLeft - obj.scrollLeft; - obj = obj.offsetParent; - } - } else if (obj.x) { - curleft += obj.x; - } - return curleft; -} - -function findPosY(obj) { - let curtop = 0; - if (obj.offsetParent) { - while (obj.offsetParent) { - curtop += obj.offsetTop - obj.scrollTop; - obj = obj.offsetParent; - } - } else if (obj.y) { - curtop += obj.y; - } - return curtop; -} - -//----------------------------------------------------------------------------- -// Date object extensions -// ---------------------------------------------------------------------------- -{ - Date.prototype.getTwelveHours = function() { - return this.getHours() % 12 || 12; - }; - - Date.prototype.getTwoDigitMonth = function() { - return (this.getMonth() < 9) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1); - }; - - Date.prototype.getTwoDigitDate = function() { - return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate(); - }; - - Date.prototype.getTwoDigitTwelveHour = function() { - return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours(); - }; - - Date.prototype.getTwoDigitHour = function() { - return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours(); - }; - - Date.prototype.getTwoDigitMinute = function() { - return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes(); - }; - - Date.prototype.getTwoDigitSecond = function() { - return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds(); - }; - - Date.prototype.getAbbrevMonthName = function() { - return typeof window.CalendarNamespace === "undefined" - ? this.getTwoDigitMonth() - : window.CalendarNamespace.monthsOfYearAbbrev[this.getMonth()]; - }; - - Date.prototype.getFullMonthName = function() { - return typeof window.CalendarNamespace === "undefined" - ? this.getTwoDigitMonth() - : window.CalendarNamespace.monthsOfYear[this.getMonth()]; - }; - - Date.prototype.strftime = function(format) { - const fields = { - b: this.getAbbrevMonthName(), - B: this.getFullMonthName(), - c: this.toString(), - d: this.getTwoDigitDate(), - H: this.getTwoDigitHour(), - I: this.getTwoDigitTwelveHour(), - m: this.getTwoDigitMonth(), - M: this.getTwoDigitMinute(), - p: (this.getHours() >= 12) ? 'PM' : 'AM', - S: this.getTwoDigitSecond(), - w: '0' + this.getDay(), - x: this.toLocaleDateString(), - X: this.toLocaleTimeString(), - y: ('' + this.getFullYear()).substr(2, 4), - Y: '' + this.getFullYear(), - '%': '%' - }; - let result = '', i = 0; - while (i < format.length) { - if (format.charAt(i) === '%') { - result += fields[format.charAt(i + 1)]; - ++i; - } - else { - result += format.charAt(i); - } - ++i; - } - return result; - }; - - // ---------------------------------------------------------------------------- - // String object extensions - // ---------------------------------------------------------------------------- - String.prototype.strptime = function(format) { - const split_format = format.split(/[.\-/]/); - const date = this.split(/[.\-/]/); - let i = 0; - let day, month, year; - while (i < split_format.length) { - switch (split_format[i]) { - case "%d": - day = date[i]; - break; - case "%m": - month = date[i] - 1; - break; - case "%Y": - year = date[i]; - break; - case "%y": - // A %y value in the range of [00, 68] is in the current - // century, while [69, 99] is in the previous century, - // according to the Open Group Specification. - if (parseInt(date[i], 10) >= 69) { - year = date[i]; - } else { - year = (new Date(Date.UTC(date[i], 0))).getUTCFullYear() + 100; - } - break; - } - ++i; - } - // Create Date object from UTC since the parsed value is supposed to be - // in UTC, not local time. Also, the calendar uses UTC functions for - // date extraction. - return new Date(Date.UTC(year, month, day)); - }; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/filters.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/filters.js deleted file mode 100644 index f5536eb..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/filters.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Persist changelist filters state (collapsed/expanded). - */ -'use strict'; -{ - // Init filters. - let filters = JSON.parse(sessionStorage.getItem('django.admin.filtersState')); - - if (!filters) { - filters = {}; - } - - Object.entries(filters).forEach(([key, value]) => { - const detailElement = document.querySelector(`[data-filter-title='${CSS.escape(key)}']`); - - // Check if the filter is present, it could be from other view. - if (detailElement) { - value ? detailElement.setAttribute('open', '') : detailElement.removeAttribute('open'); - } - }); - - // Save filter state when clicks. - const details = document.querySelectorAll('details'); - details.forEach(detail => { - detail.addEventListener('toggle', event => { - filters[`${event.target.dataset.filterTitle}`] = detail.open; - sessionStorage.setItem('django.admin.filtersState', JSON.stringify(filters)); - }); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/inlines.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/inlines.js deleted file mode 100644 index e9a1dfe..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/inlines.js +++ /dev/null @@ -1,359 +0,0 @@ -/*global DateTimeShortcuts, SelectFilter*/ -/** - * Django admin inlines - * - * Based on jQuery Formset 1.1 - * @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com) - * @requires jQuery 1.2.6 or later - * - * Copyright (c) 2009, Stanislaus Madueke - * All rights reserved. - * - * Spiced up with Code from Zain Memon's GSoC project 2009 - * and modified for Django by Jannis Leidel, Travis Swicegood and Julien Phalip. - * - * Licensed under the New BSD License - * See: https://opensource.org/licenses/bsd-license.php - */ -'use strict'; -{ - const $ = django.jQuery; - $.fn.formset = function(opts) { - const options = $.extend({}, $.fn.formset.defaults, opts); - const $this = $(this); - const $parent = $this.parent(); - const updateElementIndex = function(el, prefix, ndx) { - const id_regex = new RegExp("(" + prefix + "-(\\d+|__prefix__))"); - const replacement = prefix + "-" + ndx; - if ($(el).prop("for")) { - $(el).prop("for", $(el).prop("for").replace(id_regex, replacement)); - } - if (el.id) { - el.id = el.id.replace(id_regex, replacement); - } - if (el.name) { - el.name = el.name.replace(id_regex, replacement); - } - }; - const totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS").prop("autocomplete", "off"); - let nextIndex = parseInt(totalForms.val(), 10); - const maxForms = $("#id_" + options.prefix + "-MAX_NUM_FORMS").prop("autocomplete", "off"); - const minForms = $("#id_" + options.prefix + "-MIN_NUM_FORMS").prop("autocomplete", "off"); - let addButton; - - /** - * The "Add another MyModel" button below the inline forms. - */ - const addInlineAddButton = function() { - if (addButton === null) { - if ($this.prop("tagName") === "TR") { - // If forms are laid out as table rows, insert the - // "add" button in a new table row: - const numCols = $this.eq(-1).children().length; - $parent.append('<tr class="' + options.addCssClass + '"><td colspan="' + numCols + '"><a href="#">' + options.addText + "</a></tr>"); - addButton = $parent.find("tr:last a"); - } else { - // Otherwise, insert it immediately after the last form: - $this.filter(":last").after('<div class="' + options.addCssClass + '"><a href="#">' + options.addText + "</a></div>"); - addButton = $this.filter(":last").next().find("a"); - } - } - addButton.on('click', addInlineClickHandler); - }; - - const addInlineClickHandler = function(e) { - e.preventDefault(); - const template = $("#" + options.prefix + "-empty"); - const row = template.clone(true); - row.removeClass(options.emptyCssClass) - .addClass(options.formCssClass) - .attr("id", options.prefix + "-" + nextIndex); - addInlineDeleteButton(row); - row.find("*").each(function() { - updateElementIndex(this, options.prefix, totalForms.val()); - }); - // Insert the new form when it has been fully edited. - row.insertBefore($(template)); - // Update number of total forms. - $(totalForms).val(parseInt(totalForms.val(), 10) + 1); - nextIndex += 1; - // Hide the add button if there's a limit and it's been reached. - if ((maxForms.val() !== '') && (maxForms.val() - totalForms.val()) <= 0) { - addButton.parent().hide(); - } - // Show the remove buttons if there are more than min_num. - toggleDeleteButtonVisibility(row.closest('.inline-group')); - - // Pass the new form to the post-add callback, if provided. - if (options.added) { - options.added(row); - } - row.get(0).dispatchEvent(new CustomEvent("formset:added", { - bubbles: true, - detail: { - formsetName: options.prefix - } - })); - }; - - /** - * The "X" button that is part of every unsaved inline. - * (When saved, it is replaced with a "Delete" checkbox.) - */ - const addInlineDeleteButton = function(row) { - if (row.is("tr")) { - // If the forms are laid out in table rows, insert - // the remove button into the last table cell: - row.children(":last").append('<div><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></div>"); - } else if (row.is("ul") || row.is("ol")) { - // If they're laid out as an ordered/unordered list, - // insert an <li> after the last list item: - row.append('<li><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></li>"); - } else { - // Otherwise, just insert the remove button as the - // last child element of the form's container: - row.children(":first").append('<span><a class="' + options.deleteCssClass + '" href="#">' + options.deleteText + "</a></span>"); - } - // Add delete handler for each row. - row.find("a." + options.deleteCssClass).on('click', inlineDeleteHandler.bind(this)); - }; - - const inlineDeleteHandler = function(e1) { - e1.preventDefault(); - const deleteButton = $(e1.target); - const row = deleteButton.closest('.' + options.formCssClass); - const inlineGroup = row.closest('.inline-group'); - // Remove the parent form containing this button, - // and also remove the relevant row with non-field errors: - const prevRow = row.prev(); - if (prevRow.length && prevRow.hasClass('row-form-errors')) { - prevRow.remove(); - } - row.remove(); - nextIndex -= 1; - // Pass the deleted form to the post-delete callback, if provided. - if (options.removed) { - options.removed(row); - } - document.dispatchEvent(new CustomEvent("formset:removed", { - detail: { - formsetName: options.prefix - } - })); - // Update the TOTAL_FORMS form count. - const forms = $("." + options.formCssClass); - $("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length); - // Show add button again once below maximum number. - if ((maxForms.val() === '') || (maxForms.val() - forms.length) > 0) { - addButton.parent().show(); - } - // Hide the remove buttons if at min_num. - toggleDeleteButtonVisibility(inlineGroup); - // Also, update names and ids for all remaining form controls so - // they remain in sequence: - let i, formCount; - const updateElementCallback = function() { - updateElementIndex(this, options.prefix, i); - }; - for (i = 0, formCount = forms.length; i < formCount; i++) { - updateElementIndex($(forms).get(i), options.prefix, i); - $(forms.get(i)).find("*").each(updateElementCallback); - } - }; - - const toggleDeleteButtonVisibility = function(inlineGroup) { - if ((minForms.val() !== '') && (minForms.val() - totalForms.val()) >= 0) { - inlineGroup.find('.inline-deletelink').hide(); - } else { - inlineGroup.find('.inline-deletelink').show(); - } - }; - - $this.each(function(i) { - $(this).not("." + options.emptyCssClass).addClass(options.formCssClass); - }); - - // Create the delete buttons for all unsaved inlines: - $this.filter('.' + options.formCssClass + ':not(.has_original):not(.' + options.emptyCssClass + ')').each(function() { - addInlineDeleteButton($(this)); - }); - toggleDeleteButtonVisibility($this); - - // Create the add button, initially hidden. - addButton = options.addButton; - addInlineAddButton(); - - // Show the add button if allowed to add more items. - // Note that max_num = None translates to a blank string. - const showAddButton = maxForms.val() === '' || (maxForms.val() - totalForms.val()) > 0; - if ($this.length && showAddButton) { - addButton.parent().show(); - } else { - addButton.parent().hide(); - } - - return this; - }; - - /* Setup plugin defaults */ - $.fn.formset.defaults = { - prefix: "form", // The form prefix for your django formset - addText: "add another", // Text for the add link - deleteText: "remove", // Text for the delete link - addCssClass: "add-row", // CSS class applied to the add link - deleteCssClass: "delete-row", // CSS class applied to the delete link - emptyCssClass: "empty-row", // CSS class applied to the empty row - formCssClass: "dynamic-form", // CSS class applied to each form in a formset - added: null, // Function called each time a new form is added - removed: null, // Function called each time a form is deleted - addButton: null // Existing add button to use - }; - - - // Tabular inlines --------------------------------------------------------- - $.fn.tabularFormset = function(selector, options) { - const $rows = $(this); - - const reinitDateTimeShortCuts = function() { - // Reinitialize the calendar and clock widgets by force - if (typeof DateTimeShortcuts !== "undefined") { - $(".datetimeshortcuts").remove(); - DateTimeShortcuts.init(); - } - }; - - const updateSelectFilter = function() { - // If any SelectFilter widgets are a part of the new form, - // instantiate a new SelectFilter instance for it. - if (typeof SelectFilter !== 'undefined') { - $('.selectfilter').each(function(index, value) { - SelectFilter.init(value.id, this.dataset.fieldName, false); - }); - $('.selectfilterstacked').each(function(index, value) { - SelectFilter.init(value.id, this.dataset.fieldName, true); - }); - } - }; - - const initPrepopulatedFields = function(row) { - row.find('.prepopulated_field').each(function() { - const field = $(this), - input = field.find('input, select, textarea'), - dependency_list = input.data('dependency_list') || [], - dependencies = []; - $.each(dependency_list, function(i, field_name) { - dependencies.push('#' + row.find('.field-' + field_name).find('input, select, textarea').attr('id')); - }); - if (dependencies.length) { - input.prepopulate(dependencies, input.attr('maxlength')); - } - }); - }; - - $rows.formset({ - prefix: options.prefix, - addText: options.addText, - formCssClass: "dynamic-" + options.prefix, - deleteCssClass: "inline-deletelink", - deleteText: options.deleteText, - emptyCssClass: "empty-form", - added: function(row) { - initPrepopulatedFields(row); - reinitDateTimeShortCuts(); - updateSelectFilter(); - }, - addButton: options.addButton - }); - - return $rows; - }; - - // Stacked inlines --------------------------------------------------------- - $.fn.stackedFormset = function(selector, options) { - const $rows = $(this); - const updateInlineLabel = function(row) { - $(selector).find(".inline_label").each(function(i) { - const count = i + 1; - $(this).html($(this).html().replace(/(#\d+)/g, "#" + count)); - }); - }; - - const reinitDateTimeShortCuts = function() { - // Reinitialize the calendar and clock widgets by force, yuck. - if (typeof DateTimeShortcuts !== "undefined") { - $(".datetimeshortcuts").remove(); - DateTimeShortcuts.init(); - } - }; - - const updateSelectFilter = function() { - // If any SelectFilter widgets were added, instantiate a new instance. - if (typeof SelectFilter !== "undefined") { - $(".selectfilter").each(function(index, value) { - SelectFilter.init(value.id, this.dataset.fieldName, false); - }); - $(".selectfilterstacked").each(function(index, value) { - SelectFilter.init(value.id, this.dataset.fieldName, true); - }); - } - }; - - const initPrepopulatedFields = function(row) { - row.find('.prepopulated_field').each(function() { - const field = $(this), - input = field.find('input, select, textarea'), - dependency_list = input.data('dependency_list') || [], - dependencies = []; - $.each(dependency_list, function(i, field_name) { - // Dependency in a fieldset. - let field_element = row.find('.form-row .field-' + field_name); - // Dependency without a fieldset. - if (!field_element.length) { - field_element = row.find('.form-row.field-' + field_name); - } - dependencies.push('#' + field_element.find('input, select, textarea').attr('id')); - }); - if (dependencies.length) { - input.prepopulate(dependencies, input.attr('maxlength')); - } - }); - }; - - $rows.formset({ - prefix: options.prefix, - addText: options.addText, - formCssClass: "dynamic-" + options.prefix, - deleteCssClass: "inline-deletelink", - deleteText: options.deleteText, - emptyCssClass: "empty-form", - removed: updateInlineLabel, - added: function(row) { - initPrepopulatedFields(row); - reinitDateTimeShortCuts(); - updateSelectFilter(); - updateInlineLabel(row); - }, - addButton: options.addButton - }); - - return $rows; - }; - - $(document).ready(function() { - $(".js-inline-admin-formset").each(function() { - const data = $(this).data(), - inlineOptions = data.inlineFormset; - let selector; - switch(data.inlineType) { - case "stacked": - selector = inlineOptions.name + "-group .inline-related"; - $(selector).stackedFormset(selector, inlineOptions.options); - break; - case "tabular": - selector = inlineOptions.name + "-group .tabular.inline-related tbody:first > tr.form-row"; - $(selector).tabularFormset(selector, inlineOptions.options); - break; - } - }); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/jquery.init.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/jquery.init.js deleted file mode 100644 index f40b27f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/jquery.init.js +++ /dev/null @@ -1,8 +0,0 @@ -/*global jQuery:false*/ -'use strict'; -/* Puts the included jQuery into our own namespace using noConflict and passing - * it 'true'. This ensures that the included jQuery doesn't pollute the global - * namespace (i.e. this preserves pre-existing values for both window.$ and - * window.jQuery). - */ -window.django = {jQuery: jQuery.noConflict(true)}; diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js deleted file mode 100644 index 7e735db..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict'; -{ - const toggleNavSidebar = document.getElementById('toggle-nav-sidebar'); - if (toggleNavSidebar !== null) { - const navSidebar = document.getElementById('nav-sidebar'); - const main = document.getElementById('main'); - let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen'); - if (navSidebarIsOpen === null) { - navSidebarIsOpen = 'true'; - } - main.classList.toggle('shifted', navSidebarIsOpen === 'true'); - navSidebar.setAttribute('aria-expanded', navSidebarIsOpen); - - toggleNavSidebar.addEventListener('click', function() { - if (navSidebarIsOpen === 'true') { - navSidebarIsOpen = 'false'; - } else { - navSidebarIsOpen = 'true'; - } - localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen); - main.classList.toggle('shifted'); - navSidebar.setAttribute('aria-expanded', navSidebarIsOpen); - }); - } - - function initSidebarQuickFilter() { - const options = []; - const navSidebar = document.getElementById('nav-sidebar'); - if (!navSidebar) { - return; - } - navSidebar.querySelectorAll('th[scope=row] a').forEach((container) => { - options.push({title: container.innerHTML, node: container}); - }); - - function checkValue(event) { - let filterValue = event.target.value; - if (filterValue) { - filterValue = filterValue.toLowerCase(); - } - if (event.key === 'Escape') { - filterValue = ''; - event.target.value = ''; // clear input - } - let matches = false; - for (const o of options) { - let displayValue = ''; - if (filterValue) { - if (o.title.toLowerCase().indexOf(filterValue) === -1) { - displayValue = 'none'; - } else { - matches = true; - } - } - // show/hide parent <TR> - o.node.parentNode.parentNode.style.display = displayValue; - } - if (!filterValue || matches) { - event.target.classList.remove('no-results'); - } else { - event.target.classList.add('no-results'); - } - sessionStorage.setItem('django.admin.navSidebarFilterValue', filterValue); - } - - const nav = document.getElementById('nav-filter'); - nav.addEventListener('change', checkValue, false); - nav.addEventListener('input', checkValue, false); - nav.addEventListener('keyup', checkValue, false); - - const storedValue = sessionStorage.getItem('django.admin.navSidebarFilterValue'); - if (storedValue) { - nav.value = storedValue; - checkValue({target: nav, key: ''}); - } - } - window.initSidebarQuickFilter = initSidebarQuickFilter; - initSidebarQuickFilter(); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/popup_response.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/popup_response.js deleted file mode 100644 index 2b1d3dd..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/popup_response.js +++ /dev/null @@ -1,16 +0,0 @@ -/*global opener */ -'use strict'; -{ - const initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse); - switch(initData.action) { - case 'change': - opener.dismissChangeRelatedObjectPopup(window, initData.value, initData.obj, initData.new_value); - break; - case 'delete': - opener.dismissDeleteRelatedObjectPopup(window, initData.value); - break; - default: - opener.dismissAddRelatedObjectPopup(window, initData.value, initData.obj); - break; - } -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/prepopulate.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/prepopulate.js deleted file mode 100644 index 89e95ab..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/prepopulate.js +++ /dev/null @@ -1,43 +0,0 @@ -/*global URLify*/ -'use strict'; -{ - const $ = django.jQuery; - $.fn.prepopulate = function(dependencies, maxLength, allowUnicode) { - /* - Depends on urlify.js - Populates a selected field with the values of the dependent fields, - URLifies and shortens the string. - dependencies - array of dependent fields ids - maxLength - maximum length of the URLify'd string - allowUnicode - Unicode support of the URLify'd string - */ - return this.each(function() { - const prepopulatedField = $(this); - - const populate = function() { - // Bail if the field's value has been changed by the user - if (prepopulatedField.data('_changed')) { - return; - } - - const values = []; - $.each(dependencies, function(i, field) { - field = $(field); - if (field.val().length > 0) { - values.push(field.val()); - } - }); - prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode)); - }; - - prepopulatedField.data('_changed', false); - prepopulatedField.on('change', function() { - prepopulatedField.data('_changed', true); - }); - - if (!prepopulatedField.val()) { - $(dependencies.join(',')).on('keyup change focus', populate); - } - }); - }; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js deleted file mode 100644 index a58841f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -{ - const $ = django.jQuery; - const fields = $('#django-admin-prepopulated-fields-constants').data('prepopulatedFields'); - $.each(fields, function(index, field) { - $( - '.empty-form .form-row .field-' + field.name + - ', .empty-form.form-row .field-' + field.name + - ', .empty-form .form-row.field-' + field.name - ).addClass('prepopulated_field'); - $(field.id).data('dependency_list', field.dependency_list).prepopulate( - field.dependency_ids, field.maxLength, field.allowUnicode - ); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/theme.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/theme.js deleted file mode 100644 index 794cd15..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/theme.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; -{ - window.addEventListener('load', function(e) { - - function setTheme(mode) { - if (mode !== "light" && mode !== "dark" && mode !== "auto") { - console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`); - mode = "auto"; - } - document.documentElement.dataset.theme = mode; - localStorage.setItem("theme", mode); - } - - function cycleTheme() { - const currentTheme = localStorage.getItem("theme") || "auto"; - const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches; - - if (prefersDark) { - // Auto (dark) -> Light -> Dark - if (currentTheme === "auto") { - setTheme("light"); - } else if (currentTheme === "light") { - setTheme("dark"); - } else { - setTheme("auto"); - } - } else { - // Auto (light) -> Dark -> Light - if (currentTheme === "auto") { - setTheme("dark"); - } else if (currentTheme === "dark") { - setTheme("light"); - } else { - setTheme("auto"); - } - } - } - - function initTheme() { - // set theme defined in localStorage if there is one, or fallback to auto mode - const currentTheme = localStorage.getItem("theme"); - currentTheme ? setTheme(currentTheme) : setTheme("auto"); - } - - function setupTheme() { - // Attach event handlers for toggling themes - const buttons = document.getElementsByClassName("theme-toggle"); - Array.from(buttons).forEach((btn) => { - btn.addEventListener("click", cycleTheme); - }); - initTheme(); - } - - setupTheme(); - }); -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/urlify.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/urlify.js deleted file mode 100644 index 9fc0409..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/urlify.js +++ /dev/null @@ -1,169 +0,0 @@ -/*global XRegExp*/ -'use strict'; -{ - const LATIN_MAP = { - 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', - 'Ç': 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', - 'Î': 'I', 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', - 'Õ': 'O', 'Ö': 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', - 'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH', 'Ÿ': 'Y', 'ß': 'ss', 'à': 'a', - 'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', - 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', - 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', - 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', - 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y' - }; - const LATIN_SYMBOLS_MAP = { - '©': '(c)' - }; - const GREEK_MAP = { - 'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h', - 'θ': '8', 'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3', - 'ο': 'o', 'π': 'p', 'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f', - 'χ': 'x', 'ψ': 'ps', 'ω': 'w', 'ά': 'a', 'έ': 'e', 'ί': 'i', 'ό': 'o', - 'ύ': 'y', 'ή': 'h', 'ώ': 'w', 'ς': 's', 'ϊ': 'i', 'ΰ': 'y', 'ϋ': 'y', - 'ΐ': 'i', 'Α': 'A', 'Β': 'B', 'Γ': 'G', 'Δ': 'D', 'Ε': 'E', 'Ζ': 'Z', - 'Η': 'H', 'Θ': '8', 'Ι': 'I', 'Κ': 'K', 'Λ': 'L', 'Μ': 'M', 'Ν': 'N', - 'Ξ': '3', 'Ο': 'O', 'Π': 'P', 'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Υ': 'Y', - 'Φ': 'F', 'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W', 'Ά': 'A', 'Έ': 'E', 'Ί': 'I', - 'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W', 'Ϊ': 'I', 'Ϋ': 'Y' - }; - const TURKISH_MAP = { - 'ş': 's', 'Ş': 'S', 'ı': 'i', 'İ': 'I', 'ç': 'c', 'Ç': 'C', 'ü': 'u', - 'Ü': 'U', 'ö': 'o', 'Ö': 'O', 'ğ': 'g', 'Ğ': 'G' - }; - const ROMANIAN_MAP = { - 'ă': 'a', 'î': 'i', 'ș': 's', 'ț': 't', 'â': 'a', - 'Ă': 'A', 'Î': 'I', 'Ș': 'S', 'Ț': 'T', 'Â': 'A' - }; - const RUSSIAN_MAP = { - 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo', - 'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', - 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', - 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sh', 'ъ': '', - 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya', - 'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo', - 'Ж': 'Zh', 'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M', - 'Н': 'N', 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U', - 'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': '', - 'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'Yu', 'Я': 'Ya' - }; - const UKRAINIAN_MAP = { - 'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G', 'є': 'ye', 'і': 'i', - 'ї': 'yi', 'ґ': 'g' - }; - const CZECH_MAP = { - 'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't', - 'ů': 'u', 'ž': 'z', 'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R', - 'Š': 'S', 'Ť': 'T', 'Ů': 'U', 'Ž': 'Z' - }; - const SLOVAK_MAP = { - 'á': 'a', 'ä': 'a', 'č': 'c', 'ď': 'd', 'é': 'e', 'í': 'i', 'ľ': 'l', - 'ĺ': 'l', 'ň': 'n', 'ó': 'o', 'ô': 'o', 'ŕ': 'r', 'š': 's', 'ť': 't', - 'ú': 'u', 'ý': 'y', 'ž': 'z', - 'Á': 'a', 'Ä': 'A', 'Č': 'C', 'Ď': 'D', 'É': 'E', 'Í': 'I', 'Ľ': 'L', - 'Ĺ': 'L', 'Ň': 'N', 'Ó': 'O', 'Ô': 'O', 'Ŕ': 'R', 'Š': 'S', 'Ť': 'T', - 'Ú': 'U', 'Ý': 'Y', 'Ž': 'Z' - }; - const POLISH_MAP = { - 'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', - 'ź': 'z', 'ż': 'z', - 'Ą': 'A', 'Ć': 'C', 'Ę': 'E', 'Ł': 'L', 'Ń': 'N', 'Ó': 'O', 'Ś': 'S', - 'Ź': 'Z', 'Ż': 'Z' - }; - const LATVIAN_MAP = { - 'ā': 'a', 'č': 'c', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l', - 'ņ': 'n', 'š': 's', 'ū': 'u', 'ž': 'z', - 'Ā': 'A', 'Č': 'C', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'I', 'Ķ': 'K', 'Ļ': 'L', - 'Ņ': 'N', 'Š': 'S', 'Ū': 'U', 'Ž': 'Z' - }; - const ARABIC_MAP = { - 'أ': 'a', 'ب': 'b', 'ت': 't', 'ث': 'th', 'ج': 'g', 'ح': 'h', 'خ': 'kh', 'د': 'd', - 'ذ': 'th', 'ر': 'r', 'ز': 'z', 'س': 's', 'ش': 'sh', 'ص': 's', 'ض': 'd', 'ط': 't', - 'ظ': 'th', 'ع': 'aa', 'غ': 'gh', 'ف': 'f', 'ق': 'k', 'ك': 'k', 'ل': 'l', 'م': 'm', - 'ن': 'n', 'ه': 'h', 'و': 'o', 'ي': 'y' - }; - const LITHUANIAN_MAP = { - 'ą': 'a', 'č': 'c', 'ę': 'e', 'ė': 'e', 'į': 'i', 'š': 's', 'ų': 'u', - 'ū': 'u', 'ž': 'z', - 'Ą': 'A', 'Č': 'C', 'Ę': 'E', 'Ė': 'E', 'Į': 'I', 'Š': 'S', 'Ų': 'U', - 'Ū': 'U', 'Ž': 'Z' - }; - const SERBIAN_MAP = { - 'ђ': 'dj', 'ј': 'j', 'љ': 'lj', 'њ': 'nj', 'ћ': 'c', 'џ': 'dz', - 'đ': 'dj', 'Ђ': 'Dj', 'Ј': 'j', 'Љ': 'Lj', 'Њ': 'Nj', 'Ћ': 'C', - 'Џ': 'Dz', 'Đ': 'Dj' - }; - const AZERBAIJANI_MAP = { - 'ç': 'c', 'ə': 'e', 'ğ': 'g', 'ı': 'i', 'ö': 'o', 'ş': 's', 'ü': 'u', - 'Ç': 'C', 'Ə': 'E', 'Ğ': 'G', 'İ': 'I', 'Ö': 'O', 'Ş': 'S', 'Ü': 'U' - }; - const GEORGIAN_MAP = { - 'ა': 'a', 'ბ': 'b', 'გ': 'g', 'დ': 'd', 'ე': 'e', 'ვ': 'v', 'ზ': 'z', - 'თ': 't', 'ი': 'i', 'კ': 'k', 'ლ': 'l', 'მ': 'm', 'ნ': 'n', 'ო': 'o', - 'პ': 'p', 'ჟ': 'j', 'რ': 'r', 'ს': 's', 'ტ': 't', 'უ': 'u', 'ფ': 'f', - 'ქ': 'q', 'ღ': 'g', 'ყ': 'y', 'შ': 'sh', 'ჩ': 'ch', 'ც': 'c', 'ძ': 'dz', - 'წ': 'w', 'ჭ': 'ch', 'ხ': 'x', 'ჯ': 'j', 'ჰ': 'h' - }; - - const ALL_DOWNCODE_MAPS = [ - LATIN_MAP, - LATIN_SYMBOLS_MAP, - GREEK_MAP, - TURKISH_MAP, - ROMANIAN_MAP, - RUSSIAN_MAP, - UKRAINIAN_MAP, - CZECH_MAP, - SLOVAK_MAP, - POLISH_MAP, - LATVIAN_MAP, - ARABIC_MAP, - LITHUANIAN_MAP, - SERBIAN_MAP, - AZERBAIJANI_MAP, - GEORGIAN_MAP - ]; - - const Downcoder = { - 'Initialize': function() { - if (Downcoder.map) { // already made - return; - } - Downcoder.map = {}; - for (const lookup of ALL_DOWNCODE_MAPS) { - Object.assign(Downcoder.map, lookup); - } - Downcoder.regex = new RegExp(Object.keys(Downcoder.map).join('|'), 'g'); - } - }; - - function downcode(slug) { - Downcoder.Initialize(); - return slug.replace(Downcoder.regex, function(m) { - return Downcoder.map[m]; - }); - } - - - function URLify(s, num_chars, allowUnicode) { - // changes, e.g., "Petty theft" to "petty-theft" - if (!allowUnicode) { - s = downcode(s); - } - s = s.toLowerCase(); // convert to lowercase - // if downcode doesn't hit, the char will be stripped here - if (allowUnicode) { - // Keep Unicode letters including both lowercase and uppercase - // characters, whitespace, and dash; remove other characters. - s = XRegExp.replace(s, XRegExp('[^-_\\p{L}\\p{N}\\s]', 'g'), ''); - } else { - s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars - } - s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces - s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens - s = s.substring(0, num_chars); // trim to first num_chars chars - return s.replace(/-+$/g, ''); // trim any trailing hyphens - } - window.URLify = URLify; -} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt deleted file mode 100644 index f642c3f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright OpenJS Foundation and other contributors, https://openjsf.org/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js deleted file mode 100644 index 7f35c11..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js +++ /dev/null @@ -1,10965 +0,0 @@ -/*! - * jQuery JavaScript Library v3.6.4 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2023-03-08T15:28Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket trac-14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML <object> elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 - // Plus for old WebKit, typeof returns "function" for HTML collections - // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) - return typeof obj === "function" && typeof obj.nodeType !== "number" && - typeof obj.item !== "function"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - -var document = window.document; - - - - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - - function DOMEval( code, node, doc ) { - doc = doc || document; - - var i, val, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.6.4", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return flat( ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), - function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); - } ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.10 - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://js.foundation/ - * - * Date: 2023-02-14 - */ -( function( window ) { -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - nonnativeSelectorCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ( {} ).hasOwnProperty, - arr = [], - pop = arr.pop, - pushNative = arr.push, - push = arr.push, - slice = arr.slice, - - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), - rdescend = new RegExp( whitespace + "|>" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rhtml = /HTML$/i, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - inDisabledFieldset = addCombinator( - function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), - preferredDoc.childNodes - ); - - // Support: Android<4.0 - // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - pushNative.apply( target, slice.call( els ) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - setDocument( context ); - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { - - // ID selector - if ( ( m = match[ 1 ] ) ) { - - // Document context - if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[ 2 ] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - - // Support: IE 8 only - // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) { - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { - - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); - } - newSelector = groups.join( "," ); - } - - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return ( cache[ key + " " ] = value ); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement( "fieldset" ); - - try { - return !!fn( el ); - } catch ( e ) { - return false; - } finally { - - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { - argument = +argument; - return markFunction( function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); - } - } - } ); - } ); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - var namespace = elem && elem.namespaceURI, - docElem = elem && ( elem.ownerDocument || elem ).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9 - 11+, Edge 12 - 18+ - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - - // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+ - // Make sure the the `:has()` argument is parsed unforgivingly. - // We include `*` in the test to detect buggy implementations that are - // _selectively_ forgiving (specifically when the list includes at least - // one valid selector). - // Note that we treat complete lack of support for `:has()` as if it were - // spec-compliant support, which is fine because use of `:has()` in such - // environments will fail in the qSA path and fall back to jQuery traversal - // anyway. - support.cssHas = assert( function() { - try { - document.querySelector( ":has(*,:jqfake)" ); - return false; - } catch ( e ) { - return true; - } - } ); - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert( function( el ) { - el.className = "i"; - return !el.getAttribute( "className" ); - } ); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); - - // ID filter and find - if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute( "id" ) === attrId; - }; - }; - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" + - "<select id='" + expando + "-\r\\' msallowcapture=''>" + - "<option selected=''></option></select>"; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); - } - - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { - el.innerHTML = "<a href='' disabled='disabled'></a>" + - "<select disabled='disabled'><option/></select>"; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: Opera 10 - 11 only - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); - } - - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { - - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - } ); - } - - if ( !support.cssHas ) { - - // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+ - // Our regular `try-catch` mechanism fails to detect natively-unsupported - // pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`) - // in browsers that parse the `:has()` argument as a forgiving selector list. - // https://drafts.csswg.org/selectors/#relational now requires the argument - // to be parsed unforgivingly, but browsers have not yet fully adjusted. - rbuggyQSA.push( ":has" ); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - - // Support: IE <9 only - // IE doesn't have `contains` on `document` so we need to check for - // `documentElement` presence. - // We need to fall back to `a` when `documentElement` is missing - // as `ownerDocument` of elements within `<template/>` may have - // a null one - a default behavior of all modern browsers. - var adown = a.nodeType === 9 && a.documentElement || a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); - } : - function( a, b ) { - if ( b ) { - while ( ( b = b.parentNode ) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { - - // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { - return -1; - } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( ( cur = cur.parentNode ) ) { - ap.unshift( cur ); - } - cur = b; - while ( ( cur = cur.parentNode ) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { - i++; - } - - return i ? - - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : - - // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); - - if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch ( e ) { - nonnativeSelectorCache( expr, true ); - } - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); - - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - - // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[ 6 ] && match[ 2 ]; - - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - - // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { - - // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { - return true; - } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - /* eslint-disable max-len */ - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - /* eslint-enable max-len */ - - }; - }, - - "CHILD": function( type, what, _argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, _context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( ( node = node[ dir ] ) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( ( node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - - // Use previously-cached element index if available - if ( useCache ) { - - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); - } - } ) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - - // Potentially complex pseudos - "not": markFunction( function( selector ) { - - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); - } - } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; - matcher( input, null, xml, results ); - - // Don't keep the element (issue #299) - input[ 0 ] = null; - return !results.pop(); - }; - } ), - - "has": markFunction( function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - } ), - - "contains": markFunction( function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; - }; - } ), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( ( elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); - return false; - }; - } ), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); - }, - - "selected": function( elem ) { - - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE <10 only - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo( function() { - return [ 0 ]; - } ), - - "last": createPositionalPseudo( function( _matchIndexes, length ) { - return [ length - 1 ]; - } ), - - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - } ), - - "even": createPositionalPseudo( function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "odd": createPositionalPseudo( function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ) - } -}; - -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { - if ( match ) { - - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; - } - groups.push( ( tokens = [] ) ); - } - - matched = false; - - // Combinators - if ( ( match = rleadingCombinator.exec( soFar ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[ i ].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); - } else { - - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[ 0 ]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction( function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - - // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); - } - } - postFinder( null, ( matcherOut = [] ), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - - seed[ temp ] = !( results[ temp ] = elem ); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - } ); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; - } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), - len = elems.length; - - if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[ i ]; - - // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { - break; - } - if ( ( find = Expr.find[ type ] ) ) { - - // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { - el.innerHTML = "<a href='#'></a>"; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - } ); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { - el.innerHTML = "<input/>"; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - } ); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; - } - } ); -} - -return Sizzle; - -} )( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -} -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521) - // Strict HTML recognition (trac-11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, _i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, _i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, _i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // <object> elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { - - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the primary Deferred - primary = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - primary.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( primary.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return primary.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); - } - - return primary.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See trac-6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, _key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (trac-9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see trac-8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (trac-14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached( elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (trac-11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (trac-14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = "<textarea>x</textarea>"; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces <option> tags with their contents when inserted outside of - // the select element. - div.innerHTML = "<option></option>"; - support.option = !!div.lastChild; -} )(); - - -// We have to close these tags to support XHTML (trac-13200) -var wrapMap = { - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting <tbody> or other required elements. - thead: [ 1, "<table>", "</table>" ], - col: [ 2, "<table><colgroup>", "</colgroup></table>" ], - tr: [ 2, "<table><tbody>", "</tbody></table>" ], - td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], - - _default: [ 0, "", "" ] -}; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ]; -} - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (trac-15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (trac-12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG <use> instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (trac-13208) - // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (trac-13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - - // Support: Chrome 86+ - // In Chrome, if an element having a focusout handler is blurred by - // clicking outside of it, it invokes the handler synchronously. If - // that handler calls `.remove()` on the element, the data is cleared, - // leaving `result` undefined. We need to guard against this. - return result && result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (trac-504, trac-13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - which: true -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - // Suppress native focus or blur if we're currently inside - // a leveraged native-event stack - _default: function( event ) { - return dataPriv.get( event.target, type ); - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /<script|<style|<link/i, - - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - - rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); - events = pdataOld.events; - - if ( events ) { - dataPriv.remove( dest, "handle events" ); - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = flat( args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (trac-8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); - } - } else { - - // Unwrap a CDATA section containing script contents. This shouldn't be - // needed as in XML documents they're already not visible when - // inspecting element contents and in HTML documents they have no - // meaning but we're preserving that logic for backwards compatibility. - // This will be removed completely in 4.0. See gh-4904. - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html; - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var rcustomProp = /^--/; - - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - -var whitespace = "[\\x20\\t\\r\\n\\f]"; - - -var rtrimCSS = new RegExp( - "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", - "g" -); - - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (trac-8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - // - // Support: Firefox 70+ - // Only Firefox includes border widths - // in computed dimensions. (gh-4529) - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; - tr.style.cssText = "border:1px solid"; - - // Support: Chrome 86+ - // Height set through cssText does not get applied. - // Computed height then comes back as 0. - tr.style.height = "1px"; - trChild.style.height = "9px"; - - // Support: Android 8 Chrome 86+ - // In our bodyBackground.html iframe, - // display for all div elements is set to "inline", - // which causes a problem only in Android 8 Chrome 86. - // Ensuring the div is display: block - // gets around this issue. - trChild.style.display = "block"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + - parseInt( trStyle.borderTopWidth, 10 ) + - parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - isCustomProp = rcustomProp.test( name ), - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, trac-12537) - // .css('--customProperty) (gh-3144) - if ( computed ) { - - // Support: IE <=9 - 11+ - // IE only supports `"float"` in `getPropertyValue`; in computed styles - // it's only available as `"cssFloat"`. We no longer modify properties - // sent to `.css()` apart from camelCasing, so we need to check both. - // Normally, this would create difference in behavior: if - // `getPropertyValue` returns an empty string, the value returned - // by `.css()` would be `undefined`. This is usually the case for - // disconnected elements. However, in IE even disconnected elements - // with no styles return `"none"` for `getPropertyValue( "float" )` - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( isCustomProp && ret ) { - - // Support: Firefox 105+, Chrome <=105+ - // Spec requires trimming whitespace for custom properties (gh-4926). - // Firefox only trims leading whitespace. Chrome just collapses - // both leading & trailing whitespace to a single space. - // - // Fall back to `undefined` if empty string returned. - // This collapses a missing definition with property defined - // and set to an empty string but there's no standard API - // allowing us to differentiate them without a performance penalty - // and returning `undefined` aligns with older jQuery. - // - // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED - // as whitespace while CSS does not, but this is not a problem - // because CSS preprocessing replaces them with U+000A LINE FEED - // (which *is* CSS whitespace) - // https://www.w3.org/TR/css-syntax-3/#input-preprocessing - ret = ret.replace( rtrimCSS, "$1" ) || undefined; - } - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - - // Make sure the element is visible & connected - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (trac-7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug trac-9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (trac-7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( _i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // Use proper attribute retrieval (trac-12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classNames, cur, curValue, className, i, finalValue; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classNames = classesToArray( value ); - - if ( classNames.length ) { - return this.each( function() { - curValue = getClass( this ); - cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - for ( i = 0; i < classNames.length; i++ ) { - className = classNames[ i ]; - if ( cur.indexOf( " " + className + " " ) < 0 ) { - cur += className + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - this.setAttribute( "class", finalValue ); - } - } - } ); - } - - return this; - }, - - removeClass: function( value ) { - var classNames, cur, curValue, className, i, finalValue; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classNames = classesToArray( value ); - - if ( classNames.length ) { - return this.each( function() { - curValue = getClass( this ); - - // This expression is here for better compressibility (see addClass) - cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - for ( i = 0; i < classNames.length; i++ ) { - className = classNames[ i ]; - - // Remove *all* instances - while ( cur.indexOf( " " + className + " " ) > -1 ) { - cur = cur.replace( " " + className + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - this.setAttribute( "class", finalValue ); - } - } - } ); - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var classNames, className, i, self, - type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - classNames = classesToArray( value ); - - return this.each( function() { - if ( isValidValue ) { - - // Toggle individual class names - self = jQuery( this ); - - for ( i = 0; i < classNames.length; i++ ) { - className = classNames[ i ]; - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (trac-14686, trac-14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (trac-2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (trac-9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (trac-6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = { guid: Date.now() }; - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml, parserErrorElem; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) {} - - parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; - if ( !xml || parserErrorElem ) { - jQuery.error( "Invalid XML: " + ( - parserErrorElem ? - jQuery.map( parserErrorElem.childNodes, function( el ) { - return el.textContent; - } ).join( "\n" ) : - data - ) ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ).filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ).map( function( _i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // trac-7653, trac-8125, trac-8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - -originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes trac-9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (trac-10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket trac-12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // trac-9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Use a noop converter for missing script but not if jsonp - if ( !isSuccess && - jQuery.inArray( "script", s.dataTypes ) > -1 && - jQuery.inArray( "json", s.dataTypes ) < 0 ) { - s.converters[ "text script" ] = function() {}; - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( _i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - - -jQuery._evalUrl = function( url, options, doc ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (trac-11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // trac-1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see trac-8605, trac-14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // trac-14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( "<script>" ) - .attr( s.scriptAttrs || {} ) - .prop( { charset: s.scriptCharset, src: s.url } ) - .on( "load error", callback = function( evt ) { - script.remove(); - callback = null; - if ( evt ) { - complete( evt.type === "error" ? 404 : 200, evt.type ); - } - } ); - - // Use native DOM manipulation to avoid our domManip AJAX trickery - document.head.appendChild( script[ 0 ] ); - }, - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -var oldCallbacks = [], - rjsonp = /(=)\?(?=&|$)|\?\?/; - -// Default jsonp settings -jQuery.ajaxSetup( { - jsonp: "callback", - jsonpCallback: function() { - var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); - this[ callback ] = true; - return callback; - } -} ); - -// Detect, normalize options and install callbacks for jsonp requests -jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { - - var callbackName, overwritten, responseContainer, - jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? - "url" : - typeof s.data === "string" && - ( s.contentType || "" ) - .indexOf( "application/x-www-form-urlencoded" ) === 0 && - rjsonp.test( s.data ) && "data" - ); - - // Handle iff the expected data type is "jsonp" or we have a parameter to set - if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { - - // Get callback name, remembering preexisting value associated with it - callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ? - s.jsonpCallback() : - s.jsonpCallback; - - // Insert callback into url or form data - if ( jsonProp ) { - s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); - } else if ( s.jsonp !== false ) { - s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; - } - - // Use data converter to retrieve json after script execution - s.converters[ "script json" ] = function() { - if ( !responseContainer ) { - jQuery.error( callbackName + " was not called" ); - } - return responseContainer[ 0 ]; - }; - - // Force json dataType - s.dataTypes[ 0 ] = "json"; - - // Install callback - overwritten = window[ callbackName ]; - window[ callbackName ] = function() { - responseContainer = arguments; - }; - - // Clean-up function (fires after converters) - jqXHR.always( function() { - - // If previous value didn't exist - remove it - if ( overwritten === undefined ) { - jQuery( window ).removeProp( callbackName ); - - // Otherwise restore preexisting value - } else { - window[ callbackName ] = overwritten; - } - - // Save back as free - if ( s[ callbackName ] ) { - - // Make sure that re-using the options doesn't screw things around - s.jsonpCallback = originalSettings.jsonpCallback; - - // Save the callback name for future use - oldCallbacks.push( callbackName ); - } - - // Call if it was a function and we have a response - if ( responseContainer && isFunction( overwritten ) ) { - overwritten( responseContainer[ 0 ] ); - } - - responseContainer = overwritten = undefined; - } ); - - // Delegate to script - return "script"; - } -} ); - - - - -// Support: Safari 8 only -// In Safari 8 documents created via document.implementation.createHTMLDocument -// collapse sibling forms: the second one becomes a child of the first one. -// Because of that, this security measure has to be disabled in Safari 8. -// https://bugs.webkit.org/show_bug.cgi?id=137337 -support.createHTMLDocument = ( function() { - var body = document.implementation.createHTMLDocument( "" ).body; - body.innerHTML = "<form></form><form></form>"; - return body.childNodes.length === 2; -} )(); - - -// Argument "data" should be string of html -// context (optional): If specified, the fragment will be created in this context, -// defaults to document -// keepScripts (optional): If true, will include scripts passed in the html string -jQuery.parseHTML = function( data, context, keepScripts ) { - if ( typeof data !== "string" ) { - return []; - } - if ( typeof context === "boolean" ) { - keepScripts = context; - context = false; - } - - var base, parsed, scripts; - - if ( !context ) { - - // Stop scripts or inline event handlers from being executed immediately - // by using document.implementation - if ( support.createHTMLDocument ) { - context = document.implementation.createHTMLDocument( "" ); - - // Set the base href for the created document - // so any parsed elements with URLs - // are based on the document's URL (gh-2965) - base = context.createElement( "base" ); - base.href = document.location.href; - context.head.appendChild( base ); - } else { - context = document; - } - } - - parsed = rsingleTag.exec( data ); - scripts = !keepScripts && []; - - // Single tag - if ( parsed ) { - return [ context.createElement( parsed[ 1 ] ) ]; - } - - parsed = buildFragment( [ data ], context, scripts ); - - if ( scripts && scripts.length ) { - jQuery( scripts ).remove(); - } - - return jQuery.merge( [], parsed.childNodes ); -}; - - -/** - * Load a url into a page - */ -jQuery.fn.load = function( url, params, callback ) { - var selector, type, response, - self = this, - off = url.indexOf( " " ); - - if ( off > -1 ) { - selector = stripAndCollapse( url.slice( off ) ); - url = url.slice( 0, off ); - } - - // If it's a function - if ( isFunction( params ) ) { - - // We assume that it's the callback - callback = params; - params = undefined; - - // Otherwise, build a param string - } else if ( params && typeof params === "object" ) { - type = "POST"; - } - - // If we have elements to modify, make the request - if ( self.length > 0 ) { - jQuery.ajax( { - url: url, - - // If "type" variable is undefined, then "GET" method will be used. - // Make value of this field explicit since - // user can override it through ajaxSetup method - type: type || "GET", - dataType: "html", - data: params - } ).done( function( responseText ) { - - // Save response for use in complete callback - response = arguments; - - self.html( selector ? - - // If a selector was specified, locate the right elements in a dummy div - // Exclude scripts to avoid IE 'Permission Denied' errors - jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : - - // Otherwise use the full result - responseText ); - - // If the request succeeds, this function gets "data", "status", "jqXHR" - // but they are ignored because response was set above. - // If it fails, this function gets "jqXHR", "status", "error" - } ).always( callback && function( jqXHR, status ) { - self.each( function() { - callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); - } ); - } ); - } - - return this; -}; - - - - -jQuery.expr.pseudos.animated = function( elem ) { - return jQuery.grep( jQuery.timers, function( fn ) { - return elem === fn.elem; - } ).length; -}; - - - - -jQuery.offset = { - setOffset: function( elem, options, i ) { - var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, - position = jQuery.css( elem, "position" ), - curElem = jQuery( elem ), - props = {}; - - // Set position first, in-case top/left are set even on static elem - if ( position === "static" ) { - elem.style.position = "relative"; - } - - curOffset = curElem.offset(); - curCSSTop = jQuery.css( elem, "top" ); - curCSSLeft = jQuery.css( elem, "left" ); - calculatePosition = ( position === "absolute" || position === "fixed" ) && - ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; - - // Need to be able to calculate position if either - // top or left is auto and position is either absolute or fixed - if ( calculatePosition ) { - curPosition = curElem.position(); - curTop = curPosition.top; - curLeft = curPosition.left; - - } else { - curTop = parseFloat( curCSSTop ) || 0; - curLeft = parseFloat( curCSSLeft ) || 0; - } - - if ( isFunction( options ) ) { - - // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) - options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); - } - - if ( options.top != null ) { - props.top = ( options.top - curOffset.top ) + curTop; - } - if ( options.left != null ) { - props.left = ( options.left - curOffset.left ) + curLeft; - } - - if ( "using" in options ) { - options.using.call( elem, props ); - - } else { - curElem.css( props ); - } - } -}; - -jQuery.fn.extend( { - - // offset() relates an element's border box to the document origin - offset: function( options ) { - - // Preserve chaining for setter - if ( arguments.length ) { - return options === undefined ? - this : - this.each( function( i ) { - jQuery.offset.setOffset( this, options, i ); - } ); - } - - var rect, win, - elem = this[ 0 ]; - - if ( !elem ) { - return; - } - - // Return zeros for disconnected and hidden (display: none) elements (gh-2310) - // Support: IE <=11 only - // Running getBoundingClientRect on a - // disconnected node in IE throws an error - if ( !elem.getClientRects().length ) { - return { top: 0, left: 0 }; - } - - // Get document-relative position by adding viewport scroll to viewport-relative gBCR - rect = elem.getBoundingClientRect(); - win = elem.ownerDocument.defaultView; - return { - top: rect.top + win.pageYOffset, - left: rect.left + win.pageXOffset - }; - }, - - // position() relates an element's margin box to its offset parent's padding box - // This corresponds to the behavior of CSS absolute positioning - position: function() { - if ( !this[ 0 ] ) { - return; - } - - var offsetParent, offset, doc, - elem = this[ 0 ], - parentOffset = { top: 0, left: 0 }; - - // position:fixed elements are offset from the viewport, which itself always has zero offset - if ( jQuery.css( elem, "position" ) === "fixed" ) { - - // Assume position:fixed implies availability of getBoundingClientRect - offset = elem.getBoundingClientRect(); - - } else { - offset = this.offset(); - - // Account for the *real* offset parent, which can be the document or its root element - // when a statically positioned element is identified - doc = elem.ownerDocument; - offsetParent = elem.offsetParent || doc.documentElement; - while ( offsetParent && - ( offsetParent === doc.body || offsetParent === doc.documentElement ) && - jQuery.css( offsetParent, "position" ) === "static" ) { - - offsetParent = offsetParent.parentNode; - } - if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) { - - // Incorporate borders into its offset, since they are outside its content origin - parentOffset = jQuery( offsetParent ).offset(); - parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true ); - parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true ); - } - } - - // Subtract parent offsets and element margins - return { - top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), - left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) - }; - }, - - // This method will return documentElement in the following cases: - // 1) For the element inside the iframe without offsetParent, this method will return - // documentElement of the parent window - // 2) For the hidden or detached element - // 3) For body or html element, i.e. in case of the html node - it will return itself - // - // but those exceptions were never presented as a real life use-cases - // and might be considered as more preferable results. - // - // This logic, however, is not guaranteed and can change at any point in the future - offsetParent: function() { - return this.map( function() { - var offsetParent = this.offsetParent; - - while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { - offsetParent = offsetParent.offsetParent; - } - - return offsetParent || documentElement; - } ); - } -} ); - -// Create scrollLeft and scrollTop methods -jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { - var top = "pageYOffset" === prop; - - jQuery.fn[ method ] = function( val ) { - return access( this, function( elem, method, val ) { - - // Coalesce documents and windows - var win; - if ( isWindow( elem ) ) { - win = elem; - } else if ( elem.nodeType === 9 ) { - win = elem.defaultView; - } - - if ( val === undefined ) { - return win ? win[ prop ] : elem[ method ]; - } - - if ( win ) { - win.scrollTo( - !top ? val : win.pageXOffset, - top ? val : win.pageYOffset - ); - - } else { - elem[ method ] = val; - } - }, method, val, arguments.length ); - }; -} ); - -// Support: Safari <=7 - 9.1, Chrome <=37 - 49 -// Add the top/left cssHooks using jQuery.fn.position -// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 -// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 -// getComputedStyle returns percent when specified for top/left/bottom/right; -// rather than make the css module depend on the offset module, just check for it here -jQuery.each( [ "top", "left" ], function( _i, prop ) { - jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, - function( elem, computed ) { - if ( computed ) { - computed = curCSS( elem, prop ); - - // If curCSS returns percentage, fallback to offset - return rnumnonpx.test( computed ) ? - jQuery( elem ).position()[ prop ] + "px" : - computed; - } - } - ); -} ); - - -// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods -jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { - padding: "inner" + name, - content: type, - "": "outer" + name - }, function( defaultExtra, funcName ) { - - // Margin is only for outerHeight, outerWidth - jQuery.fn[ funcName ] = function( margin, value ) { - var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), - extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); - - return access( this, function( elem, type, value ) { - var doc; - - if ( isWindow( elem ) ) { - - // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) - return funcName.indexOf( "outer" ) === 0 ? - elem[ "inner" + name ] : - elem.document.documentElement[ "client" + name ]; - } - - // Get document width or height - if ( elem.nodeType === 9 ) { - doc = elem.documentElement; - - // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], - // whichever is greatest - return Math.max( - elem.body[ "scroll" + name ], doc[ "scroll" + name ], - elem.body[ "offset" + name ], doc[ "offset" + name ], - doc[ "client" + name ] - ); - } - - return value === undefined ? - - // Get width or height on the element, requesting but not forcing parseFloat - jQuery.css( elem, type, extra ) : - - // Set width or height on the element - jQuery.style( elem, type, value, extra ); - }, type, chainable ? margin : undefined, chainable ); - }; - } ); -} ); - - -jQuery.each( [ - "ajaxStart", - "ajaxStop", - "ajaxComplete", - "ajaxError", - "ajaxSuccess", - "ajaxSend" -], function( _i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -} ); - - - - -jQuery.fn.extend( { - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length === 1 ? - this.off( selector, "**" ) : - this.off( types, selector || "**", fn ); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -} ); - -jQuery.each( - ( "blur focus focusin focusout resize scroll click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup contextmenu" ).split( " " ), - function( _i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); - }; - } -); - - - - -// Support: Android <=4.0 only -// Make sure we trim BOM and NBSP -// Require that the "whitespace run" starts from a non-whitespace -// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position. -var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; - -// Bind a function to a context, optionally partially applying any -// arguments. -// jQuery.proxy is deprecated to promote standards (specifically Function#bind) -// However, it is not slated for removal any time soon -jQuery.proxy = function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; -}; - -jQuery.holdReady = function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } -}; -jQuery.isArray = Array.isArray; -jQuery.parseJSON = JSON.parse; -jQuery.nodeName = nodeName; -jQuery.isFunction = isFunction; -jQuery.isWindow = isWindow; -jQuery.camelCase = camelCase; -jQuery.type = toType; - -jQuery.now = Date.now; - -jQuery.isNumeric = function( obj ) { - - // As of jQuery 3.0, isNumeric is limited to - // strings and numbers (primitives or objects) - // that can be coerced to finite numbers (gh-2662) - var type = jQuery.type( obj ); - return ( type === "number" || type === "string" ) && - - // parseFloat NaNs numeric-cast false positives ("") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - !isNaN( obj - parseFloat( obj ) ); -}; - -jQuery.trim = function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "$1" ); -}; - - - -// Register as a named AMD module, since jQuery can be concatenated with other -// files that may use define, but not via a proper concatenation script that -// understands anonymous AMD modules. A named AMD is safest and most robust -// way to register. Lowercase jquery is used because AMD module names are -// derived from file names, and jQuery is normally delivered in a lowercase -// file name. Do this after creating the global so that if an AMD module wants -// to call noConflict to hide this version of jQuery, it will work. - -// Note that for maximum portability, libraries that are not jQuery should -// declare themselves as anonymous modules, and avoid setting a global if an -// AMD loader is present. jQuery is a special case. For more information, see -// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon - -if ( typeof define === "function" && define.amd ) { - define( "jquery", [], function() { - return jQuery; - } ); -} - - - - -var - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$; - -jQuery.noConflict = function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; -}; - -// Expose jQuery and $ identifiers, even in AMD -// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557) -// and CommonJS for browser emulators (trac-13566) -if ( typeof noGlobal === "undefined" ) { - window.jQuery = window.$ = jQuery; -} - - - - -return jQuery; -} ); diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js deleted file mode 100644 index 0de648e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.6.4 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.4",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=y.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:v}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,y,s,c,v,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssHas=ce(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssHas||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,y){var v="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===y?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=v!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(v){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=y)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ye(function(){return[0]}),last:ye(function(e,t){return[t-1]}),eq:ye(function(e,t,n){return[n<0?n+t:n]}),even:ye(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ye(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ye(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ye(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,y,v,e){return y&&!y[S]&&(y=Ce(y)),v&&!v[S]&&(v=Ce(v,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?v||(e?d:l||y)?[]:t:f;if(g&&g(f,p,n,r),y){i=Te(p,u),y(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(v||d){if(v){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);v(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=v?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),v?v(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,y,v,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(y=o,m=0<(v=i).length,x=0<y.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=y[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=v[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+v.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ve(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function $(){E.removeEventListener("DOMContentLoaded",$),C.removeEventListener("load",$),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",$),C.addEventListener("load",$));var B=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)B(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):B(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",v.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,v.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=y.events)||(u=y.events=Object.create(null)),(a=y.handle)||(a=y.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.hasData(e)&&Y.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||S.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(t,e){S.event.special[t]={setup:function(){return Se(this,t,Ce),!1},trigger:function(){return Se(this,t),!0},_default:function(e){return Y.get(e.target,t)},delegateType:e}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!v.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ye(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ye(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ye(r)),r.parentNode&&(n&&ie(r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ye(c),r=0,i=(o=ye(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ye(e),a=a||ye(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ye(c,"script")).length&&ve(a,!f&&ye(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return B(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return B(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ye(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=/^--/,Me=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Ie=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},We=new RegExp(ne.join("|"),"i"),Fe="[\\x20\\t\\r\\n\\f]",$e=new RegExp("^"+Fe+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Fe+"+$","g");function Be(e,t,n){var r,i,o,a,s=Re.test(t),u=e.style;return(n=n||Me(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace($e,"$1")||void 0),""!==a||ie(e)||(a=S.style(e,t)),!v.pixelBoxStyles()&&Pe.test(a)&&We.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(v,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var ze=["Webkit","Moz","ms"],Ue=E.createElement("div").style,Xe={};function Ve(e){var t=S.cssProps[e]||Xe[e];return t||(e in Ue?e:Xe[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=ze.length;while(n--)if((e=ze[n]+t)in Ue)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Me(e),i=(!v.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Re.test(t),l=e.style;if(u||(t=Ve(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Re.test(t)||(t=Ve(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):Ie(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Me(e),o=!v.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=_e(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-Ie(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return B(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Me(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Ve(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(y?"hidden"in y&&(g=y.hidden):y=Y.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",v.checkOn=""!==rt.value,v.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",v.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return B(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function yt(e){return(e.match(P)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return B(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),v.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){S(this).addClass(t.call(this,e,vt(this)))}):(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=yt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){S(this).removeClass(t.call(this,e,vt(this)))}):arguments.length?(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=yt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return m(t)?this.each(function(e){S(this).toggleClass(t.call(this,e,vt(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=mt(t),this.each(function(){if(s)for(o=S(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=vt(this))&&Y.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+yt(vt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:yt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},v.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),v.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=y.call(e,"type")?e.type:e,h=y.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),v.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function jt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):jt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)jt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var Dt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function $t(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Bt(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Bt(Bt(e,S.ajaxSettings),t):Bt(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,y=S.ajaxSetup({},t),v=y.context||y,m=y.context&&(v.nodeType||v.jquery)?S(v):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=y.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(y.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),y.url=((e||y.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),y.type=t.method||t.type||y.method||y.type,y.dataTypes=(y.dataType||"*").toLowerCase().match(P)||[""],null==y.crossDomain){r=E.createElement("a");try{r.href=y.url,r.href=r.href,y.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){y.crossDomain=!0}}if(y.data&&y.processData&&"string"!=typeof y.data&&(y.data=S.param(y.data,y.traditional)),$t(Rt,y,t,T),h)return T;for(i in(g=S.event&&y.global)&&0==S.active++&&S.event.trigger("ajaxStart"),y.type=y.type.toUpperCase(),y.hasContent=!Ot.test(y.type),f=y.url.replace(qt,""),y.hasContent?y.data&&y.processData&&0===(y.contentType||"").indexOf("application/x-www-form-urlencoded")&&(y.data=y.data.replace(Dt,"+")):(o=y.url.slice(f.length),y.data&&(y.processData||"string"==typeof y.data)&&(f+=(Et.test(f)?"&":"?")+y.data,delete y.data),!1===y.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),y.url=f+o),y.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(y.data&&y.hasContent&&!1!==y.contentType||t.contentType)&&T.setRequestHeader("Content-Type",y.contentType),T.setRequestHeader("Accept",y.dataTypes[0]&&y.accepts[y.dataTypes[0]]?y.accepts[y.dataTypes[0]]+("*"!==y.dataTypes[0]?", "+It+"; q=0.01":""):y.accepts["*"]),y.headers)T.setRequestHeader(i,y.headers[i]);if(y.beforeSend&&(!1===y.beforeSend.call(v,T,y)||h))return T.abort();if(u="abort",b.add(y.complete),T.done(y.success),T.fail(y.error),c=$t(Mt,y,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,y]),h)return T;y.async&&0<y.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},y.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(y,T,n)),!i&&-1<S.inArray("script",y.dataTypes)&&S.inArray("json",y.dataTypes)<0&&(y.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(y,s,T,i),i?(y.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===y.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(v,[o,l,T]):x.rejectWith(v,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,y,i?o:a]),b.fireWith(v,[T,l]),g&&(m.trigger("ajaxComplete",[T,y]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();v.cors=!!zt&&"withCredentials"in zt,v.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(v.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=yt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S}); diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md deleted file mode 100644 index 8cb8a2b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js deleted file mode 100644 index 32e5ac7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Verwyders asseblief "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Voer asseblief "+(e.minimum-e.input.length)+" of meer karakters"},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var n="Kies asseblief net "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"},removeAllItems:function(){return"Verwyder alle items"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js deleted file mode 100644 index 64e1caa..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(n){return"الرجاء حذف "+(n.input.length-n.maximum)+" عناصر"},inputTooShort:function(n){return"الرجاء إضافة "+(n.minimum-n.input.length)+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(n){return"تستطيع إختيار "+n.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"},removeAllItems:function(){return"قم بإزالة كل العناصر"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js deleted file mode 100644 index 1d52c26..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/az",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+" simvol silin"},inputTooShort:function(n){return n.minimum-n.input.length+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(n){return"Sadəcə "+n.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"},removeAllItems:function(){return"Bütün elementləri sil"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js deleted file mode 100644 index 73b730a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bg",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u="Моля въведете с "+e+" по-малко символ";return e>1&&(u+="a"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u="Моля въведете още "+e+" символ";return e>1&&(u+="a"),u},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(n){var e="Можете да направите до "+n.maximum+" ";return n.maximum>1?e+="избора":e+="избор",e},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"},removeAllItems:function(){return"Премахнете всички елементи"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js deleted file mode 100644 index 2d17b9d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bn",[],function(){return{errorLoading:function(){return"ফলাফলগুলি লোড করা যায়নি।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।";return 1!=e&&(u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।"),u},inputTooShort:function(n){return n.minimum-n.input.length+" টি অক্ষর অথবা অধিক অক্ষর লিখুন।"},loadingMore:function(){return"আরো ফলাফল লোড হচ্ছে ..."},maximumSelected:function(n){var e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।";return 1!=n.maximum&&(e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।"),e},noResults:function(){return"কোন ফলাফল পাওয়া যায়নি।"},searching:function(){return"অনুসন্ধান করা হচ্ছে ..."}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js deleted file mode 100644 index 46b084d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/bs",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(n){var r=n.input.length-n.maximum,t="Obrišite "+r+" simbol";return t+=e(r,"","a","a")},inputTooShort:function(n){var r=n.minimum-n.input.length,t="Ukucajte bar još "+r+" simbol";return t+=e(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(n){var r="Možete izabrati samo "+n.maximum+" stavk";return r+=e(n.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Uklonite sve stavke"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js deleted file mode 100644 index 82dbbb7..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Si us plau, elimina "+n+" car";return r+=1==n?"àcter":"àcters"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Si us plau, introdueix "+n+" car";return r+=1==n?"àcter":"àcters"},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var n="Només es pot seleccionar "+e.maximum+" element";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"},removeAllItems:function(){return"Treu tots els elements"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js deleted file mode 100644 index 7116d6c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/cs",[],function(){function e(e,n){switch(e){case 2:return n?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadejte o jeden znak méně.":t<=4?"Prosím, zadejte o "+e(t,!0)+" znaky méně.":"Prosím, zadejte o "+t+" znaků méně."},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadejte ještě jeden znak.":t<=4?"Prosím, zadejte ještě další "+e(t,!0)+" znaky.":"Prosím, zadejte ještě dalších "+t+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(n){var t=n.maximum;return 1==t?"Můžete zvolit jen jednu položku.":t<=4?"Můžete zvolit maximálně "+e(t,!1)+" položky.":"Můžete zvolit maximálně "+t+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"},removeAllItems:function(){return"Odstraňte všechny položky"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js deleted file mode 100644 index cda32c3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){return"Angiv venligst "+(e.input.length-e.maximum)+" tegn mindre"},inputTooShort:function(e){return"Angiv venligst "+(e.minimum-e.input.length)+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var n="Du kan kun vælge "+e.maximum+" emne";return 1!=e.maximum&&(n+="r"),n},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js deleted file mode 100644 index c2e61e5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){return"Bitte "+(e.input.length-e.maximum)+" Zeichen weniger eingeben"},inputTooShort:function(e){return"Bitte "+(e.minimum-e.input.length)+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var n="Sie können nur "+e.maximum+" Element";return 1!=e.maximum&&(n+="e"),n+=" auswählen"},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"},removeAllItems:function(){return"Entferne alle Elemente"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js deleted file mode 100644 index 02f283a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/dsb",[],function(){var n=["znamuško","znamušce","znamuška","znamuškow"],e=["zapisk","zapiska","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Pšosym lašuj "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Pšosym zapódaj nanejmjenjej "+a+" "+u(a,n)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(n){return"Móžoš jano "+n.maximum+" "+u(n.maximum,e)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js deleted file mode 100644 index d4922a1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(n){var e=n.input.length-n.maximum,u="Παρακαλώ διαγράψτε "+e+" χαρακτήρ";return 1==e&&(u+="α"),1!=e&&(u+="ες"),u},inputTooShort:function(n){return"Παρακαλώ συμπληρώστε "+(n.minimum-n.input.length)+" ή περισσότερους χαρακτήρες"},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(n){var e="Μπορείτε να επιλέξετε μόνο "+n.maximum+" επιλογ";return 1==n.maximum&&(e+="ή"),1!=n.maximum&&(e+="ές"),e},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"},removeAllItems:function(){return"Καταργήστε όλα τα στοιχεία"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js deleted file mode 100644 index 3b19285..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Please delete "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var n="You can only select "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js deleted file mode 100644 index 68afd6d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Por favor, elimine "+n+" car";return r+=1==n?"ácter":"acteres"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Por favor, introduzca "+n+" car";return r+=1==n?"ácter":"acteres"},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var n="Sólo puede seleccionar "+e.maximum+" elemento";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Eliminar todos los elementos"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js deleted file mode 100644 index 070b61a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var n=e.input.length-e.maximum,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" vähem"},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" rohkem"},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var n="Saad vaid "+e.maximum+" tulemus";return 1==e.maximum?n+="e":n+="t",n+=" valida"},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"},removeAllItems:function(){return"Eemalda kõik esemed"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js deleted file mode 100644 index 90d5e73..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gutxiago"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gehiago"},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return 1===e.maximum?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"},removeAllItems:function(){return"Kendu elementu guztiak"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js deleted file mode 100644 index e1ffdbe..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(n){return"لطفاً "+(n.input.length-n.maximum)+" کاراکتر را حذف نمایید"},inputTooShort:function(n){return"لطفاً تعداد "+(n.minimum-n.input.length)+" کاراکتر یا بیشتر وارد نمایید"},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(n){return"شما تنها می‌توانید "+n.maximum+" آیتم را انتخاب نمایید"},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."},removeAllItems:function(){return"همه موارد را حذف کنید"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js deleted file mode 100644 index ffed124..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(n){return"Ole hyvä ja anna "+(n.input.length-n.maximum)+" merkkiä vähemmän"},inputTooShort:function(n){return"Ole hyvä ja anna "+(n.minimum-n.input.length)+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(n){return"Voit valita ainoastaan "+n.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"},removeAllItems:function(){return"Poista kaikki kohteet"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js deleted file mode 100644 index dd02f97..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var n=e.input.length-e.maximum;return"Supprimez "+n+" caractère"+(n>1?"s":"")},inputTooShort:function(e){var n=e.minimum-e.input.length;return"Saisissez au moins "+n+" caractère"+(n>1?"s":"")},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1?"s":"")},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"},removeAllItems:function(){return"Supprimer tous les éléments"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js deleted file mode 100644 index 208a005..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var n=e.input.length-e.maximum;return 1===n?"Elimine un carácter":"Elimine "+n+" caracteres"},inputTooShort:function(e){var n=e.minimum-e.input.length;return 1===n?"Engada un carácter":"Engada "+n+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return 1===e.maximum?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Elimina todos os elementos"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js deleted file mode 100644 index 25a8805..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="נא למחוק ";return r+=1===e?"תו אחד":e+" תווים"},inputTooShort:function(n){var e=n.minimum-n.input.length,r="נא להכניס ";return r+=1===e?"תו אחד":e+" תווים",r+=" או יותר"},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(n){var e="באפשרותך לבחור עד ";return 1===n.maximum?e+="פריט אחד":e+=n.maximum+" פריטים",e},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"},removeAllItems:function(){return"הסר את כל הפריטים"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js deleted file mode 100644 index f3ed798..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=e+" अक्षर को हटा दें";return e>1&&(r=e+" अक्षरों को हटा दें "),r},inputTooShort:function(n){return"कृपया "+(n.minimum-n.input.length)+" या अधिक अक्षर दर्ज करें"},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(n){return"आप केवल "+n.maximum+" आइटम का चयन कर सकते हैं"},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."},removeAllItems:function(){return"सभी वस्तुओं को हटा दें"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js deleted file mode 100644 index cb3268d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hr",[],function(){function n(n){var e=" "+n+" znak";return n%10<5&&n%10>0&&(n%100<5||n%100>19)?n%10>1&&(e+="a"):e+="ova",e}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(e){return"Unesite "+n(e.input.length-e.maximum)},inputTooShort:function(e){return"Unesite još "+n(e.minimum-e.input.length)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(n){return"Maksimalan broj odabranih stavki je "+n.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Ukloni sve stavke"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js deleted file mode 100644 index 3d5bf09..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hsb",[],function(){var n=["znamješko","znamješce","znamješka","znamješkow"],e=["zapisk","zapiskaj","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Prošu zhašej "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Prošu zapodaj znajmjeńša "+a+" "+u(a,n)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(n){return"Móžeš jenož "+n.maximum+" "+u(n.maximum,e)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js deleted file mode 100644 index 4893aa2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){return"Túl hosszú. "+(e.input.length-e.maximum)+" karakterrel több, mint kellene."},inputTooShort:function(e){return"Túl rövid. Még "+(e.minimum-e.input.length)+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"},removeAllItems:function(){return"Távolítson el minden elemet"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js deleted file mode 100644 index 8230007..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(n){return"Խնդրում ենք հեռացնել "+(n.input.length-n.maximum)+" նշան"},inputTooShort:function(n){return"Խնդրում ենք մուտքագրել "+(n.minimum-n.input.length)+" կամ ավել նշաններ"},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(n){return"Դուք կարող եք ընտրել առավելագույնը "+n.maximum+" կետ"},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"},removeAllItems:function(){return"Հեռացնել բոլոր տարրերը"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js deleted file mode 100644 index 4a0b3bf..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(n){return"Hapuskan "+(n.input.length-n.maximum)+" huruf"},inputTooShort:function(n){return"Masukkan "+(n.minimum-n.input.length)+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(n){return"Anda hanya dapat memilih "+n.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Hapus semua item"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js deleted file mode 100644 index cca5bbe..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/is",[],function(){return{inputTooLong:function(n){var t=n.input.length-n.maximum,e="Vinsamlegast styttið texta um "+t+" staf";return t<=1?e:e+"i"},inputTooShort:function(n){var t=n.minimum-n.input.length,e="Vinsamlegast skrifið "+t+" staf";return t>1&&(e+="i"),e+=" í viðbót"},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(n){return"Þú getur aðeins valið "+n.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"},removeAllItems:function(){return"Fjarlægðu öll atriði"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js deleted file mode 100644 index 507c7d9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Per favore cancella "+n+" caratter";return t+=1!==n?"i":"e"},inputTooShort:function(e){return"Per favore inserisci "+(e.minimum-e.input.length)+" o più caratteri"},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var n="Puoi selezionare solo "+e.maximum+" element";return 1!==e.maximum?n+="i":n+="o",n},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"},removeAllItems:function(){return"Rimuovi tutti gli oggetti"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js deleted file mode 100644 index 451025e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(n){return n.input.length-n.maximum+" 文字を削除してください"},inputTooShort:function(n){return"少なくとも "+(n.minimum-n.input.length)+" 文字を入力してください"},loadingMore:function(){return"読み込み中…"},maximumSelected:function(n){return n.maximum+" 件しか選択できません"},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"},removeAllItems:function(){return"すべてのアイテムを削除"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js deleted file mode 100644 index 60c593b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ka",[],function(){return{errorLoading:function(){return"მონაცემების ჩატვირთვა შეუძლებელია."},inputTooLong:function(n){return"გთხოვთ აკრიფეთ "+(n.input.length-n.maximum)+" სიმბოლოთი ნაკლები"},inputTooShort:function(n){return"გთხოვთ აკრიფეთ "+(n.minimum-n.input.length)+" სიმბოლო ან მეტი"},loadingMore:function(){return"მონაცემების ჩატვირთვა…"},maximumSelected:function(n){return"თქვენ შეგიძლიათ აირჩიოთ არაუმეტეს "+n.maximum+" ელემენტი"},noResults:function(){return"რეზულტატი არ მოიძებნა"},searching:function(){return"ძიება…"},removeAllItems:function(){return"ამოიღე ყველა ელემენტი"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js deleted file mode 100644 index 4dca94f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(n){return"សូមលុបចេញ "+(n.input.length-n.maximum)+" អក្សរ"},inputTooShort:function(n){return"សូមបញ្ចូល"+(n.minimum-n.input.length)+" អក្សរ រឺ ច្រើនជាងនេះ"},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(n){return"អ្នកអាចជ្រើសរើសបានតែ "+n.maximum+" ជម្រើសប៉ុណ្ណោះ"},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."},removeAllItems:function(){return"លុបធាតុទាំងអស់"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js deleted file mode 100644 index f2880fb..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(n){return"너무 깁니다. "+(n.input.length-n.maximum)+" 글자 지워주세요."},inputTooShort:function(n){return"너무 짧습니다. "+(n.minimum-n.input.length)+" 글자 더 입력해주세요."},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(n){return"최대 "+n.maximum+"개까지만 선택 가능합니다."},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"},removeAllItems:function(){return"모든 항목 삭제"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js deleted file mode 100644 index f6a4215..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/lt",[],function(){function n(n,e,i,t){return n%10==1&&(n%100<11||n%100>19)?e:n%10>=2&&n%10<=9&&(n%100<11||n%100>19)?i:t}return{inputTooLong:function(e){var i=e.input.length-e.maximum,t="Pašalinkite "+i+" simbol";return t+=n(i,"į","ius","ių")},inputTooShort:function(e){var i=e.minimum-e.input.length,t="Įrašykite dar "+i+" simbol";return t+=n(i,"į","ius","ių")},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(e){var i="Jūs galite pasirinkti tik "+e.maximum+" element";return i+=n(e.maximum,"ą","us","ų")},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"},removeAllItems:function(){return"Pašalinti visus elementus"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js deleted file mode 100644 index 806dc5c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/lv",[],function(){function e(e,n,u,i){return 11===e?n:e%10==1?u:i}return{inputTooLong:function(n){var u=n.input.length-n.maximum,i="Lūdzu ievadiet par "+u;return(i+=" simbol"+e(u,"iem","u","iem"))+" mazāk"},inputTooShort:function(n){var u=n.minimum-n.input.length,i="Lūdzu ievadiet vēl "+u;return i+=" simbol"+e(u,"us","u","us")},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(n){var u="Jūs varat izvēlēties ne vairāk kā "+n.maximum;return u+=" element"+e(n.maximum,"us","u","us")},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"},removeAllItems:function(){return"Noņemt visus vienumus"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js deleted file mode 100644 index cb7b84a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/mk",[],function(){return{inputTooLong:function(n){var e=(n.input.length,n.maximum,"Ве молиме внесете "+n.maximum+" помалку карактер");return 1!==n.maximum&&(e+="и"),e},inputTooShort:function(n){var e=(n.minimum,n.input.length,"Ве молиме внесете уште "+n.maximum+" карактер");return 1!==n.maximum&&(e+="и"),e},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(n){var e="Можете да изберете само "+n.maximum+" ставк";return 1===n.maximum?e+="а":e+="и",e},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"},removeAllItems:function(){return"Отстрани ги сите предмети"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js deleted file mode 100644 index 6bd7eaa..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(n){return"Sila hapuskan "+(n.input.length-n.maximum)+" aksara"},inputTooShort:function(n){return"Sila masukkan "+(n.minimum-n.input.length)+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(n){return"Anda hanya boleh memilih "+n.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Keluarkan semua item"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js deleted file mode 100644 index 25d89c6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){return"Vennligst fjern "+(e.input.length-e.maximum)+" tegn"},inputTooShort:function(e){return"Vennligst skriv inn "+(e.minimum-e.input.length)+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js deleted file mode 100644 index 1c39f67..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ne",[],function(){return{errorLoading:function(){return"नतिजाहरु देखाउन सकिएन।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="कृपया "+e+" अक्षर मेटाउनुहोस्।";return 1!=e&&(u+="कृपया "+e+" अक्षरहरु मेटाउनुहोस्।"),u},inputTooShort:function(n){return"कृपया बाँकी रहेका "+(n.minimum-n.input.length)+" वा अरु धेरै अक्षरहरु भर्नुहोस्।"},loadingMore:function(){return"अरु नतिजाहरु भरिँदैछन् …"},maximumSelected:function(n){var e="तँपाई "+n.maximum+" वस्तु मात्र छान्न पाउँनुहुन्छ।";return 1!=n.maximum&&(e="तँपाई "+n.maximum+" वस्तुहरु मात्र छान्न पाउँनुहुन्छ।"),e},noResults:function(){return"कुनै पनि नतिजा भेटिएन।"},searching:function(){return"खोजि हुँदैछ…"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js deleted file mode 100644 index 2b74058..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){return"Gelieve "+(e.input.length-e.maximum)+" karakters te verwijderen"},inputTooShort:function(e){return"Gelieve "+(e.minimum-e.input.length)+" of meer karakters in te voeren"},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var n=1==e.maximum?"kan":"kunnen",r="Er "+n+" maar "+e.maximum+" item";return 1!=e.maximum&&(r+="s"),r+=" worden geselecteerd"},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"},removeAllItems:function(){return"Verwijder alle items"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js deleted file mode 100644 index 4ca5748..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/pl",[],function(){var n=["znak","znaki","znaków"],e=["element","elementy","elementów"],r=function(n,e){return 1===n?e[0]:n>1&&n<=4?e[1]:n>=5?e[2]:void 0};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Usuń "+t+" "+r(t,n)},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Podaj przynajmniej "+t+" "+r(t,n)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(n){return"Możesz zaznaczyć tylko "+n.maximum+" "+r(n.maximum,e)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"},removeAllItems:function(){return"Usuń wszystkie przedmioty"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js deleted file mode 100644 index 9b008e4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="د مهربانۍ لمخي "+e+" توری ړنګ کړئ";return 1!=e&&(r=r.replace("توری","توري")),r},inputTooShort:function(n){return"لږ تر لږه "+(n.minimum-n.input.length)+" يا ډېر توري وليکئ"},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(n){var e="تاسو يوازي "+n.maximum+" قلم په نښه کولای سی";return 1!=n.maximum&&(e=e.replace("قلم","قلمونه")),e},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."},removeAllItems:function(){return"ټول توکي لرې کړئ"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js deleted file mode 100644 index c991e25..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Apague "+n+" caracter";return 1!=n&&(r+="es"),r},inputTooShort:function(e){return"Digite "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var n="Você só pode selecionar "+e.maximum+" ite";return 1==e.maximum?n+="m":n+="ns",n},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js deleted file mode 100644 index b5da1a6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var r=e.input.length-e.maximum,n="Por favor apague "+r+" ";return n+=1!=r?"caracteres":"caractere"},inputTooShort:function(e){return"Introduza "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var r="Apenas pode seleccionar "+e.maximum+" ";return r+=1!=e.maximum?"itens":"item"},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js deleted file mode 100644 index 1ba7b40..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return 1!==t&&(n+="e"),n},inputTooShort:function(e){return"Vă rugăm să introduceți "+(e.minimum-e.input.length)+" sau mai multe caractere"},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",1!==e.maximum&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"},removeAllItems:function(){return"Eliminați toate elementele"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js deleted file mode 100644 index 63a7d66..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ru",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Пожалуйста, введите на "+r+" символ";return u+=n(r,"","a","ов"),u+=" меньше"},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Пожалуйста, введите ещё хотя бы "+r+" символ";return u+=n(r,"","a","ов")},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(e){var r="Вы можете выбрать не более "+e.maximum+" элемент";return r+=n(e.maximum,"","a","ов")},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"},removeAllItems:function(){return"Удалить все элементы"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js deleted file mode 100644 index 5049528..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadajte o jeden znak menej":t>=2&&t<=4?"Prosím, zadajte o "+e[t](!0)+" znaky menej":"Prosím, zadajte o "+t+" znakov menej"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadajte ešte jeden znak":t<=4?"Prosím, zadajte ešte ďalšie "+e[t](!0)+" znaky":"Prosím, zadajte ešte ďalších "+t+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(n){return 1==n.maximum?"Môžete zvoliť len jednu položku":n.maximum>=2&&n.maximum<=4?"Môžete zvoliť najviac "+e[n.maximum](!1)+" položky":"Môžete zvoliť najviac "+n.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"},removeAllItems:function(){return"Odstráňte všetky položky"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js deleted file mode 100644 index 4d0b7d3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Prosim zbrišite "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Prosim vpišite še "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var n="Označite lahko največ "+e.maximum+" predmet";return 2==e.maximum?n+="a":1!=e.maximum&&(n+="e"),n},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"},removeAllItems:function(){return"Odstranite vse elemente"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js deleted file mode 100644 index 5916202..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sq",[],function(){return{errorLoading:function(){return"Rezultatet nuk mund të ngarkoheshin."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Të lutem fshi "+n+" karakter";return 1!=n&&(t+="e"),t},inputTooShort:function(e){return"Të lutem shkruaj "+(e.minimum-e.input.length)+" ose më shumë karaktere"},loadingMore:function(){return"Duke ngarkuar më shumë rezultate…"},maximumSelected:function(e){var n="Mund të zgjedhësh vetëm "+e.maximum+" element";return 1!=e.maximum&&(n+="e"),n},noResults:function(){return"Nuk u gjet asnjë rezultat"},searching:function(){return"Duke kërkuar…"},removeAllItems:function(){return"Hiq të gjitha sendet"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js deleted file mode 100644 index ce13ce8..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr-Cyrl",[],function(){function n(n,e,r,u){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:u}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Обришите "+r+" симбол";return u+=n(r,"","а","а")},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Укуцајте бар још "+r+" симбол";return u+=n(r,"","а","а")},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(e){var r="Можете изабрати само "+e.maximum+" ставк";return r+=n(e.maximum,"у","е","и")},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js deleted file mode 100644 index dd407a0..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr",[],function(){function n(n,e,r,t){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(e){var r=e.input.length-e.maximum,t="Obrišite "+r+" simbol";return t+=n(r,"","a","a")},inputTooShort:function(e){var r=e.minimum-e.input.length,t="Ukucajte bar još "+r+" simbol";return t+=n(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(e){var r="Možete izabrati samo "+e.maximum+" stavk";return r+=n(e.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js deleted file mode 100644 index 1bc8724..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(n){return"Vänligen sudda ut "+(n.input.length-n.maximum)+" tecken"},inputTooShort:function(n){return"Vänligen skriv in "+(n.minimum-n.input.length)+" eller fler tecken"},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(n){return"Du kan max välja "+n.maximum+" element"},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"},removeAllItems:function(){return"Ta bort alla objekt"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js deleted file mode 100644 index 63eab71..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(n){return"โปรดลบออก "+(n.input.length-n.maximum)+" ตัวอักษร"},inputTooShort:function(n){return"โปรดพิมพ์เพิ่มอีก "+(n.minimum-n.input.length)+" ตัวอักษร"},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(n){return"คุณสามารถเลือกได้ไม่เกิน "+n.maximum+" รายการ"},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"},removeAllItems:function(){return"ลบรายการทั้งหมด"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js deleted file mode 100644 index 30255ff..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){return e.input.length-e.maximum+" harp bozuň."},inputTooShort:function(e){return"Ýene-de iň az "+(e.minimum-e.input.length)+" harp ýazyň."},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){return"Diňe "+e.maximum+" sanysyny saýlaň."},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js deleted file mode 100644 index fc4c0bf..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(n){return n.input.length-n.maximum+" karakter daha girmelisiniz"},inputTooShort:function(n){return"En az "+(n.minimum-n.input.length)+" karakter daha girmelisiniz"},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(n){return"Sadece "+n.maximum+" seçim yapabilirsiniz"},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"},removeAllItems:function(){return"Tüm öğeleri kaldır"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js deleted file mode 100644 index 63697e3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/uk",[],function(){function n(n,e,u,r){return n%100>10&&n%100<15?r:n%10==1?e:n%10>1&&n%10<5?u:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(e){return"Будь ласка, видаліть "+(e.input.length-e.maximum)+" "+n(e.maximum,"літеру","літери","літер")},inputTooShort:function(n){return"Будь ласка, введіть "+(n.minimum-n.input.length)+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(e){return"Ви можете вибрати лише "+e.maximum+" "+n(e.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"},removeAllItems:function(){return"Видалити всі елементи"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js deleted file mode 100644 index 24f3bc2..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/vi",[],function(){return{inputTooLong:function(n){return"Vui lòng xóa bớt "+(n.input.length-n.maximum)+" ký tự"},inputTooShort:function(n){return"Vui lòng nhập thêm từ "+(n.minimum-n.input.length)+" ký tự trở lên"},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(n){return"Chỉ có thể chọn được "+n.maximum+" lựa chọn"},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"},removeAllItems:function(){return"Xóa tất cả các mục"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js deleted file mode 100644 index 2c5649d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(n){return"请删除"+(n.input.length-n.maximum)+"个字符"},inputTooShort:function(n){return"请再输入至少"+(n.minimum-n.input.length)+"个字符"},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(n){return"最多只能选择"+n.maximum+"个项目"},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"},removeAllItems:function(){return"删除所有项目"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js deleted file mode 100644 index 570a566..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(n){return"請刪掉"+(n.input.length-n.maximum)+"個字元"},inputTooShort:function(n){return"請再輸入"+(n.minimum-n.input.length)+"個字元"},loadingMore:function(){return"載入中…"},maximumSelected:function(n){return"你只能選擇最多"+n.maximum+"項"},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"},removeAllItems:function(){return"刪除所有項目"}}}),n.define,n.require}(); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js deleted file mode 100644 index 358572a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js +++ /dev/null @@ -1,6820 +0,0 @@ -/*! - * Select2 4.0.13 - * https://select2.github.io - * - * Released under the MIT license - * https://github.com/select2/select2/blob/master/LICENSE.md - */ -;(function (factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else if (typeof module === 'object' && module.exports) { - // Node/CommonJS - module.exports = function (root, jQuery) { - if (jQuery === undefined) { - // require('jQuery') returns a factory that requires window to - // build a jQuery instance, we normalize how we use modules - // that require this pattern but the window provided is a noop - // if it's defined (how jquery works) - if (typeof window !== 'undefined') { - jQuery = require('jquery'); - } - else { - jQuery = require('jquery')(root); - } - } - factory(jQuery); - return jQuery; - }; - } else { - // Browser globals - factory(jQuery); - } -} (function (jQuery) { - // This is needed so we can catch the AMD loader configuration and use it - // The inner file should be wrapped (by `banner.start.js`) in a function that - // returns the AMD loader references. - var S2 =(function () { - // Restore the Select2 AMD loader so it can be used - // Needed mostly in the language files, where the loader is not inserted - if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { - var S2 = jQuery.fn.select2.amd; - } -var S2;(function () { if (!S2 || !S2.requirejs) { -if (!S2) { S2 = {}; } else { require = S2; } -/** - * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. - * Released under MIT license, http://github.com/requirejs/almond/LICENSE - */ -//Going sloppy to avoid 'use strict' string cost, but strict practices should -//be followed. -/*global setTimeout: false */ - -var requirejs, require, define; -(function (undef) { - var main, req, makeMap, handlers, - defined = {}, - waiting = {}, - config = {}, - defining = {}, - hasOwn = Object.prototype.hasOwnProperty, - aps = [].slice, - jsSuffixRegExp = /\.js$/; - - function hasProp(obj, prop) { - return hasOwn.call(obj, prop); - } - - /** - * Given a relative module name, like ./something, normalize it to - * a real name that can be mapped to a path. - * @param {String} name the relative name - * @param {String} baseName a real name that the name arg is relative - * to. - * @returns {String} normalized name - */ - function normalize(name, baseName) { - var nameParts, nameSegment, mapValue, foundMap, lastIndex, - foundI, foundStarMap, starI, i, j, part, normalizedBaseParts, - baseParts = baseName && baseName.split("/"), - map = config.map, - starMap = (map && map['*']) || {}; - - //Adjust any relative paths. - if (name) { - name = name.split('/'); - lastIndex = name.length - 1; - - // If wanting node ID compatibility, strip .js from end - // of IDs. Have to do this here, and not in nameToUrl - // because node allows either .js or non .js to map - // to same file. - if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { - name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); - } - - // Starts with a '.' so need the baseName - if (name[0].charAt(0) === '.' && baseParts) { - //Convert baseName to array, and lop off the last part, - //so that . matches that 'directory' and not name of the baseName's - //module. For instance, baseName of 'one/two/three', maps to - //'one/two/three.js', but we want the directory, 'one/two' for - //this normalization. - normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); - name = normalizedBaseParts.concat(name); - } - - //start trimDots - for (i = 0; i < name.length; i++) { - part = name[i]; - if (part === '.') { - name.splice(i, 1); - i -= 1; - } else if (part === '..') { - // If at the start, or previous value is still .., - // keep them so that when converted to a path it may - // still work when converted to a path, even though - // as an ID it is less than ideal. In larger point - // releases, may be better to just kick out an error. - if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') { - continue; - } else if (i > 0) { - name.splice(i - 1, 2); - i -= 2; - } - } - } - //end trimDots - - name = name.join('/'); - } - - //Apply map config if available. - if ((baseParts || starMap) && map) { - nameParts = name.split('/'); - - for (i = nameParts.length; i > 0; i -= 1) { - nameSegment = nameParts.slice(0, i).join("/"); - - if (baseParts) { - //Find the longest baseName segment match in the config. - //So, do joins on the biggest to smallest lengths of baseParts. - for (j = baseParts.length; j > 0; j -= 1) { - mapValue = map[baseParts.slice(0, j).join('/')]; - - //baseName segment has config, find if it has one for - //this name. - if (mapValue) { - mapValue = mapValue[nameSegment]; - if (mapValue) { - //Match, update name to the new value. - foundMap = mapValue; - foundI = i; - break; - } - } - } - } - - if (foundMap) { - break; - } - - //Check for a star map match, but just hold on to it, - //if there is a shorter segment match later in a matching - //config, then favor over this star map. - if (!foundStarMap && starMap && starMap[nameSegment]) { - foundStarMap = starMap[nameSegment]; - starI = i; - } - } - - if (!foundMap && foundStarMap) { - foundMap = foundStarMap; - foundI = starI; - } - - if (foundMap) { - nameParts.splice(0, foundI, foundMap); - name = nameParts.join('/'); - } - } - - return name; - } - - function makeRequire(relName, forceSync) { - return function () { - //A version of a require function that passes a moduleName - //value for items that may need to - //look up paths relative to the moduleName - var args = aps.call(arguments, 0); - - //If first arg is not require('string'), and there is only - //one arg, it is the array form without a callback. Insert - //a null so that the following concat is correct. - if (typeof args[0] !== 'string' && args.length === 1) { - args.push(null); - } - return req.apply(undef, args.concat([relName, forceSync])); - }; - } - - function makeNormalize(relName) { - return function (name) { - return normalize(name, relName); - }; - } - - function makeLoad(depName) { - return function (value) { - defined[depName] = value; - }; - } - - function callDep(name) { - if (hasProp(waiting, name)) { - var args = waiting[name]; - delete waiting[name]; - defining[name] = true; - main.apply(undef, args); - } - - if (!hasProp(defined, name) && !hasProp(defining, name)) { - throw new Error('No ' + name); - } - return defined[name]; - } - - //Turns a plugin!resource to [plugin, resource] - //with the plugin being undefined if the name - //did not have a plugin prefix. - function splitPrefix(name) { - var prefix, - index = name ? name.indexOf('!') : -1; - if (index > -1) { - prefix = name.substring(0, index); - name = name.substring(index + 1, name.length); - } - return [prefix, name]; - } - - //Creates a parts array for a relName where first part is plugin ID, - //second part is resource ID. Assumes relName has already been normalized. - function makeRelParts(relName) { - return relName ? splitPrefix(relName) : []; - } - - /** - * Makes a name map, normalizing the name, and using a plugin - * for normalization if necessary. Grabs a ref to plugin - * too, as an optimization. - */ - makeMap = function (name, relParts) { - var plugin, - parts = splitPrefix(name), - prefix = parts[0], - relResourceName = relParts[1]; - - name = parts[1]; - - if (prefix) { - prefix = normalize(prefix, relResourceName); - plugin = callDep(prefix); - } - - //Normalize according - if (prefix) { - if (plugin && plugin.normalize) { - name = plugin.normalize(name, makeNormalize(relResourceName)); - } else { - name = normalize(name, relResourceName); - } - } else { - name = normalize(name, relResourceName); - parts = splitPrefix(name); - prefix = parts[0]; - name = parts[1]; - if (prefix) { - plugin = callDep(prefix); - } - } - - //Using ridiculous property names for space reasons - return { - f: prefix ? prefix + '!' + name : name, //fullName - n: name, - pr: prefix, - p: plugin - }; - }; - - function makeConfig(name) { - return function () { - return (config && config.config && config.config[name]) || {}; - }; - } - - handlers = { - require: function (name) { - return makeRequire(name); - }, - exports: function (name) { - var e = defined[name]; - if (typeof e !== 'undefined') { - return e; - } else { - return (defined[name] = {}); - } - }, - module: function (name) { - return { - id: name, - uri: '', - exports: defined[name], - config: makeConfig(name) - }; - } - }; - - main = function (name, deps, callback, relName) { - var cjsModule, depName, ret, map, i, relParts, - args = [], - callbackType = typeof callback, - usingExports; - - //Use name if no relName - relName = relName || name; - relParts = makeRelParts(relName); - - //Call the callback to define the module, if necessary. - if (callbackType === 'undefined' || callbackType === 'function') { - //Pull out the defined dependencies and pass the ordered - //values to the callback. - //Default to [require, exports, module] if no deps - deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; - for (i = 0; i < deps.length; i += 1) { - map = makeMap(deps[i], relParts); - depName = map.f; - - //Fast path CommonJS standard dependencies. - if (depName === "require") { - args[i] = handlers.require(name); - } else if (depName === "exports") { - //CommonJS module spec 1.1 - args[i] = handlers.exports(name); - usingExports = true; - } else if (depName === "module") { - //CommonJS module spec 1.1 - cjsModule = args[i] = handlers.module(name); - } else if (hasProp(defined, depName) || - hasProp(waiting, depName) || - hasProp(defining, depName)) { - args[i] = callDep(depName); - } else if (map.p) { - map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); - args[i] = defined[depName]; - } else { - throw new Error(name + ' missing ' + depName); - } - } - - ret = callback ? callback.apply(defined[name], args) : undefined; - - if (name) { - //If setting exports via "module" is in play, - //favor that over return value and exports. After that, - //favor a non-undefined return value over exports use. - if (cjsModule && cjsModule.exports !== undef && - cjsModule.exports !== defined[name]) { - defined[name] = cjsModule.exports; - } else if (ret !== undef || !usingExports) { - //Use the return value from the function. - defined[name] = ret; - } - } - } else if (name) { - //May just be an object definition for the module. Only - //worry about defining if have a module name. - defined[name] = callback; - } - }; - - requirejs = require = req = function (deps, callback, relName, forceSync, alt) { - if (typeof deps === "string") { - if (handlers[deps]) { - //callback in this case is really relName - return handlers[deps](callback); - } - //Just return the module wanted. In this scenario, the - //deps arg is the module name, and second arg (if passed) - //is just the relName. - //Normalize module name, if it contains . or .. - return callDep(makeMap(deps, makeRelParts(callback)).f); - } else if (!deps.splice) { - //deps is a config object, not an array. - config = deps; - if (config.deps) { - req(config.deps, config.callback); - } - if (!callback) { - return; - } - - if (callback.splice) { - //callback is an array, which means it is a dependency list. - //Adjust args if there are dependencies - deps = callback; - callback = relName; - relName = null; - } else { - deps = undef; - } - } - - //Support require(['a']) - callback = callback || function () {}; - - //If relName is a function, it is an errback handler, - //so remove it. - if (typeof relName === 'function') { - relName = forceSync; - forceSync = alt; - } - - //Simulate async callback; - if (forceSync) { - main(undef, deps, callback, relName); - } else { - //Using a non-zero value because of concern for what old browsers - //do, and latest browsers "upgrade" to 4 if lower value is used: - //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: - //If want a value immediately, use require('id') instead -- something - //that works in almond on the global level, but not guaranteed and - //unlikely to work in other AMD implementations. - setTimeout(function () { - main(undef, deps, callback, relName); - }, 4); - } - - return req; - }; - - /** - * Just drops the config on the floor, but returns req in case - * the config return value is used. - */ - req.config = function (cfg) { - return req(cfg); - }; - - /** - * Expose module registry for debugging and tooling - */ - requirejs._defined = defined; - - define = function (name, deps, callback) { - if (typeof name !== 'string') { - throw new Error('See almond README: incorrect module build, no module name'); - } - - //This module may not have dependencies - if (!deps.splice) { - //deps is not an array, so probably means - //an object literal or factory function for - //the value. Adjust args. - callback = deps; - deps = []; - } - - if (!hasProp(defined, name) && !hasProp(waiting, name)) { - waiting[name] = [name, deps, callback]; - } - }; - - define.amd = { - jQuery: true - }; -}()); - -S2.requirejs = requirejs;S2.require = require;S2.define = define; -} -}()); -S2.define("almond", function(){}); - -/* global jQuery:false, $:false */ -S2.define('jquery',[],function () { - var _$ = jQuery || $; - - if (_$ == null && console && console.error) { - console.error( - 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + - 'found. Make sure that you are including jQuery before Select2 on your ' + - 'web page.' - ); - } - - return _$; -}); - -S2.define('select2/utils',[ - 'jquery' -], function ($) { - var Utils = {}; - - Utils.Extend = function (ChildClass, SuperClass) { - var __hasProp = {}.hasOwnProperty; - - function BaseConstructor () { - this.constructor = ChildClass; - } - - for (var key in SuperClass) { - if (__hasProp.call(SuperClass, key)) { - ChildClass[key] = SuperClass[key]; - } - } - - BaseConstructor.prototype = SuperClass.prototype; - ChildClass.prototype = new BaseConstructor(); - ChildClass.__super__ = SuperClass.prototype; - - return ChildClass; - }; - - function getMethods (theClass) { - var proto = theClass.prototype; - - var methods = []; - - for (var methodName in proto) { - var m = proto[methodName]; - - if (typeof m !== 'function') { - continue; - } - - if (methodName === 'constructor') { - continue; - } - - methods.push(methodName); - } - - return methods; - } - - Utils.Decorate = function (SuperClass, DecoratorClass) { - var decoratedMethods = getMethods(DecoratorClass); - var superMethods = getMethods(SuperClass); - - function DecoratedClass () { - var unshift = Array.prototype.unshift; - - var argCount = DecoratorClass.prototype.constructor.length; - - var calledConstructor = SuperClass.prototype.constructor; - - if (argCount > 0) { - unshift.call(arguments, SuperClass.prototype.constructor); - - calledConstructor = DecoratorClass.prototype.constructor; - } - - calledConstructor.apply(this, arguments); - } - - DecoratorClass.displayName = SuperClass.displayName; - - function ctr () { - this.constructor = DecoratedClass; - } - - DecoratedClass.prototype = new ctr(); - - for (var m = 0; m < superMethods.length; m++) { - var superMethod = superMethods[m]; - - DecoratedClass.prototype[superMethod] = - SuperClass.prototype[superMethod]; - } - - var calledMethod = function (methodName) { - // Stub out the original method if it's not decorating an actual method - var originalMethod = function () {}; - - if (methodName in DecoratedClass.prototype) { - originalMethod = DecoratedClass.prototype[methodName]; - } - - var decoratedMethod = DecoratorClass.prototype[methodName]; - - return function () { - var unshift = Array.prototype.unshift; - - unshift.call(arguments, originalMethod); - - return decoratedMethod.apply(this, arguments); - }; - }; - - for (var d = 0; d < decoratedMethods.length; d++) { - var decoratedMethod = decoratedMethods[d]; - - DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); - } - - return DecoratedClass; - }; - - var Observable = function () { - this.listeners = {}; - }; - - Observable.prototype.on = function (event, callback) { - this.listeners = this.listeners || {}; - - if (event in this.listeners) { - this.listeners[event].push(callback); - } else { - this.listeners[event] = [callback]; - } - }; - - Observable.prototype.trigger = function (event) { - var slice = Array.prototype.slice; - var params = slice.call(arguments, 1); - - this.listeners = this.listeners || {}; - - // Params should always come in as an array - if (params == null) { - params = []; - } - - // If there are no arguments to the event, use a temporary object - if (params.length === 0) { - params.push({}); - } - - // Set the `_type` of the first object to the event - params[0]._type = event; - - if (event in this.listeners) { - this.invoke(this.listeners[event], slice.call(arguments, 1)); - } - - if ('*' in this.listeners) { - this.invoke(this.listeners['*'], arguments); - } - }; - - Observable.prototype.invoke = function (listeners, params) { - for (var i = 0, len = listeners.length; i < len; i++) { - listeners[i].apply(this, params); - } - }; - - Utils.Observable = Observable; - - Utils.generateChars = function (length) { - var chars = ''; - - for (var i = 0; i < length; i++) { - var randomChar = Math.floor(Math.random() * 36); - chars += randomChar.toString(36); - } - - return chars; - }; - - Utils.bind = function (func, context) { - return function () { - func.apply(context, arguments); - }; - }; - - Utils._convertData = function (data) { - for (var originalKey in data) { - var keys = originalKey.split('-'); - - var dataLevel = data; - - if (keys.length === 1) { - continue; - } - - for (var k = 0; k < keys.length; k++) { - var key = keys[k]; - - // Lowercase the first letter - // By default, dash-separated becomes camelCase - key = key.substring(0, 1).toLowerCase() + key.substring(1); - - if (!(key in dataLevel)) { - dataLevel[key] = {}; - } - - if (k == keys.length - 1) { - dataLevel[key] = data[originalKey]; - } - - dataLevel = dataLevel[key]; - } - - delete data[originalKey]; - } - - return data; - }; - - Utils.hasScroll = function (index, el) { - // Adapted from the function created by @ShadowScripter - // and adapted by @BillBarry on the Stack Exchange Code Review website. - // The original code can be found at - // http://codereview.stackexchange.com/q/13338 - // and was designed to be used with the Sizzle selector engine. - - var $el = $(el); - var overflowX = el.style.overflowX; - var overflowY = el.style.overflowY; - - //Check both x and y declarations - if (overflowX === overflowY && - (overflowY === 'hidden' || overflowY === 'visible')) { - return false; - } - - if (overflowX === 'scroll' || overflowY === 'scroll') { - return true; - } - - return ($el.innerHeight() < el.scrollHeight || - $el.innerWidth() < el.scrollWidth); - }; - - Utils.escapeMarkup = function (markup) { - var replaceMap = { - '\\': '\', - '&': '&', - '<': '<', - '>': '>', - '"': '"', - '\'': ''', - '/': '/' - }; - - // Do not try to escape the markup if it's not a string - if (typeof markup !== 'string') { - return markup; - } - - return String(markup).replace(/[&<>"'\/\\]/g, function (match) { - return replaceMap[match]; - }); - }; - - // Append an array of jQuery nodes to a given element. - Utils.appendMany = function ($element, $nodes) { - // jQuery 1.7.x does not support $.fn.append() with an array - // Fall back to a jQuery object collection using $.fn.add() - if ($.fn.jquery.substr(0, 3) === '1.7') { - var $jqNodes = $(); - - $.map($nodes, function (node) { - $jqNodes = $jqNodes.add(node); - }); - - $nodes = $jqNodes; - } - - $element.append($nodes); - }; - - // Cache objects in Utils.__cache instead of $.data (see #4346) - Utils.__cache = {}; - - var id = 0; - Utils.GetUniqueElementId = function (element) { - // Get a unique element Id. If element has no id, - // creates a new unique number, stores it in the id - // attribute and returns the new id. - // If an id already exists, it simply returns it. - - var select2Id = element.getAttribute('data-select2-id'); - if (select2Id == null) { - // If element has id, use it. - if (element.id) { - select2Id = element.id; - element.setAttribute('data-select2-id', select2Id); - } else { - element.setAttribute('data-select2-id', ++id); - select2Id = id.toString(); - } - } - return select2Id; - }; - - Utils.StoreData = function (element, name, value) { - // Stores an item in the cache for a specified element. - // name is the cache key. - var id = Utils.GetUniqueElementId(element); - if (!Utils.__cache[id]) { - Utils.__cache[id] = {}; - } - - Utils.__cache[id][name] = value; - }; - - Utils.GetData = function (element, name) { - // Retrieves a value from the cache by its key (name) - // name is optional. If no name specified, return - // all cache items for the specified element. - // and for a specified element. - var id = Utils.GetUniqueElementId(element); - if (name) { - if (Utils.__cache[id]) { - if (Utils.__cache[id][name] != null) { - return Utils.__cache[id][name]; - } - return $(element).data(name); // Fallback to HTML5 data attribs. - } - return $(element).data(name); // Fallback to HTML5 data attribs. - } else { - return Utils.__cache[id]; - } - }; - - Utils.RemoveData = function (element) { - // Removes all cached items for a specified element. - var id = Utils.GetUniqueElementId(element); - if (Utils.__cache[id] != null) { - delete Utils.__cache[id]; - } - - element.removeAttribute('data-select2-id'); - }; - - return Utils; -}); - -S2.define('select2/results',[ - 'jquery', - './utils' -], function ($, Utils) { - function Results ($element, options, dataAdapter) { - this.$element = $element; - this.data = dataAdapter; - this.options = options; - - Results.__super__.constructor.call(this); - } - - Utils.Extend(Results, Utils.Observable); - - Results.prototype.render = function () { - var $results = $( - '<ul class="select2-results__options" role="listbox"></ul>' - ); - - if (this.options.get('multiple')) { - $results.attr('aria-multiselectable', 'true'); - } - - this.$results = $results; - - return $results; - }; - - Results.prototype.clear = function () { - this.$results.empty(); - }; - - Results.prototype.displayMessage = function (params) { - var escapeMarkup = this.options.get('escapeMarkup'); - - this.clear(); - this.hideLoading(); - - var $message = $( - '<li role="alert" aria-live="assertive"' + - ' class="select2-results__option"></li>' - ); - - var message = this.options.get('translations').get(params.message); - - $message.append( - escapeMarkup( - message(params.args) - ) - ); - - $message[0].className += ' select2-results__message'; - - this.$results.append($message); - }; - - Results.prototype.hideMessages = function () { - this.$results.find('.select2-results__message').remove(); - }; - - Results.prototype.append = function (data) { - this.hideLoading(); - - var $options = []; - - if (data.results == null || data.results.length === 0) { - if (this.$results.children().length === 0) { - this.trigger('results:message', { - message: 'noResults' - }); - } - - return; - } - - data.results = this.sort(data.results); - - for (var d = 0; d < data.results.length; d++) { - var item = data.results[d]; - - var $option = this.option(item); - - $options.push($option); - } - - this.$results.append($options); - }; - - Results.prototype.position = function ($results, $dropdown) { - var $resultsContainer = $dropdown.find('.select2-results'); - $resultsContainer.append($results); - }; - - Results.prototype.sort = function (data) { - var sorter = this.options.get('sorter'); - - return sorter(data); - }; - - Results.prototype.highlightFirstItem = function () { - var $options = this.$results - .find('.select2-results__option[aria-selected]'); - - var $selected = $options.filter('[aria-selected=true]'); - - // Check if there are any selected options - if ($selected.length > 0) { - // If there are selected options, highlight the first - $selected.first().trigger('mouseenter'); - } else { - // If there are no selected options, highlight the first option - // in the dropdown - $options.first().trigger('mouseenter'); - } - - this.ensureHighlightVisible(); - }; - - Results.prototype.setClasses = function () { - var self = this; - - this.data.current(function (selected) { - var selectedIds = $.map(selected, function (s) { - return s.id.toString(); - }); - - var $options = self.$results - .find('.select2-results__option[aria-selected]'); - - $options.each(function () { - var $option = $(this); - - var item = Utils.GetData(this, 'data'); - - // id needs to be converted to a string when comparing - var id = '' + item.id; - - if ((item.element != null && item.element.selected) || - (item.element == null && $.inArray(id, selectedIds) > -1)) { - $option.attr('aria-selected', 'true'); - } else { - $option.attr('aria-selected', 'false'); - } - }); - - }); - }; - - Results.prototype.showLoading = function (params) { - this.hideLoading(); - - var loadingMore = this.options.get('translations').get('searching'); - - var loading = { - disabled: true, - loading: true, - text: loadingMore(params) - }; - var $loading = this.option(loading); - $loading.className += ' loading-results'; - - this.$results.prepend($loading); - }; - - Results.prototype.hideLoading = function () { - this.$results.find('.loading-results').remove(); - }; - - Results.prototype.option = function (data) { - var option = document.createElement('li'); - option.className = 'select2-results__option'; - - var attrs = { - 'role': 'option', - 'aria-selected': 'false' - }; - - var matches = window.Element.prototype.matches || - window.Element.prototype.msMatchesSelector || - window.Element.prototype.webkitMatchesSelector; - - if ((data.element != null && matches.call(data.element, ':disabled')) || - (data.element == null && data.disabled)) { - delete attrs['aria-selected']; - attrs['aria-disabled'] = 'true'; - } - - if (data.id == null) { - delete attrs['aria-selected']; - } - - if (data._resultId != null) { - option.id = data._resultId; - } - - if (data.title) { - option.title = data.title; - } - - if (data.children) { - attrs.role = 'group'; - attrs['aria-label'] = data.text; - delete attrs['aria-selected']; - } - - for (var attr in attrs) { - var val = attrs[attr]; - - option.setAttribute(attr, val); - } - - if (data.children) { - var $option = $(option); - - var label = document.createElement('strong'); - label.className = 'select2-results__group'; - - var $label = $(label); - this.template(data, label); - - var $children = []; - - for (var c = 0; c < data.children.length; c++) { - var child = data.children[c]; - - var $child = this.option(child); - - $children.push($child); - } - - var $childrenContainer = $('<ul></ul>', { - 'class': 'select2-results__options select2-results__options--nested' - }); - - $childrenContainer.append($children); - - $option.append(label); - $option.append($childrenContainer); - } else { - this.template(data, option); - } - - Utils.StoreData(option, 'data', data); - - return option; - }; - - Results.prototype.bind = function (container, $container) { - var self = this; - - var id = container.id + '-results'; - - this.$results.attr('id', id); - - container.on('results:all', function (params) { - self.clear(); - self.append(params.data); - - if (container.isOpen()) { - self.setClasses(); - self.highlightFirstItem(); - } - }); - - container.on('results:append', function (params) { - self.append(params.data); - - if (container.isOpen()) { - self.setClasses(); - } - }); - - container.on('query', function (params) { - self.hideMessages(); - self.showLoading(params); - }); - - container.on('select', function () { - if (!container.isOpen()) { - return; - } - - self.setClasses(); - - if (self.options.get('scrollAfterSelect')) { - self.highlightFirstItem(); - } - }); - - container.on('unselect', function () { - if (!container.isOpen()) { - return; - } - - self.setClasses(); - - if (self.options.get('scrollAfterSelect')) { - self.highlightFirstItem(); - } - }); - - container.on('open', function () { - // When the dropdown is open, aria-expended="true" - self.$results.attr('aria-expanded', 'true'); - self.$results.attr('aria-hidden', 'false'); - - self.setClasses(); - self.ensureHighlightVisible(); - }); - - container.on('close', function () { - // When the dropdown is closed, aria-expended="false" - self.$results.attr('aria-expanded', 'false'); - self.$results.attr('aria-hidden', 'true'); - self.$results.removeAttr('aria-activedescendant'); - }); - - container.on('results:toggle', function () { - var $highlighted = self.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - $highlighted.trigger('mouseup'); - }); - - container.on('results:select', function () { - var $highlighted = self.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - var data = Utils.GetData($highlighted[0], 'data'); - - if ($highlighted.attr('aria-selected') == 'true') { - self.trigger('close', {}); - } else { - self.trigger('select', { - data: data - }); - } - }); - - container.on('results:previous', function () { - var $highlighted = self.getHighlightedResults(); - - var $options = self.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - // If we are already at the top, don't move further - // If no options, currentIndex will be -1 - if (currentIndex <= 0) { - return; - } - - var nextIndex = currentIndex - 1; - - // If none are highlighted, highlight the first - if ($highlighted.length === 0) { - nextIndex = 0; - } - - var $next = $options.eq(nextIndex); - - $next.trigger('mouseenter'); - - var currentOffset = self.$results.offset().top; - var nextTop = $next.offset().top; - var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); - - if (nextIndex === 0) { - self.$results.scrollTop(0); - } else if (nextTop - currentOffset < 0) { - self.$results.scrollTop(nextOffset); - } - }); - - container.on('results:next', function () { - var $highlighted = self.getHighlightedResults(); - - var $options = self.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - var nextIndex = currentIndex + 1; - - // If we are at the last option, stay there - if (nextIndex >= $options.length) { - return; - } - - var $next = $options.eq(nextIndex); - - $next.trigger('mouseenter'); - - var currentOffset = self.$results.offset().top + - self.$results.outerHeight(false); - var nextBottom = $next.offset().top + $next.outerHeight(false); - var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; - - if (nextIndex === 0) { - self.$results.scrollTop(0); - } else if (nextBottom > currentOffset) { - self.$results.scrollTop(nextOffset); - } - }); - - container.on('results:focus', function (params) { - params.element.addClass('select2-results__option--highlighted'); - }); - - container.on('results:message', function (params) { - self.displayMessage(params); - }); - - if ($.fn.mousewheel) { - this.$results.on('mousewheel', function (e) { - var top = self.$results.scrollTop(); - - var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; - - var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; - var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); - - if (isAtTop) { - self.$results.scrollTop(0); - - e.preventDefault(); - e.stopPropagation(); - } else if (isAtBottom) { - self.$results.scrollTop( - self.$results.get(0).scrollHeight - self.$results.height() - ); - - e.preventDefault(); - e.stopPropagation(); - } - }); - } - - this.$results.on('mouseup', '.select2-results__option[aria-selected]', - function (evt) { - var $this = $(this); - - var data = Utils.GetData(this, 'data'); - - if ($this.attr('aria-selected') === 'true') { - if (self.options.get('multiple')) { - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - } else { - self.trigger('close', {}); - } - - return; - } - - self.trigger('select', { - originalEvent: evt, - data: data - }); - }); - - this.$results.on('mouseenter', '.select2-results__option[aria-selected]', - function (evt) { - var data = Utils.GetData(this, 'data'); - - self.getHighlightedResults() - .removeClass('select2-results__option--highlighted'); - - self.trigger('results:focus', { - data: data, - element: $(this) - }); - }); - }; - - Results.prototype.getHighlightedResults = function () { - var $highlighted = this.$results - .find('.select2-results__option--highlighted'); - - return $highlighted; - }; - - Results.prototype.destroy = function () { - this.$results.remove(); - }; - - Results.prototype.ensureHighlightVisible = function () { - var $highlighted = this.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - var $options = this.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - var currentOffset = this.$results.offset().top; - var nextTop = $highlighted.offset().top; - var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); - - var offsetDelta = nextTop - currentOffset; - nextOffset -= $highlighted.outerHeight(false) * 2; - - if (currentIndex <= 2) { - this.$results.scrollTop(0); - } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { - this.$results.scrollTop(nextOffset); - } - }; - - Results.prototype.template = function (result, container) { - var template = this.options.get('templateResult'); - var escapeMarkup = this.options.get('escapeMarkup'); - - var content = template(result, container); - - if (content == null) { - container.style.display = 'none'; - } else if (typeof content === 'string') { - container.innerHTML = escapeMarkup(content); - } else { - $(container).append(content); - } - }; - - return Results; -}); - -S2.define('select2/keys',[ - -], function () { - var KEYS = { - BACKSPACE: 8, - TAB: 9, - ENTER: 13, - SHIFT: 16, - CTRL: 17, - ALT: 18, - ESC: 27, - SPACE: 32, - PAGE_UP: 33, - PAGE_DOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - DELETE: 46 - }; - - return KEYS; -}); - -S2.define('select2/selection/base',[ - 'jquery', - '../utils', - '../keys' -], function ($, Utils, KEYS) { - function BaseSelection ($element, options) { - this.$element = $element; - this.options = options; - - BaseSelection.__super__.constructor.call(this); - } - - Utils.Extend(BaseSelection, Utils.Observable); - - BaseSelection.prototype.render = function () { - var $selection = $( - '<span class="select2-selection" role="combobox" ' + - ' aria-haspopup="true" aria-expanded="false">' + - '</span>' - ); - - this._tabindex = 0; - - if (Utils.GetData(this.$element[0], 'old-tabindex') != null) { - this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex'); - } else if (this.$element.attr('tabindex') != null) { - this._tabindex = this.$element.attr('tabindex'); - } - - $selection.attr('title', this.$element.attr('title')); - $selection.attr('tabindex', this._tabindex); - $selection.attr('aria-disabled', 'false'); - - this.$selection = $selection; - - return $selection; - }; - - BaseSelection.prototype.bind = function (container, $container) { - var self = this; - - var resultsId = container.id + '-results'; - - this.container = container; - - this.$selection.on('focus', function (evt) { - self.trigger('focus', evt); - }); - - this.$selection.on('blur', function (evt) { - self._handleBlur(evt); - }); - - this.$selection.on('keydown', function (evt) { - self.trigger('keypress', evt); - - if (evt.which === KEYS.SPACE) { - evt.preventDefault(); - } - }); - - container.on('results:focus', function (params) { - self.$selection.attr('aria-activedescendant', params.data._resultId); - }); - - container.on('selection:update', function (params) { - self.update(params.data); - }); - - container.on('open', function () { - // When the dropdown is open, aria-expanded="true" - self.$selection.attr('aria-expanded', 'true'); - self.$selection.attr('aria-owns', resultsId); - - self._attachCloseHandler(container); - }); - - container.on('close', function () { - // When the dropdown is closed, aria-expanded="false" - self.$selection.attr('aria-expanded', 'false'); - self.$selection.removeAttr('aria-activedescendant'); - self.$selection.removeAttr('aria-owns'); - - self.$selection.trigger('focus'); - - self._detachCloseHandler(container); - }); - - container.on('enable', function () { - self.$selection.attr('tabindex', self._tabindex); - self.$selection.attr('aria-disabled', 'false'); - }); - - container.on('disable', function () { - self.$selection.attr('tabindex', '-1'); - self.$selection.attr('aria-disabled', 'true'); - }); - }; - - BaseSelection.prototype._handleBlur = function (evt) { - var self = this; - - // This needs to be delayed as the active element is the body when the tab - // key is pressed, possibly along with others. - window.setTimeout(function () { - // Don't trigger `blur` if the focus is still in the selection - if ( - (document.activeElement == self.$selection[0]) || - ($.contains(self.$selection[0], document.activeElement)) - ) { - return; - } - - self.trigger('blur', evt); - }, 1); - }; - - BaseSelection.prototype._attachCloseHandler = function (container) { - - $(document.body).on('mousedown.select2.' + container.id, function (e) { - var $target = $(e.target); - - var $select = $target.closest('.select2'); - - var $all = $('.select2.select2-container--open'); - - $all.each(function () { - if (this == $select[0]) { - return; - } - - var $element = Utils.GetData(this, 'element'); - - $element.select2('close'); - }); - }); - }; - - BaseSelection.prototype._detachCloseHandler = function (container) { - $(document.body).off('mousedown.select2.' + container.id); - }; - - BaseSelection.prototype.position = function ($selection, $container) { - var $selectionContainer = $container.find('.selection'); - $selectionContainer.append($selection); - }; - - BaseSelection.prototype.destroy = function () { - this._detachCloseHandler(this.container); - }; - - BaseSelection.prototype.update = function (data) { - throw new Error('The `update` method must be defined in child classes.'); - }; - - /** - * Helper method to abstract the "enabled" (not "disabled") state of this - * object. - * - * @return {true} if the instance is not disabled. - * @return {false} if the instance is disabled. - */ - BaseSelection.prototype.isEnabled = function () { - return !this.isDisabled(); - }; - - /** - * Helper method to abstract the "disabled" state of this object. - * - * @return {true} if the disabled option is true. - * @return {false} if the disabled option is false. - */ - BaseSelection.prototype.isDisabled = function () { - return this.options.get('disabled'); - }; - - return BaseSelection; -}); - -S2.define('select2/selection/single',[ - 'jquery', - './base', - '../utils', - '../keys' -], function ($, BaseSelection, Utils, KEYS) { - function SingleSelection () { - SingleSelection.__super__.constructor.apply(this, arguments); - } - - Utils.Extend(SingleSelection, BaseSelection); - - SingleSelection.prototype.render = function () { - var $selection = SingleSelection.__super__.render.call(this); - - $selection.addClass('select2-selection--single'); - - $selection.html( - '<span class="select2-selection__rendered"></span>' + - '<span class="select2-selection__arrow" role="presentation">' + - '<b role="presentation"></b>' + - '</span>' - ); - - return $selection; - }; - - SingleSelection.prototype.bind = function (container, $container) { - var self = this; - - SingleSelection.__super__.bind.apply(this, arguments); - - var id = container.id + '-container'; - - this.$selection.find('.select2-selection__rendered') - .attr('id', id) - .attr('role', 'textbox') - .attr('aria-readonly', 'true'); - this.$selection.attr('aria-labelledby', id); - - this.$selection.on('mousedown', function (evt) { - // Only respond to left clicks - if (evt.which !== 1) { - return; - } - - self.trigger('toggle', { - originalEvent: evt - }); - }); - - this.$selection.on('focus', function (evt) { - // User focuses on the container - }); - - this.$selection.on('blur', function (evt) { - // User exits the container - }); - - container.on('focus', function (evt) { - if (!container.isOpen()) { - self.$selection.trigger('focus'); - } - }); - }; - - SingleSelection.prototype.clear = function () { - var $rendered = this.$selection.find('.select2-selection__rendered'); - $rendered.empty(); - $rendered.removeAttr('title'); // clear tooltip on empty - }; - - SingleSelection.prototype.display = function (data, container) { - var template = this.options.get('templateSelection'); - var escapeMarkup = this.options.get('escapeMarkup'); - - return escapeMarkup(template(data, container)); - }; - - SingleSelection.prototype.selectionContainer = function () { - return $('<span></span>'); - }; - - SingleSelection.prototype.update = function (data) { - if (data.length === 0) { - this.clear(); - return; - } - - var selection = data[0]; - - var $rendered = this.$selection.find('.select2-selection__rendered'); - var formatted = this.display(selection, $rendered); - - $rendered.empty().append(formatted); - - var title = selection.title || selection.text; - - if (title) { - $rendered.attr('title', title); - } else { - $rendered.removeAttr('title'); - } - }; - - return SingleSelection; -}); - -S2.define('select2/selection/multiple',[ - 'jquery', - './base', - '../utils' -], function ($, BaseSelection, Utils) { - function MultipleSelection ($element, options) { - MultipleSelection.__super__.constructor.apply(this, arguments); - } - - Utils.Extend(MultipleSelection, BaseSelection); - - MultipleSelection.prototype.render = function () { - var $selection = MultipleSelection.__super__.render.call(this); - - $selection.addClass('select2-selection--multiple'); - - $selection.html( - '<ul class="select2-selection__rendered"></ul>' - ); - - return $selection; - }; - - MultipleSelection.prototype.bind = function (container, $container) { - var self = this; - - MultipleSelection.__super__.bind.apply(this, arguments); - - this.$selection.on('click', function (evt) { - self.trigger('toggle', { - originalEvent: evt - }); - }); - - this.$selection.on( - 'click', - '.select2-selection__choice__remove', - function (evt) { - // Ignore the event if it is disabled - if (self.isDisabled()) { - return; - } - - var $remove = $(this); - var $selection = $remove.parent(); - - var data = Utils.GetData($selection[0], 'data'); - - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - } - ); - }; - - MultipleSelection.prototype.clear = function () { - var $rendered = this.$selection.find('.select2-selection__rendered'); - $rendered.empty(); - $rendered.removeAttr('title'); - }; - - MultipleSelection.prototype.display = function (data, container) { - var template = this.options.get('templateSelection'); - var escapeMarkup = this.options.get('escapeMarkup'); - - return escapeMarkup(template(data, container)); - }; - - MultipleSelection.prototype.selectionContainer = function () { - var $container = $( - '<li class="select2-selection__choice">' + - '<span class="select2-selection__choice__remove" role="presentation">' + - '×' + - '</span>' + - '</li>' - ); - - return $container; - }; - - MultipleSelection.prototype.update = function (data) { - this.clear(); - - if (data.length === 0) { - return; - } - - var $selections = []; - - for (var d = 0; d < data.length; d++) { - var selection = data[d]; - - var $selection = this.selectionContainer(); - var formatted = this.display(selection, $selection); - - $selection.append(formatted); - - var title = selection.title || selection.text; - - if (title) { - $selection.attr('title', title); - } - - Utils.StoreData($selection[0], 'data', selection); - - $selections.push($selection); - } - - var $rendered = this.$selection.find('.select2-selection__rendered'); - - Utils.appendMany($rendered, $selections); - }; - - return MultipleSelection; -}); - -S2.define('select2/selection/placeholder',[ - '../utils' -], function (Utils) { - function Placeholder (decorated, $element, options) { - this.placeholder = this.normalizePlaceholder(options.get('placeholder')); - - decorated.call(this, $element, options); - } - - Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { - if (typeof placeholder === 'string') { - placeholder = { - id: '', - text: placeholder - }; - } - - return placeholder; - }; - - Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { - var $placeholder = this.selectionContainer(); - - $placeholder.html(this.display(placeholder)); - $placeholder.addClass('select2-selection__placeholder') - .removeClass('select2-selection__choice'); - - return $placeholder; - }; - - Placeholder.prototype.update = function (decorated, data) { - var singlePlaceholder = ( - data.length == 1 && data[0].id != this.placeholder.id - ); - var multipleSelections = data.length > 1; - - if (multipleSelections || singlePlaceholder) { - return decorated.call(this, data); - } - - this.clear(); - - var $placeholder = this.createPlaceholder(this.placeholder); - - this.$selection.find('.select2-selection__rendered').append($placeholder); - }; - - return Placeholder; -}); - -S2.define('select2/selection/allowClear',[ - 'jquery', - '../keys', - '../utils' -], function ($, KEYS, Utils) { - function AllowClear () { } - - AllowClear.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - if (this.placeholder == null) { - if (this.options.get('debug') && window.console && console.error) { - console.error( - 'Select2: The `allowClear` option should be used in combination ' + - 'with the `placeholder` option.' - ); - } - } - - this.$selection.on('mousedown', '.select2-selection__clear', - function (evt) { - self._handleClear(evt); - }); - - container.on('keypress', function (evt) { - self._handleKeyboardClear(evt, container); - }); - }; - - AllowClear.prototype._handleClear = function (_, evt) { - // Ignore the event if it is disabled - if (this.isDisabled()) { - return; - } - - var $clear = this.$selection.find('.select2-selection__clear'); - - // Ignore the event if nothing has been selected - if ($clear.length === 0) { - return; - } - - evt.stopPropagation(); - - var data = Utils.GetData($clear[0], 'data'); - - var previousVal = this.$element.val(); - this.$element.val(this.placeholder.id); - - var unselectData = { - data: data - }; - this.trigger('clear', unselectData); - if (unselectData.prevented) { - this.$element.val(previousVal); - return; - } - - for (var d = 0; d < data.length; d++) { - unselectData = { - data: data[d] - }; - - // Trigger the `unselect` event, so people can prevent it from being - // cleared. - this.trigger('unselect', unselectData); - - // If the event was prevented, don't clear it out. - if (unselectData.prevented) { - this.$element.val(previousVal); - return; - } - } - - this.$element.trigger('input').trigger('change'); - - this.trigger('toggle', {}); - }; - - AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { - if (container.isOpen()) { - return; - } - - if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { - this._handleClear(evt); - } - }; - - AllowClear.prototype.update = function (decorated, data) { - decorated.call(this, data); - - if (this.$selection.find('.select2-selection__placeholder').length > 0 || - data.length === 0) { - return; - } - - var removeAll = this.options.get('translations').get('removeAllItems'); - - var $remove = $( - '<span class="select2-selection__clear" title="' + removeAll() +'">' + - '×' + - '</span>' - ); - Utils.StoreData($remove[0], 'data', data); - - this.$selection.find('.select2-selection__rendered').prepend($remove); - }; - - return AllowClear; -}); - -S2.define('select2/selection/search',[ - 'jquery', - '../utils', - '../keys' -], function ($, Utils, KEYS) { - function Search (decorated, $element, options) { - decorated.call(this, $element, options); - } - - Search.prototype.render = function (decorated) { - var $search = $( - '<li class="select2-search select2-search--inline">' + - '<input class="select2-search__field" type="search" tabindex="-1"' + - ' autocomplete="off" autocorrect="off" autocapitalize="none"' + - ' spellcheck="false" role="searchbox" aria-autocomplete="list" />' + - '</li>' - ); - - this.$searchContainer = $search; - this.$search = $search.find('input'); - - var $rendered = decorated.call(this); - - this._transferTabIndex(); - - return $rendered; - }; - - Search.prototype.bind = function (decorated, container, $container) { - var self = this; - - var resultsId = container.id + '-results'; - - decorated.call(this, container, $container); - - container.on('open', function () { - self.$search.attr('aria-controls', resultsId); - self.$search.trigger('focus'); - }); - - container.on('close', function () { - self.$search.val(''); - self.$search.removeAttr('aria-controls'); - self.$search.removeAttr('aria-activedescendant'); - self.$search.trigger('focus'); - }); - - container.on('enable', function () { - self.$search.prop('disabled', false); - - self._transferTabIndex(); - }); - - container.on('disable', function () { - self.$search.prop('disabled', true); - }); - - container.on('focus', function (evt) { - self.$search.trigger('focus'); - }); - - container.on('results:focus', function (params) { - if (params.data._resultId) { - self.$search.attr('aria-activedescendant', params.data._resultId); - } else { - self.$search.removeAttr('aria-activedescendant'); - } - }); - - this.$selection.on('focusin', '.select2-search--inline', function (evt) { - self.trigger('focus', evt); - }); - - this.$selection.on('focusout', '.select2-search--inline', function (evt) { - self._handleBlur(evt); - }); - - this.$selection.on('keydown', '.select2-search--inline', function (evt) { - evt.stopPropagation(); - - self.trigger('keypress', evt); - - self._keyUpPrevented = evt.isDefaultPrevented(); - - var key = evt.which; - - if (key === KEYS.BACKSPACE && self.$search.val() === '') { - var $previousChoice = self.$searchContainer - .prev('.select2-selection__choice'); - - if ($previousChoice.length > 0) { - var item = Utils.GetData($previousChoice[0], 'data'); - - self.searchRemoveChoice(item); - - evt.preventDefault(); - } - } - }); - - this.$selection.on('click', '.select2-search--inline', function (evt) { - if (self.$search.val()) { - evt.stopPropagation(); - } - }); - - // Try to detect the IE version should the `documentMode` property that - // is stored on the document. This is only implemented in IE and is - // slightly cleaner than doing a user agent check. - // This property is not available in Edge, but Edge also doesn't have - // this bug. - var msie = document.documentMode; - var disableInputEvents = msie && msie <= 11; - - // Workaround for browsers which do not support the `input` event - // This will prevent double-triggering of events for browsers which support - // both the `keyup` and `input` events. - this.$selection.on( - 'input.searchcheck', - '.select2-search--inline', - function (evt) { - // IE will trigger the `input` event when a placeholder is used on a - // search box. To get around this issue, we are forced to ignore all - // `input` events in IE and keep using `keyup`. - if (disableInputEvents) { - self.$selection.off('input.search input.searchcheck'); - return; - } - - // Unbind the duplicated `keyup` event - self.$selection.off('keyup.search'); - } - ); - - this.$selection.on( - 'keyup.search input.search', - '.select2-search--inline', - function (evt) { - // IE will trigger the `input` event when a placeholder is used on a - // search box. To get around this issue, we are forced to ignore all - // `input` events in IE and keep using `keyup`. - if (disableInputEvents && evt.type === 'input') { - self.$selection.off('input.search input.searchcheck'); - return; - } - - var key = evt.which; - - // We can freely ignore events from modifier keys - if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { - return; - } - - // Tabbing will be handled during the `keydown` phase - if (key == KEYS.TAB) { - return; - } - - self.handleSearch(evt); - } - ); - }; - - /** - * This method will transfer the tabindex attribute from the rendered - * selection to the search box. This allows for the search box to be used as - * the primary focus instead of the selection container. - * - * @private - */ - Search.prototype._transferTabIndex = function (decorated) { - this.$search.attr('tabindex', this.$selection.attr('tabindex')); - this.$selection.attr('tabindex', '-1'); - }; - - Search.prototype.createPlaceholder = function (decorated, placeholder) { - this.$search.attr('placeholder', placeholder.text); - }; - - Search.prototype.update = function (decorated, data) { - var searchHadFocus = this.$search[0] == document.activeElement; - - this.$search.attr('placeholder', ''); - - decorated.call(this, data); - - this.$selection.find('.select2-selection__rendered') - .append(this.$searchContainer); - - this.resizeSearch(); - if (searchHadFocus) { - this.$search.trigger('focus'); - } - }; - - Search.prototype.handleSearch = function () { - this.resizeSearch(); - - if (!this._keyUpPrevented) { - var input = this.$search.val(); - - this.trigger('query', { - term: input - }); - } - - this._keyUpPrevented = false; - }; - - Search.prototype.searchRemoveChoice = function (decorated, item) { - this.trigger('unselect', { - data: item - }); - - this.$search.val(item.text); - this.handleSearch(); - }; - - Search.prototype.resizeSearch = function () { - this.$search.css('width', '25px'); - - var width = ''; - - if (this.$search.attr('placeholder') !== '') { - width = this.$selection.find('.select2-selection__rendered').width(); - } else { - var minimumWidth = this.$search.val().length + 1; - - width = (minimumWidth * 0.75) + 'em'; - } - - this.$search.css('width', width); - }; - - return Search; -}); - -S2.define('select2/selection/eventRelay',[ - 'jquery' -], function ($) { - function EventRelay () { } - - EventRelay.prototype.bind = function (decorated, container, $container) { - var self = this; - var relayEvents = [ - 'open', 'opening', - 'close', 'closing', - 'select', 'selecting', - 'unselect', 'unselecting', - 'clear', 'clearing' - ]; - - var preventableEvents = [ - 'opening', 'closing', 'selecting', 'unselecting', 'clearing' - ]; - - decorated.call(this, container, $container); - - container.on('*', function (name, params) { - // Ignore events that should not be relayed - if ($.inArray(name, relayEvents) === -1) { - return; - } - - // The parameters should always be an object - params = params || {}; - - // Generate the jQuery event for the Select2 event - var evt = $.Event('select2:' + name, { - params: params - }); - - self.$element.trigger(evt); - - // Only handle preventable events if it was one - if ($.inArray(name, preventableEvents) === -1) { - return; - } - - params.prevented = evt.isDefaultPrevented(); - }); - }; - - return EventRelay; -}); - -S2.define('select2/translation',[ - 'jquery', - 'require' -], function ($, require) { - function Translation (dict) { - this.dict = dict || {}; - } - - Translation.prototype.all = function () { - return this.dict; - }; - - Translation.prototype.get = function (key) { - return this.dict[key]; - }; - - Translation.prototype.extend = function (translation) { - this.dict = $.extend({}, translation.all(), this.dict); - }; - - // Static functions - - Translation._cache = {}; - - Translation.loadPath = function (path) { - if (!(path in Translation._cache)) { - var translations = require(path); - - Translation._cache[path] = translations; - } - - return new Translation(Translation._cache[path]); - }; - - return Translation; -}); - -S2.define('select2/diacritics',[ - -], function () { - var diacritics = { - '\u24B6': 'A', - '\uFF21': 'A', - '\u00C0': 'A', - '\u00C1': 'A', - '\u00C2': 'A', - '\u1EA6': 'A', - '\u1EA4': 'A', - '\u1EAA': 'A', - '\u1EA8': 'A', - '\u00C3': 'A', - '\u0100': 'A', - '\u0102': 'A', - '\u1EB0': 'A', - '\u1EAE': 'A', - '\u1EB4': 'A', - '\u1EB2': 'A', - '\u0226': 'A', - '\u01E0': 'A', - '\u00C4': 'A', - '\u01DE': 'A', - '\u1EA2': 'A', - '\u00C5': 'A', - '\u01FA': 'A', - '\u01CD': 'A', - '\u0200': 'A', - '\u0202': 'A', - '\u1EA0': 'A', - '\u1EAC': 'A', - '\u1EB6': 'A', - '\u1E00': 'A', - '\u0104': 'A', - '\u023A': 'A', - '\u2C6F': 'A', - '\uA732': 'AA', - '\u00C6': 'AE', - '\u01FC': 'AE', - '\u01E2': 'AE', - '\uA734': 'AO', - '\uA736': 'AU', - '\uA738': 'AV', - '\uA73A': 'AV', - '\uA73C': 'AY', - '\u24B7': 'B', - '\uFF22': 'B', - '\u1E02': 'B', - '\u1E04': 'B', - '\u1E06': 'B', - '\u0243': 'B', - '\u0182': 'B', - '\u0181': 'B', - '\u24B8': 'C', - '\uFF23': 'C', - '\u0106': 'C', - '\u0108': 'C', - '\u010A': 'C', - '\u010C': 'C', - '\u00C7': 'C', - '\u1E08': 'C', - '\u0187': 'C', - '\u023B': 'C', - '\uA73E': 'C', - '\u24B9': 'D', - '\uFF24': 'D', - '\u1E0A': 'D', - '\u010E': 'D', - '\u1E0C': 'D', - '\u1E10': 'D', - '\u1E12': 'D', - '\u1E0E': 'D', - '\u0110': 'D', - '\u018B': 'D', - '\u018A': 'D', - '\u0189': 'D', - '\uA779': 'D', - '\u01F1': 'DZ', - '\u01C4': 'DZ', - '\u01F2': 'Dz', - '\u01C5': 'Dz', - '\u24BA': 'E', - '\uFF25': 'E', - '\u00C8': 'E', - '\u00C9': 'E', - '\u00CA': 'E', - '\u1EC0': 'E', - '\u1EBE': 'E', - '\u1EC4': 'E', - '\u1EC2': 'E', - '\u1EBC': 'E', - '\u0112': 'E', - '\u1E14': 'E', - '\u1E16': 'E', - '\u0114': 'E', - '\u0116': 'E', - '\u00CB': 'E', - '\u1EBA': 'E', - '\u011A': 'E', - '\u0204': 'E', - '\u0206': 'E', - '\u1EB8': 'E', - '\u1EC6': 'E', - '\u0228': 'E', - '\u1E1C': 'E', - '\u0118': 'E', - '\u1E18': 'E', - '\u1E1A': 'E', - '\u0190': 'E', - '\u018E': 'E', - '\u24BB': 'F', - '\uFF26': 'F', - '\u1E1E': 'F', - '\u0191': 'F', - '\uA77B': 'F', - '\u24BC': 'G', - '\uFF27': 'G', - '\u01F4': 'G', - '\u011C': 'G', - '\u1E20': 'G', - '\u011E': 'G', - '\u0120': 'G', - '\u01E6': 'G', - '\u0122': 'G', - '\u01E4': 'G', - '\u0193': 'G', - '\uA7A0': 'G', - '\uA77D': 'G', - '\uA77E': 'G', - '\u24BD': 'H', - '\uFF28': 'H', - '\u0124': 'H', - '\u1E22': 'H', - '\u1E26': 'H', - '\u021E': 'H', - '\u1E24': 'H', - '\u1E28': 'H', - '\u1E2A': 'H', - '\u0126': 'H', - '\u2C67': 'H', - '\u2C75': 'H', - '\uA78D': 'H', - '\u24BE': 'I', - '\uFF29': 'I', - '\u00CC': 'I', - '\u00CD': 'I', - '\u00CE': 'I', - '\u0128': 'I', - '\u012A': 'I', - '\u012C': 'I', - '\u0130': 'I', - '\u00CF': 'I', - '\u1E2E': 'I', - '\u1EC8': 'I', - '\u01CF': 'I', - '\u0208': 'I', - '\u020A': 'I', - '\u1ECA': 'I', - '\u012E': 'I', - '\u1E2C': 'I', - '\u0197': 'I', - '\u24BF': 'J', - '\uFF2A': 'J', - '\u0134': 'J', - '\u0248': 'J', - '\u24C0': 'K', - '\uFF2B': 'K', - '\u1E30': 'K', - '\u01E8': 'K', - '\u1E32': 'K', - '\u0136': 'K', - '\u1E34': 'K', - '\u0198': 'K', - '\u2C69': 'K', - '\uA740': 'K', - '\uA742': 'K', - '\uA744': 'K', - '\uA7A2': 'K', - '\u24C1': 'L', - '\uFF2C': 'L', - '\u013F': 'L', - '\u0139': 'L', - '\u013D': 'L', - '\u1E36': 'L', - '\u1E38': 'L', - '\u013B': 'L', - '\u1E3C': 'L', - '\u1E3A': 'L', - '\u0141': 'L', - '\u023D': 'L', - '\u2C62': 'L', - '\u2C60': 'L', - '\uA748': 'L', - '\uA746': 'L', - '\uA780': 'L', - '\u01C7': 'LJ', - '\u01C8': 'Lj', - '\u24C2': 'M', - '\uFF2D': 'M', - '\u1E3E': 'M', - '\u1E40': 'M', - '\u1E42': 'M', - '\u2C6E': 'M', - '\u019C': 'M', - '\u24C3': 'N', - '\uFF2E': 'N', - '\u01F8': 'N', - '\u0143': 'N', - '\u00D1': 'N', - '\u1E44': 'N', - '\u0147': 'N', - '\u1E46': 'N', - '\u0145': 'N', - '\u1E4A': 'N', - '\u1E48': 'N', - '\u0220': 'N', - '\u019D': 'N', - '\uA790': 'N', - '\uA7A4': 'N', - '\u01CA': 'NJ', - '\u01CB': 'Nj', - '\u24C4': 'O', - '\uFF2F': 'O', - '\u00D2': 'O', - '\u00D3': 'O', - '\u00D4': 'O', - '\u1ED2': 'O', - '\u1ED0': 'O', - '\u1ED6': 'O', - '\u1ED4': 'O', - '\u00D5': 'O', - '\u1E4C': 'O', - '\u022C': 'O', - '\u1E4E': 'O', - '\u014C': 'O', - '\u1E50': 'O', - '\u1E52': 'O', - '\u014E': 'O', - '\u022E': 'O', - '\u0230': 'O', - '\u00D6': 'O', - '\u022A': 'O', - '\u1ECE': 'O', - '\u0150': 'O', - '\u01D1': 'O', - '\u020C': 'O', - '\u020E': 'O', - '\u01A0': 'O', - '\u1EDC': 'O', - '\u1EDA': 'O', - '\u1EE0': 'O', - '\u1EDE': 'O', - '\u1EE2': 'O', - '\u1ECC': 'O', - '\u1ED8': 'O', - '\u01EA': 'O', - '\u01EC': 'O', - '\u00D8': 'O', - '\u01FE': 'O', - '\u0186': 'O', - '\u019F': 'O', - '\uA74A': 'O', - '\uA74C': 'O', - '\u0152': 'OE', - '\u01A2': 'OI', - '\uA74E': 'OO', - '\u0222': 'OU', - '\u24C5': 'P', - '\uFF30': 'P', - '\u1E54': 'P', - '\u1E56': 'P', - '\u01A4': 'P', - '\u2C63': 'P', - '\uA750': 'P', - '\uA752': 'P', - '\uA754': 'P', - '\u24C6': 'Q', - '\uFF31': 'Q', - '\uA756': 'Q', - '\uA758': 'Q', - '\u024A': 'Q', - '\u24C7': 'R', - '\uFF32': 'R', - '\u0154': 'R', - '\u1E58': 'R', - '\u0158': 'R', - '\u0210': 'R', - '\u0212': 'R', - '\u1E5A': 'R', - '\u1E5C': 'R', - '\u0156': 'R', - '\u1E5E': 'R', - '\u024C': 'R', - '\u2C64': 'R', - '\uA75A': 'R', - '\uA7A6': 'R', - '\uA782': 'R', - '\u24C8': 'S', - '\uFF33': 'S', - '\u1E9E': 'S', - '\u015A': 'S', - '\u1E64': 'S', - '\u015C': 'S', - '\u1E60': 'S', - '\u0160': 'S', - '\u1E66': 'S', - '\u1E62': 'S', - '\u1E68': 'S', - '\u0218': 'S', - '\u015E': 'S', - '\u2C7E': 'S', - '\uA7A8': 'S', - '\uA784': 'S', - '\u24C9': 'T', - '\uFF34': 'T', - '\u1E6A': 'T', - '\u0164': 'T', - '\u1E6C': 'T', - '\u021A': 'T', - '\u0162': 'T', - '\u1E70': 'T', - '\u1E6E': 'T', - '\u0166': 'T', - '\u01AC': 'T', - '\u01AE': 'T', - '\u023E': 'T', - '\uA786': 'T', - '\uA728': 'TZ', - '\u24CA': 'U', - '\uFF35': 'U', - '\u00D9': 'U', - '\u00DA': 'U', - '\u00DB': 'U', - '\u0168': 'U', - '\u1E78': 'U', - '\u016A': 'U', - '\u1E7A': 'U', - '\u016C': 'U', - '\u00DC': 'U', - '\u01DB': 'U', - '\u01D7': 'U', - '\u01D5': 'U', - '\u01D9': 'U', - '\u1EE6': 'U', - '\u016E': 'U', - '\u0170': 'U', - '\u01D3': 'U', - '\u0214': 'U', - '\u0216': 'U', - '\u01AF': 'U', - '\u1EEA': 'U', - '\u1EE8': 'U', - '\u1EEE': 'U', - '\u1EEC': 'U', - '\u1EF0': 'U', - '\u1EE4': 'U', - '\u1E72': 'U', - '\u0172': 'U', - '\u1E76': 'U', - '\u1E74': 'U', - '\u0244': 'U', - '\u24CB': 'V', - '\uFF36': 'V', - '\u1E7C': 'V', - '\u1E7E': 'V', - '\u01B2': 'V', - '\uA75E': 'V', - '\u0245': 'V', - '\uA760': 'VY', - '\u24CC': 'W', - '\uFF37': 'W', - '\u1E80': 'W', - '\u1E82': 'W', - '\u0174': 'W', - '\u1E86': 'W', - '\u1E84': 'W', - '\u1E88': 'W', - '\u2C72': 'W', - '\u24CD': 'X', - '\uFF38': 'X', - '\u1E8A': 'X', - '\u1E8C': 'X', - '\u24CE': 'Y', - '\uFF39': 'Y', - '\u1EF2': 'Y', - '\u00DD': 'Y', - '\u0176': 'Y', - '\u1EF8': 'Y', - '\u0232': 'Y', - '\u1E8E': 'Y', - '\u0178': 'Y', - '\u1EF6': 'Y', - '\u1EF4': 'Y', - '\u01B3': 'Y', - '\u024E': 'Y', - '\u1EFE': 'Y', - '\u24CF': 'Z', - '\uFF3A': 'Z', - '\u0179': 'Z', - '\u1E90': 'Z', - '\u017B': 'Z', - '\u017D': 'Z', - '\u1E92': 'Z', - '\u1E94': 'Z', - '\u01B5': 'Z', - '\u0224': 'Z', - '\u2C7F': 'Z', - '\u2C6B': 'Z', - '\uA762': 'Z', - '\u24D0': 'a', - '\uFF41': 'a', - '\u1E9A': 'a', - '\u00E0': 'a', - '\u00E1': 'a', - '\u00E2': 'a', - '\u1EA7': 'a', - '\u1EA5': 'a', - '\u1EAB': 'a', - '\u1EA9': 'a', - '\u00E3': 'a', - '\u0101': 'a', - '\u0103': 'a', - '\u1EB1': 'a', - '\u1EAF': 'a', - '\u1EB5': 'a', - '\u1EB3': 'a', - '\u0227': 'a', - '\u01E1': 'a', - '\u00E4': 'a', - '\u01DF': 'a', - '\u1EA3': 'a', - '\u00E5': 'a', - '\u01FB': 'a', - '\u01CE': 'a', - '\u0201': 'a', - '\u0203': 'a', - '\u1EA1': 'a', - '\u1EAD': 'a', - '\u1EB7': 'a', - '\u1E01': 'a', - '\u0105': 'a', - '\u2C65': 'a', - '\u0250': 'a', - '\uA733': 'aa', - '\u00E6': 'ae', - '\u01FD': 'ae', - '\u01E3': 'ae', - '\uA735': 'ao', - '\uA737': 'au', - '\uA739': 'av', - '\uA73B': 'av', - '\uA73D': 'ay', - '\u24D1': 'b', - '\uFF42': 'b', - '\u1E03': 'b', - '\u1E05': 'b', - '\u1E07': 'b', - '\u0180': 'b', - '\u0183': 'b', - '\u0253': 'b', - '\u24D2': 'c', - '\uFF43': 'c', - '\u0107': 'c', - '\u0109': 'c', - '\u010B': 'c', - '\u010D': 'c', - '\u00E7': 'c', - '\u1E09': 'c', - '\u0188': 'c', - '\u023C': 'c', - '\uA73F': 'c', - '\u2184': 'c', - '\u24D3': 'd', - '\uFF44': 'd', - '\u1E0B': 'd', - '\u010F': 'd', - '\u1E0D': 'd', - '\u1E11': 'd', - '\u1E13': 'd', - '\u1E0F': 'd', - '\u0111': 'd', - '\u018C': 'd', - '\u0256': 'd', - '\u0257': 'd', - '\uA77A': 'd', - '\u01F3': 'dz', - '\u01C6': 'dz', - '\u24D4': 'e', - '\uFF45': 'e', - '\u00E8': 'e', - '\u00E9': 'e', - '\u00EA': 'e', - '\u1EC1': 'e', - '\u1EBF': 'e', - '\u1EC5': 'e', - '\u1EC3': 'e', - '\u1EBD': 'e', - '\u0113': 'e', - '\u1E15': 'e', - '\u1E17': 'e', - '\u0115': 'e', - '\u0117': 'e', - '\u00EB': 'e', - '\u1EBB': 'e', - '\u011B': 'e', - '\u0205': 'e', - '\u0207': 'e', - '\u1EB9': 'e', - '\u1EC7': 'e', - '\u0229': 'e', - '\u1E1D': 'e', - '\u0119': 'e', - '\u1E19': 'e', - '\u1E1B': 'e', - '\u0247': 'e', - '\u025B': 'e', - '\u01DD': 'e', - '\u24D5': 'f', - '\uFF46': 'f', - '\u1E1F': 'f', - '\u0192': 'f', - '\uA77C': 'f', - '\u24D6': 'g', - '\uFF47': 'g', - '\u01F5': 'g', - '\u011D': 'g', - '\u1E21': 'g', - '\u011F': 'g', - '\u0121': 'g', - '\u01E7': 'g', - '\u0123': 'g', - '\u01E5': 'g', - '\u0260': 'g', - '\uA7A1': 'g', - '\u1D79': 'g', - '\uA77F': 'g', - '\u24D7': 'h', - '\uFF48': 'h', - '\u0125': 'h', - '\u1E23': 'h', - '\u1E27': 'h', - '\u021F': 'h', - '\u1E25': 'h', - '\u1E29': 'h', - '\u1E2B': 'h', - '\u1E96': 'h', - '\u0127': 'h', - '\u2C68': 'h', - '\u2C76': 'h', - '\u0265': 'h', - '\u0195': 'hv', - '\u24D8': 'i', - '\uFF49': 'i', - '\u00EC': 'i', - '\u00ED': 'i', - '\u00EE': 'i', - '\u0129': 'i', - '\u012B': 'i', - '\u012D': 'i', - '\u00EF': 'i', - '\u1E2F': 'i', - '\u1EC9': 'i', - '\u01D0': 'i', - '\u0209': 'i', - '\u020B': 'i', - '\u1ECB': 'i', - '\u012F': 'i', - '\u1E2D': 'i', - '\u0268': 'i', - '\u0131': 'i', - '\u24D9': 'j', - '\uFF4A': 'j', - '\u0135': 'j', - '\u01F0': 'j', - '\u0249': 'j', - '\u24DA': 'k', - '\uFF4B': 'k', - '\u1E31': 'k', - '\u01E9': 'k', - '\u1E33': 'k', - '\u0137': 'k', - '\u1E35': 'k', - '\u0199': 'k', - '\u2C6A': 'k', - '\uA741': 'k', - '\uA743': 'k', - '\uA745': 'k', - '\uA7A3': 'k', - '\u24DB': 'l', - '\uFF4C': 'l', - '\u0140': 'l', - '\u013A': 'l', - '\u013E': 'l', - '\u1E37': 'l', - '\u1E39': 'l', - '\u013C': 'l', - '\u1E3D': 'l', - '\u1E3B': 'l', - '\u017F': 'l', - '\u0142': 'l', - '\u019A': 'l', - '\u026B': 'l', - '\u2C61': 'l', - '\uA749': 'l', - '\uA781': 'l', - '\uA747': 'l', - '\u01C9': 'lj', - '\u24DC': 'm', - '\uFF4D': 'm', - '\u1E3F': 'm', - '\u1E41': 'm', - '\u1E43': 'm', - '\u0271': 'm', - '\u026F': 'm', - '\u24DD': 'n', - '\uFF4E': 'n', - '\u01F9': 'n', - '\u0144': 'n', - '\u00F1': 'n', - '\u1E45': 'n', - '\u0148': 'n', - '\u1E47': 'n', - '\u0146': 'n', - '\u1E4B': 'n', - '\u1E49': 'n', - '\u019E': 'n', - '\u0272': 'n', - '\u0149': 'n', - '\uA791': 'n', - '\uA7A5': 'n', - '\u01CC': 'nj', - '\u24DE': 'o', - '\uFF4F': 'o', - '\u00F2': 'o', - '\u00F3': 'o', - '\u00F4': 'o', - '\u1ED3': 'o', - '\u1ED1': 'o', - '\u1ED7': 'o', - '\u1ED5': 'o', - '\u00F5': 'o', - '\u1E4D': 'o', - '\u022D': 'o', - '\u1E4F': 'o', - '\u014D': 'o', - '\u1E51': 'o', - '\u1E53': 'o', - '\u014F': 'o', - '\u022F': 'o', - '\u0231': 'o', - '\u00F6': 'o', - '\u022B': 'o', - '\u1ECF': 'o', - '\u0151': 'o', - '\u01D2': 'o', - '\u020D': 'o', - '\u020F': 'o', - '\u01A1': 'o', - '\u1EDD': 'o', - '\u1EDB': 'o', - '\u1EE1': 'o', - '\u1EDF': 'o', - '\u1EE3': 'o', - '\u1ECD': 'o', - '\u1ED9': 'o', - '\u01EB': 'o', - '\u01ED': 'o', - '\u00F8': 'o', - '\u01FF': 'o', - '\u0254': 'o', - '\uA74B': 'o', - '\uA74D': 'o', - '\u0275': 'o', - '\u0153': 'oe', - '\u01A3': 'oi', - '\u0223': 'ou', - '\uA74F': 'oo', - '\u24DF': 'p', - '\uFF50': 'p', - '\u1E55': 'p', - '\u1E57': 'p', - '\u01A5': 'p', - '\u1D7D': 'p', - '\uA751': 'p', - '\uA753': 'p', - '\uA755': 'p', - '\u24E0': 'q', - '\uFF51': 'q', - '\u024B': 'q', - '\uA757': 'q', - '\uA759': 'q', - '\u24E1': 'r', - '\uFF52': 'r', - '\u0155': 'r', - '\u1E59': 'r', - '\u0159': 'r', - '\u0211': 'r', - '\u0213': 'r', - '\u1E5B': 'r', - '\u1E5D': 'r', - '\u0157': 'r', - '\u1E5F': 'r', - '\u024D': 'r', - '\u027D': 'r', - '\uA75B': 'r', - '\uA7A7': 'r', - '\uA783': 'r', - '\u24E2': 's', - '\uFF53': 's', - '\u00DF': 's', - '\u015B': 's', - '\u1E65': 's', - '\u015D': 's', - '\u1E61': 's', - '\u0161': 's', - '\u1E67': 's', - '\u1E63': 's', - '\u1E69': 's', - '\u0219': 's', - '\u015F': 's', - '\u023F': 's', - '\uA7A9': 's', - '\uA785': 's', - '\u1E9B': 's', - '\u24E3': 't', - '\uFF54': 't', - '\u1E6B': 't', - '\u1E97': 't', - '\u0165': 't', - '\u1E6D': 't', - '\u021B': 't', - '\u0163': 't', - '\u1E71': 't', - '\u1E6F': 't', - '\u0167': 't', - '\u01AD': 't', - '\u0288': 't', - '\u2C66': 't', - '\uA787': 't', - '\uA729': 'tz', - '\u24E4': 'u', - '\uFF55': 'u', - '\u00F9': 'u', - '\u00FA': 'u', - '\u00FB': 'u', - '\u0169': 'u', - '\u1E79': 'u', - '\u016B': 'u', - '\u1E7B': 'u', - '\u016D': 'u', - '\u00FC': 'u', - '\u01DC': 'u', - '\u01D8': 'u', - '\u01D6': 'u', - '\u01DA': 'u', - '\u1EE7': 'u', - '\u016F': 'u', - '\u0171': 'u', - '\u01D4': 'u', - '\u0215': 'u', - '\u0217': 'u', - '\u01B0': 'u', - '\u1EEB': 'u', - '\u1EE9': 'u', - '\u1EEF': 'u', - '\u1EED': 'u', - '\u1EF1': 'u', - '\u1EE5': 'u', - '\u1E73': 'u', - '\u0173': 'u', - '\u1E77': 'u', - '\u1E75': 'u', - '\u0289': 'u', - '\u24E5': 'v', - '\uFF56': 'v', - '\u1E7D': 'v', - '\u1E7F': 'v', - '\u028B': 'v', - '\uA75F': 'v', - '\u028C': 'v', - '\uA761': 'vy', - '\u24E6': 'w', - '\uFF57': 'w', - '\u1E81': 'w', - '\u1E83': 'w', - '\u0175': 'w', - '\u1E87': 'w', - '\u1E85': 'w', - '\u1E98': 'w', - '\u1E89': 'w', - '\u2C73': 'w', - '\u24E7': 'x', - '\uFF58': 'x', - '\u1E8B': 'x', - '\u1E8D': 'x', - '\u24E8': 'y', - '\uFF59': 'y', - '\u1EF3': 'y', - '\u00FD': 'y', - '\u0177': 'y', - '\u1EF9': 'y', - '\u0233': 'y', - '\u1E8F': 'y', - '\u00FF': 'y', - '\u1EF7': 'y', - '\u1E99': 'y', - '\u1EF5': 'y', - '\u01B4': 'y', - '\u024F': 'y', - '\u1EFF': 'y', - '\u24E9': 'z', - '\uFF5A': 'z', - '\u017A': 'z', - '\u1E91': 'z', - '\u017C': 'z', - '\u017E': 'z', - '\u1E93': 'z', - '\u1E95': 'z', - '\u01B6': 'z', - '\u0225': 'z', - '\u0240': 'z', - '\u2C6C': 'z', - '\uA763': 'z', - '\u0386': '\u0391', - '\u0388': '\u0395', - '\u0389': '\u0397', - '\u038A': '\u0399', - '\u03AA': '\u0399', - '\u038C': '\u039F', - '\u038E': '\u03A5', - '\u03AB': '\u03A5', - '\u038F': '\u03A9', - '\u03AC': '\u03B1', - '\u03AD': '\u03B5', - '\u03AE': '\u03B7', - '\u03AF': '\u03B9', - '\u03CA': '\u03B9', - '\u0390': '\u03B9', - '\u03CC': '\u03BF', - '\u03CD': '\u03C5', - '\u03CB': '\u03C5', - '\u03B0': '\u03C5', - '\u03CE': '\u03C9', - '\u03C2': '\u03C3', - '\u2019': '\'' - }; - - return diacritics; -}); - -S2.define('select2/data/base',[ - '../utils' -], function (Utils) { - function BaseAdapter ($element, options) { - BaseAdapter.__super__.constructor.call(this); - } - - Utils.Extend(BaseAdapter, Utils.Observable); - - BaseAdapter.prototype.current = function (callback) { - throw new Error('The `current` method must be defined in child classes.'); - }; - - BaseAdapter.prototype.query = function (params, callback) { - throw new Error('The `query` method must be defined in child classes.'); - }; - - BaseAdapter.prototype.bind = function (container, $container) { - // Can be implemented in subclasses - }; - - BaseAdapter.prototype.destroy = function () { - // Can be implemented in subclasses - }; - - BaseAdapter.prototype.generateResultId = function (container, data) { - var id = container.id + '-result-'; - - id += Utils.generateChars(4); - - if (data.id != null) { - id += '-' + data.id.toString(); - } else { - id += '-' + Utils.generateChars(4); - } - return id; - }; - - return BaseAdapter; -}); - -S2.define('select2/data/select',[ - './base', - '../utils', - 'jquery' -], function (BaseAdapter, Utils, $) { - function SelectAdapter ($element, options) { - this.$element = $element; - this.options = options; - - SelectAdapter.__super__.constructor.call(this); - } - - Utils.Extend(SelectAdapter, BaseAdapter); - - SelectAdapter.prototype.current = function (callback) { - var data = []; - var self = this; - - this.$element.find(':selected').each(function () { - var $option = $(this); - - var option = self.item($option); - - data.push(option); - }); - - callback(data); - }; - - SelectAdapter.prototype.select = function (data) { - var self = this; - - data.selected = true; - - // If data.element is a DOM node, use it instead - if ($(data.element).is('option')) { - data.element.selected = true; - - this.$element.trigger('input').trigger('change'); - - return; - } - - if (this.$element.prop('multiple')) { - this.current(function (currentData) { - var val = []; - - data = [data]; - data.push.apply(data, currentData); - - for (var d = 0; d < data.length; d++) { - var id = data[d].id; - - if ($.inArray(id, val) === -1) { - val.push(id); - } - } - - self.$element.val(val); - self.$element.trigger('input').trigger('change'); - }); - } else { - var val = data.id; - - this.$element.val(val); - this.$element.trigger('input').trigger('change'); - } - }; - - SelectAdapter.prototype.unselect = function (data) { - var self = this; - - if (!this.$element.prop('multiple')) { - return; - } - - data.selected = false; - - if ($(data.element).is('option')) { - data.element.selected = false; - - this.$element.trigger('input').trigger('change'); - - return; - } - - this.current(function (currentData) { - var val = []; - - for (var d = 0; d < currentData.length; d++) { - var id = currentData[d].id; - - if (id !== data.id && $.inArray(id, val) === -1) { - val.push(id); - } - } - - self.$element.val(val); - - self.$element.trigger('input').trigger('change'); - }); - }; - - SelectAdapter.prototype.bind = function (container, $container) { - var self = this; - - this.container = container; - - container.on('select', function (params) { - self.select(params.data); - }); - - container.on('unselect', function (params) { - self.unselect(params.data); - }); - }; - - SelectAdapter.prototype.destroy = function () { - // Remove anything added to child elements - this.$element.find('*').each(function () { - // Remove any custom data set by Select2 - Utils.RemoveData(this); - }); - }; - - SelectAdapter.prototype.query = function (params, callback) { - var data = []; - var self = this; - - var $options = this.$element.children(); - - $options.each(function () { - var $option = $(this); - - if (!$option.is('option') && !$option.is('optgroup')) { - return; - } - - var option = self.item($option); - - var matches = self.matches(params, option); - - if (matches !== null) { - data.push(matches); - } - }); - - callback({ - results: data - }); - }; - - SelectAdapter.prototype.addOptions = function ($options) { - Utils.appendMany(this.$element, $options); - }; - - SelectAdapter.prototype.option = function (data) { - var option; - - if (data.children) { - option = document.createElement('optgroup'); - option.label = data.text; - } else { - option = document.createElement('option'); - - if (option.textContent !== undefined) { - option.textContent = data.text; - } else { - option.innerText = data.text; - } - } - - if (data.id !== undefined) { - option.value = data.id; - } - - if (data.disabled) { - option.disabled = true; - } - - if (data.selected) { - option.selected = true; - } - - if (data.title) { - option.title = data.title; - } - - var $option = $(option); - - var normalizedData = this._normalizeItem(data); - normalizedData.element = option; - - // Override the option's data with the combined data - Utils.StoreData(option, 'data', normalizedData); - - return $option; - }; - - SelectAdapter.prototype.item = function ($option) { - var data = {}; - - data = Utils.GetData($option[0], 'data'); - - if (data != null) { - return data; - } - - if ($option.is('option')) { - data = { - id: $option.val(), - text: $option.text(), - disabled: $option.prop('disabled'), - selected: $option.prop('selected'), - title: $option.prop('title') - }; - } else if ($option.is('optgroup')) { - data = { - text: $option.prop('label'), - children: [], - title: $option.prop('title') - }; - - var $children = $option.children('option'); - var children = []; - - for (var c = 0; c < $children.length; c++) { - var $child = $($children[c]); - - var child = this.item($child); - - children.push(child); - } - - data.children = children; - } - - data = this._normalizeItem(data); - data.element = $option[0]; - - Utils.StoreData($option[0], 'data', data); - - return data; - }; - - SelectAdapter.prototype._normalizeItem = function (item) { - if (item !== Object(item)) { - item = { - id: item, - text: item - }; - } - - item = $.extend({}, { - text: '' - }, item); - - var defaults = { - selected: false, - disabled: false - }; - - if (item.id != null) { - item.id = item.id.toString(); - } - - if (item.text != null) { - item.text = item.text.toString(); - } - - if (item._resultId == null && item.id && this.container != null) { - item._resultId = this.generateResultId(this.container, item); - } - - return $.extend({}, defaults, item); - }; - - SelectAdapter.prototype.matches = function (params, data) { - var matcher = this.options.get('matcher'); - - return matcher(params, data); - }; - - return SelectAdapter; -}); - -S2.define('select2/data/array',[ - './select', - '../utils', - 'jquery' -], function (SelectAdapter, Utils, $) { - function ArrayAdapter ($element, options) { - this._dataToConvert = options.get('data') || []; - - ArrayAdapter.__super__.constructor.call(this, $element, options); - } - - Utils.Extend(ArrayAdapter, SelectAdapter); - - ArrayAdapter.prototype.bind = function (container, $container) { - ArrayAdapter.__super__.bind.call(this, container, $container); - - this.addOptions(this.convertToOptions(this._dataToConvert)); - }; - - ArrayAdapter.prototype.select = function (data) { - var $option = this.$element.find('option').filter(function (i, elm) { - return elm.value == data.id.toString(); - }); - - if ($option.length === 0) { - $option = this.option(data); - - this.addOptions($option); - } - - ArrayAdapter.__super__.select.call(this, data); - }; - - ArrayAdapter.prototype.convertToOptions = function (data) { - var self = this; - - var $existing = this.$element.find('option'); - var existingIds = $existing.map(function () { - return self.item($(this)).id; - }).get(); - - var $options = []; - - // Filter out all items except for the one passed in the argument - function onlyItem (item) { - return function () { - return $(this).val() == item.id; - }; - } - - for (var d = 0; d < data.length; d++) { - var item = this._normalizeItem(data[d]); - - // Skip items which were pre-loaded, only merge the data - if ($.inArray(item.id, existingIds) >= 0) { - var $existingOption = $existing.filter(onlyItem(item)); - - var existingData = this.item($existingOption); - var newData = $.extend(true, {}, item, existingData); - - var $newOption = this.option(newData); - - $existingOption.replaceWith($newOption); - - continue; - } - - var $option = this.option(item); - - if (item.children) { - var $children = this.convertToOptions(item.children); - - Utils.appendMany($option, $children); - } - - $options.push($option); - } - - return $options; - }; - - return ArrayAdapter; -}); - -S2.define('select2/data/ajax',[ - './array', - '../utils', - 'jquery' -], function (ArrayAdapter, Utils, $) { - function AjaxAdapter ($element, options) { - this.ajaxOptions = this._applyDefaults(options.get('ajax')); - - if (this.ajaxOptions.processResults != null) { - this.processResults = this.ajaxOptions.processResults; - } - - AjaxAdapter.__super__.constructor.call(this, $element, options); - } - - Utils.Extend(AjaxAdapter, ArrayAdapter); - - AjaxAdapter.prototype._applyDefaults = function (options) { - var defaults = { - data: function (params) { - return $.extend({}, params, { - q: params.term - }); - }, - transport: function (params, success, failure) { - var $request = $.ajax(params); - - $request.then(success); - $request.fail(failure); - - return $request; - } - }; - - return $.extend({}, defaults, options, true); - }; - - AjaxAdapter.prototype.processResults = function (results) { - return results; - }; - - AjaxAdapter.prototype.query = function (params, callback) { - var matches = []; - var self = this; - - if (this._request != null) { - // JSONP requests cannot always be aborted - if ($.isFunction(this._request.abort)) { - this._request.abort(); - } - - this._request = null; - } - - var options = $.extend({ - type: 'GET' - }, this.ajaxOptions); - - if (typeof options.url === 'function') { - options.url = options.url.call(this.$element, params); - } - - if (typeof options.data === 'function') { - options.data = options.data.call(this.$element, params); - } - - function request () { - var $request = options.transport(options, function (data) { - var results = self.processResults(data, params); - - if (self.options.get('debug') && window.console && console.error) { - // Check to make sure that the response included a `results` key. - if (!results || !results.results || !$.isArray(results.results)) { - console.error( - 'Select2: The AJAX results did not return an array in the ' + - '`results` key of the response.' - ); - } - } - - callback(results); - }, function () { - // Attempt to detect if a request was aborted - // Only works if the transport exposes a status property - if ('status' in $request && - ($request.status === 0 || $request.status === '0')) { - return; - } - - self.trigger('results:message', { - message: 'errorLoading' - }); - }); - - self._request = $request; - } - - if (this.ajaxOptions.delay && params.term != null) { - if (this._queryTimeout) { - window.clearTimeout(this._queryTimeout); - } - - this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); - } else { - request(); - } - }; - - return AjaxAdapter; -}); - -S2.define('select2/data/tags',[ - 'jquery' -], function ($) { - function Tags (decorated, $element, options) { - var tags = options.get('tags'); - - var createTag = options.get('createTag'); - - if (createTag !== undefined) { - this.createTag = createTag; - } - - var insertTag = options.get('insertTag'); - - if (insertTag !== undefined) { - this.insertTag = insertTag; - } - - decorated.call(this, $element, options); - - if ($.isArray(tags)) { - for (var t = 0; t < tags.length; t++) { - var tag = tags[t]; - var item = this._normalizeItem(tag); - - var $option = this.option(item); - - this.$element.append($option); - } - } - } - - Tags.prototype.query = function (decorated, params, callback) { - var self = this; - - this._removeOldTags(); - - if (params.term == null || params.page != null) { - decorated.call(this, params, callback); - return; - } - - function wrapper (obj, child) { - var data = obj.results; - - for (var i = 0; i < data.length; i++) { - var option = data[i]; - - var checkChildren = ( - option.children != null && - !wrapper({ - results: option.children - }, true) - ); - - var optionText = (option.text || '').toUpperCase(); - var paramsTerm = (params.term || '').toUpperCase(); - - var checkText = optionText === paramsTerm; - - if (checkText || checkChildren) { - if (child) { - return false; - } - - obj.data = data; - callback(obj); - - return; - } - } - - if (child) { - return true; - } - - var tag = self.createTag(params); - - if (tag != null) { - var $option = self.option(tag); - $option.attr('data-select2-tag', true); - - self.addOptions([$option]); - - self.insertTag(data, tag); - } - - obj.results = data; - - callback(obj); - } - - decorated.call(this, params, wrapper); - }; - - Tags.prototype.createTag = function (decorated, params) { - var term = $.trim(params.term); - - if (term === '') { - return null; - } - - return { - id: term, - text: term - }; - }; - - Tags.prototype.insertTag = function (_, data, tag) { - data.unshift(tag); - }; - - Tags.prototype._removeOldTags = function (_) { - var $options = this.$element.find('option[data-select2-tag]'); - - $options.each(function () { - if (this.selected) { - return; - } - - $(this).remove(); - }); - }; - - return Tags; -}); - -S2.define('select2/data/tokenizer',[ - 'jquery' -], function ($) { - function Tokenizer (decorated, $element, options) { - var tokenizer = options.get('tokenizer'); - - if (tokenizer !== undefined) { - this.tokenizer = tokenizer; - } - - decorated.call(this, $element, options); - } - - Tokenizer.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - this.$search = container.dropdown.$search || container.selection.$search || - $container.find('.select2-search__field'); - }; - - Tokenizer.prototype.query = function (decorated, params, callback) { - var self = this; - - function createAndSelect (data) { - // Normalize the data object so we can use it for checks - var item = self._normalizeItem(data); - - // Check if the data object already exists as a tag - // Select it if it doesn't - var $existingOptions = self.$element.find('option').filter(function () { - return $(this).val() === item.id; - }); - - // If an existing option wasn't found for it, create the option - if (!$existingOptions.length) { - var $option = self.option(item); - $option.attr('data-select2-tag', true); - - self._removeOldTags(); - self.addOptions([$option]); - } - - // Select the item, now that we know there is an option for it - select(item); - } - - function select (data) { - self.trigger('select', { - data: data - }); - } - - params.term = params.term || ''; - - var tokenData = this.tokenizer(params, this.options, createAndSelect); - - if (tokenData.term !== params.term) { - // Replace the search term if we have the search box - if (this.$search.length) { - this.$search.val(tokenData.term); - this.$search.trigger('focus'); - } - - params.term = tokenData.term; - } - - decorated.call(this, params, callback); - }; - - Tokenizer.prototype.tokenizer = function (_, params, options, callback) { - var separators = options.get('tokenSeparators') || []; - var term = params.term; - var i = 0; - - var createTag = this.createTag || function (params) { - return { - id: params.term, - text: params.term - }; - }; - - while (i < term.length) { - var termChar = term[i]; - - if ($.inArray(termChar, separators) === -1) { - i++; - - continue; - } - - var part = term.substr(0, i); - var partParams = $.extend({}, params, { - term: part - }); - - var data = createTag(partParams); - - if (data == null) { - i++; - continue; - } - - callback(data); - - // Reset the term to not include the tokenized portion - term = term.substr(i + 1) || ''; - i = 0; - } - - return { - term: term - }; - }; - - return Tokenizer; -}); - -S2.define('select2/data/minimumInputLength',[ - -], function () { - function MinimumInputLength (decorated, $e, options) { - this.minimumInputLength = options.get('minimumInputLength'); - - decorated.call(this, $e, options); - } - - MinimumInputLength.prototype.query = function (decorated, params, callback) { - params.term = params.term || ''; - - if (params.term.length < this.minimumInputLength) { - this.trigger('results:message', { - message: 'inputTooShort', - args: { - minimum: this.minimumInputLength, - input: params.term, - params: params - } - }); - - return; - } - - decorated.call(this, params, callback); - }; - - return MinimumInputLength; -}); - -S2.define('select2/data/maximumInputLength',[ - -], function () { - function MaximumInputLength (decorated, $e, options) { - this.maximumInputLength = options.get('maximumInputLength'); - - decorated.call(this, $e, options); - } - - MaximumInputLength.prototype.query = function (decorated, params, callback) { - params.term = params.term || ''; - - if (this.maximumInputLength > 0 && - params.term.length > this.maximumInputLength) { - this.trigger('results:message', { - message: 'inputTooLong', - args: { - maximum: this.maximumInputLength, - input: params.term, - params: params - } - }); - - return; - } - - decorated.call(this, params, callback); - }; - - return MaximumInputLength; -}); - -S2.define('select2/data/maximumSelectionLength',[ - -], function (){ - function MaximumSelectionLength (decorated, $e, options) { - this.maximumSelectionLength = options.get('maximumSelectionLength'); - - decorated.call(this, $e, options); - } - - MaximumSelectionLength.prototype.bind = - function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('select', function () { - self._checkIfMaximumSelected(); - }); - }; - - MaximumSelectionLength.prototype.query = - function (decorated, params, callback) { - var self = this; - - this._checkIfMaximumSelected(function () { - decorated.call(self, params, callback); - }); - }; - - MaximumSelectionLength.prototype._checkIfMaximumSelected = - function (_, successCallback) { - var self = this; - - this.current(function (currentData) { - var count = currentData != null ? currentData.length : 0; - if (self.maximumSelectionLength > 0 && - count >= self.maximumSelectionLength) { - self.trigger('results:message', { - message: 'maximumSelected', - args: { - maximum: self.maximumSelectionLength - } - }); - return; - } - - if (successCallback) { - successCallback(); - } - }); - }; - - return MaximumSelectionLength; -}); - -S2.define('select2/dropdown',[ - 'jquery', - './utils' -], function ($, Utils) { - function Dropdown ($element, options) { - this.$element = $element; - this.options = options; - - Dropdown.__super__.constructor.call(this); - } - - Utils.Extend(Dropdown, Utils.Observable); - - Dropdown.prototype.render = function () { - var $dropdown = $( - '<span class="select2-dropdown">' + - '<span class="select2-results"></span>' + - '</span>' - ); - - $dropdown.attr('dir', this.options.get('dir')); - - this.$dropdown = $dropdown; - - return $dropdown; - }; - - Dropdown.prototype.bind = function () { - // Should be implemented in subclasses - }; - - Dropdown.prototype.position = function ($dropdown, $container) { - // Should be implemented in subclasses - }; - - Dropdown.prototype.destroy = function () { - // Remove the dropdown from the DOM - this.$dropdown.remove(); - }; - - return Dropdown; -}); - -S2.define('select2/dropdown/search',[ - 'jquery', - '../utils' -], function ($, Utils) { - function Search () { } - - Search.prototype.render = function (decorated) { - var $rendered = decorated.call(this); - - var $search = $( - '<span class="select2-search select2-search--dropdown">' + - '<input class="select2-search__field" type="search" tabindex="-1"' + - ' autocomplete="off" autocorrect="off" autocapitalize="none"' + - ' spellcheck="false" role="searchbox" aria-autocomplete="list" />' + - '</span>' - ); - - this.$searchContainer = $search; - this.$search = $search.find('input'); - - $rendered.prepend($search); - - return $rendered; - }; - - Search.prototype.bind = function (decorated, container, $container) { - var self = this; - - var resultsId = container.id + '-results'; - - decorated.call(this, container, $container); - - this.$search.on('keydown', function (evt) { - self.trigger('keypress', evt); - - self._keyUpPrevented = evt.isDefaultPrevented(); - }); - - // Workaround for browsers which do not support the `input` event - // This will prevent double-triggering of events for browsers which support - // both the `keyup` and `input` events. - this.$search.on('input', function (evt) { - // Unbind the duplicated `keyup` event - $(this).off('keyup'); - }); - - this.$search.on('keyup input', function (evt) { - self.handleSearch(evt); - }); - - container.on('open', function () { - self.$search.attr('tabindex', 0); - self.$search.attr('aria-controls', resultsId); - - self.$search.trigger('focus'); - - window.setTimeout(function () { - self.$search.trigger('focus'); - }, 0); - }); - - container.on('close', function () { - self.$search.attr('tabindex', -1); - self.$search.removeAttr('aria-controls'); - self.$search.removeAttr('aria-activedescendant'); - - self.$search.val(''); - self.$search.trigger('blur'); - }); - - container.on('focus', function () { - if (!container.isOpen()) { - self.$search.trigger('focus'); - } - }); - - container.on('results:all', function (params) { - if (params.query.term == null || params.query.term === '') { - var showSearch = self.showSearch(params); - - if (showSearch) { - self.$searchContainer.removeClass('select2-search--hide'); - } else { - self.$searchContainer.addClass('select2-search--hide'); - } - } - }); - - container.on('results:focus', function (params) { - if (params.data._resultId) { - self.$search.attr('aria-activedescendant', params.data._resultId); - } else { - self.$search.removeAttr('aria-activedescendant'); - } - }); - }; - - Search.prototype.handleSearch = function (evt) { - if (!this._keyUpPrevented) { - var input = this.$search.val(); - - this.trigger('query', { - term: input - }); - } - - this._keyUpPrevented = false; - }; - - Search.prototype.showSearch = function (_, params) { - return true; - }; - - return Search; -}); - -S2.define('select2/dropdown/hidePlaceholder',[ - -], function () { - function HidePlaceholder (decorated, $element, options, dataAdapter) { - this.placeholder = this.normalizePlaceholder(options.get('placeholder')); - - decorated.call(this, $element, options, dataAdapter); - } - - HidePlaceholder.prototype.append = function (decorated, data) { - data.results = this.removePlaceholder(data.results); - - decorated.call(this, data); - }; - - HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { - if (typeof placeholder === 'string') { - placeholder = { - id: '', - text: placeholder - }; - } - - return placeholder; - }; - - HidePlaceholder.prototype.removePlaceholder = function (_, data) { - var modifiedData = data.slice(0); - - for (var d = data.length - 1; d >= 0; d--) { - var item = data[d]; - - if (this.placeholder.id === item.id) { - modifiedData.splice(d, 1); - } - } - - return modifiedData; - }; - - return HidePlaceholder; -}); - -S2.define('select2/dropdown/infiniteScroll',[ - 'jquery' -], function ($) { - function InfiniteScroll (decorated, $element, options, dataAdapter) { - this.lastParams = {}; - - decorated.call(this, $element, options, dataAdapter); - - this.$loadingMore = this.createLoadingMore(); - this.loading = false; - } - - InfiniteScroll.prototype.append = function (decorated, data) { - this.$loadingMore.remove(); - this.loading = false; - - decorated.call(this, data); - - if (this.showLoadingMore(data)) { - this.$results.append(this.$loadingMore); - this.loadMoreIfNeeded(); - } - }; - - InfiniteScroll.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('query', function (params) { - self.lastParams = params; - self.loading = true; - }); - - container.on('query:append', function (params) { - self.lastParams = params; - self.loading = true; - }); - - this.$results.on('scroll', this.loadMoreIfNeeded.bind(this)); - }; - - InfiniteScroll.prototype.loadMoreIfNeeded = function () { - var isLoadMoreVisible = $.contains( - document.documentElement, - this.$loadingMore[0] - ); - - if (this.loading || !isLoadMoreVisible) { - return; - } - - var currentOffset = this.$results.offset().top + - this.$results.outerHeight(false); - var loadingMoreOffset = this.$loadingMore.offset().top + - this.$loadingMore.outerHeight(false); - - if (currentOffset + 50 >= loadingMoreOffset) { - this.loadMore(); - } - }; - - InfiniteScroll.prototype.loadMore = function () { - this.loading = true; - - var params = $.extend({}, {page: 1}, this.lastParams); - - params.page++; - - this.trigger('query:append', params); - }; - - InfiniteScroll.prototype.showLoadingMore = function (_, data) { - return data.pagination && data.pagination.more; - }; - - InfiniteScroll.prototype.createLoadingMore = function () { - var $option = $( - '<li ' + - 'class="select2-results__option select2-results__option--load-more"' + - 'role="option" aria-disabled="true"></li>' - ); - - var message = this.options.get('translations').get('loadingMore'); - - $option.html(message(this.lastParams)); - - return $option; - }; - - return InfiniteScroll; -}); - -S2.define('select2/dropdown/attachBody',[ - 'jquery', - '../utils' -], function ($, Utils) { - function AttachBody (decorated, $element, options) { - this.$dropdownParent = $(options.get('dropdownParent') || document.body); - - decorated.call(this, $element, options); - } - - AttachBody.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('open', function () { - self._showDropdown(); - self._attachPositioningHandler(container); - - // Must bind after the results handlers to ensure correct sizing - self._bindContainerResultHandlers(container); - }); - - container.on('close', function () { - self._hideDropdown(); - self._detachPositioningHandler(container); - }); - - this.$dropdownContainer.on('mousedown', function (evt) { - evt.stopPropagation(); - }); - }; - - AttachBody.prototype.destroy = function (decorated) { - decorated.call(this); - - this.$dropdownContainer.remove(); - }; - - AttachBody.prototype.position = function (decorated, $dropdown, $container) { - // Clone all of the container classes - $dropdown.attr('class', $container.attr('class')); - - $dropdown.removeClass('select2'); - $dropdown.addClass('select2-container--open'); - - $dropdown.css({ - position: 'absolute', - top: -999999 - }); - - this.$container = $container; - }; - - AttachBody.prototype.render = function (decorated) { - var $container = $('<span></span>'); - - var $dropdown = decorated.call(this); - $container.append($dropdown); - - this.$dropdownContainer = $container; - - return $container; - }; - - AttachBody.prototype._hideDropdown = function (decorated) { - this.$dropdownContainer.detach(); - }; - - AttachBody.prototype._bindContainerResultHandlers = - function (decorated, container) { - - // These should only be bound once - if (this._containerResultsHandlersBound) { - return; - } - - var self = this; - - container.on('results:all', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - - container.on('results:append', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - - container.on('results:message', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - - container.on('select', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - - container.on('unselect', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - - this._containerResultsHandlersBound = true; - }; - - AttachBody.prototype._attachPositioningHandler = - function (decorated, container) { - var self = this; - - var scrollEvent = 'scroll.select2.' + container.id; - var resizeEvent = 'resize.select2.' + container.id; - var orientationEvent = 'orientationchange.select2.' + container.id; - - var $watchers = this.$container.parents().filter(Utils.hasScroll); - $watchers.each(function () { - Utils.StoreData(this, 'select2-scroll-position', { - x: $(this).scrollLeft(), - y: $(this).scrollTop() - }); - }); - - $watchers.on(scrollEvent, function (ev) { - var position = Utils.GetData(this, 'select2-scroll-position'); - $(this).scrollTop(position.y); - }); - - $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, - function (e) { - self._positionDropdown(); - self._resizeDropdown(); - }); - }; - - AttachBody.prototype._detachPositioningHandler = - function (decorated, container) { - var scrollEvent = 'scroll.select2.' + container.id; - var resizeEvent = 'resize.select2.' + container.id; - var orientationEvent = 'orientationchange.select2.' + container.id; - - var $watchers = this.$container.parents().filter(Utils.hasScroll); - $watchers.off(scrollEvent); - - $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); - }; - - AttachBody.prototype._positionDropdown = function () { - var $window = $(window); - - var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); - var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); - - var newDirection = null; - - var offset = this.$container.offset(); - - offset.bottom = offset.top + this.$container.outerHeight(false); - - var container = { - height: this.$container.outerHeight(false) - }; - - container.top = offset.top; - container.bottom = offset.top + container.height; - - var dropdown = { - height: this.$dropdown.outerHeight(false) - }; - - var viewport = { - top: $window.scrollTop(), - bottom: $window.scrollTop() + $window.height() - }; - - var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); - var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); - - var css = { - left: offset.left, - top: container.bottom - }; - - // Determine what the parent element is to use for calculating the offset - var $offsetParent = this.$dropdownParent; - - // For statically positioned elements, we need to get the element - // that is determining the offset - if ($offsetParent.css('position') === 'static') { - $offsetParent = $offsetParent.offsetParent(); - } - - var parentOffset = { - top: 0, - left: 0 - }; - - if ( - $.contains(document.body, $offsetParent[0]) || - $offsetParent[0].isConnected - ) { - parentOffset = $offsetParent.offset(); - } - - css.top -= parentOffset.top; - css.left -= parentOffset.left; - - if (!isCurrentlyAbove && !isCurrentlyBelow) { - newDirection = 'below'; - } - - if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { - newDirection = 'above'; - } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { - newDirection = 'below'; - } - - if (newDirection == 'above' || - (isCurrentlyAbove && newDirection !== 'below')) { - css.top = container.top - parentOffset.top - dropdown.height; - } - - if (newDirection != null) { - this.$dropdown - .removeClass('select2-dropdown--below select2-dropdown--above') - .addClass('select2-dropdown--' + newDirection); - this.$container - .removeClass('select2-container--below select2-container--above') - .addClass('select2-container--' + newDirection); - } - - this.$dropdownContainer.css(css); - }; - - AttachBody.prototype._resizeDropdown = function () { - var css = { - width: this.$container.outerWidth(false) + 'px' - }; - - if (this.options.get('dropdownAutoWidth')) { - css.minWidth = css.width; - css.position = 'relative'; - css.width = 'auto'; - } - - this.$dropdown.css(css); - }; - - AttachBody.prototype._showDropdown = function (decorated) { - this.$dropdownContainer.appendTo(this.$dropdownParent); - - this._positionDropdown(); - this._resizeDropdown(); - }; - - return AttachBody; -}); - -S2.define('select2/dropdown/minimumResultsForSearch',[ - -], function () { - function countResults (data) { - var count = 0; - - for (var d = 0; d < data.length; d++) { - var item = data[d]; - - if (item.children) { - count += countResults(item.children); - } else { - count++; - } - } - - return count; - } - - function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { - this.minimumResultsForSearch = options.get('minimumResultsForSearch'); - - if (this.minimumResultsForSearch < 0) { - this.minimumResultsForSearch = Infinity; - } - - decorated.call(this, $element, options, dataAdapter); - } - - MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { - if (countResults(params.data.results) < this.minimumResultsForSearch) { - return false; - } - - return decorated.call(this, params); - }; - - return MinimumResultsForSearch; -}); - -S2.define('select2/dropdown/selectOnClose',[ - '../utils' -], function (Utils) { - function SelectOnClose () { } - - SelectOnClose.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('close', function (params) { - self._handleSelectOnClose(params); - }); - }; - - SelectOnClose.prototype._handleSelectOnClose = function (_, params) { - if (params && params.originalSelect2Event != null) { - var event = params.originalSelect2Event; - - // Don't select an item if the close event was triggered from a select or - // unselect event - if (event._type === 'select' || event._type === 'unselect') { - return; - } - } - - var $highlightedResults = this.getHighlightedResults(); - - // Only select highlighted results - if ($highlightedResults.length < 1) { - return; - } - - var data = Utils.GetData($highlightedResults[0], 'data'); - - // Don't re-select already selected resulte - if ( - (data.element != null && data.element.selected) || - (data.element == null && data.selected) - ) { - return; - } - - this.trigger('select', { - data: data - }); - }; - - return SelectOnClose; -}); - -S2.define('select2/dropdown/closeOnSelect',[ - -], function () { - function CloseOnSelect () { } - - CloseOnSelect.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('select', function (evt) { - self._selectTriggered(evt); - }); - - container.on('unselect', function (evt) { - self._selectTriggered(evt); - }); - }; - - CloseOnSelect.prototype._selectTriggered = function (_, evt) { - var originalEvent = evt.originalEvent; - - // Don't close if the control key is being held - if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) { - return; - } - - this.trigger('close', { - originalEvent: originalEvent, - originalSelect2Event: evt - }); - }; - - return CloseOnSelect; -}); - -S2.define('select2/i18n/en',[],function () { - // English - return { - errorLoading: function () { - return 'The results could not be loaded.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Please delete ' + overChars + ' character'; - - if (overChars != 1) { - message += 's'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Please enter ' + remainingChars + ' or more characters'; - - return message; - }, - loadingMore: function () { - return 'Loading more results…'; - }, - maximumSelected: function (args) { - var message = 'You can only select ' + args.maximum + ' item'; - - if (args.maximum != 1) { - message += 's'; - } - - return message; - }, - noResults: function () { - return 'No results found'; - }, - searching: function () { - return 'Searching…'; - }, - removeAllItems: function () { - return 'Remove all items'; - } - }; -}); - -S2.define('select2/defaults',[ - 'jquery', - 'require', - - './results', - - './selection/single', - './selection/multiple', - './selection/placeholder', - './selection/allowClear', - './selection/search', - './selection/eventRelay', - - './utils', - './translation', - './diacritics', - - './data/select', - './data/array', - './data/ajax', - './data/tags', - './data/tokenizer', - './data/minimumInputLength', - './data/maximumInputLength', - './data/maximumSelectionLength', - - './dropdown', - './dropdown/search', - './dropdown/hidePlaceholder', - './dropdown/infiniteScroll', - './dropdown/attachBody', - './dropdown/minimumResultsForSearch', - './dropdown/selectOnClose', - './dropdown/closeOnSelect', - - './i18n/en' -], function ($, require, - - ResultsList, - - SingleSelection, MultipleSelection, Placeholder, AllowClear, - SelectionSearch, EventRelay, - - Utils, Translation, DIACRITICS, - - SelectData, ArrayData, AjaxData, Tags, Tokenizer, - MinimumInputLength, MaximumInputLength, MaximumSelectionLength, - - Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, - AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, - - EnglishTranslation) { - function Defaults () { - this.reset(); - } - - Defaults.prototype.apply = function (options) { - options = $.extend(true, {}, this.defaults, options); - - if (options.dataAdapter == null) { - if (options.ajax != null) { - options.dataAdapter = AjaxData; - } else if (options.data != null) { - options.dataAdapter = ArrayData; - } else { - options.dataAdapter = SelectData; - } - - if (options.minimumInputLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MinimumInputLength - ); - } - - if (options.maximumInputLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MaximumInputLength - ); - } - - if (options.maximumSelectionLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MaximumSelectionLength - ); - } - - if (options.tags) { - options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); - } - - if (options.tokenSeparators != null || options.tokenizer != null) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - Tokenizer - ); - } - - if (options.query != null) { - var Query = require(options.amdBase + 'compat/query'); - - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - Query - ); - } - - if (options.initSelection != null) { - var InitSelection = require(options.amdBase + 'compat/initSelection'); - - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - InitSelection - ); - } - } - - if (options.resultsAdapter == null) { - options.resultsAdapter = ResultsList; - - if (options.ajax != null) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - InfiniteScroll - ); - } - - if (options.placeholder != null) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - HidePlaceholder - ); - } - - if (options.selectOnClose) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - SelectOnClose - ); - } - } - - if (options.dropdownAdapter == null) { - if (options.multiple) { - options.dropdownAdapter = Dropdown; - } else { - var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); - - options.dropdownAdapter = SearchableDropdown; - } - - if (options.minimumResultsForSearch !== 0) { - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - MinimumResultsForSearch - ); - } - - if (options.closeOnSelect) { - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - CloseOnSelect - ); - } - - if ( - options.dropdownCssClass != null || - options.dropdownCss != null || - options.adaptDropdownCssClass != null - ) { - var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); - - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - DropdownCSS - ); - } - - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - AttachBody - ); - } - - if (options.selectionAdapter == null) { - if (options.multiple) { - options.selectionAdapter = MultipleSelection; - } else { - options.selectionAdapter = SingleSelection; - } - - // Add the placeholder mixin if a placeholder was specified - if (options.placeholder != null) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - Placeholder - ); - } - - if (options.allowClear) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - AllowClear - ); - } - - if (options.multiple) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - SelectionSearch - ); - } - - if ( - options.containerCssClass != null || - options.containerCss != null || - options.adaptContainerCssClass != null - ) { - var ContainerCSS = require(options.amdBase + 'compat/containerCss'); - - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - ContainerCSS - ); - } - - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - EventRelay - ); - } - - // If the defaults were not previously applied from an element, it is - // possible for the language option to have not been resolved - options.language = this._resolveLanguage(options.language); - - // Always fall back to English since it will always be complete - options.language.push('en'); - - var uniqueLanguages = []; - - for (var l = 0; l < options.language.length; l++) { - var language = options.language[l]; - - if (uniqueLanguages.indexOf(language) === -1) { - uniqueLanguages.push(language); - } - } - - options.language = uniqueLanguages; - - options.translations = this._processTranslations( - options.language, - options.debug - ); - - return options; - }; - - Defaults.prototype.reset = function () { - function stripDiacritics (text) { - // Used 'uni range + named function' from http://jsperf.com/diacritics/18 - function match(a) { - return DIACRITICS[a] || a; - } - - return text.replace(/[^\u0000-\u007E]/g, match); - } - - function matcher (params, data) { - // Always return the object if there is nothing to compare - if ($.trim(params.term) === '') { - return data; - } - - // Do a recursive check for options with children - if (data.children && data.children.length > 0) { - // Clone the data object if there are children - // This is required as we modify the object to remove any non-matches - var match = $.extend(true, {}, data); - - // Check each child of the option - for (var c = data.children.length - 1; c >= 0; c--) { - var child = data.children[c]; - - var matches = matcher(params, child); - - // If there wasn't a match, remove the object in the array - if (matches == null) { - match.children.splice(c, 1); - } - } - - // If any children matched, return the new object - if (match.children.length > 0) { - return match; - } - - // If there were no matching children, check just the plain object - return matcher(params, match); - } - - var original = stripDiacritics(data.text).toUpperCase(); - var term = stripDiacritics(params.term).toUpperCase(); - - // Check if the text contains the term - if (original.indexOf(term) > -1) { - return data; - } - - // If it doesn't contain the term, don't return anything - return null; - } - - this.defaults = { - amdBase: './', - amdLanguageBase: './i18n/', - closeOnSelect: true, - debug: false, - dropdownAutoWidth: false, - escapeMarkup: Utils.escapeMarkup, - language: {}, - matcher: matcher, - minimumInputLength: 0, - maximumInputLength: 0, - maximumSelectionLength: 0, - minimumResultsForSearch: 0, - selectOnClose: false, - scrollAfterSelect: false, - sorter: function (data) { - return data; - }, - templateResult: function (result) { - return result.text; - }, - templateSelection: function (selection) { - return selection.text; - }, - theme: 'default', - width: 'resolve' - }; - }; - - Defaults.prototype.applyFromElement = function (options, $element) { - var optionLanguage = options.language; - var defaultLanguage = this.defaults.language; - var elementLanguage = $element.prop('lang'); - var parentLanguage = $element.closest('[lang]').prop('lang'); - - var languages = Array.prototype.concat.call( - this._resolveLanguage(elementLanguage), - this._resolveLanguage(optionLanguage), - this._resolveLanguage(defaultLanguage), - this._resolveLanguage(parentLanguage) - ); - - options.language = languages; - - return options; - }; - - Defaults.prototype._resolveLanguage = function (language) { - if (!language) { - return []; - } - - if ($.isEmptyObject(language)) { - return []; - } - - if ($.isPlainObject(language)) { - return [language]; - } - - var languages; - - if (!$.isArray(language)) { - languages = [language]; - } else { - languages = language; - } - - var resolvedLanguages = []; - - for (var l = 0; l < languages.length; l++) { - resolvedLanguages.push(languages[l]); - - if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) { - // Extract the region information if it is included - var languageParts = languages[l].split('-'); - var baseLanguage = languageParts[0]; - - resolvedLanguages.push(baseLanguage); - } - } - - return resolvedLanguages; - }; - - Defaults.prototype._processTranslations = function (languages, debug) { - var translations = new Translation(); - - for (var l = 0; l < languages.length; l++) { - var languageData = new Translation(); - - var language = languages[l]; - - if (typeof language === 'string') { - try { - // Try to load it with the original name - languageData = Translation.loadPath(language); - } catch (e) { - try { - // If we couldn't load it, check if it wasn't the full path - language = this.defaults.amdLanguageBase + language; - languageData = Translation.loadPath(language); - } catch (ex) { - // The translation could not be loaded at all. Sometimes this is - // because of a configuration problem, other times this can be - // because of how Select2 helps load all possible translation files - if (debug && window.console && console.warn) { - console.warn( - 'Select2: The language file for "' + language + '" could ' + - 'not be automatically loaded. A fallback will be used instead.' - ); - } - } - } - } else if ($.isPlainObject(language)) { - languageData = new Translation(language); - } else { - languageData = language; - } - - translations.extend(languageData); - } - - return translations; - }; - - Defaults.prototype.set = function (key, value) { - var camelKey = $.camelCase(key); - - var data = {}; - data[camelKey] = value; - - var convertedData = Utils._convertData(data); - - $.extend(true, this.defaults, convertedData); - }; - - var defaults = new Defaults(); - - return defaults; -}); - -S2.define('select2/options',[ - 'require', - 'jquery', - './defaults', - './utils' -], function (require, $, Defaults, Utils) { - function Options (options, $element) { - this.options = options; - - if ($element != null) { - this.fromElement($element); - } - - if ($element != null) { - this.options = Defaults.applyFromElement(this.options, $element); - } - - this.options = Defaults.apply(this.options); - - if ($element && $element.is('input')) { - var InputCompat = require(this.get('amdBase') + 'compat/inputData'); - - this.options.dataAdapter = Utils.Decorate( - this.options.dataAdapter, - InputCompat - ); - } - } - - Options.prototype.fromElement = function ($e) { - var excludedData = ['select2']; - - if (this.options.multiple == null) { - this.options.multiple = $e.prop('multiple'); - } - - if (this.options.disabled == null) { - this.options.disabled = $e.prop('disabled'); - } - - if (this.options.dir == null) { - if ($e.prop('dir')) { - this.options.dir = $e.prop('dir'); - } else if ($e.closest('[dir]').prop('dir')) { - this.options.dir = $e.closest('[dir]').prop('dir'); - } else { - this.options.dir = 'ltr'; - } - } - - $e.prop('disabled', this.options.disabled); - $e.prop('multiple', this.options.multiple); - - if (Utils.GetData($e[0], 'select2Tags')) { - if (this.options.debug && window.console && console.warn) { - console.warn( - 'Select2: The `data-select2-tags` attribute has been changed to ' + - 'use the `data-data` and `data-tags="true"` attributes and will be ' + - 'removed in future versions of Select2.' - ); - } - - Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags')); - Utils.StoreData($e[0], 'tags', true); - } - - if (Utils.GetData($e[0], 'ajaxUrl')) { - if (this.options.debug && window.console && console.warn) { - console.warn( - 'Select2: The `data-ajax-url` attribute has been changed to ' + - '`data-ajax--url` and support for the old attribute will be removed' + - ' in future versions of Select2.' - ); - } - - $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl')); - Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl')); - } - - var dataset = {}; - - function upperCaseLetter(_, letter) { - return letter.toUpperCase(); - } - - // Pre-load all of the attributes which are prefixed with `data-` - for (var attr = 0; attr < $e[0].attributes.length; attr++) { - var attributeName = $e[0].attributes[attr].name; - var prefix = 'data-'; - - if (attributeName.substr(0, prefix.length) == prefix) { - // Get the contents of the attribute after `data-` - var dataName = attributeName.substring(prefix.length); - - // Get the data contents from the consistent source - // This is more than likely the jQuery data helper - var dataValue = Utils.GetData($e[0], dataName); - - // camelCase the attribute name to match the spec - var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter); - - // Store the data attribute contents into the dataset since - dataset[camelDataName] = dataValue; - } - } - - // Prefer the element's `dataset` attribute if it exists - // jQuery 1.x does not correctly handle data attributes with multiple dashes - if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { - dataset = $.extend(true, {}, $e[0].dataset, dataset); - } - - // Prefer our internal data cache if it exists - var data = $.extend(true, {}, Utils.GetData($e[0]), dataset); - - data = Utils._convertData(data); - - for (var key in data) { - if ($.inArray(key, excludedData) > -1) { - continue; - } - - if ($.isPlainObject(this.options[key])) { - $.extend(this.options[key], data[key]); - } else { - this.options[key] = data[key]; - } - } - - return this; - }; - - Options.prototype.get = function (key) { - return this.options[key]; - }; - - Options.prototype.set = function (key, val) { - this.options[key] = val; - }; - - return Options; -}); - -S2.define('select2/core',[ - 'jquery', - './options', - './utils', - './keys' -], function ($, Options, Utils, KEYS) { - var Select2 = function ($element, options) { - if (Utils.GetData($element[0], 'select2') != null) { - Utils.GetData($element[0], 'select2').destroy(); - } - - this.$element = $element; - - this.id = this._generateId($element); - - options = options || {}; - - this.options = new Options(options, $element); - - Select2.__super__.constructor.call(this); - - // Set up the tabindex - - var tabindex = $element.attr('tabindex') || 0; - Utils.StoreData($element[0], 'old-tabindex', tabindex); - $element.attr('tabindex', '-1'); - - // Set up containers and adapters - - var DataAdapter = this.options.get('dataAdapter'); - this.dataAdapter = new DataAdapter($element, this.options); - - var $container = this.render(); - - this._placeContainer($container); - - var SelectionAdapter = this.options.get('selectionAdapter'); - this.selection = new SelectionAdapter($element, this.options); - this.$selection = this.selection.render(); - - this.selection.position(this.$selection, $container); - - var DropdownAdapter = this.options.get('dropdownAdapter'); - this.dropdown = new DropdownAdapter($element, this.options); - this.$dropdown = this.dropdown.render(); - - this.dropdown.position(this.$dropdown, $container); - - var ResultsAdapter = this.options.get('resultsAdapter'); - this.results = new ResultsAdapter($element, this.options, this.dataAdapter); - this.$results = this.results.render(); - - this.results.position(this.$results, this.$dropdown); - - // Bind events - - var self = this; - - // Bind the container to all of the adapters - this._bindAdapters(); - - // Register any DOM event handlers - this._registerDomEvents(); - - // Register any internal event handlers - this._registerDataEvents(); - this._registerSelectionEvents(); - this._registerDropdownEvents(); - this._registerResultsEvents(); - this._registerEvents(); - - // Set the initial state - this.dataAdapter.current(function (initialData) { - self.trigger('selection:update', { - data: initialData - }); - }); - - // Hide the original select - $element.addClass('select2-hidden-accessible'); - $element.attr('aria-hidden', 'true'); - - // Synchronize any monitored attributes - this._syncAttributes(); - - Utils.StoreData($element[0], 'select2', this); - - // Ensure backwards compatibility with $element.data('select2'). - $element.data('select2', this); - }; - - Utils.Extend(Select2, Utils.Observable); - - Select2.prototype._generateId = function ($element) { - var id = ''; - - if ($element.attr('id') != null) { - id = $element.attr('id'); - } else if ($element.attr('name') != null) { - id = $element.attr('name') + '-' + Utils.generateChars(2); - } else { - id = Utils.generateChars(4); - } - - id = id.replace(/(:|\.|\[|\]|,)/g, ''); - id = 'select2-' + id; - - return id; - }; - - Select2.prototype._placeContainer = function ($container) { - $container.insertAfter(this.$element); - - var width = this._resolveWidth(this.$element, this.options.get('width')); - - if (width != null) { - $container.css('width', width); - } - }; - - Select2.prototype._resolveWidth = function ($element, method) { - var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; - - if (method == 'resolve') { - var styleWidth = this._resolveWidth($element, 'style'); - - if (styleWidth != null) { - return styleWidth; - } - - return this._resolveWidth($element, 'element'); - } - - if (method == 'element') { - var elementWidth = $element.outerWidth(false); - - if (elementWidth <= 0) { - return 'auto'; - } - - return elementWidth + 'px'; - } - - if (method == 'style') { - var style = $element.attr('style'); - - if (typeof(style) !== 'string') { - return null; - } - - var attrs = style.split(';'); - - for (var i = 0, l = attrs.length; i < l; i = i + 1) { - var attr = attrs[i].replace(/\s/g, ''); - var matches = attr.match(WIDTH); - - if (matches !== null && matches.length >= 1) { - return matches[1]; - } - } - - return null; - } - - if (method == 'computedstyle') { - var computedStyle = window.getComputedStyle($element[0]); - - return computedStyle.width; - } - - return method; - }; - - Select2.prototype._bindAdapters = function () { - this.dataAdapter.bind(this, this.$container); - this.selection.bind(this, this.$container); - - this.dropdown.bind(this, this.$container); - this.results.bind(this, this.$container); - }; - - Select2.prototype._registerDomEvents = function () { - var self = this; - - this.$element.on('change.select2', function () { - self.dataAdapter.current(function (data) { - self.trigger('selection:update', { - data: data - }); - }); - }); - - this.$element.on('focus.select2', function (evt) { - self.trigger('focus', evt); - }); - - this._syncA = Utils.bind(this._syncAttributes, this); - this._syncS = Utils.bind(this._syncSubtree, this); - - if (this.$element[0].attachEvent) { - this.$element[0].attachEvent('onpropertychange', this._syncA); - } - - var observer = window.MutationObserver || - window.WebKitMutationObserver || - window.MozMutationObserver - ; - - if (observer != null) { - this._observer = new observer(function (mutations) { - self._syncA(); - self._syncS(null, mutations); - }); - this._observer.observe(this.$element[0], { - attributes: true, - childList: true, - subtree: false - }); - } else if (this.$element[0].addEventListener) { - this.$element[0].addEventListener( - 'DOMAttrModified', - self._syncA, - false - ); - this.$element[0].addEventListener( - 'DOMNodeInserted', - self._syncS, - false - ); - this.$element[0].addEventListener( - 'DOMNodeRemoved', - self._syncS, - false - ); - } - }; - - Select2.prototype._registerDataEvents = function () { - var self = this; - - this.dataAdapter.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerSelectionEvents = function () { - var self = this; - var nonRelayEvents = ['toggle', 'focus']; - - this.selection.on('toggle', function () { - self.toggleDropdown(); - }); - - this.selection.on('focus', function (params) { - self.focus(params); - }); - - this.selection.on('*', function (name, params) { - if ($.inArray(name, nonRelayEvents) !== -1) { - return; - } - - self.trigger(name, params); - }); - }; - - Select2.prototype._registerDropdownEvents = function () { - var self = this; - - this.dropdown.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerResultsEvents = function () { - var self = this; - - this.results.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerEvents = function () { - var self = this; - - this.on('open', function () { - self.$container.addClass('select2-container--open'); - }); - - this.on('close', function () { - self.$container.removeClass('select2-container--open'); - }); - - this.on('enable', function () { - self.$container.removeClass('select2-container--disabled'); - }); - - this.on('disable', function () { - self.$container.addClass('select2-container--disabled'); - }); - - this.on('blur', function () { - self.$container.removeClass('select2-container--focus'); - }); - - this.on('query', function (params) { - if (!self.isOpen()) { - self.trigger('open', {}); - } - - this.dataAdapter.query(params, function (data) { - self.trigger('results:all', { - data: data, - query: params - }); - }); - }); - - this.on('query:append', function (params) { - this.dataAdapter.query(params, function (data) { - self.trigger('results:append', { - data: data, - query: params - }); - }); - }); - - this.on('keypress', function (evt) { - var key = evt.which; - - if (self.isOpen()) { - if (key === KEYS.ESC || key === KEYS.TAB || - (key === KEYS.UP && evt.altKey)) { - self.close(evt); - - evt.preventDefault(); - } else if (key === KEYS.ENTER) { - self.trigger('results:select', {}); - - evt.preventDefault(); - } else if ((key === KEYS.SPACE && evt.ctrlKey)) { - self.trigger('results:toggle', {}); - - evt.preventDefault(); - } else if (key === KEYS.UP) { - self.trigger('results:previous', {}); - - evt.preventDefault(); - } else if (key === KEYS.DOWN) { - self.trigger('results:next', {}); - - evt.preventDefault(); - } - } else { - if (key === KEYS.ENTER || key === KEYS.SPACE || - (key === KEYS.DOWN && evt.altKey)) { - self.open(); - - evt.preventDefault(); - } - } - }); - }; - - Select2.prototype._syncAttributes = function () { - this.options.set('disabled', this.$element.prop('disabled')); - - if (this.isDisabled()) { - if (this.isOpen()) { - this.close(); - } - - this.trigger('disable', {}); - } else { - this.trigger('enable', {}); - } - }; - - Select2.prototype._isChangeMutation = function (evt, mutations) { - var changed = false; - var self = this; - - // Ignore any mutation events raised for elements that aren't options or - // optgroups. This handles the case when the select element is destroyed - if ( - evt && evt.target && ( - evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' - ) - ) { - return; - } - - if (!mutations) { - // If mutation events aren't supported, then we can only assume that the - // change affected the selections - changed = true; - } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { - for (var n = 0; n < mutations.addedNodes.length; n++) { - var node = mutations.addedNodes[n]; - - if (node.selected) { - changed = true; - } - } - } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { - changed = true; - } else if ($.isArray(mutations)) { - $.each(mutations, function(evt, mutation) { - if (self._isChangeMutation(evt, mutation)) { - // We've found a change mutation. - // Let's escape from the loop and continue - changed = true; - return false; - } - }); - } - return changed; - }; - - Select2.prototype._syncSubtree = function (evt, mutations) { - var changed = this._isChangeMutation(evt, mutations); - var self = this; - - // Only re-pull the data if we think there is a change - if (changed) { - this.dataAdapter.current(function (currentData) { - self.trigger('selection:update', { - data: currentData - }); - }); - } - }; - - /** - * Override the trigger method to automatically trigger pre-events when - * there are events that can be prevented. - */ - Select2.prototype.trigger = function (name, args) { - var actualTrigger = Select2.__super__.trigger; - var preTriggerMap = { - 'open': 'opening', - 'close': 'closing', - 'select': 'selecting', - 'unselect': 'unselecting', - 'clear': 'clearing' - }; - - if (args === undefined) { - args = {}; - } - - if (name in preTriggerMap) { - var preTriggerName = preTriggerMap[name]; - var preTriggerArgs = { - prevented: false, - name: name, - args: args - }; - - actualTrigger.call(this, preTriggerName, preTriggerArgs); - - if (preTriggerArgs.prevented) { - args.prevented = true; - - return; - } - } - - actualTrigger.call(this, name, args); - }; - - Select2.prototype.toggleDropdown = function () { - if (this.isDisabled()) { - return; - } - - if (this.isOpen()) { - this.close(); - } else { - this.open(); - } - }; - - Select2.prototype.open = function () { - if (this.isOpen()) { - return; - } - - if (this.isDisabled()) { - return; - } - - this.trigger('query', {}); - }; - - Select2.prototype.close = function (evt) { - if (!this.isOpen()) { - return; - } - - this.trigger('close', { originalEvent : evt }); - }; - - /** - * Helper method to abstract the "enabled" (not "disabled") state of this - * object. - * - * @return {true} if the instance is not disabled. - * @return {false} if the instance is disabled. - */ - Select2.prototype.isEnabled = function () { - return !this.isDisabled(); - }; - - /** - * Helper method to abstract the "disabled" state of this object. - * - * @return {true} if the disabled option is true. - * @return {false} if the disabled option is false. - */ - Select2.prototype.isDisabled = function () { - return this.options.get('disabled'); - }; - - Select2.prototype.isOpen = function () { - return this.$container.hasClass('select2-container--open'); - }; - - Select2.prototype.hasFocus = function () { - return this.$container.hasClass('select2-container--focus'); - }; - - Select2.prototype.focus = function (data) { - // No need to re-trigger focus events if we are already focused - if (this.hasFocus()) { - return; - } - - this.$container.addClass('select2-container--focus'); - this.trigger('focus', {}); - }; - - Select2.prototype.enable = function (args) { - if (this.options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `select2("enable")` method has been deprecated and will' + - ' be removed in later Select2 versions. Use $element.prop("disabled")' + - ' instead.' - ); - } - - if (args == null || args.length === 0) { - args = [true]; - } - - var disabled = !args[0]; - - this.$element.prop('disabled', disabled); - }; - - Select2.prototype.data = function () { - if (this.options.get('debug') && - arguments.length > 0 && window.console && console.warn) { - console.warn( - 'Select2: Data can no longer be set using `select2("data")`. You ' + - 'should consider setting the value instead using `$element.val()`.' - ); - } - - var data = []; - - this.dataAdapter.current(function (currentData) { - data = currentData; - }); - - return data; - }; - - Select2.prototype.val = function (args) { - if (this.options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `select2("val")` method has been deprecated and will be' + - ' removed in later Select2 versions. Use $element.val() instead.' - ); - } - - if (args == null || args.length === 0) { - return this.$element.val(); - } - - var newVal = args[0]; - - if ($.isArray(newVal)) { - newVal = $.map(newVal, function (obj) { - return obj.toString(); - }); - } - - this.$element.val(newVal).trigger('input').trigger('change'); - }; - - Select2.prototype.destroy = function () { - this.$container.remove(); - - if (this.$element[0].detachEvent) { - this.$element[0].detachEvent('onpropertychange', this._syncA); - } - - if (this._observer != null) { - this._observer.disconnect(); - this._observer = null; - } else if (this.$element[0].removeEventListener) { - this.$element[0] - .removeEventListener('DOMAttrModified', this._syncA, false); - this.$element[0] - .removeEventListener('DOMNodeInserted', this._syncS, false); - this.$element[0] - .removeEventListener('DOMNodeRemoved', this._syncS, false); - } - - this._syncA = null; - this._syncS = null; - - this.$element.off('.select2'); - this.$element.attr('tabindex', - Utils.GetData(this.$element[0], 'old-tabindex')); - - this.$element.removeClass('select2-hidden-accessible'); - this.$element.attr('aria-hidden', 'false'); - Utils.RemoveData(this.$element[0]); - this.$element.removeData('select2'); - - this.dataAdapter.destroy(); - this.selection.destroy(); - this.dropdown.destroy(); - this.results.destroy(); - - this.dataAdapter = null; - this.selection = null; - this.dropdown = null; - this.results = null; - }; - - Select2.prototype.render = function () { - var $container = $( - '<span class="select2 select2-container">' + - '<span class="selection"></span>' + - '<span class="dropdown-wrapper" aria-hidden="true"></span>' + - '</span>' - ); - - $container.attr('dir', this.options.get('dir')); - - this.$container = $container; - - this.$container.addClass('select2-container--' + this.options.get('theme')); - - Utils.StoreData($container[0], 'element', this.$element); - - return $container; - }; - - return Select2; -}); - -S2.define('select2/compat/utils',[ - 'jquery' -], function ($) { - function syncCssClasses ($dest, $src, adapter) { - var classes, replacements = [], adapted; - - classes = $.trim($dest.attr('class')); - - if (classes) { - classes = '' + classes; // for IE which returns object - - $(classes.split(/\s+/)).each(function () { - // Save all Select2 classes - if (this.indexOf('select2-') === 0) { - replacements.push(this); - } - }); - } - - classes = $.trim($src.attr('class')); - - if (classes) { - classes = '' + classes; // for IE which returns object - - $(classes.split(/\s+/)).each(function () { - // Only adapt non-Select2 classes - if (this.indexOf('select2-') !== 0) { - adapted = adapter(this); - - if (adapted != null) { - replacements.push(adapted); - } - } - }); - } - - $dest.attr('class', replacements.join(' ')); - } - - return { - syncCssClasses: syncCssClasses - }; -}); - -S2.define('select2/compat/containerCss',[ - 'jquery', - './utils' -], function ($, CompatUtils) { - // No-op CSS adapter that discards all classes by default - function _containerAdapter (clazz) { - return null; - } - - function ContainerCSS () { } - - ContainerCSS.prototype.render = function (decorated) { - var $container = decorated.call(this); - - var containerCssClass = this.options.get('containerCssClass') || ''; - - if ($.isFunction(containerCssClass)) { - containerCssClass = containerCssClass(this.$element); - } - - var containerCssAdapter = this.options.get('adaptContainerCssClass'); - containerCssAdapter = containerCssAdapter || _containerAdapter; - - if (containerCssClass.indexOf(':all:') !== -1) { - containerCssClass = containerCssClass.replace(':all:', ''); - - var _cssAdapter = containerCssAdapter; - - containerCssAdapter = function (clazz) { - var adapted = _cssAdapter(clazz); - - if (adapted != null) { - // Append the old one along with the adapted one - return adapted + ' ' + clazz; - } - - return clazz; - }; - } - - var containerCss = this.options.get('containerCss') || {}; - - if ($.isFunction(containerCss)) { - containerCss = containerCss(this.$element); - } - - CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter); - - $container.css(containerCss); - $container.addClass(containerCssClass); - - return $container; - }; - - return ContainerCSS; -}); - -S2.define('select2/compat/dropdownCss',[ - 'jquery', - './utils' -], function ($, CompatUtils) { - // No-op CSS adapter that discards all classes by default - function _dropdownAdapter (clazz) { - return null; - } - - function DropdownCSS () { } - - DropdownCSS.prototype.render = function (decorated) { - var $dropdown = decorated.call(this); - - var dropdownCssClass = this.options.get('dropdownCssClass') || ''; - - if ($.isFunction(dropdownCssClass)) { - dropdownCssClass = dropdownCssClass(this.$element); - } - - var dropdownCssAdapter = this.options.get('adaptDropdownCssClass'); - dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter; - - if (dropdownCssClass.indexOf(':all:') !== -1) { - dropdownCssClass = dropdownCssClass.replace(':all:', ''); - - var _cssAdapter = dropdownCssAdapter; - - dropdownCssAdapter = function (clazz) { - var adapted = _cssAdapter(clazz); - - if (adapted != null) { - // Append the old one along with the adapted one - return adapted + ' ' + clazz; - } - - return clazz; - }; - } - - var dropdownCss = this.options.get('dropdownCss') || {}; - - if ($.isFunction(dropdownCss)) { - dropdownCss = dropdownCss(this.$element); - } - - CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter); - - $dropdown.css(dropdownCss); - $dropdown.addClass(dropdownCssClass); - - return $dropdown; - }; - - return DropdownCSS; -}); - -S2.define('select2/compat/initSelection',[ - 'jquery' -], function ($) { - function InitSelection (decorated, $element, options) { - if (options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `initSelection` option has been deprecated in favor' + - ' of a custom data adapter that overrides the `current` method. ' + - 'This method is now called multiple times instead of a single ' + - 'time when the instance is initialized. Support will be removed ' + - 'for the `initSelection` option in future versions of Select2' - ); - } - - this.initSelection = options.get('initSelection'); - this._isInitialized = false; - - decorated.call(this, $element, options); - } - - InitSelection.prototype.current = function (decorated, callback) { - var self = this; - - if (this._isInitialized) { - decorated.call(this, callback); - - return; - } - - this.initSelection.call(null, this.$element, function (data) { - self._isInitialized = true; - - if (!$.isArray(data)) { - data = [data]; - } - - callback(data); - }); - }; - - return InitSelection; -}); - -S2.define('select2/compat/inputData',[ - 'jquery', - '../utils' -], function ($, Utils) { - function InputData (decorated, $element, options) { - this._currentData = []; - this._valueSeparator = options.get('valueSeparator') || ','; - - if ($element.prop('type') === 'hidden') { - if (options.get('debug') && console && console.warn) { - console.warn( - 'Select2: Using a hidden input with Select2 is no longer ' + - 'supported and may stop working in the future. It is recommended ' + - 'to use a `<select>` element instead.' - ); - } - } - - decorated.call(this, $element, options); - } - - InputData.prototype.current = function (_, callback) { - function getSelected (data, selectedIds) { - var selected = []; - - if (data.selected || $.inArray(data.id, selectedIds) !== -1) { - data.selected = true; - selected.push(data); - } else { - data.selected = false; - } - - if (data.children) { - selected.push.apply(selected, getSelected(data.children, selectedIds)); - } - - return selected; - } - - var selected = []; - - for (var d = 0; d < this._currentData.length; d++) { - var data = this._currentData[d]; - - selected.push.apply( - selected, - getSelected( - data, - this.$element.val().split( - this._valueSeparator - ) - ) - ); - } - - callback(selected); - }; - - InputData.prototype.select = function (_, data) { - if (!this.options.get('multiple')) { - this.current(function (allData) { - $.map(allData, function (data) { - data.selected = false; - }); - }); - - this.$element.val(data.id); - this.$element.trigger('input').trigger('change'); - } else { - var value = this.$element.val(); - value += this._valueSeparator + data.id; - - this.$element.val(value); - this.$element.trigger('input').trigger('change'); - } - }; - - InputData.prototype.unselect = function (_, data) { - var self = this; - - data.selected = false; - - this.current(function (allData) { - var values = []; - - for (var d = 0; d < allData.length; d++) { - var item = allData[d]; - - if (data.id == item.id) { - continue; - } - - values.push(item.id); - } - - self.$element.val(values.join(self._valueSeparator)); - self.$element.trigger('input').trigger('change'); - }); - }; - - InputData.prototype.query = function (_, params, callback) { - var results = []; - - for (var d = 0; d < this._currentData.length; d++) { - var data = this._currentData[d]; - - var matches = this.matches(params, data); - - if (matches !== null) { - results.push(matches); - } - } - - callback({ - results: results - }); - }; - - InputData.prototype.addOptions = function (_, $options) { - var options = $.map($options, function ($option) { - return Utils.GetData($option[0], 'data'); - }); - - this._currentData.push.apply(this._currentData, options); - }; - - return InputData; -}); - -S2.define('select2/compat/matcher',[ - 'jquery' -], function ($) { - function oldMatcher (matcher) { - function wrappedMatcher (params, data) { - var match = $.extend(true, {}, data); - - if (params.term == null || $.trim(params.term) === '') { - return match; - } - - if (data.children) { - for (var c = data.children.length - 1; c >= 0; c--) { - var child = data.children[c]; - - // Check if the child object matches - // The old matcher returned a boolean true or false - var doesMatch = matcher(params.term, child.text, child); - - // If the child didn't match, pop it off - if (!doesMatch) { - match.children.splice(c, 1); - } - } - - if (match.children.length > 0) { - return match; - } - } - - if (matcher(params.term, data.text, data)) { - return match; - } - - return null; - } - - return wrappedMatcher; - } - - return oldMatcher; -}); - -S2.define('select2/compat/query',[ - -], function () { - function Query (decorated, $element, options) { - if (options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `query` option has been deprecated in favor of a ' + - 'custom data adapter that overrides the `query` method. Support ' + - 'will be removed for the `query` option in future versions of ' + - 'Select2.' - ); - } - - decorated.call(this, $element, options); - } - - Query.prototype.query = function (_, params, callback) { - params.callback = callback; - - var query = this.options.get('query'); - - query.call(null, params); - }; - - return Query; -}); - -S2.define('select2/dropdown/attachContainer',[ - -], function () { - function AttachContainer (decorated, $element, options) { - decorated.call(this, $element, options); - } - - AttachContainer.prototype.position = - function (decorated, $dropdown, $container) { - var $dropdownContainer = $container.find('.dropdown-wrapper'); - $dropdownContainer.append($dropdown); - - $dropdown.addClass('select2-dropdown--below'); - $container.addClass('select2-container--below'); - }; - - return AttachContainer; -}); - -S2.define('select2/dropdown/stopPropagation',[ - -], function () { - function StopPropagation () { } - - StopPropagation.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - var stoppedEvents = [ - 'blur', - 'change', - 'click', - 'dblclick', - 'focus', - 'focusin', - 'focusout', - 'input', - 'keydown', - 'keyup', - 'keypress', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseover', - 'mouseup', - 'search', - 'touchend', - 'touchstart' - ]; - - this.$dropdown.on(stoppedEvents.join(' '), function (evt) { - evt.stopPropagation(); - }); - }; - - return StopPropagation; -}); - -S2.define('select2/selection/stopPropagation',[ - -], function () { - function StopPropagation () { } - - StopPropagation.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - var stoppedEvents = [ - 'blur', - 'change', - 'click', - 'dblclick', - 'focus', - 'focusin', - 'focusout', - 'input', - 'keydown', - 'keyup', - 'keypress', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseover', - 'mouseup', - 'search', - 'touchend', - 'touchstart' - ]; - - this.$selection.on(stoppedEvents.join(' '), function (evt) { - evt.stopPropagation(); - }); - }; - - return StopPropagation; -}); - -/*! - * jQuery Mousewheel 3.1.13 - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - */ - -(function (factory) { - if ( typeof S2.define === 'function' && S2.define.amd ) { - // AMD. Register as an anonymous module. - S2.define('jquery-mousewheel',['jquery'], factory); - } else if (typeof exports === 'object') { - // Node/CommonJS style for Browserify - module.exports = factory; - } else { - // Browser globals - factory(jQuery); - } -}(function ($) { - - var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'], - toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? - ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], - slice = Array.prototype.slice, - nullLowestDeltaTimeout, lowestDelta; - - if ( $.event.fixHooks ) { - for ( var i = toFix.length; i; ) { - $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; - } - } - - var special = $.event.special.mousewheel = { - version: '3.1.12', - - setup: function() { - if ( this.addEventListener ) { - for ( var i = toBind.length; i; ) { - this.addEventListener( toBind[--i], handler, false ); - } - } else { - this.onmousewheel = handler; - } - // Store the line height and page height for this particular element - $.data(this, 'mousewheel-line-height', special.getLineHeight(this)); - $.data(this, 'mousewheel-page-height', special.getPageHeight(this)); - }, - - teardown: function() { - if ( this.removeEventListener ) { - for ( var i = toBind.length; i; ) { - this.removeEventListener( toBind[--i], handler, false ); - } - } else { - this.onmousewheel = null; - } - // Clean up the data we added to the element - $.removeData(this, 'mousewheel-line-height'); - $.removeData(this, 'mousewheel-page-height'); - }, - - getLineHeight: function(elem) { - var $elem = $(elem), - $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent'](); - if (!$parent.length) { - $parent = $('body'); - } - return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16; - }, - - getPageHeight: function(elem) { - return $(elem).height(); - }, - - settings: { - adjustOldDeltas: true, // see shouldAdjustOldDeltas() below - normalizeOffset: true // calls getBoundingClientRect for each event - } - }; - - $.fn.extend({ - mousewheel: function(fn) { - return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel'); - }, - - unmousewheel: function(fn) { - return this.unbind('mousewheel', fn); - } - }); - - - function handler(event) { - var orgEvent = event || window.event, - args = slice.call(arguments, 1), - delta = 0, - deltaX = 0, - deltaY = 0, - absDelta = 0, - offsetX = 0, - offsetY = 0; - event = $.event.fix(orgEvent); - event.type = 'mousewheel'; - - // Old school scrollwheel delta - if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; } - if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; } - if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; } - if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; } - - // Firefox < 17 horizontal scrolling related to DOMMouseScroll event - if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { - deltaX = deltaY * -1; - deltaY = 0; - } - - // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy - delta = deltaY === 0 ? deltaX : deltaY; - - // New school wheel delta (wheel event) - if ( 'deltaY' in orgEvent ) { - deltaY = orgEvent.deltaY * -1; - delta = deltaY; - } - if ( 'deltaX' in orgEvent ) { - deltaX = orgEvent.deltaX; - if ( deltaY === 0 ) { delta = deltaX * -1; } - } - - // No change actually happened, no reason to go any further - if ( deltaY === 0 && deltaX === 0 ) { return; } - - // Need to convert lines and pages to pixels if we aren't already in pixels - // There are three delta modes: - // * deltaMode 0 is by pixels, nothing to do - // * deltaMode 1 is by lines - // * deltaMode 2 is by pages - if ( orgEvent.deltaMode === 1 ) { - var lineHeight = $.data(this, 'mousewheel-line-height'); - delta *= lineHeight; - deltaY *= lineHeight; - deltaX *= lineHeight; - } else if ( orgEvent.deltaMode === 2 ) { - var pageHeight = $.data(this, 'mousewheel-page-height'); - delta *= pageHeight; - deltaY *= pageHeight; - deltaX *= pageHeight; - } - - // Store lowest absolute delta to normalize the delta values - absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) ); - - if ( !lowestDelta || absDelta < lowestDelta ) { - lowestDelta = absDelta; - - // Adjust older deltas if necessary - if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { - lowestDelta /= 40; - } - } - - // Adjust older deltas if necessary - if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { - // Divide all the things by 40! - delta /= 40; - deltaX /= 40; - deltaY /= 40; - } - - // Get a whole, normalized value for the deltas - delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta); - deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta); - deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta); - - // Normalise offsetX and offsetY properties - if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { - var boundingRect = this.getBoundingClientRect(); - offsetX = event.clientX - boundingRect.left; - offsetY = event.clientY - boundingRect.top; - } - - // Add information to the event object - event.deltaX = deltaX; - event.deltaY = deltaY; - event.deltaFactor = lowestDelta; - event.offsetX = offsetX; - event.offsetY = offsetY; - // Go ahead and set deltaMode to 0 since we converted to pixels - // Although this is a little odd since we overwrite the deltaX/Y - // properties with normalized deltas. - event.deltaMode = 0; - - // Add event and delta to the front of the arguments - args.unshift(event, delta, deltaX, deltaY); - - // Clearout lowestDelta after sometime to better - // handle multiple device types that give different - // a different lowestDelta - // Ex: trackpad = 3 and mouse wheel = 120 - if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } - nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); - - return ($.event.dispatch || $.event.handle).apply(this, args); - } - - function nullLowestDelta() { - lowestDelta = null; - } - - function shouldAdjustOldDeltas(orgEvent, absDelta) { - // If this is an older event and the delta is divisable by 120, - // then we are assuming that the browser is treating this as an - // older mouse wheel event and that we should divide the deltas - // by 40 to try and get a more usable deltaFactor. - // Side note, this actually impacts the reported scroll distance - // in older browsers and can cause scrolling to be slower than native. - // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false. - return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0; - } - -})); - -S2.define('jquery.select2',[ - 'jquery', - 'jquery-mousewheel', - - './select2/core', - './select2/defaults', - './select2/utils' -], function ($, _, Select2, Defaults, Utils) { - if ($.fn.select2 == null) { - // All methods that should return the element - var thisMethods = ['open', 'close', 'destroy']; - - $.fn.select2 = function (options) { - options = options || {}; - - if (typeof options === 'object') { - this.each(function () { - var instanceOptions = $.extend(true, {}, options); - - var instance = new Select2($(this), instanceOptions); - }); - - return this; - } else if (typeof options === 'string') { - var ret; - var args = Array.prototype.slice.call(arguments, 1); - - this.each(function () { - var instance = Utils.GetData(this, 'select2'); - - if (instance == null && window.console && console.error) { - console.error( - 'The select2(\'' + options + '\') method was called on an ' + - 'element that is not using Select2.' - ); - } - - ret = instance[options].apply(instance, args); - }); - - // Check if we should be returning `this` - if ($.inArray(options, thisMethods) > -1) { - return this; - } - - return ret; - } else { - throw new Error('Invalid arguments for Select2: ' + options); - } - }; - } - - if ($.fn.select2.defaults == null) { - $.fn.select2.defaults = Defaults; - } - - return Select2; -}); - - // Return the AMD loader configuration so it can be used outside of this file - return { - define: S2.define, - require: S2.require - }; -}()); - - // Autoload the jQuery bindings - // We know that all of the modules exist above this, so we're safe - var select2 = S2.require('jquery.select2'); - - // Hold the AMD module references on the jQuery function that was just loaded - // This allows Select2 to use the internal loader outside of this file, such - // as in the language files. - jQuery.fn.select2.amd = S2; - - // Return the Select2 instance for anyone who is importing it. - return select2; -})); diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js deleted file mode 100644 index fa78191..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ -!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(d){var e=function(){if(d&&d.fn&&d.fn.select2&&d.fn.select2.amd)var e=d.fn.select2.amd;var t,n,i,h,o,s,f,g,m,v,y,_,r,a,w,l;function b(e,t){return r.call(e,t)}function c(e,t){var n,i,r,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&w.test(e[s])&&(e[s]=e[s].replace(w,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u<e.length;u++)if("."===(p=e[u]))e.splice(u,1),u-=1;else if(".."===p){if(0===u||1===u&&".."===e[2]||".."===e[u-1])continue;0<u&&(e.splice(u-1,2),u-=2)}e=e.join("/")}if((h||g)&&f){for(u=(n=e.split("/")).length;0<u;u-=1){if(i=n.slice(0,u).join("/"),h)for(d=h.length;0<d;d-=1)if(r=(r=f[h.slice(0,d).join("/")])&&r[i]){o=r,a=u;break}if(o)break;!l&&g&&g[i]&&(l=g[i],c=u)}!o&&l&&(o=l,a=c),o&&(n.splice(0,a,o),e=n.join("/"))}return e}function A(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),s.apply(h,e.concat([t,n]))}}function x(t){return function(e){m[t]=e}}function D(e){if(b(v,e)){var t=v[e];delete v[e],_[e]=!0,o.apply(h,t)}if(!b(m,e)&&!b(_,e))throw new Error("No "+e);return m[e]}function u(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function S(e){return e?u(e):[]}return e&&e.requirejs||(e?n=e:e={},m={},v={},y={},_={},r=Object.prototype.hasOwnProperty,a=[].slice,w=/\.js$/,f=function(e,t){var n,i=u(e),r=i[0],o=t[1];return e=i[1],r&&(n=D(r=c(r,o))),r?e=n&&n.normalize?n.normalize(e,function(t){return function(e){return c(e,t)}}(o)):c(e,o):(r=(i=u(e=c(e,o)))[0],e=i[1],r&&(n=D(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},g={require:function(e){return A(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:function(e){return function(){return y&&y.config&&y.config[e]||{}}}(e)}}},o=function(e,t,n,i){var r,o,s,a,l,c,u,d=[],p=typeof n;if(c=S(i=i||e),"undefined"==p||"function"==p){for(t=!t.length&&n.length?["require","exports","module"]:t,l=0;l<t.length;l+=1)if("require"===(o=(a=f(t[l],c)).f))d[l]=g.require(e);else if("exports"===o)d[l]=g.exports(e),u=!0;else if("module"===o)r=d[l]=g.module(e);else if(b(m,o)||b(v,o)||b(_,o))d[l]=D(o);else{if(!a.p)throw new Error(e+" missing "+o);a.p.load(a.n,A(i,!0),x(o),{}),d[l]=m[o]}s=n?n.apply(m[e],d):void 0,e&&(r&&r.exports!==h&&r.exports!==m[e]?m[e]=r.exports:s===h&&u||(m[e]=s))}else e&&(m[e]=n)},t=n=s=function(e,t,n,i,r){if("string"==typeof e)return g[e]?g[e](t):D(f(e,S(t)).f);if(!e.splice){if((y=e).deps&&s(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=h}return t=t||function(){},"function"==typeof n&&(n=i,i=r),i?o(h,e,t,n):setTimeout(function(){o(h,e,t,n)},4),s},s.config=function(e){return s(e)},t._defined=m,(i=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),b(m,e)||b(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0},e.requirejs=t,e.require=n,e.define=i),e.define("almond",function(){}),e.define("jquery",[],function(){var e=d||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),e.define("select2/utils",["jquery"],function(o){var r={};function u(e){var t=e.prototype,n=[];for(var i in t){"function"==typeof t[i]&&"constructor"!==i&&n.push(i)}return n}r.Extend=function(e,t){var n={}.hasOwnProperty;function i(){this.constructor=e}for(var r in t)n.call(t,r)&&(e[r]=t[r]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},r.Decorate=function(i,r){var e=u(r),t=u(i);function o(){var e=Array.prototype.unshift,t=r.prototype.constructor.length,n=i.prototype.constructor;0<t&&(e.call(arguments,i.prototype.constructor),n=r.prototype.constructor),n.apply(this,arguments)}r.displayName=i.displayName,o.prototype=new function(){this.constructor=o};for(var n=0;n<t.length;n++){var s=t[n];o.prototype[s]=i.prototype[s]}function a(e){var t=function(){};e in o.prototype&&(t=o.prototype[e]);var n=r.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}for(var l=0;l<e.length;l++){var c=e[l];o.prototype[c]=a(c)}return o};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,i=e.length;n<i;n++)e[n].apply(this,t)},r.Observable=e,r.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},r.bind=function(e,t){return function(){e.apply(t,arguments)}},r._convertData=function(e){for(var t in e){var n=t.split("-"),i=e;if(1!==n.length){for(var r=0;r<n.length;r++){var o=n[r];(o=o.substring(0,1).toLowerCase()+o.substring(1))in i||(i[o]={}),r==n.length-1&&(i[o]=e[t]),i=i[o]}delete e[t]}}return e},r.hasScroll=function(e,t){var n=o(t),i=t.style.overflowX,r=t.style.overflowY;return(i!==r||"hidden"!==r&&"visible"!==r)&&("scroll"===i||"scroll"===r||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},r.escapeMarkup=function(e){var t={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},r.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},r.__cache={};var n=0;return r.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},r.StoreData=function(e,t,n){var i=r.GetUniqueElementId(e);r.__cache[i]||(r.__cache[i]={}),r.__cache[i][t]=n},r.GetData=function(e,t){var n=r.GetUniqueElementId(e);return t?r.__cache[n]&&null!=r.__cache[n][t]?r.__cache[n][t]:o(e).data(t):r.__cache[n]},r.RemoveData=function(e){var t=r.GetUniqueElementId(e);null!=r.__cache[t]&&delete r.__cache[t],e.removeAttribute("data-select2-id")},r}),e.define("select2/results",["jquery","./utils"],function(h,f){function i(e,t,n){this.$element=e,this.data=n,this.options=t,i.__super__.constructor.call(this)}return f.Extend(i,f.Observable),i.prototype.render=function(){var e=h('<ul class="select2-results__options" role="listbox"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},i.prototype.clear=function(){this.$results.empty()},i.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),i=this.options.get("translations").get(e.message);n.append(t(i(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},i.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},i.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var i=e.results[n],r=this.option(i);t.push(r)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},i.prototype.position=function(e,t){t.find(".select2-results").append(e)},i.prototype.sort=function(e){return this.options.get("sorter")(e)},i.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[aria-selected]"),t=e.filter("[aria-selected=true]");0<t.length?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},i.prototype.setClasses=function(){var t=this;this.data.current(function(e){var i=h.map(e,function(e){return e.id.toString()});t.$results.find(".select2-results__option[aria-selected]").each(function(){var e=h(this),t=f.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<h.inArray(n,i)?e.attr("aria-selected","true"):e.attr("aria-selected","false")})})},i.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},i.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},i.prototype.option=function(e){var t=document.createElement("li");t.className="select2-results__option";var n={role:"option","aria-selected":"false"},i=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(var r in(null!=e.element&&i.call(e.element,":disabled")||null==e.element&&e.disabled)&&(delete n["aria-selected"],n["aria-disabled"]="true"),null==e.id&&delete n["aria-selected"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(n.role="group",n["aria-label"]=e.text,delete n["aria-selected"]),n){var o=n[r];t.setAttribute(r,o)}if(e.children){var s=h(t),a=document.createElement("strong");a.className="select2-results__group";h(a);this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],d=this.option(u);l.push(d)}var p=h("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},i.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var i=n-1;0===e.length&&(i=0);var r=t.eq(i);r.trigger("mouseenter");var o=l.$results.offset().top,s=r.offset().top,a=l.$results.scrollTop()+(s-o);0===i?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var i=t.eq(n);i.trigger("mouseenter");var r=l.$results.offset().top+l.$results.outerHeight(!1),o=i.offset().top+i.outerHeight(!1),s=l.$results.scrollTop()+o-r;0===n?l.$results.scrollTop(0):r<o&&l.$results.scrollTop(s)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted")}),t.on("results:message",function(e){l.displayMessage(e)}),h.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=l.$results.scrollTop(),n=l.$results.get(0).scrollHeight-t+e.deltaY,i=0<e.deltaY&&t-e.deltaY<=0,r=e.deltaY<0&&n<=l.$results.height();i?(l.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):r&&(l.$results.scrollTop(l.$results.get(0).scrollHeight-l.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(e){var t=h(this),n=f.GetData(this,"data");"true"!==t.attr("aria-selected")?l.trigger("select",{originalEvent:e,data:n}):l.options.get("multiple")?l.trigger("unselect",{originalEvent:e,data:n}):l.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(e){var t=f.GetData(this,"data");l.getHighlightedResults().removeClass("select2-results__option--highlighted"),l.trigger("results:focus",{data:t,element:h(this)})})},i.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},i.prototype.destroy=function(){this.$results.remove()},i.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[aria-selected]").index(e),n=this.$results.offset().top,i=e.offset().top,r=this.$results.scrollTop()+(i-n),o=i-n;r-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(r)}},i.prototype.template=function(e,t){var n=this.options.get("templateResult"),i=this.options.get("escapeMarkup"),r=n(e,t);null==r?t.style.display="none":"string"==typeof r?t.innerHTML=i(r):h(t).append(r)},i}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,i,r){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return i.Extend(o,i.Observable),o.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=i.GetData(this.$element[0],"old-tabindex")?this._tabindex=i.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,i=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===r.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",i),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&i.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function r(){r.__super__.constructor.apply(this,arguments)}return n.Extend(r,t),r.prototype.render=function(){var e=r.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},r.prototype.bind=function(t,e){var n=this;r.__super__.bind.apply(this,arguments);var i=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",i),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},r.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},r.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},r.prototype.selectionContainer=function(){return e("<span></span>")},r.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i);var r=t.title||t.text;r?n.attr("title",r):n.removeAttr("title")}else this.clear()},r}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(r,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},n.prototype.bind=function(e,t){var i=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){i.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!i.isDisabled()){var t=r(this).parent(),n=l.GetData(t[0],"data");i.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return r('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var i=e[n],r=this.selectionContainer(),o=this.display(i,r);r.append(o);var s=i.title||i.text;s&&r.attr("title",s),l.StoreData(r[0],"data",i),t.push(r)}var a=this.$selection.find(".select2-selection__rendered");l.appendMany(a,t)}},n}),e.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();var i=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(i)},t}),e.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(r,i,a){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){i._handleClear(e)}),t.on("keypress",function(e){i._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var i=a.GetData(n[0],"data"),r=this.$element.val();this.$element.val(this.placeholder.id);var o={data:i};if(this.trigger("clear",o),o.prevented)this.$element.val(r);else{for(var s=0;s<i.length;s++)if(o={data:i[s]},this.trigger("unselect",o),o.prevented)return void this.$element.val(r);this.$element.trigger("input").trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=i.DELETE&&t.which!=i.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){if(e.call(this,t),!(0<this.$selection.find(".select2-selection__placeholder").length||0===t.length)){var n=this.options.get("translations").get("removeAllItems"),i=r('<span class="select2-selection__clear" title="'+n()+'">×</span>');a.StoreData(i[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(i)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(i,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=i('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results";e.call(this,t,n),t.on("open",function(){i.$search.attr("aria-controls",r),i.$search.trigger("focus")}),t.on("close",function(){i.$search.val(""),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.trigger("focus")}),t.on("enable",function(){i.$search.prop("disabled",!1),i._transferTabIndex()}),t.on("disable",function(){i.$search.prop("disabled",!0)}),t.on("focus",function(e){i.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){i.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){i._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&""===i.$search.val()){var t=i.$searchContainer.prev(".select2-selection__choice");if(0<t.length){var n=a.GetData(t[0],"data");i.searchRemoveChoice(n),e.preventDefault()}}}),this.$selection.on("click",".select2-search--inline",function(e){i.$search.val()&&e.stopPropagation()});var o=document.documentMode,s=o&&o<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){s?i.$selection.off("input.search input.searchcheck"):i.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(s&&"input"===e.type)i.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&i.handleSearch(e)}})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";""!==this.$search.attr("placeholder")?e=this.$selection.find(".select2-selection__rendered").width():e=.75*(this.$search.val().length+1)+"em";this.$search.css("width",e)},e}),e.define("select2/selection/eventRelay",["jquery"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var i=this,r=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],o=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){if(-1!==s.inArray(e,r)){t=t||{};var n=s.Event("select2:"+e,{params:t});i.$element.trigger(n),-1!==s.inArray(e,o)&&(t.prevented=n.isDefaultPrevented())}})},e}),e.define("select2/translation",["jquery","require"],function(t,n){function i(e){this.dict=e||{}}return i.prototype.all=function(){return this.dict},i.prototype.get=function(e){return this.dict[e]},i.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},i._cache={},i.loadPath=function(e){if(!(e in i._cache)){var t=n(e);i._cache[e]=t}return new i(i._cache[e])},i}),e.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Œ":"OE","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","œ":"oe","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ώ":"ω","ς":"σ","’":"'"}}),e.define("select2/data/base",["../utils"],function(i){function n(e,t){n.__super__.constructor.call(this)}return i.Extend(n,i.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=e.id+"-result-";return n+=i.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+i.generateChars(4),n},n}),e.define("select2/data/select",["./base","../utils","jquery"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var n=[],i=this;this.$element.find(":selected").each(function(){var e=l(this),t=i.item(e);n.push(t)}),e(n)},n.prototype.select=function(r){var o=this;if(r.selected=!0,l(r.element).is("option"))return r.element.selected=!0,void this.$element.trigger("input").trigger("change");if(this.$element.prop("multiple"))this.current(function(e){var t=[];(r=[r]).push.apply(r,e);for(var n=0;n<r.length;n++){var i=r[n].id;-1===l.inArray(i,t)&&t.push(i)}o.$element.val(t),o.$element.trigger("input").trigger("change")});else{var e=r.id;this.$element.val(e),this.$element.trigger("input").trigger("change")}},n.prototype.unselect=function(r){var o=this;if(this.$element.prop("multiple")){if(r.selected=!1,l(r.element).is("option"))return r.element.selected=!1,void this.$element.trigger("input").trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n].id;i!==r.id&&-1===l.inArray(i,t)&&t.push(i)}o.$element.val(t),o.$element.trigger("input").trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){a.RemoveData(this)})},n.prototype.query=function(i,e){var r=[],o=this;this.$element.children().each(function(){var e=l(this);if(e.is("option")||e.is("optgroup")){var t=o.item(e),n=o.matches(i,t);null!==n&&r.push(n)}}),e({results:r})},n.prototype.addOptions=function(e){a.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=l(t),i=this._normalizeItem(e);return i.element=t,a.StoreData(t,"data",i),n},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var n=e.children("option"),i=[],r=0;r<n.length;r++){var o=l(n[r]),s=this.item(o);i.push(s)}t.children=i}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),e.define("select2/data/array",["./select","../utils","jquery"],function(e,f,g){function i(e,t){this._dataToConvert=t.get("data")||[],i.__super__.constructor.call(this,e,t)}return f.Extend(i,e),i.prototype.bind=function(e,t){i.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},i.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),i.__super__.select.call(this,n)},i.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),i=n.map(function(){return t.item(g(this)).id}).get(),r=[];function o(e){return function(){return g(this).val()==e.id}}for(var s=0;s<e.length;s++){var a=this._normalizeItem(e[s]);if(0<=g.inArray(a.id,i)){var l=n.filter(o(a)),c=this.item(l),u=g.extend(!0,{},a,c),d=this.option(u);l.replaceWith(d)}else{var p=this.option(a);if(a.children){var h=this.convertToOptions(a.children);f.appendMany(p,h)}r.push(p)}}return r},i}),e.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,o){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return o.extend({},e,{q:e.term})},transport:function(e,t,n){var i=o.ajax(e);return i.then(t),i.fail(n),i}};return o.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(n,i){var r=this;null!=this._request&&(o.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var t=o.extend({type:"GET"},this.ajaxOptions);function e(){var e=t.transport(t,function(e){var t=r.processResults(e,n);r.options.get("debug")&&window.console&&console.error&&(t&&t.results&&o.isArray(t.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),i(t)},function(){"status"in e&&(0===e.status||"0"===e.status)||r.trigger("results:message",{message:"errorLoading"})});r._request=e}"function"==typeof t.url&&(t.url=t.url.call(this.$element,n)),"function"==typeof t.data&&(t.data=t.data.call(this.$element,n)),this.ajaxOptions.delay&&null!=n.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),e.define("select2/data/tags",["jquery"],function(u){function e(e,t,n){var i=n.get("tags"),r=n.get("createTag");void 0!==r&&(this.createTag=r);var o=n.get("insertTag");if(void 0!==o&&(this.insertTag=o),e.call(this,t,n),u.isArray(i))for(var s=0;s<i.length;s++){var a=i[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var i=t.results,r=0;r<i.length;r++){var o=i[r],s=null!=o.children&&!e({results:o.children},!0);if((o.text||"").toUpperCase()===(c.term||"").toUpperCase()||s)return!n&&(t.data=i,void u(t))}if(n)return!0;var a=d.createTag(c);if(null!=a){var l=d.option(a);l.attr("data-select2-tag",!0),d.addOptions([l]),d.insertTag(i,a)}t.results=i,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){var n=u.trim(t.term);return""===n?null:{id:n,text:n}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find("option[data-select2-tag]").each(function(){this.selected||u(this).remove()})},e}),e.define("select2/data/tokenizer",["jquery"],function(d){function e(e,t,n){var i=n.get("tokenizer");void 0!==i&&(this.tokenizer=i),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var i=this;t.term=t.term||"";var r=this.tokenizer(t,this.options,function(e){var t=i._normalizeItem(e);if(!i.$element.find("option").filter(function(){return d(this).val()===t.id}).length){var n=i.option(t);n.attr("data-select2-tag",!0),i._removeOldTags(),i.addOptions([n])}!function(e){i.trigger("select",{data:e})}(t)});r.term!==t.term&&(this.$search.length&&(this.$search.val(r.term),this.$search.trigger("focus")),t.term=r.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,i){for(var r=n.get("tokenSeparators")||[],o=t.term,s=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};s<o.length;){var l=o[s];if(-1!==d.inArray(l,r)){var c=o.substr(0,s),u=a(d.extend({},t,{term:c}));null!=u?(i(u),o=o.substr(s+1)||"",s=0):s++}else s++}return{term:o}},e}),e.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(){i._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var i=this;this._checkIfMaximumSelected(function(){e.call(i,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var i=this;this.current(function(e){var t=null!=e?e.length:0;0<i.maximumSelectionLength&&t>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){i.handleSearch(e)}),t.on("open",function(){i.$search.attr("tabindex",0),i.$search.attr("aria-controls",r),i.$search.trigger("focus"),window.setTimeout(function(){i.$search.trigger("focus")},0)}),t.on("close",function(){i.$search.attr("tabindex",-1),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.val(""),i.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||i.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(i.showSearch(e)?i.$searchContainer.removeClass("select2-search--hide"):i.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;0<=i;i--){var r=t[i];this.placeholder.id===r.id&&n.splice(i,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("query",function(e){i.lastParams=e,i.loading=!0}),t.on("query:append",function(e){i.lastParams=e,i.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),i._bindContainerResultHandlers(t)}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f("<span></span>"),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,i="scroll.select2."+t.id,r="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(i,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(i+" "+r+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,i="resize.select2."+t.id,r="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+i+" "+r)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),i=null,r=this.$container.offset();r.bottom=r.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=r.top,o.bottom=r.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<r.top-s,u=l>r.bottom+s,d={left:r.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(i="below"),u||!c||t?!c&&u&&t&&(i="below"):i="above",("above"==i||t&&"below"!==i)&&(d.top=o.top-h.top-s),null!=i&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+i),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+i)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,i=0;i<t.length;i++){var r=t[i];r.children?n+=e(r.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),e.define("select2/dropdown/selectOnClose",["../utils"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("close",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var i=this.getHighlightedResults();if(!(i.length<1)){var r=o.GetData(i[0],"data");null!=r.element&&r.element.selected||null==r.element&&r.selected||this.trigger("select",{data:r})}},e}),e.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(e){i._selectTriggered(e)}),t.on("unselect",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(c,u,d,p,h,f,g,m,v,y,s,t,_,w,$,b,A,x,D,S,C,E,O,T,q,j,L,I,e){function n(){this.reset()}return n.prototype.apply=function(e){if(null==(e=c.extend(!0,{},this.defaults,e)).dataAdapter){if(null!=e.ajax?e.dataAdapter=$:null!=e.data?e.dataAdapter=w:e.dataAdapter=_,0<e.minimumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,x)),0<e.maximumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,D)),0<e.maximumSelectionLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,S)),e.tags&&(e.dataAdapter=y.Decorate(e.dataAdapter,b)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=y.Decorate(e.dataAdapter,A)),null!=e.query){var t=u(e.amdBase+"compat/query");e.dataAdapter=y.Decorate(e.dataAdapter,t)}if(null!=e.initSelection){var n=u(e.amdBase+"compat/initSelection");e.dataAdapter=y.Decorate(e.dataAdapter,n)}}if(null==e.resultsAdapter&&(e.resultsAdapter=d,null!=e.ajax&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,T)),null!=e.placeholder&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,O)),e.selectOnClose&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,L))),null==e.dropdownAdapter){if(e.multiple)e.dropdownAdapter=C;else{var i=y.Decorate(C,E);e.dropdownAdapter=i}if(0!==e.minimumResultsForSearch&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,j)),e.closeOnSelect&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,I)),null!=e.dropdownCssClass||null!=e.dropdownCss||null!=e.adaptDropdownCssClass){var r=u(e.amdBase+"compat/dropdownCss");e.dropdownAdapter=y.Decorate(e.dropdownAdapter,r)}e.dropdownAdapter=y.Decorate(e.dropdownAdapter,q)}if(null==e.selectionAdapter){if(e.multiple?e.selectionAdapter=h:e.selectionAdapter=p,null!=e.placeholder&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,f)),e.allowClear&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,g)),e.multiple&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,m)),null!=e.containerCssClass||null!=e.containerCss||null!=e.adaptContainerCssClass){var o=u(e.amdBase+"compat/containerCss");e.selectionAdapter=y.Decorate(e.selectionAdapter,o)}e.selectionAdapter=y.Decorate(e.selectionAdapter,v)}e.language=this._resolveLanguage(e.language),e.language.push("en");for(var s=[],a=0;a<e.language.length;a++){var l=e.language[a];-1===s.indexOf(l)&&s.push(l)}return e.language=s,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:y.escapeMarkup,language:{},matcher:function e(t,n){if(""===c.trim(t.term))return n;if(n.children&&0<n.children.length){for(var i=c.extend(!0,{},n),r=n.children.length-1;0<=r;r--)null==e(t,n.children[r])&&i.children.splice(r,1);return 0<i.children.length?i:e(t,i)}var o=a(n.text).toUpperCase(),s=a(t.term).toUpperCase();return-1<o.indexOf(s)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.applyFromElement=function(e,t){var n=e.language,i=this.defaults.language,r=t.prop("lang"),o=t.closest("[lang]").prop("lang"),s=Array.prototype.concat.call(this._resolveLanguage(r),this._resolveLanguage(n),this._resolveLanguage(i),this._resolveLanguage(o));return e.language=s,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(c.isEmptyObject(e))return[];if(c.isPlainObject(e))return[e];var t;t=c.isArray(e)?e:[e];for(var n=[],i=0;i<t.length;i++)if(n.push(t[i]),"string"==typeof t[i]&&0<t[i].indexOf("-")){var r=t[i].split("-")[0];n.push(r)}return n},n.prototype._processTranslations=function(e,t){for(var n=new s,i=0;i<e.length;i++){var r=new s,o=e[i];if("string"==typeof o)try{r=s.loadPath(o)}catch(e){try{o=this.defaults.amdLanguageBase+o,r=s.loadPath(o)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for "'+o+'" could not be automatically loaded. A fallback will be used instead.')}}else r=c.isPlainObject(o)?new s(o):o;n.extend(r)}return n},n.prototype.set=function(e,t){var n={};n[c.camelCase(e)]=t;var i=y._convertData(n);c.extend(!0,this.defaults,i)},new n}),e.define("select2/options",["require","jquery","./defaults","./utils"],function(i,d,r,p){function e(e,t){if(this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=r.applyFromElement(this.options,t)),this.options=r.apply(this.options),t&&t.is("input")){var n=i(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=p.Decorate(this.options.dataAdapter,n)}}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),p.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),p.StoreData(e[0],"data",p.GetData(e[0],"select2Tags")),p.StoreData(e[0],"tags",!0)),p.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",p.GetData(e[0],"ajaxUrl")),p.StoreData(e[0],"ajax-Url",p.GetData(e[0],"ajaxUrl")));var n={};function i(e,t){return t.toUpperCase()}for(var r=0;r<e[0].attributes.length;r++){var o=e[0].attributes[r].name,s="data-";if(o.substr(0,s.length)==s){var a=o.substring(s.length),l=p.GetData(e[0],a);n[a.replace(/-([a-z])/g,i)]=l}}d.fn.jquery&&"1."==d.fn.jquery.substr(0,2)&&e[0].dataset&&(n=d.extend(!0,{},e[0].dataset,n));var c=d.extend(!0,{},p.GetData(e[0]),n);for(var u in c=p._convertData(c))-1<d.inArray(u,t)||(d.isPlainObject(this.options[u])?d.extend(this.options[u],c[u]):this.options[u]=c[u]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),e.define("select2/core",["jquery","./options","./utils","./keys"],function(o,c,u,i){var d=function(e,t){null!=u.GetData(e[0],"select2")&&u.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new c(t,e),d.__super__.constructor.call(this);var n=e.attr("tabindex")||0;u.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");var i=this.options.get("dataAdapter");this.dataAdapter=new i(e,this.options);var r=this.render();this._placeContainer(r);var o=this.options.get("selectionAdapter");this.selection=new o(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,r);var s=this.options.get("dropdownAdapter");this.dropdown=new s(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,r);var a=this.options.get("resultsAdapter");this.results=new a(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){l.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),u.StoreData(e[0],"select2",this),e.data("select2",this)};return u.Extend(d,u.Observable),d.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+u.generateChars(2):u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},d.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},d.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var i=this._resolveWidth(e,"style");return null!=i?i:this._resolveWidth(e,"element")}if("element"==t){var r=e.outerWidth(!1);return r<=0?"auto":r+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;var o=e.attr("style");if("string"!=typeof o)return null;for(var s=o.split(";"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\s/g,"").match(n);if(null!==c&&1<=c.length)return c[1]}return null},d.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},d.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=u.bind(this._syncAttributes,this),this._syncS=u.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){t._syncA(),t._syncS(null,e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},d.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerSelectionEvents=function(){var n=this,i=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===o.inArray(e,i)&&n.trigger(e,t)})},d.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container.addClass("select2-container--open")}),this.on("close",function(){n.$container.removeClass("select2-container--open")}),this.on("enable",function(){n.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){n.$container.addClass("select2-container--disabled")}),this.on("blur",function(){n.$container.removeClass("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===i.ESC||t===i.TAB||t===i.UP&&e.altKey?(n.close(e),e.preventDefault()):t===i.ENTER?(n.trigger("results:select",{}),e.preventDefault()):t===i.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===i.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===i.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===i.ENTER||t===i.SPACE||t===i.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},d.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},d.prototype._isChangeMutation=function(e,t){var n=!1,i=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var r=0;r<t.addedNodes.length;r++){t.addedNodes[r].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length?n=!0:o.isArray(t)&&o.each(t,function(e,t){if(i._isChangeMutation(e,t))return!(n=!0)});else n=!0;return n}},d.prototype._syncSubtree=function(e,t){var n=this._isChangeMutation(e,t),i=this;n&&this.dataAdapter.current(function(e){i.trigger("selection:update",{data:e})})},d.prototype.trigger=function(e,t){var n=d.__super__.trigger,i={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in i){var r=i[e],o={prevented:!1,name:e,args:t};if(n.call(this,r,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},d.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},d.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger("query",{})},d.prototype.close=function(e){this.isOpen()&&this.trigger("close",{originalEvent:e})},d.prototype.isEnabled=function(){return!this.isDisabled()},d.prototype.isDisabled=function(){return this.options.get("disabled")},d.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},d.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},d.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},d.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},d.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},d.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();var t=e[0];o.isArray(t)&&(t=o.map(t,function(e){return e.toString()})),this.$element.val(t).trigger("input").trigger("change")},d.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",u.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),u.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},d.prototype.render=function(){var e=o('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("select2/compat/utils",["jquery"],function(s){return{syncCssClasses:function(e,t,n){var i,r,o=[];(i=s.trim(e.attr("class")))&&s((i=""+i).split(/\s+/)).each(function(){0===this.indexOf("select2-")&&o.push(this)}),(i=s.trim(t.attr("class")))&&s((i=""+i).split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(r=n(this))&&o.push(r)}),e.attr("class",o.join(" "))}}}),e.define("select2/compat/containerCss",["jquery","./utils"],function(s,a){function l(e){return null}function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("containerCssClass")||"";s.isFunction(n)&&(n=n(this.$element));var i=this.options.get("adaptContainerCssClass");if(i=i||l,-1!==n.indexOf(":all:")){n=n.replace(":all:","");var r=i;i=function(e){var t=r(e);return null!=t?t+" "+e:e}}var o=this.options.get("containerCss")||{};return s.isFunction(o)&&(o=o(this.$element)),a.syncCssClasses(t,this.$element,i),t.css(o),t.addClass(n),t},e}),e.define("select2/compat/dropdownCss",["jquery","./utils"],function(s,a){function l(e){return null}function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("dropdownCssClass")||"";s.isFunction(n)&&(n=n(this.$element));var i=this.options.get("adaptDropdownCssClass");if(i=i||l,-1!==n.indexOf(":all:")){n=n.replace(":all:","");var r=i;i=function(e){var t=r(e);return null!=t?t+" "+e:e}}var o=this.options.get("dropdownCss")||{};return s.isFunction(o)&&(o=o(this.$element)),a.syncCssClasses(t,this.$element,i),t.css(o),t.addClass(n),t},e}),e.define("select2/compat/initSelection",["jquery"],function(i){function e(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=n.get("initSelection"),this._isInitialized=!1,e.call(this,t,n)}return e.prototype.current=function(e,t){var n=this;this._isInitialized?e.call(this,t):this.initSelection.call(null,this.$element,function(e){n._isInitialized=!0,i.isArray(e)||(e=[e]),t(e)})},e}),e.define("select2/compat/inputData",["jquery","../utils"],function(s,i){function e(e,t,n){this._currentData=[],this._valueSeparator=n.get("valueSeparator")||",","hidden"===t.prop("type")&&n.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),e.call(this,t,n)}return e.prototype.current=function(e,t){function i(e,t){var n=[];return e.selected||-1!==s.inArray(e.id,t)?(e.selected=!0,n.push(e)):e.selected=!1,e.children&&n.push.apply(n,i(e.children,t)),n}for(var n=[],r=0;r<this._currentData.length;r++){var o=this._currentData[r];n.push.apply(n,i(o,this.$element.val().split(this._valueSeparator)))}t(n)},e.prototype.select=function(e,t){if(this.options.get("multiple")){var n=this.$element.val();n+=this._valueSeparator+t.id,this.$element.val(n),this.$element.trigger("input").trigger("change")}else this.current(function(e){s.map(e,function(e){e.selected=!1})}),this.$element.val(t.id),this.$element.trigger("input").trigger("change")},e.prototype.unselect=function(e,r){var o=this;r.selected=!1,this.current(function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];r.id!=i.id&&t.push(i.id)}o.$element.val(t.join(o._valueSeparator)),o.$element.trigger("input").trigger("change")})},e.prototype.query=function(e,t,n){for(var i=[],r=0;r<this._currentData.length;r++){var o=this._currentData[r],s=this.matches(t,o);null!==s&&i.push(s)}n({results:i})},e.prototype.addOptions=function(e,t){var n=s.map(t,function(e){return i.GetData(e[0],"data")});this._currentData.push.apply(this._currentData,n)},e}),e.define("select2/compat/matcher",["jquery"],function(s){return function(o){return function(e,t){var n=s.extend(!0,{},t);if(null==e.term||""===s.trim(e.term))return n;if(t.children){for(var i=t.children.length-1;0<=i;i--){var r=t.children[i];o(e.term,r.text,r)||n.children.splice(i,1)}if(0<n.children.length)return n}return o(e.term,t.text,t)?n:null}}}),e.define("select2/compat/query",[],function(){function e(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.callback=n,this.options.get("query").call(null,t)},e}),e.define("select2/dropdown/attachContainer",[],function(){function e(e,t,n){e.call(this,t,n)}return e.prototype.position=function(e,t,n){n.find(".dropdown-wrapper").append(t),t.addClass("select2-dropdown--below"),n.addClass("select2-container--below")},e}),e.define("select2/dropdown/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$dropdown.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),e.define("select2/selection/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$selection.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),l=function(p){var h,f,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],g=Array.prototype.slice;if(p.event.fixHooks)for(var n=e.length;n;)p.event.fixHooks[e[--n]]=p.event.mouseHooks;var m=p.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],i,!1);else this.onmousewheel=i;p.data(this,"mousewheel-line-height",m.getLineHeight(this)),p.data(this,"mousewheel-page-height",m.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],i,!1);else this.onmousewheel=null;p.removeData(this,"mousewheel-line-height"),p.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=p(e),n=t["offsetParent"in p.fn?"offsetParent":"parent"]();return n.length||(n=p("body")),parseInt(n.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return p(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function i(e){var t,n=e||window.event,i=g.call(arguments,1),r=0,o=0,s=0,a=0,l=0;if((e=p.event.fix(n)).type="mousewheel","detail"in n&&(s=-1*n.detail),"wheelDelta"in n&&(s=n.wheelDelta),"wheelDeltaY"in n&&(s=n.wheelDeltaY),"wheelDeltaX"in n&&(o=-1*n.wheelDeltaX),"axis"in n&&n.axis===n.HORIZONTAL_AXIS&&(o=-1*s,s=0),r=0===s?o:s,"deltaY"in n&&(r=s=-1*n.deltaY),"deltaX"in n&&(o=n.deltaX,0===s&&(r=-1*o)),0!==s||0!==o){if(1===n.deltaMode){var c=p.data(this,"mousewheel-line-height");r*=c,s*=c,o*=c}else if(2===n.deltaMode){var u=p.data(this,"mousewheel-page-height");r*=u,s*=u,o*=u}if(t=Math.max(Math.abs(s),Math.abs(o)),(!f||t<f)&&y(n,f=t)&&(f/=40),y(n,t)&&(r/=40,o/=40,s/=40),r=Math[1<=r?"floor":"ceil"](r/f),o=Math[1<=o?"floor":"ceil"](o/f),s=Math[1<=s?"floor":"ceil"](s/f),m.settings.normalizeOffset&&this.getBoundingClientRect){var d=this.getBoundingClientRect();a=e.clientX-d.left,l=e.clientY-d.top}return e.deltaX=o,e.deltaY=s,e.deltaFactor=f,e.offsetX=a,e.offsetY=l,e.deltaMode=0,i.unshift(e,r,o,s),h&&clearTimeout(h),h=setTimeout(v,200),(p.event.dispatch||p.event.handle).apply(this,i)}}function v(){f=null}function y(e,t){return m.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}p.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})},"function"==typeof e.define&&e.define.amd?e.define("jquery-mousewheel",["jquery"],l):"object"==typeof exports?module.exports=l:l(d),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(r,e,o,t,s){if(null==r.fn.select2){var a=["open","close","destroy"];r.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=r.extend(!0,{},t);new o(r(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,i=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,i)}),-1<r.inArray(t,a)?this:n}}return null==r.fn.select2.defaults&&(r.fn.select2.defaults=t),o}),{define:e.define,require:e.require}}(),t=e.require("jquery.select2");return d.fn.select2.amd=e,t}); \ No newline at end of file diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt deleted file mode 100644 index 43f08b4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2007-2017 Steven Levithan <http://xregexp.com/> - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js deleted file mode 100644 index ded6f6f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js +++ /dev/null @@ -1,4652 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.XRegExp = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ -/*! - * XRegExp.build 3.2.0 - * <xregexp.com> - * Steven Levithan (c) 2012-2017 MIT License - * Inspired by Lea Verou's RegExp.create <lea.verou.me> - */ - -module.exports = function(XRegExp) { - 'use strict'; - - var REGEX_DATA = 'xregexp'; - var subParts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g; - var parts = XRegExp.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/, subParts], 'g', { - conjunction: 'or' - }); - - /** - * Strips a leading `^` and trailing unescaped `$`, if both are present. - * - * @private - * @param {String} pattern Pattern to process. - * @returns {String} Pattern with edge anchors removed. - */ - function deanchor(pattern) { - // Allow any number of empty noncapturing groups before/after anchors, because regexes - // built/generated by XRegExp sometimes include them - var leadingAnchor = /^(?:\(\?:\))*\^/; - var trailingAnchor = /\$(?:\(\?:\))*$/; - - if ( - leadingAnchor.test(pattern) && - trailingAnchor.test(pattern) && - // Ensure that the trailing `$` isn't escaped - trailingAnchor.test(pattern.replace(/\\[\s\S]/g, '')) - ) { - return pattern.replace(leadingAnchor, '').replace(trailingAnchor, ''); - } - - return pattern; - } - - /** - * Converts the provided value to an XRegExp. Native RegExp flags are not preserved. - * - * @private - * @param {String|RegExp} value Value to convert. - * @param {Boolean} [addFlagX] Whether to apply the `x` flag in cases when `value` is not - * already a regex generated by XRegExp - * @returns {RegExp} XRegExp object with XRegExp syntax applied. - */ - function asXRegExp(value, addFlagX) { - var flags = addFlagX ? 'x' : ''; - return XRegExp.isRegExp(value) ? - (value[REGEX_DATA] && value[REGEX_DATA].captureNames ? - // Don't recompile, to preserve capture names - value : - // Recompile as XRegExp - XRegExp(value.source, flags) - ) : - // Compile string as XRegExp - XRegExp(value, flags); - } - - /** - * Builds regexes using named subpatterns, for readability and pattern reuse. Backreferences in - * the outer pattern and provided subpatterns are automatically renumbered to work correctly. - * Native flags used by provided subpatterns are ignored in favor of the `flags` argument. - * - * @memberOf XRegExp - * @param {String} pattern XRegExp pattern using `{{name}}` for embedded subpatterns. Allows - * `({{name}})` as shorthand for `(?<name>{{name}})`. Patterns cannot be embedded within - * character classes. - * @param {Object} subs Lookup object for named subpatterns. Values can be strings or regexes. A - * leading `^` and trailing unescaped `$` are stripped from subpatterns, if both are present. - * @param {String} [flags] Any combination of XRegExp flags. - * @returns {RegExp} Regex with interpolated subpatterns. - * @example - * - * var time = XRegExp.build('(?x)^ {{hours}} ({{minutes}}) $', { - * hours: XRegExp.build('{{h12}} : | {{h24}}', { - * h12: /1[0-2]|0?[1-9]/, - * h24: /2[0-3]|[01][0-9]/ - * }, 'x'), - * minutes: /^[0-5][0-9]$/ - * }); - * time.test('10:59'); // -> true - * XRegExp.exec('10:59', time).minutes; // -> '59' - */ - XRegExp.build = function(pattern, subs, flags) { - flags = flags || ''; - // Used with `asXRegExp` calls for `pattern` and subpatterns in `subs`, to work around how - // some browsers convert `RegExp('\n')` to a regex that contains the literal characters `\` - // and `n`. See more details at <https://github.com/slevithan/xregexp/pull/163>. - var addFlagX = flags.indexOf('x') > -1; - var inlineFlags = /^\(\?([\w$]+)\)/.exec(pattern); - // Add flags within a leading mode modifier to the overall pattern's flags - if (inlineFlags) { - flags = XRegExp._clipDuplicates(flags + inlineFlags[1]); - } - - var data = {}; - for (var p in subs) { - if (subs.hasOwnProperty(p)) { - // Passing to XRegExp enables extended syntax and ensures independent validity, - // lest an unescaped `(`, `)`, `[`, or trailing `\` breaks the `(?:)` wrapper. For - // subpatterns provided as native regexes, it dies on octals and adds the property - // used to hold extended regex instance data, for simplicity. - var sub = asXRegExp(subs[p], addFlagX); - data[p] = { - // Deanchoring allows embedding independently useful anchored regexes. If you - // really need to keep your anchors, double them (i.e., `^^...$$`). - pattern: deanchor(sub.source), - names: sub[REGEX_DATA].captureNames || [] - }; - } - } - - // Passing to XRegExp dies on octals and ensures the outer pattern is independently valid; - // helps keep this simple. Named captures will be put back. - var patternAsRegex = asXRegExp(pattern, addFlagX); - - // 'Caps' is short for 'captures' - var numCaps = 0; - var numPriorCaps; - var numOuterCaps = 0; - var outerCapsMap = [0]; - var outerCapNames = patternAsRegex[REGEX_DATA].captureNames || []; - var output = patternAsRegex.source.replace(parts, function($0, $1, $2, $3, $4) { - var subName = $1 || $2; - var capName; - var intro; - var localCapIndex; - // Named subpattern - if (subName) { - if (!data.hasOwnProperty(subName)) { - throw new ReferenceError('Undefined property ' + $0); - } - // Named subpattern was wrapped in a capturing group - if ($1) { - capName = outerCapNames[numOuterCaps]; - outerCapsMap[++numOuterCaps] = ++numCaps; - // If it's a named group, preserve the name. Otherwise, use the subpattern name - // as the capture name - intro = '(?<' + (capName || subName) + '>'; - } else { - intro = '(?:'; - } - numPriorCaps = numCaps; - return intro + data[subName].pattern.replace(subParts, function(match, paren, backref) { - // Capturing group - if (paren) { - capName = data[subName].names[numCaps - numPriorCaps]; - ++numCaps; - // If the current capture has a name, preserve the name - if (capName) { - return '(?<' + capName + '>'; - } - // Backreference - } else if (backref) { - localCapIndex = +backref - 1; - // Rewrite the backreference - return data[subName].names[localCapIndex] ? - // Need to preserve the backreference name in case using flag `n` - '\\k<' + data[subName].names[localCapIndex] + '>' : - '\\' + (+backref + numPriorCaps); - } - return match; - }) + ')'; - } - // Capturing group - if ($3) { - capName = outerCapNames[numOuterCaps]; - outerCapsMap[++numOuterCaps] = ++numCaps; - // If the current capture has a name, preserve the name - if (capName) { - return '(?<' + capName + '>'; - } - // Backreference - } else if ($4) { - localCapIndex = +$4 - 1; - // Rewrite the backreference - return outerCapNames[localCapIndex] ? - // Need to preserve the backreference name in case using flag `n` - '\\k<' + outerCapNames[localCapIndex] + '>' : - '\\' + outerCapsMap[+$4]; - } - return $0; - }); - - return XRegExp(output, flags); - }; - -}; - -},{}],2:[function(require,module,exports){ -/*! - * XRegExp.matchRecursive 3.2.0 - * <xregexp.com> - * Steven Levithan (c) 2009-2017 MIT License - */ - -module.exports = function(XRegExp) { - 'use strict'; - - /** - * Returns a match detail object composed of the provided values. - * - * @private - */ - function row(name, value, start, end) { - return { - name: name, - value: value, - start: start, - end: end - }; - } - - /** - * Returns an array of match strings between outermost left and right delimiters, or an array of - * objects with detailed match parts and position data. An error is thrown if delimiters are - * unbalanced within the data. - * - * @memberOf XRegExp - * @param {String} str String to search. - * @param {String} left Left delimiter as an XRegExp pattern. - * @param {String} right Right delimiter as an XRegExp pattern. - * @param {String} [flags] Any native or XRegExp flags, used for the left and right delimiters. - * @param {Object} [options] Lets you specify `valueNames` and `escapeChar` options. - * @returns {Array} Array of matches, or an empty array. - * @example - * - * // Basic usage - * var str = '(t((e))s)t()(ing)'; - * XRegExp.matchRecursive(str, '\\(', '\\)', 'g'); - * // -> ['t((e))s', '', 'ing'] - * - * // Extended information mode with valueNames - * str = 'Here is <div> <div>an</div></div> example'; - * XRegExp.matchRecursive(str, '<div\\s*>', '</div>', 'gi', { - * valueNames: ['between', 'left', 'match', 'right'] - * }); - * // -> [ - * // {name: 'between', value: 'Here is ', start: 0, end: 8}, - * // {name: 'left', value: '<div>', start: 8, end: 13}, - * // {name: 'match', value: ' <div>an</div>', start: 13, end: 27}, - * // {name: 'right', value: '</div>', start: 27, end: 33}, - * // {name: 'between', value: ' example', start: 33, end: 41} - * // ] - * - * // Omitting unneeded parts with null valueNames, and using escapeChar - * str = '...{1}.\\{{function(x,y){return {y:x}}}'; - * XRegExp.matchRecursive(str, '{', '}', 'g', { - * valueNames: ['literal', null, 'value', null], - * escapeChar: '\\' - * }); - * // -> [ - * // {name: 'literal', value: '...', start: 0, end: 3}, - * // {name: 'value', value: '1', start: 4, end: 5}, - * // {name: 'literal', value: '.\\{', start: 6, end: 9}, - * // {name: 'value', value: 'function(x,y){return {y:x}}', start: 10, end: 37} - * // ] - * - * // Sticky mode via flag y - * str = '<1><<<2>>><3>4<5>'; - * XRegExp.matchRecursive(str, '<', '>', 'gy'); - * // -> ['1', '<<2>>', '3'] - */ - XRegExp.matchRecursive = function(str, left, right, flags, options) { - flags = flags || ''; - options = options || {}; - var global = flags.indexOf('g') > -1; - var sticky = flags.indexOf('y') > -1; - // Flag `y` is controlled internally - var basicFlags = flags.replace(/y/g, ''); - var escapeChar = options.escapeChar; - var vN = options.valueNames; - var output = []; - var openTokens = 0; - var delimStart = 0; - var delimEnd = 0; - var lastOuterEnd = 0; - var outerStart; - var innerStart; - var leftMatch; - var rightMatch; - var esc; - left = XRegExp(left, basicFlags); - right = XRegExp(right, basicFlags); - - if (escapeChar) { - if (escapeChar.length > 1) { - throw new Error('Cannot use more than one escape character'); - } - escapeChar = XRegExp.escape(escapeChar); - // Example of concatenated `esc` regex: - // `escapeChar`: '%' - // `left`: '<' - // `right`: '>' - // Regex is: /(?:%[\S\s]|(?:(?!<|>)[^%])+)+/ - esc = new RegExp( - '(?:' + escapeChar + '[\\S\\s]|(?:(?!' + - // Using `XRegExp.union` safely rewrites backreferences in `left` and `right`. - // Intentionally not passing `basicFlags` to `XRegExp.union` since any syntax - // transformation resulting from those flags was already applied to `left` and - // `right` when they were passed through the XRegExp constructor above. - XRegExp.union([left, right], '', {conjunction: 'or'}).source + - ')[^' + escapeChar + '])+)+', - // Flags `gy` not needed here - flags.replace(/[^imu]+/g, '') - ); - } - - while (true) { - // If using an escape character, advance to the delimiter's next starting position, - // skipping any escaped characters in between - if (escapeChar) { - delimEnd += (XRegExp.exec(str, esc, delimEnd, 'sticky') || [''])[0].length; - } - leftMatch = XRegExp.exec(str, left, delimEnd); - rightMatch = XRegExp.exec(str, right, delimEnd); - // Keep the leftmost match only - if (leftMatch && rightMatch) { - if (leftMatch.index <= rightMatch.index) { - rightMatch = null; - } else { - leftMatch = null; - } - } - // Paths (LM: leftMatch, RM: rightMatch, OT: openTokens): - // LM | RM | OT | Result - // 1 | 0 | 1 | loop - // 1 | 0 | 0 | loop - // 0 | 1 | 1 | loop - // 0 | 1 | 0 | throw - // 0 | 0 | 1 | throw - // 0 | 0 | 0 | break - // The paths above don't include the sticky mode special case. The loop ends after the - // first completed match if not `global`. - if (leftMatch || rightMatch) { - delimStart = (leftMatch || rightMatch).index; - delimEnd = delimStart + (leftMatch || rightMatch)[0].length; - } else if (!openTokens) { - break; - } - if (sticky && !openTokens && delimStart > lastOuterEnd) { - break; - } - if (leftMatch) { - if (!openTokens) { - outerStart = delimStart; - innerStart = delimEnd; - } - ++openTokens; - } else if (rightMatch && openTokens) { - if (!--openTokens) { - if (vN) { - if (vN[0] && outerStart > lastOuterEnd) { - output.push(row(vN[0], str.slice(lastOuterEnd, outerStart), lastOuterEnd, outerStart)); - } - if (vN[1]) { - output.push(row(vN[1], str.slice(outerStart, innerStart), outerStart, innerStart)); - } - if (vN[2]) { - output.push(row(vN[2], str.slice(innerStart, delimStart), innerStart, delimStart)); - } - if (vN[3]) { - output.push(row(vN[3], str.slice(delimStart, delimEnd), delimStart, delimEnd)); - } - } else { - output.push(str.slice(innerStart, delimStart)); - } - lastOuterEnd = delimEnd; - if (!global) { - break; - } - } - } else { - throw new Error('Unbalanced delimiter found in string'); - } - // If the delimiter matched an empty string, avoid an infinite loop - if (delimStart === delimEnd) { - ++delimEnd; - } - } - - if (global && !sticky && vN && vN[0] && str.length > lastOuterEnd) { - output.push(row(vN[0], str.slice(lastOuterEnd), lastOuterEnd, str.length)); - } - - return output; - }; - -}; - -},{}],3:[function(require,module,exports){ -/*! - * XRegExp Unicode Base 3.2.0 - * <xregexp.com> - * Steven Levithan (c) 2008-2017 MIT License - */ - -module.exports = function(XRegExp) { - 'use strict'; - - /** - * Adds base support for Unicode matching: - * - Adds syntax `\p{..}` for matching Unicode tokens. Tokens can be inverted using `\P{..}` or - * `\p{^..}`. Token names ignore case, spaces, hyphens, and underscores. You can omit the - * braces for token names that are a single letter (e.g. `\pL` or `PL`). - * - Adds flag A (astral), which enables 21-bit Unicode support. - * - Adds the `XRegExp.addUnicodeData` method used by other addons to provide character data. - * - * Unicode Base relies on externally provided Unicode character data. Official addons are - * available to provide data for Unicode categories, scripts, blocks, and properties. - * - * @requires XRegExp - */ - - // ==--------------------------== - // Private stuff - // ==--------------------------== - - // Storage for Unicode data - var unicode = {}; - - // Reuse utils - var dec = XRegExp._dec; - var hex = XRegExp._hex; - var pad4 = XRegExp._pad4; - - // Generates a token lookup name: lowercase, with hyphens, spaces, and underscores removed - function normalize(name) { - return name.replace(/[- _]+/g, '').toLowerCase(); - } - - // Gets the decimal code of a literal code unit, \xHH, \uHHHH, or a backslash-escaped literal - function charCode(chr) { - var esc = /^\\[xu](.+)/.exec(chr); - return esc ? - dec(esc[1]) : - chr.charCodeAt(chr.charAt(0) === '\\' ? 1 : 0); - } - - // Inverts a list of ordered BMP characters and ranges - function invertBmp(range) { - var output = ''; - var lastEnd = -1; - - XRegExp.forEach( - range, - /(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/, - function(m) { - var start = charCode(m[1]); - if (start > (lastEnd + 1)) { - output += '\\u' + pad4(hex(lastEnd + 1)); - if (start > (lastEnd + 2)) { - output += '-\\u' + pad4(hex(start - 1)); - } - } - lastEnd = charCode(m[2] || m[1]); - } - ); - - if (lastEnd < 0xFFFF) { - output += '\\u' + pad4(hex(lastEnd + 1)); - if (lastEnd < 0xFFFE) { - output += '-\\uFFFF'; - } - } - - return output; - } - - // Generates an inverted BMP range on first use - function cacheInvertedBmp(slug) { - var prop = 'b!'; - return ( - unicode[slug][prop] || - (unicode[slug][prop] = invertBmp(unicode[slug].bmp)) - ); - } - - // Combines and optionally negates BMP and astral data - function buildAstral(slug, isNegated) { - var item = unicode[slug]; - var combined = ''; - - if (item.bmp && !item.isBmpLast) { - combined = '[' + item.bmp + ']' + (item.astral ? '|' : ''); - } - if (item.astral) { - combined += item.astral; - } - if (item.isBmpLast && item.bmp) { - combined += (item.astral ? '|' : '') + '[' + item.bmp + ']'; - } - - // Astral Unicode tokens always match a code point, never a code unit - return isNegated ? - '(?:(?!' + combined + ')(?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[\0-\uFFFF]))' : - '(?:' + combined + ')'; - } - - // Builds a complete astral pattern on first use - function cacheAstral(slug, isNegated) { - var prop = isNegated ? 'a!' : 'a='; - return ( - unicode[slug][prop] || - (unicode[slug][prop] = buildAstral(slug, isNegated)) - ); - } - - // ==--------------------------== - // Core functionality - // ==--------------------------== - - /* - * Add astral mode (flag A) and Unicode token syntax: `\p{..}`, `\P{..}`, `\p{^..}`, `\pC`. - */ - XRegExp.addToken( - // Use `*` instead of `+` to avoid capturing `^` as the token name in `\p{^}` - /\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/, - function(match, scope, flags) { - var ERR_DOUBLE_NEG = 'Invalid double negation '; - var ERR_UNKNOWN_NAME = 'Unknown Unicode token '; - var ERR_UNKNOWN_REF = 'Unicode token missing data '; - var ERR_ASTRAL_ONLY = 'Astral mode required for Unicode token '; - var ERR_ASTRAL_IN_CLASS = 'Astral mode does not support Unicode tokens within character classes'; - // Negated via \P{..} or \p{^..} - var isNegated = match[1] === 'P' || !!match[2]; - // Switch from BMP (0-FFFF) to astral (0-10FFFF) mode via flag A - var isAstralMode = flags.indexOf('A') > -1; - // Token lookup name. Check `[4]` first to avoid passing `undefined` via `\p{}` - var slug = normalize(match[4] || match[3]); - // Token data object - var item = unicode[slug]; - - if (match[1] === 'P' && match[2]) { - throw new SyntaxError(ERR_DOUBLE_NEG + match[0]); - } - if (!unicode.hasOwnProperty(slug)) { - throw new SyntaxError(ERR_UNKNOWN_NAME + match[0]); - } - - // Switch to the negated form of the referenced Unicode token - if (item.inverseOf) { - slug = normalize(item.inverseOf); - if (!unicode.hasOwnProperty(slug)) { - throw new ReferenceError(ERR_UNKNOWN_REF + match[0] + ' -> ' + item.inverseOf); - } - item = unicode[slug]; - isNegated = !isNegated; - } - - if (!(item.bmp || isAstralMode)) { - throw new SyntaxError(ERR_ASTRAL_ONLY + match[0]); - } - if (isAstralMode) { - if (scope === 'class') { - throw new SyntaxError(ERR_ASTRAL_IN_CLASS); - } - - return cacheAstral(slug, isNegated); - } - - return scope === 'class' ? - (isNegated ? cacheInvertedBmp(slug) : item.bmp) : - (isNegated ? '[^' : '[') + item.bmp + ']'; - }, - { - scope: 'all', - optionalFlags: 'A', - leadChar: '\\' - } - ); - - /** - * Adds to the list of Unicode tokens that XRegExp regexes can match via `\p` or `\P`. - * - * @memberOf XRegExp - * @param {Array} data Objects with named character ranges. Each object may have properties - * `name`, `alias`, `isBmpLast`, `inverseOf`, `bmp`, and `astral`. All but `name` are - * optional, although one of `bmp` or `astral` is required (unless `inverseOf` is set). If - * `astral` is absent, the `bmp` data is used for BMP and astral modes. If `bmp` is absent, - * the name errors in BMP mode but works in astral mode. If both `bmp` and `astral` are - * provided, the `bmp` data only is used in BMP mode, and the combination of `bmp` and - * `astral` data is used in astral mode. `isBmpLast` is needed when a token matches orphan - * high surrogates *and* uses surrogate pairs to match astral code points. The `bmp` and - * `astral` data should be a combination of literal characters and `\xHH` or `\uHHHH` escape - * sequences, with hyphens to create ranges. Any regex metacharacters in the data should be - * escaped, apart from range-creating hyphens. The `astral` data can additionally use - * character classes and alternation, and should use surrogate pairs to represent astral code - * points. `inverseOf` can be used to avoid duplicating character data if a Unicode token is - * defined as the exact inverse of another token. - * @example - * - * // Basic use - * XRegExp.addUnicodeData([{ - * name: 'XDigit', - * alias: 'Hexadecimal', - * bmp: '0-9A-Fa-f' - * }]); - * XRegExp('\\p{XDigit}:\\p{Hexadecimal}+').test('0:3D'); // -> true - */ - XRegExp.addUnicodeData = function(data) { - var ERR_NO_NAME = 'Unicode token requires name'; - var ERR_NO_DATA = 'Unicode token has no character data '; - var item; - - for (var i = 0; i < data.length; ++i) { - item = data[i]; - if (!item.name) { - throw new Error(ERR_NO_NAME); - } - if (!(item.inverseOf || item.bmp || item.astral)) { - throw new Error(ERR_NO_DATA + item.name); - } - unicode[normalize(item.name)] = item; - if (item.alias) { - unicode[normalize(item.alias)] = item; - } - } - - // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and - // flags might now produce different results - XRegExp.cache.flush('patterns'); - }; - - /** - * @ignore - * - * Return a reference to the internal Unicode definition structure for the given Unicode - * Property if the given name is a legal Unicode Property for use in XRegExp `\p` or `\P` regex - * constructs. - * - * @memberOf XRegExp - * @param {String} name Name by which the Unicode Property may be recognized (case-insensitive), - * e.g. `'N'` or `'Number'`. The given name is matched against all registered Unicode - * Properties and Property Aliases. - * @returns {Object} Reference to definition structure when the name matches a Unicode Property. - * - * @note - * For more info on Unicode Properties, see also http://unicode.org/reports/tr18/#Categories. - * - * @note - * This method is *not* part of the officially documented API and may change or be removed in - * the future. It is meant for userland code that wishes to reuse the (large) internal Unicode - * structures set up by XRegExp. - */ - XRegExp._getUnicodeProperty = function(name) { - var slug = normalize(name); - return unicode[slug]; - }; - -}; - -},{}],4:[function(require,module,exports){ -/*! - * XRegExp Unicode Blocks 3.2.0 - * <xregexp.com> - * Steven Levithan (c) 2010-2017 MIT License - * Unicode data by Mathias Bynens <mathiasbynens.be> - */ - -module.exports = function(XRegExp) { - 'use strict'; - - /** - * Adds support for all Unicode blocks. Block names use the prefix 'In'. E.g., - * `\p{InBasicLatin}`. Token names are case insensitive, and any spaces, hyphens, and - * underscores are ignored. - * - * Uses Unicode 9.0.0. - * - * @requires XRegExp, Unicode Base - */ - - if (!XRegExp.addUnicodeData) { - throw new ReferenceError('Unicode Base must be loaded before Unicode Blocks'); - } - - XRegExp.addUnicodeData([ - { - name: 'InAdlam', - astral: '\uD83A[\uDD00-\uDD5F]' - }, - { - name: 'InAegean_Numbers', - astral: '\uD800[\uDD00-\uDD3F]' - }, - { - name: 'InAhom', - astral: '\uD805[\uDF00-\uDF3F]' - }, - { - name: 'InAlchemical_Symbols', - astral: '\uD83D[\uDF00-\uDF7F]' - }, - { - name: 'InAlphabetic_Presentation_Forms', - bmp: '\uFB00-\uFB4F' - }, - { - name: 'InAnatolian_Hieroglyphs', - astral: '\uD811[\uDC00-\uDE7F]' - }, - { - name: 'InAncient_Greek_Musical_Notation', - astral: '\uD834[\uDE00-\uDE4F]' - }, - { - name: 'InAncient_Greek_Numbers', - astral: '\uD800[\uDD40-\uDD8F]' - }, - { - name: 'InAncient_Symbols', - astral: '\uD800[\uDD90-\uDDCF]' - }, - { - name: 'InArabic', - bmp: '\u0600-\u06FF' - }, - { - name: 'InArabic_Extended_A', - bmp: '\u08A0-\u08FF' - }, - { - name: 'InArabic_Mathematical_Alphabetic_Symbols', - astral: '\uD83B[\uDE00-\uDEFF]' - }, - { - name: 'InArabic_Presentation_Forms_A', - bmp: '\uFB50-\uFDFF' - }, - { - name: 'InArabic_Presentation_Forms_B', - bmp: '\uFE70-\uFEFF' - }, - { - name: 'InArabic_Supplement', - bmp: '\u0750-\u077F' - }, - { - name: 'InArmenian', - bmp: '\u0530-\u058F' - }, - { - name: 'InArrows', - bmp: '\u2190-\u21FF' - }, - { - name: 'InAvestan', - astral: '\uD802[\uDF00-\uDF3F]' - }, - { - name: 'InBalinese', - bmp: '\u1B00-\u1B7F' - }, - { - name: 'InBamum', - bmp: '\uA6A0-\uA6FF' - }, - { - name: 'InBamum_Supplement', - astral: '\uD81A[\uDC00-\uDE3F]' - }, - { - name: 'InBasic_Latin', - bmp: '\0-\x7F' - }, - { - name: 'InBassa_Vah', - astral: '\uD81A[\uDED0-\uDEFF]' - }, - { - name: 'InBatak', - bmp: '\u1BC0-\u1BFF' - }, - { - name: 'InBengali', - bmp: '\u0980-\u09FF' - }, - { - name: 'InBhaiksuki', - astral: '\uD807[\uDC00-\uDC6F]' - }, - { - name: 'InBlock_Elements', - bmp: '\u2580-\u259F' - }, - { - name: 'InBopomofo', - bmp: '\u3100-\u312F' - }, - { - name: 'InBopomofo_Extended', - bmp: '\u31A0-\u31BF' - }, - { - name: 'InBox_Drawing', - bmp: '\u2500-\u257F' - }, - { - name: 'InBrahmi', - astral: '\uD804[\uDC00-\uDC7F]' - }, - { - name: 'InBraille_Patterns', - bmp: '\u2800-\u28FF' - }, - { - name: 'InBuginese', - bmp: '\u1A00-\u1A1F' - }, - { - name: 'InBuhid', - bmp: '\u1740-\u175F' - }, - { - name: 'InByzantine_Musical_Symbols', - astral: '\uD834[\uDC00-\uDCFF]' - }, - { - name: 'InCJK_Compatibility', - bmp: '\u3300-\u33FF' - }, - { - name: 'InCJK_Compatibility_Forms', - bmp: '\uFE30-\uFE4F' - }, - { - name: 'InCJK_Compatibility_Ideographs', - bmp: '\uF900-\uFAFF' - }, - { - name: 'InCJK_Compatibility_Ideographs_Supplement', - astral: '\uD87E[\uDC00-\uDE1F]' - }, - { - name: 'InCJK_Radicals_Supplement', - bmp: '\u2E80-\u2EFF' - }, - { - name: 'InCJK_Strokes', - bmp: '\u31C0-\u31EF' - }, - { - name: 'InCJK_Symbols_and_Punctuation', - bmp: '\u3000-\u303F' - }, - { - name: 'InCJK_Unified_Ideographs', - bmp: '\u4E00-\u9FFF' - }, - { - name: 'InCJK_Unified_Ideographs_Extension_A', - bmp: '\u3400-\u4DBF' - }, - { - name: 'InCJK_Unified_Ideographs_Extension_B', - astral: '[\uD840-\uD868][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF]' - }, - { - name: 'InCJK_Unified_Ideographs_Extension_C', - astral: '\uD869[\uDF00-\uDFFF]|[\uD86A-\uD86C][\uDC00-\uDFFF]|\uD86D[\uDC00-\uDF3F]' - }, - { - name: 'InCJK_Unified_Ideographs_Extension_D', - astral: '\uD86D[\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1F]' - }, - { - name: 'InCJK_Unified_Ideographs_Extension_E', - astral: '\uD86E[\uDC20-\uDFFF]|[\uD86F-\uD872][\uDC00-\uDFFF]|\uD873[\uDC00-\uDEAF]' - }, - { - name: 'InCarian', - astral: '\uD800[\uDEA0-\uDEDF]' - }, - { - name: 'InCaucasian_Albanian', - astral: '\uD801[\uDD30-\uDD6F]' - }, - { - name: 'InChakma', - astral: '\uD804[\uDD00-\uDD4F]' - }, - { - name: 'InCham', - bmp: '\uAA00-\uAA5F' - }, - { - name: 'InCherokee', - bmp: '\u13A0-\u13FF' - }, - { - name: 'InCherokee_Supplement', - bmp: '\uAB70-\uABBF' - }, - { - name: 'InCombining_Diacritical_Marks', - bmp: '\u0300-\u036F' - }, - { - name: 'InCombining_Diacritical_Marks_Extended', - bmp: '\u1AB0-\u1AFF' - }, - { - name: 'InCombining_Diacritical_Marks_Supplement', - bmp: '\u1DC0-\u1DFF' - }, - { - name: 'InCombining_Diacritical_Marks_for_Symbols', - bmp: '\u20D0-\u20FF' - }, - { - name: 'InCombining_Half_Marks', - bmp: '\uFE20-\uFE2F' - }, - { - name: 'InCommon_Indic_Number_Forms', - bmp: '\uA830-\uA83F' - }, - { - name: 'InControl_Pictures', - bmp: '\u2400-\u243F' - }, - { - name: 'InCoptic', - bmp: '\u2C80-\u2CFF' - }, - { - name: 'InCoptic_Epact_Numbers', - astral: '\uD800[\uDEE0-\uDEFF]' - }, - { - name: 'InCounting_Rod_Numerals', - astral: '\uD834[\uDF60-\uDF7F]' - }, - { - name: 'InCuneiform', - astral: '\uD808[\uDC00-\uDFFF]' - }, - { - name: 'InCuneiform_Numbers_and_Punctuation', - astral: '\uD809[\uDC00-\uDC7F]' - }, - { - name: 'InCurrency_Symbols', - bmp: '\u20A0-\u20CF' - }, - { - name: 'InCypriot_Syllabary', - astral: '\uD802[\uDC00-\uDC3F]' - }, - { - name: 'InCyrillic', - bmp: '\u0400-\u04FF' - }, - { - name: 'InCyrillic_Extended_A', - bmp: '\u2DE0-\u2DFF' - }, - { - name: 'InCyrillic_Extended_B', - bmp: '\uA640-\uA69F' - }, - { - name: 'InCyrillic_Extended_C', - bmp: '\u1C80-\u1C8F' - }, - { - name: 'InCyrillic_Supplement', - bmp: '\u0500-\u052F' - }, - { - name: 'InDeseret', - astral: '\uD801[\uDC00-\uDC4F]' - }, - { - name: 'InDevanagari', - bmp: '\u0900-\u097F' - }, - { - name: 'InDevanagari_Extended', - bmp: '\uA8E0-\uA8FF' - }, - { - name: 'InDingbats', - bmp: '\u2700-\u27BF' - }, - { - name: 'InDomino_Tiles', - astral: '\uD83C[\uDC30-\uDC9F]' - }, - { - name: 'InDuployan', - astral: '\uD82F[\uDC00-\uDC9F]' - }, - { - name: 'InEarly_Dynastic_Cuneiform', - astral: '\uD809[\uDC80-\uDD4F]' - }, - { - name: 'InEgyptian_Hieroglyphs', - astral: '\uD80C[\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F]' - }, - { - name: 'InElbasan', - astral: '\uD801[\uDD00-\uDD2F]' - }, - { - name: 'InEmoticons', - astral: '\uD83D[\uDE00-\uDE4F]' - }, - { - name: 'InEnclosed_Alphanumeric_Supplement', - astral: '\uD83C[\uDD00-\uDDFF]' - }, - { - name: 'InEnclosed_Alphanumerics', - bmp: '\u2460-\u24FF' - }, - { - name: 'InEnclosed_CJK_Letters_and_Months', - bmp: '\u3200-\u32FF' - }, - { - name: 'InEnclosed_Ideographic_Supplement', - astral: '\uD83C[\uDE00-\uDEFF]' - }, - { - name: 'InEthiopic', - bmp: '\u1200-\u137F' - }, - { - name: 'InEthiopic_Extended', - bmp: '\u2D80-\u2DDF' - }, - { - name: 'InEthiopic_Extended_A', - bmp: '\uAB00-\uAB2F' - }, - { - name: 'InEthiopic_Supplement', - bmp: '\u1380-\u139F' - }, - { - name: 'InGeneral_Punctuation', - bmp: '\u2000-\u206F' - }, - { - name: 'InGeometric_Shapes', - bmp: '\u25A0-\u25FF' - }, - { - name: 'InGeometric_Shapes_Extended', - astral: '\uD83D[\uDF80-\uDFFF]' - }, - { - name: 'InGeorgian', - bmp: '\u10A0-\u10FF' - }, - { - name: 'InGeorgian_Supplement', - bmp: '\u2D00-\u2D2F' - }, - { - name: 'InGlagolitic', - bmp: '\u2C00-\u2C5F' - }, - { - name: 'InGlagolitic_Supplement', - astral: '\uD838[\uDC00-\uDC2F]' - }, - { - name: 'InGothic', - astral: '\uD800[\uDF30-\uDF4F]' - }, - { - name: 'InGrantha', - astral: '\uD804[\uDF00-\uDF7F]' - }, - { - name: 'InGreek_Extended', - bmp: '\u1F00-\u1FFF' - }, - { - name: 'InGreek_and_Coptic', - bmp: '\u0370-\u03FF' - }, - { - name: 'InGujarati', - bmp: '\u0A80-\u0AFF' - }, - { - name: 'InGurmukhi', - bmp: '\u0A00-\u0A7F' - }, - { - name: 'InHalfwidth_and_Fullwidth_Forms', - bmp: '\uFF00-\uFFEF' - }, - { - name: 'InHangul_Compatibility_Jamo', - bmp: '\u3130-\u318F' - }, - { - name: 'InHangul_Jamo', - bmp: '\u1100-\u11FF' - }, - { - name: 'InHangul_Jamo_Extended_A', - bmp: '\uA960-\uA97F' - }, - { - name: 'InHangul_Jamo_Extended_B', - bmp: '\uD7B0-\uD7FF' - }, - { - name: 'InHangul_Syllables', - bmp: '\uAC00-\uD7AF' - }, - { - name: 'InHanunoo', - bmp: '\u1720-\u173F' - }, - { - name: 'InHatran', - astral: '\uD802[\uDCE0-\uDCFF]' - }, - { - name: 'InHebrew', - bmp: '\u0590-\u05FF' - }, - { - name: 'InHigh_Private_Use_Surrogates', - bmp: '\uDB80-\uDBFF' - }, - { - name: 'InHigh_Surrogates', - bmp: '\uD800-\uDB7F' - }, - { - name: 'InHiragana', - bmp: '\u3040-\u309F' - }, - { - name: 'InIPA_Extensions', - bmp: '\u0250-\u02AF' - }, - { - name: 'InIdeographic_Description_Characters', - bmp: '\u2FF0-\u2FFF' - }, - { - name: 'InIdeographic_Symbols_and_Punctuation', - astral: '\uD81B[\uDFE0-\uDFFF]' - }, - { - name: 'InImperial_Aramaic', - astral: '\uD802[\uDC40-\uDC5F]' - }, - { - name: 'InInscriptional_Pahlavi', - astral: '\uD802[\uDF60-\uDF7F]' - }, - { - name: 'InInscriptional_Parthian', - astral: '\uD802[\uDF40-\uDF5F]' - }, - { - name: 'InJavanese', - bmp: '\uA980-\uA9DF' - }, - { - name: 'InKaithi', - astral: '\uD804[\uDC80-\uDCCF]' - }, - { - name: 'InKana_Supplement', - astral: '\uD82C[\uDC00-\uDCFF]' - }, - { - name: 'InKanbun', - bmp: '\u3190-\u319F' - }, - { - name: 'InKangxi_Radicals', - bmp: '\u2F00-\u2FDF' - }, - { - name: 'InKannada', - bmp: '\u0C80-\u0CFF' - }, - { - name: 'InKatakana', - bmp: '\u30A0-\u30FF' - }, - { - name: 'InKatakana_Phonetic_Extensions', - bmp: '\u31F0-\u31FF' - }, - { - name: 'InKayah_Li', - bmp: '\uA900-\uA92F' - }, - { - name: 'InKharoshthi', - astral: '\uD802[\uDE00-\uDE5F]' - }, - { - name: 'InKhmer', - bmp: '\u1780-\u17FF' - }, - { - name: 'InKhmer_Symbols', - bmp: '\u19E0-\u19FF' - }, - { - name: 'InKhojki', - astral: '\uD804[\uDE00-\uDE4F]' - }, - { - name: 'InKhudawadi', - astral: '\uD804[\uDEB0-\uDEFF]' - }, - { - name: 'InLao', - bmp: '\u0E80-\u0EFF' - }, - { - name: 'InLatin_Extended_Additional', - bmp: '\u1E00-\u1EFF' - }, - { - name: 'InLatin_Extended_A', - bmp: '\u0100-\u017F' - }, - { - name: 'InLatin_Extended_B', - bmp: '\u0180-\u024F' - }, - { - name: 'InLatin_Extended_C', - bmp: '\u2C60-\u2C7F' - }, - { - name: 'InLatin_Extended_D', - bmp: '\uA720-\uA7FF' - }, - { - name: 'InLatin_Extended_E', - bmp: '\uAB30-\uAB6F' - }, - { - name: 'InLatin_1_Supplement', - bmp: '\x80-\xFF' - }, - { - name: 'InLepcha', - bmp: '\u1C00-\u1C4F' - }, - { - name: 'InLetterlike_Symbols', - bmp: '\u2100-\u214F' - }, - { - name: 'InLimbu', - bmp: '\u1900-\u194F' - }, - { - name: 'InLinear_A', - astral: '\uD801[\uDE00-\uDF7F]' - }, - { - name: 'InLinear_B_Ideograms', - astral: '\uD800[\uDC80-\uDCFF]' - }, - { - name: 'InLinear_B_Syllabary', - astral: '\uD800[\uDC00-\uDC7F]' - }, - { - name: 'InLisu', - bmp: '\uA4D0-\uA4FF' - }, - { - name: 'InLow_Surrogates', - bmp: '\uDC00-\uDFFF' - }, - { - name: 'InLycian', - astral: '\uD800[\uDE80-\uDE9F]' - }, - { - name: 'InLydian', - astral: '\uD802[\uDD20-\uDD3F]' - }, - { - name: 'InMahajani', - astral: '\uD804[\uDD50-\uDD7F]' - }, - { - name: 'InMahjong_Tiles', - astral: '\uD83C[\uDC00-\uDC2F]' - }, - { - name: 'InMalayalam', - bmp: '\u0D00-\u0D7F' - }, - { - name: 'InMandaic', - bmp: '\u0840-\u085F' - }, - { - name: 'InManichaean', - astral: '\uD802[\uDEC0-\uDEFF]' - }, - { - name: 'InMarchen', - astral: '\uD807[\uDC70-\uDCBF]' - }, - { - name: 'InMathematical_Alphanumeric_Symbols', - astral: '\uD835[\uDC00-\uDFFF]' - }, - { - name: 'InMathematical_Operators', - bmp: '\u2200-\u22FF' - }, - { - name: 'InMeetei_Mayek', - bmp: '\uABC0-\uABFF' - }, - { - name: 'InMeetei_Mayek_Extensions', - bmp: '\uAAE0-\uAAFF' - }, - { - name: 'InMende_Kikakui', - astral: '\uD83A[\uDC00-\uDCDF]' - }, - { - name: 'InMeroitic_Cursive', - astral: '\uD802[\uDDA0-\uDDFF]' - }, - { - name: 'InMeroitic_Hieroglyphs', - astral: '\uD802[\uDD80-\uDD9F]' - }, - { - name: 'InMiao', - astral: '\uD81B[\uDF00-\uDF9F]' - }, - { - name: 'InMiscellaneous_Mathematical_Symbols_A', - bmp: '\u27C0-\u27EF' - }, - { - name: 'InMiscellaneous_Mathematical_Symbols_B', - bmp: '\u2980-\u29FF' - }, - { - name: 'InMiscellaneous_Symbols', - bmp: '\u2600-\u26FF' - }, - { - name: 'InMiscellaneous_Symbols_and_Arrows', - bmp: '\u2B00-\u2BFF' - }, - { - name: 'InMiscellaneous_Symbols_and_Pictographs', - astral: '\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF]' - }, - { - name: 'InMiscellaneous_Technical', - bmp: '\u2300-\u23FF' - }, - { - name: 'InModi', - astral: '\uD805[\uDE00-\uDE5F]' - }, - { - name: 'InModifier_Tone_Letters', - bmp: '\uA700-\uA71F' - }, - { - name: 'InMongolian', - bmp: '\u1800-\u18AF' - }, - { - name: 'InMongolian_Supplement', - astral: '\uD805[\uDE60-\uDE7F]' - }, - { - name: 'InMro', - astral: '\uD81A[\uDE40-\uDE6F]' - }, - { - name: 'InMultani', - astral: '\uD804[\uDE80-\uDEAF]' - }, - { - name: 'InMusical_Symbols', - astral: '\uD834[\uDD00-\uDDFF]' - }, - { - name: 'InMyanmar', - bmp: '\u1000-\u109F' - }, - { - name: 'InMyanmar_Extended_A', - bmp: '\uAA60-\uAA7F' - }, - { - name: 'InMyanmar_Extended_B', - bmp: '\uA9E0-\uA9FF' - }, - { - name: 'InNKo', - bmp: '\u07C0-\u07FF' - }, - { - name: 'InNabataean', - astral: '\uD802[\uDC80-\uDCAF]' - }, - { - name: 'InNew_Tai_Lue', - bmp: '\u1980-\u19DF' - }, - { - name: 'InNewa', - astral: '\uD805[\uDC00-\uDC7F]' - }, - { - name: 'InNumber_Forms', - bmp: '\u2150-\u218F' - }, - { - name: 'InOgham', - bmp: '\u1680-\u169F' - }, - { - name: 'InOl_Chiki', - bmp: '\u1C50-\u1C7F' - }, - { - name: 'InOld_Hungarian', - astral: '\uD803[\uDC80-\uDCFF]' - }, - { - name: 'InOld_Italic', - astral: '\uD800[\uDF00-\uDF2F]' - }, - { - name: 'InOld_North_Arabian', - astral: '\uD802[\uDE80-\uDE9F]' - }, - { - name: 'InOld_Permic', - astral: '\uD800[\uDF50-\uDF7F]' - }, - { - name: 'InOld_Persian', - astral: '\uD800[\uDFA0-\uDFDF]' - }, - { - name: 'InOld_South_Arabian', - astral: '\uD802[\uDE60-\uDE7F]' - }, - { - name: 'InOld_Turkic', - astral: '\uD803[\uDC00-\uDC4F]' - }, - { - name: 'InOptical_Character_Recognition', - bmp: '\u2440-\u245F' - }, - { - name: 'InOriya', - bmp: '\u0B00-\u0B7F' - }, - { - name: 'InOrnamental_Dingbats', - astral: '\uD83D[\uDE50-\uDE7F]' - }, - { - name: 'InOsage', - astral: '\uD801[\uDCB0-\uDCFF]' - }, - { - name: 'InOsmanya', - astral: '\uD801[\uDC80-\uDCAF]' - }, - { - name: 'InPahawh_Hmong', - astral: '\uD81A[\uDF00-\uDF8F]' - }, - { - name: 'InPalmyrene', - astral: '\uD802[\uDC60-\uDC7F]' - }, - { - name: 'InPau_Cin_Hau', - astral: '\uD806[\uDEC0-\uDEFF]' - }, - { - name: 'InPhags_pa', - bmp: '\uA840-\uA87F' - }, - { - name: 'InPhaistos_Disc', - astral: '\uD800[\uDDD0-\uDDFF]' - }, - { - name: 'InPhoenician', - astral: '\uD802[\uDD00-\uDD1F]' - }, - { - name: 'InPhonetic_Extensions', - bmp: '\u1D00-\u1D7F' - }, - { - name: 'InPhonetic_Extensions_Supplement', - bmp: '\u1D80-\u1DBF' - }, - { - name: 'InPlaying_Cards', - astral: '\uD83C[\uDCA0-\uDCFF]' - }, - { - name: 'InPrivate_Use_Area', - bmp: '\uE000-\uF8FF' - }, - { - name: 'InPsalter_Pahlavi', - astral: '\uD802[\uDF80-\uDFAF]' - }, - { - name: 'InRejang', - bmp: '\uA930-\uA95F' - }, - { - name: 'InRumi_Numeral_Symbols', - astral: '\uD803[\uDE60-\uDE7F]' - }, - { - name: 'InRunic', - bmp: '\u16A0-\u16FF' - }, - { - name: 'InSamaritan', - bmp: '\u0800-\u083F' - }, - { - name: 'InSaurashtra', - bmp: '\uA880-\uA8DF' - }, - { - name: 'InSharada', - astral: '\uD804[\uDD80-\uDDDF]' - }, - { - name: 'InShavian', - astral: '\uD801[\uDC50-\uDC7F]' - }, - { - name: 'InShorthand_Format_Controls', - astral: '\uD82F[\uDCA0-\uDCAF]' - }, - { - name: 'InSiddham', - astral: '\uD805[\uDD80-\uDDFF]' - }, - { - name: 'InSinhala', - bmp: '\u0D80-\u0DFF' - }, - { - name: 'InSinhala_Archaic_Numbers', - astral: '\uD804[\uDDE0-\uDDFF]' - }, - { - name: 'InSmall_Form_Variants', - bmp: '\uFE50-\uFE6F' - }, - { - name: 'InSora_Sompeng', - astral: '\uD804[\uDCD0-\uDCFF]' - }, - { - name: 'InSpacing_Modifier_Letters', - bmp: '\u02B0-\u02FF' - }, - { - name: 'InSpecials', - bmp: '\uFFF0-\uFFFF' - }, - { - name: 'InSundanese', - bmp: '\u1B80-\u1BBF' - }, - { - name: 'InSundanese_Supplement', - bmp: '\u1CC0-\u1CCF' - }, - { - name: 'InSuperscripts_and_Subscripts', - bmp: '\u2070-\u209F' - }, - { - name: 'InSupplemental_Arrows_A', - bmp: '\u27F0-\u27FF' - }, - { - name: 'InSupplemental_Arrows_B', - bmp: '\u2900-\u297F' - }, - { - name: 'InSupplemental_Arrows_C', - astral: '\uD83E[\uDC00-\uDCFF]' - }, - { - name: 'InSupplemental_Mathematical_Operators', - bmp: '\u2A00-\u2AFF' - }, - { - name: 'InSupplemental_Punctuation', - bmp: '\u2E00-\u2E7F' - }, - { - name: 'InSupplemental_Symbols_and_Pictographs', - astral: '\uD83E[\uDD00-\uDDFF]' - }, - { - name: 'InSupplementary_Private_Use_Area_A', - astral: '[\uDB80-\uDBBF][\uDC00-\uDFFF]' - }, - { - name: 'InSupplementary_Private_Use_Area_B', - astral: '[\uDBC0-\uDBFF][\uDC00-\uDFFF]' - }, - { - name: 'InSutton_SignWriting', - astral: '\uD836[\uDC00-\uDEAF]' - }, - { - name: 'InSyloti_Nagri', - bmp: '\uA800-\uA82F' - }, - { - name: 'InSyriac', - bmp: '\u0700-\u074F' - }, - { - name: 'InTagalog', - bmp: '\u1700-\u171F' - }, - { - name: 'InTagbanwa', - bmp: '\u1760-\u177F' - }, - { - name: 'InTags', - astral: '\uDB40[\uDC00-\uDC7F]' - }, - { - name: 'InTai_Le', - bmp: '\u1950-\u197F' - }, - { - name: 'InTai_Tham', - bmp: '\u1A20-\u1AAF' - }, - { - name: 'InTai_Viet', - bmp: '\uAA80-\uAADF' - }, - { - name: 'InTai_Xuan_Jing_Symbols', - astral: '\uD834[\uDF00-\uDF5F]' - }, - { - name: 'InTakri', - astral: '\uD805[\uDE80-\uDECF]' - }, - { - name: 'InTamil', - bmp: '\u0B80-\u0BFF' - }, - { - name: 'InTangut', - astral: '[\uD81C-\uD821][\uDC00-\uDFFF]' - }, - { - name: 'InTangut_Components', - astral: '\uD822[\uDC00-\uDEFF]' - }, - { - name: 'InTelugu', - bmp: '\u0C00-\u0C7F' - }, - { - name: 'InThaana', - bmp: '\u0780-\u07BF' - }, - { - name: 'InThai', - bmp: '\u0E00-\u0E7F' - }, - { - name: 'InTibetan', - bmp: '\u0F00-\u0FFF' - }, - { - name: 'InTifinagh', - bmp: '\u2D30-\u2D7F' - }, - { - name: 'InTirhuta', - astral: '\uD805[\uDC80-\uDCDF]' - }, - { - name: 'InTransport_and_Map_Symbols', - astral: '\uD83D[\uDE80-\uDEFF]' - }, - { - name: 'InUgaritic', - astral: '\uD800[\uDF80-\uDF9F]' - }, - { - name: 'InUnified_Canadian_Aboriginal_Syllabics', - bmp: '\u1400-\u167F' - }, - { - name: 'InUnified_Canadian_Aboriginal_Syllabics_Extended', - bmp: '\u18B0-\u18FF' - }, - { - name: 'InVai', - bmp: '\uA500-\uA63F' - }, - { - name: 'InVariation_Selectors', - bmp: '\uFE00-\uFE0F' - }, - { - name: 'InVariation_Selectors_Supplement', - astral: '\uDB40[\uDD00-\uDDEF]' - }, - { - name: 'InVedic_Extensions', - bmp: '\u1CD0-\u1CFF' - }, - { - name: 'InVertical_Forms', - bmp: '\uFE10-\uFE1F' - }, - { - name: 'InWarang_Citi', - astral: '\uD806[\uDCA0-\uDCFF]' - }, - { - name: 'InYi_Radicals', - bmp: '\uA490-\uA4CF' - }, - { - name: 'InYi_Syllables', - bmp: '\uA000-\uA48F' - }, - { - name: 'InYijing_Hexagram_Symbols', - bmp: '\u4DC0-\u4DFF' - } - ]); - -}; - -},{}],5:[function(require,module,exports){ -/*! - * XRegExp Unicode Categories 3.2.0 - * <xregexp.com> - * Steven Levithan (c) 2010-2017 MIT License - * Unicode data by Mathias Bynens <mathiasbynens.be> - */ - -module.exports = function(XRegExp) { - 'use strict'; - - /** - * Adds support for Unicode's general categories. E.g., `\p{Lu}` or `\p{Uppercase Letter}`. See - * category descriptions in UAX #44 <http://unicode.org/reports/tr44/#GC_Values_Table>. Token - * names are case insensitive, and any spaces, hyphens, and underscores are ignored. - * - * Uses Unicode 9.0.0. - * - * @requires XRegExp, Unicode Base - */ - - if (!XRegExp.addUnicodeData) { - throw new ReferenceError('Unicode Base must be loaded before Unicode Categories'); - } - - XRegExp.addUnicodeData([ - { - name: 'C', - alias: 'Other', - isBmpLast: true, - bmp: '\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u0560\u0588\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08B5\u08BE-\u08D3\u08E2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0AFA-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C04\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D00\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180E\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ABF-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1CBF\u1CC8-\u1CCF\u1CF7\u1CFA-\u1CFF\u1DF6-\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BF-\u20CF\u20F1-\u20FF\u218C-\u218F\u23FF\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2B97\u2BBA-\u2BBC\u2BC9\u2BD2-\u2BEB\u2BF0-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E45-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FD6-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7AF\uA7B8-\uA7F6\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA8FE\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB66-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF', - astral: '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9C-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2F\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE34-\uDE37\uDE3B-\uDE3E\uDE48-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD00-\uDE5F\uDE7F-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCBD\uDCC2-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD44-\uDD4F\uDD77-\uDD7F\uDDCE\uDDCF\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF3B\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5A\uDC5C\uDC5E-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB8-\uDEBF\uDECA-\uDEFF\uDF1A-\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC00-\uDC9F\uDCF3-\uDCFE\uDD00-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD874-\uD87D\uD87F-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDEFF\uDF45-\uDF4F\uDF7F-\uDF8E\uDFA0-\uDFDF\uDFE1-\uDFFF]|\uD821[\uDFED-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDC02-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA0-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD73-\uDD7A\uDDE9-\uDDFF\uDE46-\uDEFF\uDF57-\uDF5F\uDF72-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4B-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD6F\uDDAD-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDEFF]|\uD83D[\uDED3-\uDEDF\uDEED-\uDEEF\uDEF7-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDD0F\uDD1F\uDD28-\uDD2F\uDD31\uDD32\uDD3F\uDD4C-\uDD4F\uDD5F-\uDD7F\uDD92-\uDDBF\uDDC1-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]' - }, - { - name: 'Cc', - alias: 'Control', - bmp: '\0-\x1F\x7F-\x9F' - }, - { - name: 'Cf', - alias: 'Format', - bmp: '\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB', - astral: '\uD804\uDCBD|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]' - }, - { - name: 'Cn', - alias: 'Unassigned', - bmp: '\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u0560\u0588\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u05FF\u061D\u070E\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08B5\u08BE-\u08D3\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0AFA-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C04\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D00\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ABF-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1CBF\u1CC8-\u1CCF\u1CF7\u1CFA-\u1CFF\u1DF6-\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u2065\u2072\u2073\u208F\u209D-\u209F\u20BF-\u20CF\u20F1-\u20FF\u218C-\u218F\u23FF\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2B97\u2BBA-\u2BBC\u2BC9\u2BD2-\u2BEB\u2BF0-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E45-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FD6-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7AF\uA7B8-\uA7F6\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA8FE\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB66-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD\uFEFE\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE\uFFFF', - astral: '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9C-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2F\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE34-\uDE37\uDE3B-\uDE3E\uDE48-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD00-\uDE5F\uDE7F-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCC2-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD44-\uDD4F\uDD77-\uDD7F\uDDCE\uDDCF\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF3B\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5A\uDC5C\uDC5E-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB8-\uDEBF\uDECA-\uDEFF\uDF1A-\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC00-\uDC9F\uDCF3-\uDCFE\uDD00-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD874-\uD87D\uD87F-\uDB3F\uDB41-\uDB7F][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDEFF\uDF45-\uDF4F\uDF7F-\uDF8E\uDFA0-\uDFDF\uDFE1-\uDFFF]|\uD821[\uDFED-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDC02-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDDE9-\uDDFF\uDE46-\uDEFF\uDF57-\uDF5F\uDF72-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4B-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD6F\uDDAD-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDEFF]|\uD83D[\uDED3-\uDEDF\uDEED-\uDEEF\uDEF7-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDD0F\uDD1F\uDD28-\uDD2F\uDD31\uDD32\uDD3F\uDD4C-\uDD4F\uDD5F-\uDD7F\uDD92-\uDDBF\uDDC1-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uDB40[\uDC00\uDC02-\uDC1F\uDC80-\uDCFF\uDDF0-\uDFFF]|[\uDBBF\uDBFF][\uDFFE\uDFFF]' - }, - { - name: 'Co', - alias: 'Private_Use', - bmp: '\uE000-\uF8FF', - astral: '[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD]' - }, - { - name: 'Cs', - alias: 'Surrogate', - bmp: '\uD800-\uDFFF' - }, - { - name: 'L', - alias: 'Letter', - bmp: 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', - astral: '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]' - }, - { - name: 'Ll', - alias: 'Lowercase_Letter', - bmp: 'a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A', - astral: '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD83A[\uDD22-\uDD43]' - }, - { - name: 'Lm', - alias: 'Modifier_Letter', - bmp: '\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C\uA69D\uA717-\uA71F\uA770\uA788\uA7F8\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E\uFF9F', - astral: '\uD81A[\uDF40-\uDF43]|\uD81B[\uDF93-\uDF9F\uDFE0]' - }, - { - name: 'Lo', - alias: 'Other_Letter', - bmp: '\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', - astral: '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC50-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]' - }, - { - name: 'Lt', - alias: 'Titlecase_Letter', - bmp: '\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC' - }, - { - name: 'Lu', - alias: 'Uppercase_Letter', - bmp: 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A', - astral: '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]' - }, - { - name: 'M', - alias: 'Mark', - bmp: '\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F', - astral: '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDCA-\uDDCC\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDF00-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]' - }, - { - name: 'Mc', - alias: 'Spacing_Mark', - bmp: '\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BE-\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062-\u1064\u1067-\u106D\u1083\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF2\u1CF3\u302E\u302F\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BD-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC', - astral: '\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3E\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB0-\uDCB2\uDCB9\uDCBB-\uDCBE\uDCC1\uDDAF-\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF20\uDF21\uDF26]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4]|\uD81B[\uDF51-\uDF7E]|\uD834[\uDD65\uDD66\uDD6D-\uDD72]' - }, - { - name: 'Me', - alias: 'Enclosing_Mark', - bmp: '\u0488\u0489\u1ABE\u20DD-\u20E0\u20E2-\u20E4\uA670-\uA672' - }, - { - name: 'Mn', - alias: 'Nonspacing_Mark', - bmp: '\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F', - astral: '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC01\uDC38-\uDC46\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDCA-\uDDCC\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3C\uDF40\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDCB3-\uDCB8\uDCBA\uDCBF\uDCC0\uDCC2\uDCC3\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]' - }, - { - name: 'N', - alias: 'Number', - bmp: '0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19', - astral: '\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE47\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2]|\uD807[\uDC50-\uDC6C]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD834[\uDF60-\uDF71]|\uD835[\uDFCE-\uDFFF]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83C[\uDD00-\uDD0C]' - }, - { - name: 'Nd', - alias: 'Decimal_Number', - bmp: '0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19', - astral: '\uD801[\uDCA0-\uDCA9]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9]|\uD807[\uDC50-\uDC59]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD83A[\uDD50-\uDD59]' - }, - { - name: 'Nl', - alias: 'Letter_Number', - bmp: '\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF', - astral: '\uD800[\uDD40-\uDD74\uDF41\uDF4A\uDFD1-\uDFD5]|\uD809[\uDC00-\uDC6E]' - }, - { - name: 'No', - alias: 'Other_Number', - bmp: '\xB2\xB3\xB9\xBC-\xBE\u09F4-\u09F9\u0B72-\u0B77\u0BF0-\u0BF2\u0C78-\u0C7E\u0D58-\u0D5E\u0D70-\u0D78\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u19DA\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835', - astral: '\uD800[\uDD07-\uDD33\uDD75-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE47\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC52-\uDC65\uDDE1-\uDDF4]|\uD805[\uDF3A\uDF3B]|\uD806[\uDCEA-\uDCF2]|\uD807[\uDC5A-\uDC6C]|\uD81A[\uDF5B-\uDF61]|\uD834[\uDF60-\uDF71]|\uD83A[\uDCC7-\uDCCF]|\uD83C[\uDD00-\uDD0C]' - }, - { - name: 'P', - alias: 'Punctuation', - bmp: '\x21-\x23\x25-\\x2A\x2C-\x2F\x3A\x3B\\x3F\x40\\x5B-\\x5D\x5F\\x7B\x7D\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E44\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65', - astral: '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD807[\uDC41-\uDC45\uDC70\uDC71]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]' - }, - { - name: 'Pc', - alias: 'Connector_Punctuation', - bmp: '\x5F\u203F\u2040\u2054\uFE33\uFE34\uFE4D-\uFE4F\uFF3F' - }, - { - name: 'Pd', - alias: 'Dash_Punctuation', - bmp: '\\x2D\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u2E40\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D' - }, - { - name: 'Pe', - alias: 'Close_Punctuation', - bmp: '\\x29\\x5D\x7D\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63' - }, - { - name: 'Pf', - alias: 'Final_Punctuation', - bmp: '\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21' - }, - { - name: 'Pi', - alias: 'Initial_Punctuation', - bmp: '\xAB\u2018\u201B\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20' - }, - { - name: 'Po', - alias: 'Other_Punctuation', - bmp: '\x21-\x23\x25-\x27\\x2A\x2C\\x2E\x2F\x3A\x3B\\x3F\x40\\x5C\xA1\xA7\xB6\xB7\xBF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u166D\u166E\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18\u2E19\u2E1B\u2E1E\u2E1F\u2E2A-\u2E2E\u2E30-\u2E39\u2E3C-\u2E3F\u2E41\u2E43\u2E44\u3001-\u3003\u303D\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3C\uFF61\uFF64\uFF65', - astral: '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD807[\uDC41-\uDC45\uDC70\uDC71]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]' - }, - { - name: 'Ps', - alias: 'Open_Punctuation', - bmp: '\\x28\\x5B\\x7B\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2308\u230A\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u2E42\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3F\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62' - }, - { - name: 'S', - alias: 'Symbol', - bmp: '\\x24\\x2B\x3C-\x3E\\x5E\x60\\x7C\x7E\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BE\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u23FE\u2400-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD1\u2BEC-\u2BEF\u2CE5-\u2CEA\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u32FE\u3300-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD', - astral: '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9B\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD83B[\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD10-\uDD2E\uDD30-\uDD6B\uDD70-\uDDAC\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED2\uDEE0-\uDEEC\uDEF0-\uDEF6\uDF00-\uDF73\uDF80-\uDFD4]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD10-\uDD1E\uDD20-\uDD27\uDD30\uDD33-\uDD3E\uDD40-\uDD4B\uDD50-\uDD5E\uDD80-\uDD91\uDDC0]' - }, - { - name: 'Sc', - alias: 'Currency_Symbol', - bmp: '\\x24\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BE\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6' - }, - { - name: 'Sk', - alias: 'Modifier_Symbol', - bmp: '\\x5E\x60\xA8\xAF\xB4\xB8\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u309B\u309C\uA700-\uA716\uA720\uA721\uA789\uA78A\uAB5B\uFBB2-\uFBC1\uFF3E\uFF40\uFFE3', - astral: '\uD83C[\uDFFB-\uDFFF]' - }, - { - name: 'Sm', - alias: 'Math_Symbol', - bmp: '\\x2B\x3C-\x3E\\x7C\x7E\xAC\xB1\xD7\xF7\u03F6\u0606-\u0608\u2044\u2052\u207A-\u207C\u208A-\u208C\u2118\u2140-\u2144\u214B\u2190-\u2194\u219A\u219B\u21A0\u21A3\u21A6\u21AE\u21CE\u21CF\u21D2\u21D4\u21F4-\u22FF\u2320\u2321\u237C\u239B-\u23B3\u23DC-\u23E1\u25B7\u25C1\u25F8-\u25FF\u266F\u27C0-\u27C4\u27C7-\u27E5\u27F0-\u27FF\u2900-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2AFF\u2B30-\u2B44\u2B47-\u2B4C\uFB29\uFE62\uFE64-\uFE66\uFF0B\uFF1C-\uFF1E\uFF5C\uFF5E\uFFE2\uFFE9-\uFFEC', - astral: '\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD83B[\uDEF0\uDEF1]' - }, - { - name: 'So', - alias: 'Other_Symbol', - bmp: '\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u23FE\u2400-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD1\u2BEC-\u2BEF\u2CE5-\u2CEA\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u32FE\u3300-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFDFD\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD', - astral: '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9B\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD10-\uDD2E\uDD30-\uDD6B\uDD70-\uDDAC\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED2\uDEE0-\uDEEC\uDEF0-\uDEF6\uDF00-\uDF73\uDF80-\uDFD4]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD10-\uDD1E\uDD20-\uDD27\uDD30\uDD33-\uDD3E\uDD40-\uDD4B\uDD50-\uDD5E\uDD80-\uDD91\uDDC0]' - }, - { - name: 'Z', - alias: 'Separator', - bmp: '\x20\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000' - }, - { - name: 'Zl', - alias: 'Line_Separator', - bmp: '\u2028' - }, - { - name: 'Zp', - alias: 'Paragraph_Separator', - bmp: '\u2029' - }, - { - name: 'Zs', - alias: 'Space_Separator', - bmp: '\x20\xA0\u1680\u2000-\u200A\u202F\u205F\u3000' - } - ]); - -}; - -},{}],6:[function(require,module,exports){ -/*! - * XRegExp Unicode Properties 3.2.0 - * <xregexp.com> - * Steven Levithan (c) 2012-2017 MIT License - * Unicode data by Mathias Bynens <mathiasbynens.be> - */ - -module.exports = function(XRegExp) { - 'use strict'; - - /** - * Adds properties to meet the UTS #18 Level 1 RL1.2 requirements for Unicode regex support. See - * <http://unicode.org/reports/tr18/#RL1.2>. Following are definitions of these properties from - * UAX #44 <http://unicode.org/reports/tr44/>: - * - * - Alphabetic - * Characters with the Alphabetic property. Generated from: Lowercase + Uppercase + Lt + Lm + - * Lo + Nl + Other_Alphabetic. - * - * - Default_Ignorable_Code_Point - * For programmatic determination of default ignorable code points. New characters that should - * be ignored in rendering (unless explicitly supported) will be assigned in these ranges, - * permitting programs to correctly handle the default rendering of such characters when not - * otherwise supported. - * - * - Lowercase - * Characters with the Lowercase property. Generated from: Ll + Other_Lowercase. - * - * - Noncharacter_Code_Point - * Code points permanently reserved for internal use. - * - * - Uppercase - * Characters with the Uppercase property. Generated from: Lu + Other_Uppercase. - * - * - White_Space - * Spaces, separator characters and other control characters which should be treated by - * programming languages as "white space" for the purpose of parsing elements. - * - * The properties ASCII, Any, and Assigned are also included but are not defined in UAX #44. UTS - * #18 RL1.2 additionally requires support for Unicode scripts and general categories. These are - * included in XRegExp's Unicode Categories and Unicode Scripts addons. - * - * Token names are case insensitive, and any spaces, hyphens, and underscores are ignored. - * - * Uses Unicode 9.0.0. - * - * @requires XRegExp, Unicode Base - */ - - if (!XRegExp.addUnicodeData) { - throw new ReferenceError('Unicode Base must be loaded before Unicode Properties'); - } - - var unicodeData = [ - { - name: 'ASCII', - bmp: '\0-\x7F' - }, - { - name: 'Alphabetic', - bmp: 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0345\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05B0-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0657\u0659-\u065F\u066E-\u06D3\u06D5-\u06DC\u06E1-\u06E8\u06ED-\u06EF\u06FA-\u06FC\u06FF\u0710-\u073F\u074D-\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0817\u081A-\u082C\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08DF\u08E3-\u08E9\u08F0-\u093B\u093D-\u094C\u094E-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C4\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09F0\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A51\u0A59-\u0A5C\u0A5E\u0A70-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC5\u0AC7-\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0-\u0AE3\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D-\u0B44\u0B47\u0B48\u0B4B\u0B4C\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4C\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCC\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E46\u0E4D\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0ECD\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F71-\u0F81\u0F88-\u0F97\u0F99-\u0FBC\u1000-\u1036\u1038\u103B-\u103F\u1050-\u1062\u1065-\u1068\u106E-\u1086\u108E\u109C\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1713\u1720-\u1733\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17B3\u17B6-\u17C8\u17D7\u17DC\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u1938\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A1B\u1A20-\u1A5E\u1A61-\u1A74\u1AA7\u1B00-\u1B33\u1B35-\u1B43\u1B45-\u1B4B\u1B80-\u1BA9\u1BAC-\u1BAF\u1BBA-\u1BE5\u1BE7-\u1BF1\u1C00-\u1C35\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1D00-\u1DBF\u1DE7-\u1DF4\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u24B6-\u24E9\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA674-\uA67B\uA67F-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA827\uA840-\uA873\uA880-\uA8C3\uA8C5\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA92A\uA930-\uA952\uA960-\uA97C\uA980-\uA9B2\uA9B4-\uA9BF\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA60-\uAA76\uAA7A\uAA7E-\uAABE\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', - astral: '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC45\uDC82-\uDCB8\uDCD0-\uDCE8\uDD00-\uDD32\uDD50-\uDD72\uDD76\uDD80-\uDDBF\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE34\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEE8\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D-\uDF44\uDF47\uDF48\uDF4B\uDF4C\uDF50\uDF57\uDF5D-\uDF63]|\uD805[\uDC00-\uDC41\uDC43-\uDC45\uDC47-\uDC4A\uDC80-\uDCC1\uDCC4\uDCC5\uDCC7\uDD80-\uDDB5\uDDB8-\uDDBE\uDDD8-\uDDDD\uDE00-\uDE3E\uDE40\uDE44\uDE80-\uDEB5\uDF00-\uDF19\uDF1D-\uDF2A]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC3E\uDC40\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF36\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9E]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD47]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]' - }, - { - name: 'Any', - isBmpLast: true, - bmp: '\0-\uFFFF', - astral: '[\uD800-\uDBFF][\uDC00-\uDFFF]' - }, - { - name: 'Default_Ignorable_Code_Point', - bmp: '\xAD\u034F\u061C\u115F\u1160\u17B4\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8', - astral: '\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|[\uDB40-\uDB43][\uDC00-\uDFFF]' - }, - { - name: 'Lowercase', - bmp: 'a-z\xAA\xB5\xBA\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02B8\u02C0\u02C1\u02E0-\u02E4\u0345\u0371\u0373\u0377\u037A-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1DBF\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u2071\u207F\u2090-\u209C\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2170-\u217F\u2184\u24D0-\u24E9\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7D\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B-\uA69D\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7F8-\uA7FA\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A', - astral: '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD83A[\uDD22-\uDD43]' - }, - { - name: 'Noncharacter_Code_Point', - bmp: '\uFDD0-\uFDEF\uFFFE\uFFFF', - astral: '[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]' - }, - { - name: 'Uppercase', - bmp: 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2160-\u216F\u2183\u24B6-\u24CF\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A', - astral: '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]' - }, - { - name: 'White_Space', - bmp: '\x09-\x0D\x20\x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000' - } - ]; - - // Add non-generated data - unicodeData.push({ - name: 'Assigned', - // Since this is defined as the inverse of Unicode category Cn (Unassigned), the Unicode - // Categories addon is required to use this property - inverseOf: 'Cn' - }); - - XRegExp.addUnicodeData(unicodeData); - -}; - -},{}],7:[function(require,module,exports){ -/*! - * XRegExp Unicode Scripts 3.2.0 - * <xregexp.com> - * Steven Levithan (c) 2010-2017 MIT License - * Unicode data by Mathias Bynens <mathiasbynens.be> - */ - -module.exports = function(XRegExp) { - 'use strict'; - - /** - * Adds support for all Unicode scripts. E.g., `\p{Latin}`. Token names are case insensitive, - * and any spaces, hyphens, and underscores are ignored. - * - * Uses Unicode 9.0.0. - * - * @requires XRegExp, Unicode Base - */ - - if (!XRegExp.addUnicodeData) { - throw new ReferenceError('Unicode Base must be loaded before Unicode Scripts'); - } - - XRegExp.addUnicodeData([ - { - name: 'Adlam', - astral: '\uD83A[\uDD00-\uDD4A\uDD50-\uDD59\uDD5E\uDD5F]' - }, - { - name: 'Ahom', - astral: '\uD805[\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF3F]' - }, - { - name: 'Anatolian_Hieroglyphs', - astral: '\uD811[\uDC00-\uDE46]' - }, - { - name: 'Arabic', - bmp: '\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u06FF\u0750-\u077F\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u08FF\uFB50-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFD\uFE70-\uFE74\uFE76-\uFEFC', - astral: '\uD803[\uDE60-\uDE7E]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]' - }, - { - name: 'Armenian', - bmp: '\u0531-\u0556\u0559-\u055F\u0561-\u0587\u058A\u058D-\u058F\uFB13-\uFB17' - }, - { - name: 'Avestan', - astral: '\uD802[\uDF00-\uDF35\uDF39-\uDF3F]' - }, - { - name: 'Balinese', - bmp: '\u1B00-\u1B4B\u1B50-\u1B7C' - }, - { - name: 'Bamum', - bmp: '\uA6A0-\uA6F7', - astral: '\uD81A[\uDC00-\uDE38]' - }, - { - name: 'Bassa_Vah', - astral: '\uD81A[\uDED0-\uDEED\uDEF0-\uDEF5]' - }, - { - name: 'Batak', - bmp: '\u1BC0-\u1BF3\u1BFC-\u1BFF' - }, - { - name: 'Bengali', - bmp: '\u0980-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09FB' - }, - { - name: 'Bhaiksuki', - astral: '\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC45\uDC50-\uDC6C]' - }, - { - name: 'Bopomofo', - bmp: '\u02EA\u02EB\u3105-\u312D\u31A0-\u31BA' - }, - { - name: 'Brahmi', - astral: '\uD804[\uDC00-\uDC4D\uDC52-\uDC6F\uDC7F]' - }, - { - name: 'Braille', - bmp: '\u2800-\u28FF' - }, - { - name: 'Buginese', - bmp: '\u1A00-\u1A1B\u1A1E\u1A1F' - }, - { - name: 'Buhid', - bmp: '\u1740-\u1753' - }, - { - name: 'Canadian_Aboriginal', - bmp: '\u1400-\u167F\u18B0-\u18F5' - }, - { - name: 'Carian', - astral: '\uD800[\uDEA0-\uDED0]' - }, - { - name: 'Caucasian_Albanian', - astral: '\uD801[\uDD30-\uDD63\uDD6F]' - }, - { - name: 'Chakma', - astral: '\uD804[\uDD00-\uDD34\uDD36-\uDD43]' - }, - { - name: 'Cham', - bmp: '\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA5C-\uAA5F' - }, - { - name: 'Cherokee', - bmp: '\u13A0-\u13F5\u13F8-\u13FD\uAB70-\uABBF' - }, - { - name: 'Common', - bmp: '\0-\x40\\x5B-\x60\\x7B-\xA9\xAB-\xB9\xBB-\xBF\xD7\xF7\u02B9-\u02DF\u02E5-\u02E9\u02EC-\u02FF\u0374\u037E\u0385\u0387\u0589\u0605\u060C\u061B\u061C\u061F\u0640\u06DD\u08E2\u0964\u0965\u0E3F\u0FD5-\u0FD8\u10FB\u16EB-\u16ED\u1735\u1736\u1802\u1803\u1805\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u2000-\u200B\u200E-\u2064\u2066-\u2070\u2074-\u207E\u2080-\u208E\u20A0-\u20BE\u2100-\u2125\u2127-\u2129\u212C-\u2131\u2133-\u214D\u214F-\u215F\u2189-\u218B\u2190-\u23FE\u2400-\u2426\u2440-\u244A\u2460-\u27FF\u2900-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD1\u2BEC-\u2BEF\u2E00-\u2E44\u2FF0-\u2FFB\u3000-\u3004\u3006\u3008-\u3020\u3030-\u3037\u303C-\u303F\u309B\u309C\u30A0\u30FB\u30FC\u3190-\u319F\u31C0-\u31E3\u3220-\u325F\u327F-\u32CF\u3358-\u33FF\u4DC0-\u4DFF\uA700-\uA721\uA788-\uA78A\uA830-\uA839\uA92E\uA9CF\uAB5B\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFEFF\uFF01-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFF70\uFF9E\uFF9F\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD', - astral: '\uD800[\uDD00-\uDD02\uDD07-\uDD33\uDD37-\uDD3F\uDD90-\uDD9B\uDDD0-\uDDFC\uDEE1-\uDEFB]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD66\uDD6A-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDF00-\uDF56\uDF60-\uDF71]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDFCB\uDFCE-\uDFFF]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD00-\uDD0C\uDD10-\uDD2E\uDD30-\uDD6B\uDD70-\uDDAC\uDDE6-\uDDFF\uDE01\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED2\uDEE0-\uDEEC\uDEF0-\uDEF6\uDF00-\uDF73\uDF80-\uDFD4]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD10-\uDD1E\uDD20-\uDD27\uDD30\uDD33-\uDD3E\uDD40-\uDD4B\uDD50-\uDD5E\uDD80-\uDD91\uDDC0]|\uDB40[\uDC01\uDC20-\uDC7F]' - }, - { - name: 'Coptic', - bmp: '\u03E2-\u03EF\u2C80-\u2CF3\u2CF9-\u2CFF' - }, - { - name: 'Cuneiform', - astral: '\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC70-\uDC74\uDC80-\uDD43]' - }, - { - name: 'Cypriot', - astral: '\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F]' - }, - { - name: 'Cyrillic', - bmp: '\u0400-\u0484\u0487-\u052F\u1C80-\u1C88\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E\uFE2F' - }, - { - name: 'Deseret', - astral: '\uD801[\uDC00-\uDC4F]' - }, - { - name: 'Devanagari', - bmp: '\u0900-\u0950\u0953-\u0963\u0966-\u097F\uA8E0-\uA8FD' - }, - { - name: 'Duployan', - astral: '\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C-\uDC9F]' - }, - { - name: 'Egyptian_Hieroglyphs', - astral: '\uD80C[\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]' - }, - { - name: 'Elbasan', - astral: '\uD801[\uDD00-\uDD27]' - }, - { - name: 'Ethiopic', - bmp: '\u1200-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u137C\u1380-\u1399\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E' - }, - { - name: 'Georgian', - bmp: '\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u10FF\u2D00-\u2D25\u2D27\u2D2D' - }, - { - name: 'Glagolitic', - bmp: '\u2C00-\u2C2E\u2C30-\u2C5E', - astral: '\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]' - }, - { - name: 'Gothic', - astral: '\uD800[\uDF30-\uDF4A]' - }, - { - name: 'Grantha', - astral: '\uD804[\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]' - }, - { - name: 'Greek', - bmp: '\u0370-\u0373\u0375-\u0377\u037A-\u037D\u037F\u0384\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03E1\u03F0-\u03FF\u1D26-\u1D2A\u1D5D-\u1D61\u1D66-\u1D6A\u1DBF\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4\u1FF6-\u1FFE\u2126\uAB65', - astral: '\uD800[\uDD40-\uDD8E\uDDA0]|\uD834[\uDE00-\uDE45]' - }, - { - name: 'Gujarati', - bmp: '\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AF1\u0AF9' - }, - { - name: 'Gurmukhi', - bmp: '\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75' - }, - { - name: 'Han', - bmp: '\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DB5\u4E00-\u9FD5\uF900-\uFA6D\uFA70-\uFAD9', - astral: '[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]' - }, - { - name: 'Hangul', - bmp: '\u1100-\u11FF\u302E\u302F\u3131-\u318E\u3200-\u321E\u3260-\u327E\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC' - }, - { - name: 'Hanunoo', - bmp: '\u1720-\u1734' - }, - { - name: 'Hatran', - astral: '\uD802[\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDCFF]' - }, - { - name: 'Hebrew', - bmp: '\u0591-\u05C7\u05D0-\u05EA\u05F0-\u05F4\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFB4F' - }, - { - name: 'Hiragana', - bmp: '\u3041-\u3096\u309D-\u309F', - astral: '\uD82C\uDC01|\uD83C\uDE00' - }, - { - name: 'Imperial_Aramaic', - astral: '\uD802[\uDC40-\uDC55\uDC57-\uDC5F]' - }, - { - name: 'Inherited', - bmp: '\u0300-\u036F\u0485\u0486\u064B-\u0655\u0670\u0951\u0952\u1AB0-\u1ABE\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u200C\u200D\u20D0-\u20F0\u302A-\u302D\u3099\u309A\uFE00-\uFE0F\uFE20-\uFE2D', - astral: '\uD800[\uDDFD\uDEE0]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD]|\uDB40[\uDD00-\uDDEF]' - }, - { - name: 'Inscriptional_Pahlavi', - astral: '\uD802[\uDF60-\uDF72\uDF78-\uDF7F]' - }, - { - name: 'Inscriptional_Parthian', - astral: '\uD802[\uDF40-\uDF55\uDF58-\uDF5F]' - }, - { - name: 'Javanese', - bmp: '\uA980-\uA9CD\uA9D0-\uA9D9\uA9DE\uA9DF' - }, - { - name: 'Kaithi', - astral: '\uD804[\uDC80-\uDCC1]' - }, - { - name: 'Kannada', - bmp: '\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2' - }, - { - name: 'Katakana', - bmp: '\u30A1-\u30FA\u30FD-\u30FF\u31F0-\u31FF\u32D0-\u32FE\u3300-\u3357\uFF66-\uFF6F\uFF71-\uFF9D', - astral: '\uD82C\uDC00' - }, - { - name: 'Kayah_Li', - bmp: '\uA900-\uA92D\uA92F' - }, - { - name: 'Kharoshthi', - astral: '\uD802[\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F-\uDE47\uDE50-\uDE58]' - }, - { - name: 'Khmer', - bmp: '\u1780-\u17DD\u17E0-\u17E9\u17F0-\u17F9\u19E0-\u19FF' - }, - { - name: 'Khojki', - astral: '\uD804[\uDE00-\uDE11\uDE13-\uDE3E]' - }, - { - name: 'Khudawadi', - astral: '\uD804[\uDEB0-\uDEEA\uDEF0-\uDEF9]' - }, - { - name: 'Lao', - bmp: '\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF' - }, - { - name: 'Latin', - bmp: 'A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A' - }, - { - name: 'Lepcha', - bmp: '\u1C00-\u1C37\u1C3B-\u1C49\u1C4D-\u1C4F' - }, - { - name: 'Limbu', - bmp: '\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1940\u1944-\u194F' - }, - { - name: 'Linear_A', - astral: '\uD801[\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]' - }, - { - name: 'Linear_B', - astral: '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA]' - }, - { - name: 'Lisu', - bmp: '\uA4D0-\uA4FF' - }, - { - name: 'Lycian', - astral: '\uD800[\uDE80-\uDE9C]' - }, - { - name: 'Lydian', - astral: '\uD802[\uDD20-\uDD39\uDD3F]' - }, - { - name: 'Mahajani', - astral: '\uD804[\uDD50-\uDD76]' - }, - { - name: 'Malayalam', - bmp: '\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4F\u0D54-\u0D63\u0D66-\u0D7F' - }, - { - name: 'Mandaic', - bmp: '\u0840-\u085B\u085E' - }, - { - name: 'Manichaean', - astral: '\uD802[\uDEC0-\uDEE6\uDEEB-\uDEF6]' - }, - { - name: 'Marchen', - astral: '\uD807[\uDC70-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]' - }, - { - name: 'Meetei_Mayek', - bmp: '\uAAE0-\uAAF6\uABC0-\uABED\uABF0-\uABF9' - }, - { - name: 'Mende_Kikakui', - astral: '\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6]' - }, - { - name: 'Meroitic_Cursive', - astral: '\uD802[\uDDA0-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDDFF]' - }, - { - name: 'Meroitic_Hieroglyphs', - astral: '\uD802[\uDD80-\uDD9F]' - }, - { - name: 'Miao', - astral: '\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]' - }, - { - name: 'Modi', - astral: '\uD805[\uDE00-\uDE44\uDE50-\uDE59]' - }, - { - name: 'Mongolian', - bmp: '\u1800\u1801\u1804\u1806-\u180E\u1810-\u1819\u1820-\u1877\u1880-\u18AA', - astral: '\uD805[\uDE60-\uDE6C]' - }, - { - name: 'Mro', - astral: '\uD81A[\uDE40-\uDE5E\uDE60-\uDE69\uDE6E\uDE6F]' - }, - { - name: 'Multani', - astral: '\uD804[\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA9]' - }, - { - name: 'Myanmar', - bmp: '\u1000-\u109F\uA9E0-\uA9FE\uAA60-\uAA7F' - }, - { - name: 'Nabataean', - astral: '\uD802[\uDC80-\uDC9E\uDCA7-\uDCAF]' - }, - { - name: 'New_Tai_Lue', - bmp: '\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u19DE\u19DF' - }, - { - name: 'Newa', - astral: '\uD805[\uDC00-\uDC59\uDC5B\uDC5D]' - }, - { - name: 'Nko', - bmp: '\u07C0-\u07FA' - }, - { - name: 'Ogham', - bmp: '\u1680-\u169C' - }, - { - name: 'Ol_Chiki', - bmp: '\u1C50-\u1C7F' - }, - { - name: 'Old_Hungarian', - astral: '\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF]' - }, - { - name: 'Old_Italic', - astral: '\uD800[\uDF00-\uDF23]' - }, - { - name: 'Old_North_Arabian', - astral: '\uD802[\uDE80-\uDE9F]' - }, - { - name: 'Old_Permic', - astral: '\uD800[\uDF50-\uDF7A]' - }, - { - name: 'Old_Persian', - astral: '\uD800[\uDFA0-\uDFC3\uDFC8-\uDFD5]' - }, - { - name: 'Old_South_Arabian', - astral: '\uD802[\uDE60-\uDE7F]' - }, - { - name: 'Old_Turkic', - astral: '\uD803[\uDC00-\uDC48]' - }, - { - name: 'Oriya', - bmp: '\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B77' - }, - { - name: 'Osage', - astral: '\uD801[\uDCB0-\uDCD3\uDCD8-\uDCFB]' - }, - { - name: 'Osmanya', - astral: '\uD801[\uDC80-\uDC9D\uDCA0-\uDCA9]' - }, - { - name: 'Pahawh_Hmong', - astral: '\uD81A[\uDF00-\uDF45\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]' - }, - { - name: 'Palmyrene', - astral: '\uD802[\uDC60-\uDC7F]' - }, - { - name: 'Pau_Cin_Hau', - astral: '\uD806[\uDEC0-\uDEF8]' - }, - { - name: 'Phags_Pa', - bmp: '\uA840-\uA877' - }, - { - name: 'Phoenician', - astral: '\uD802[\uDD00-\uDD1B\uDD1F]' - }, - { - name: 'Psalter_Pahlavi', - astral: '\uD802[\uDF80-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]' - }, - { - name: 'Rejang', - bmp: '\uA930-\uA953\uA95F' - }, - { - name: 'Runic', - bmp: '\u16A0-\u16EA\u16EE-\u16F8' - }, - { - name: 'Samaritan', - bmp: '\u0800-\u082D\u0830-\u083E' - }, - { - name: 'Saurashtra', - bmp: '\uA880-\uA8C5\uA8CE-\uA8D9' - }, - { - name: 'Sharada', - astral: '\uD804[\uDD80-\uDDCD\uDDD0-\uDDDF]' - }, - { - name: 'Shavian', - astral: '\uD801[\uDC50-\uDC7F]' - }, - { - name: 'Siddham', - astral: '\uD805[\uDD80-\uDDB5\uDDB8-\uDDDD]' - }, - { - name: 'SignWriting', - astral: '\uD836[\uDC00-\uDE8B\uDE9B-\uDE9F\uDEA1-\uDEAF]' - }, - { - name: 'Sinhala', - bmp: '\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4', - astral: '\uD804[\uDDE1-\uDDF4]' - }, - { - name: 'Sora_Sompeng', - astral: '\uD804[\uDCD0-\uDCE8\uDCF0-\uDCF9]' - }, - { - name: 'Sundanese', - bmp: '\u1B80-\u1BBF\u1CC0-\u1CC7' - }, - { - name: 'Syloti_Nagri', - bmp: '\uA800-\uA82B' - }, - { - name: 'Syriac', - bmp: '\u0700-\u070D\u070F-\u074A\u074D-\u074F' - }, - { - name: 'Tagalog', - bmp: '\u1700-\u170C\u170E-\u1714' - }, - { - name: 'Tagbanwa', - bmp: '\u1760-\u176C\u176E-\u1770\u1772\u1773' - }, - { - name: 'Tai_Le', - bmp: '\u1950-\u196D\u1970-\u1974' - }, - { - name: 'Tai_Tham', - bmp: '\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD' - }, - { - name: 'Tai_Viet', - bmp: '\uAA80-\uAAC2\uAADB-\uAADF' - }, - { - name: 'Takri', - astral: '\uD805[\uDE80-\uDEB7\uDEC0-\uDEC9]' - }, - { - name: 'Tamil', - bmp: '\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BFA' - }, - { - name: 'Tangut', - astral: '\uD81B\uDFE0|[\uD81C-\uD820][\uDC00-\uDFFF]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]' - }, - { - name: 'Telugu', - bmp: '\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C78-\u0C7F' - }, - { - name: 'Thaana', - bmp: '\u0780-\u07B1' - }, - { - name: 'Thai', - bmp: '\u0E01-\u0E3A\u0E40-\u0E5B' - }, - { - name: 'Tibetan', - bmp: '\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FD4\u0FD9\u0FDA' - }, - { - name: 'Tifinagh', - bmp: '\u2D30-\u2D67\u2D6F\u2D70\u2D7F' - }, - { - name: 'Tirhuta', - astral: '\uD805[\uDC80-\uDCC7\uDCD0-\uDCD9]' - }, - { - name: 'Ugaritic', - astral: '\uD800[\uDF80-\uDF9D\uDF9F]' - }, - { - name: 'Vai', - bmp: '\uA500-\uA62B' - }, - { - name: 'Warang_Citi', - astral: '\uD806[\uDCA0-\uDCF2\uDCFF]' - }, - { - name: 'Yi', - bmp: '\uA000-\uA48C\uA490-\uA4C6' - } - ]); - -}; - -},{}],8:[function(require,module,exports){ -var XRegExp = require('./xregexp'); - -require('./addons/build')(XRegExp); -require('./addons/matchrecursive')(XRegExp); -require('./addons/unicode-base')(XRegExp); -require('./addons/unicode-blocks')(XRegExp); -require('./addons/unicode-categories')(XRegExp); -require('./addons/unicode-properties')(XRegExp); -require('./addons/unicode-scripts')(XRegExp); - -module.exports = XRegExp; - -},{"./addons/build":1,"./addons/matchrecursive":2,"./addons/unicode-base":3,"./addons/unicode-blocks":4,"./addons/unicode-categories":5,"./addons/unicode-properties":6,"./addons/unicode-scripts":7,"./xregexp":9}],9:[function(require,module,exports){ -/*! - * XRegExp 3.2.0 - * <xregexp.com> - * Steven Levithan (c) 2007-2017 MIT License - */ - -'use strict'; - -/** - * XRegExp provides augmented, extensible regular expressions. You get additional regex syntax and - * flags, beyond what browsers support natively. XRegExp is also a regex utility belt with tools to - * make your client-side grepping simpler and more powerful, while freeing you from related - * cross-browser inconsistencies. - */ - -// ==--------------------------== -// Private stuff -// ==--------------------------== - -// Property name used for extended regex instance data -var REGEX_DATA = 'xregexp'; -// Optional features that can be installed and uninstalled -var features = { - astral: false, - natives: false -}; -// Native methods to use and restore ('native' is an ES3 reserved keyword) -var nativ = { - exec: RegExp.prototype.exec, - test: RegExp.prototype.test, - match: String.prototype.match, - replace: String.prototype.replace, - split: String.prototype.split -}; -// Storage for fixed/extended native methods -var fixed = {}; -// Storage for regexes cached by `XRegExp.cache` -var regexCache = {}; -// Storage for pattern details cached by the `XRegExp` constructor -var patternCache = {}; -// Storage for regex syntax tokens added internally or by `XRegExp.addToken` -var tokens = []; -// Token scopes -var defaultScope = 'default'; -var classScope = 'class'; -// Regexes that match native regex syntax, including octals -var nativeTokens = { - // Any native multicharacter token in default scope, or any single character - 'default': /\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/, - // Any native multicharacter token in character class scope, or any single character - 'class': /\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/ -}; -// Any backreference or dollar-prefixed character in replacement strings -var replacementToken = /\$(?:{([\w$]+)}|(\d\d?|[\s\S]))/g; -// Check for correct `exec` handling of nonparticipating capturing groups -var correctExecNpcg = nativ.exec.call(/()??/, '')[1] === undefined; -// Check for ES6 `flags` prop support -var hasFlagsProp = /x/.flags !== undefined; -// Shortcut to `Object.prototype.toString` -var toString = {}.toString; - -function hasNativeFlag(flag) { - // Can't check based on the presence of properties/getters since browsers might support such - // properties even when they don't support the corresponding flag in regex construction (tested - // in Chrome 48, where `'unicode' in /x/` is true but trying to construct a regex with flag `u` - // throws an error) - var isSupported = true; - try { - // Can't use regex literals for testing even in a `try` because regex literals with - // unsupported flags cause a compilation error in IE - new RegExp('', flag); - } catch (exception) { - isSupported = false; - } - return isSupported; -} -// Check for ES6 `u` flag support -var hasNativeU = hasNativeFlag('u'); -// Check for ES6 `y` flag support -var hasNativeY = hasNativeFlag('y'); -// Tracker for known flags, including addon flags -var registeredFlags = { - g: true, - i: true, - m: true, - u: hasNativeU, - y: hasNativeY -}; - -/** - * Attaches extended data and `XRegExp.prototype` properties to a regex object. - * - * @private - * @param {RegExp} regex Regex to augment. - * @param {Array} captureNames Array with capture names, or `null`. - * @param {String} xSource XRegExp pattern used to generate `regex`, or `null` if N/A. - * @param {String} xFlags XRegExp flags used to generate `regex`, or `null` if N/A. - * @param {Boolean} [isInternalOnly=false] Whether the regex will be used only for internal - * operations, and never exposed to users. For internal-only regexes, we can improve perf by - * skipping some operations like attaching `XRegExp.prototype` properties. - * @returns {RegExp} Augmented regex. - */ -function augment(regex, captureNames, xSource, xFlags, isInternalOnly) { - var p; - - regex[REGEX_DATA] = { - captureNames: captureNames - }; - - if (isInternalOnly) { - return regex; - } - - // Can't auto-inherit these since the XRegExp constructor returns a nonprimitive value - if (regex.__proto__) { - regex.__proto__ = XRegExp.prototype; - } else { - for (p in XRegExp.prototype) { - // An `XRegExp.prototype.hasOwnProperty(p)` check wouldn't be worth it here, since this - // is performance sensitive, and enumerable `Object.prototype` or `RegExp.prototype` - // extensions exist on `regex.prototype` anyway - regex[p] = XRegExp.prototype[p]; - } - } - - regex[REGEX_DATA].source = xSource; - // Emulate the ES6 `flags` prop by ensuring flags are in alphabetical order - regex[REGEX_DATA].flags = xFlags ? xFlags.split('').sort().join('') : xFlags; - - return regex; -} - -/** - * Removes any duplicate characters from the provided string. - * - * @private - * @param {String} str String to remove duplicate characters from. - * @returns {String} String with any duplicate characters removed. - */ -function clipDuplicates(str) { - return nativ.replace.call(str, /([\s\S])(?=[\s\S]*\1)/g, ''); -} - -/** - * Copies a regex object while preserving extended data and augmenting with `XRegExp.prototype` - * properties. The copy has a fresh `lastIndex` property (set to zero). Allows adding and removing - * flags g and y while copying the regex. - * - * @private - * @param {RegExp} regex Regex to copy. - * @param {Object} [options] Options object with optional properties: - * - `addG` {Boolean} Add flag g while copying the regex. - * - `addY` {Boolean} Add flag y while copying the regex. - * - `removeG` {Boolean} Remove flag g while copying the regex. - * - `removeY` {Boolean} Remove flag y while copying the regex. - * - `isInternalOnly` {Boolean} Whether the copied regex will be used only for internal - * operations, and never exposed to users. For internal-only regexes, we can improve perf by - * skipping some operations like attaching `XRegExp.prototype` properties. - * - `source` {String} Overrides `<regex>.source`, for special cases. - * @returns {RegExp} Copy of the provided regex, possibly with modified flags. - */ -function copyRegex(regex, options) { - if (!XRegExp.isRegExp(regex)) { - throw new TypeError('Type RegExp expected'); - } - - var xData = regex[REGEX_DATA] || {}; - var flags = getNativeFlags(regex); - var flagsToAdd = ''; - var flagsToRemove = ''; - var xregexpSource = null; - var xregexpFlags = null; - - options = options || {}; - - if (options.removeG) {flagsToRemove += 'g';} - if (options.removeY) {flagsToRemove += 'y';} - if (flagsToRemove) { - flags = nativ.replace.call(flags, new RegExp('[' + flagsToRemove + ']+', 'g'), ''); - } - - if (options.addG) {flagsToAdd += 'g';} - if (options.addY) {flagsToAdd += 'y';} - if (flagsToAdd) { - flags = clipDuplicates(flags + flagsToAdd); - } - - if (!options.isInternalOnly) { - if (xData.source !== undefined) { - xregexpSource = xData.source; - } - // null or undefined; don't want to add to `flags` if the previous value was null, since - // that indicates we're not tracking original precompilation flags - if (xData.flags != null) { - // Flags are only added for non-internal regexes by `XRegExp.globalize`. Flags are never - // removed for non-internal regexes, so don't need to handle it - xregexpFlags = flagsToAdd ? clipDuplicates(xData.flags + flagsToAdd) : xData.flags; - } - } - - // Augment with `XRegExp.prototype` properties, but use the native `RegExp` constructor to avoid - // searching for special tokens. That would be wrong for regexes constructed by `RegExp`, and - // unnecessary for regexes constructed by `XRegExp` because the regex has already undergone the - // translation to native regex syntax - regex = augment( - new RegExp(options.source || regex.source, flags), - hasNamedCapture(regex) ? xData.captureNames.slice(0) : null, - xregexpSource, - xregexpFlags, - options.isInternalOnly - ); - - return regex; -} - -/** - * Converts hexadecimal to decimal. - * - * @private - * @param {String} hex - * @returns {Number} - */ -function dec(hex) { - return parseInt(hex, 16); -} - -/** - * Returns a pattern that can be used in a native RegExp in place of an ignorable token such as an - * inline comment or whitespace with flag x. This is used directly as a token handler function - * passed to `XRegExp.addToken`. - * - * @private - * @param {String} match Match arg of `XRegExp.addToken` handler - * @param {String} scope Scope arg of `XRegExp.addToken` handler - * @param {String} flags Flags arg of `XRegExp.addToken` handler - * @returns {String} Either '' or '(?:)', depending on which is needed in the context of the match. - */ -function getContextualTokenSeparator(match, scope, flags) { - if ( - // No need to separate tokens if at the beginning or end of a group - match.input.charAt(match.index - 1) === '(' || - match.input.charAt(match.index + match[0].length) === ')' || - // Avoid separating tokens when the following token is a quantifier - isPatternNext(match.input, match.index + match[0].length, flags, '[?*+]|{\\d+(?:,\\d*)?}') - ) { - return ''; - } - // Keep tokens separated. This avoids e.g. inadvertedly changing `\1 1` or `\1(?#)1` to `\11`. - // This also ensures all tokens remain as discrete atoms, e.g. it avoids converting the syntax - // error `(? :` into `(?:`. - return '(?:)'; -} - -/** - * Returns native `RegExp` flags used by a regex object. - * - * @private - * @param {RegExp} regex Regex to check. - * @returns {String} Native flags in use. - */ -function getNativeFlags(regex) { - return hasFlagsProp ? - regex.flags : - // Explicitly using `RegExp.prototype.toString` (rather than e.g. `String` or concatenation - // with an empty string) allows this to continue working predictably when - // `XRegExp.proptotype.toString` is overridden - nativ.exec.call(/\/([a-z]*)$/i, RegExp.prototype.toString.call(regex))[1]; -} - -/** - * Determines whether a regex has extended instance data used to track capture names. - * - * @private - * @param {RegExp} regex Regex to check. - * @returns {Boolean} Whether the regex uses named capture. - */ -function hasNamedCapture(regex) { - return !!(regex[REGEX_DATA] && regex[REGEX_DATA].captureNames); -} - -/** - * Converts decimal to hexadecimal. - * - * @private - * @param {Number|String} dec - * @returns {String} - */ -function hex(dec) { - return parseInt(dec, 10).toString(16); -} - -/** - * Returns the first index at which a given value can be found in an array. - * - * @private - * @param {Array} array Array to search. - * @param {*} value Value to locate in the array. - * @returns {Number} Zero-based index at which the item is found, or -1. - */ -function indexOf(array, value) { - var len = array.length; - var i; - - for (i = 0; i < len; ++i) { - if (array[i] === value) { - return i; - } - } - - return -1; -} - -/** - * Checks whether the next nonignorable token after the specified position matches the - * `needlePattern` - * - * @private - * @param {String} pattern Pattern to search within. - * @param {Number} pos Index in `pattern` to search at. - * @param {String} flags Flags used by the pattern. - * @param {String} needlePattern Pattern to match the next token against. - * @returns {Boolean} Whether the next nonignorable token matches `needlePattern` - */ -function isPatternNext(pattern, pos, flags, needlePattern) { - var inlineCommentPattern = '\\(\\?#[^)]*\\)'; - var lineCommentPattern = '#[^#\\n]*'; - var patternsToIgnore = flags.indexOf('x') > -1 ? - // Ignore any leading whitespace, line comments, and inline comments - ['\\s', lineCommentPattern, inlineCommentPattern] : - // Ignore any leading inline comments - [inlineCommentPattern]; - return nativ.test.call( - new RegExp('^(?:' + patternsToIgnore.join('|') + ')*(?:' + needlePattern + ')'), - pattern.slice(pos) - ); -} - -/** - * Determines whether a value is of the specified type, by resolving its internal [[Class]]. - * - * @private - * @param {*} value Object to check. - * @param {String} type Type to check for, in TitleCase. - * @returns {Boolean} Whether the object matches the type. - */ -function isType(value, type) { - return toString.call(value) === '[object ' + type + ']'; -} - -/** - * Adds leading zeros if shorter than four characters. Used for fixed-length hexadecimal values. - * - * @private - * @param {String} str - * @returns {String} - */ -function pad4(str) { - while (str.length < 4) { - str = '0' + str; - } - return str; -} - -/** - * Checks for flag-related errors, and strips/applies flags in a leading mode modifier. Offloads - * the flag preparation logic from the `XRegExp` constructor. - * - * @private - * @param {String} pattern Regex pattern, possibly with a leading mode modifier. - * @param {String} flags Any combination of flags. - * @returns {Object} Object with properties `pattern` and `flags`. - */ -function prepareFlags(pattern, flags) { - var i; - - // Recent browsers throw on duplicate flags, so copy this behavior for nonnative flags - if (clipDuplicates(flags) !== flags) { - throw new SyntaxError('Invalid duplicate regex flag ' + flags); - } - - // Strip and apply a leading mode modifier with any combination of flags except g or y - pattern = nativ.replace.call(pattern, /^\(\?([\w$]+)\)/, function($0, $1) { - if (nativ.test.call(/[gy]/, $1)) { - throw new SyntaxError('Cannot use flag g or y in mode modifier ' + $0); - } - // Allow duplicate flags within the mode modifier - flags = clipDuplicates(flags + $1); - return ''; - }); - - // Throw on unknown native or nonnative flags - for (i = 0; i < flags.length; ++i) { - if (!registeredFlags[flags.charAt(i)]) { - throw new SyntaxError('Unknown regex flag ' + flags.charAt(i)); - } - } - - return { - pattern: pattern, - flags: flags - }; -} - -/** - * Prepares an options object from the given value. - * - * @private - * @param {String|Object} value Value to convert to an options object. - * @returns {Object} Options object. - */ -function prepareOptions(value) { - var options = {}; - - if (isType(value, 'String')) { - XRegExp.forEach(value, /[^\s,]+/, function(match) { - options[match] = true; - }); - - return options; - } - - return value; -} - -/** - * Registers a flag so it doesn't throw an 'unknown flag' error. - * - * @private - * @param {String} flag Single-character flag to register. - */ -function registerFlag(flag) { - if (!/^[\w$]$/.test(flag)) { - throw new Error('Flag must be a single character A-Za-z0-9_$'); - } - - registeredFlags[flag] = true; -} - -/** - * Runs built-in and custom regex syntax tokens in reverse insertion order at the specified - * position, until a match is found. - * - * @private - * @param {String} pattern Original pattern from which an XRegExp object is being built. - * @param {String} flags Flags being used to construct the regex. - * @param {Number} pos Position to search for tokens within `pattern`. - * @param {Number} scope Regex scope to apply: 'default' or 'class'. - * @param {Object} context Context object to use for token handler functions. - * @returns {Object} Object with properties `matchLength`, `output`, and `reparse`; or `null`. - */ -function runTokens(pattern, flags, pos, scope, context) { - var i = tokens.length; - var leadChar = pattern.charAt(pos); - var result = null; - var match; - var t; - - // Run in reverse insertion order - while (i--) { - t = tokens[i]; - if ( - (t.leadChar && t.leadChar !== leadChar) || - (t.scope !== scope && t.scope !== 'all') || - (t.flag && flags.indexOf(t.flag) === -1) - ) { - continue; - } - - match = XRegExp.exec(pattern, t.regex, pos, 'sticky'); - if (match) { - result = { - matchLength: match[0].length, - output: t.handler.call(context, match, scope, flags), - reparse: t.reparse - }; - // Finished with token tests - break; - } - } - - return result; -} - -/** - * Enables or disables implicit astral mode opt-in. When enabled, flag A is automatically added to - * all new regexes created by XRegExp. This causes an error to be thrown when creating regexes if - * the Unicode Base addon is not available, since flag A is registered by that addon. - * - * @private - * @param {Boolean} on `true` to enable; `false` to disable. - */ -function setAstral(on) { - features.astral = on; -} - -/** - * Enables or disables native method overrides. - * - * @private - * @param {Boolean} on `true` to enable; `false` to disable. - */ -function setNatives(on) { - RegExp.prototype.exec = (on ? fixed : nativ).exec; - RegExp.prototype.test = (on ? fixed : nativ).test; - String.prototype.match = (on ? fixed : nativ).match; - String.prototype.replace = (on ? fixed : nativ).replace; - String.prototype.split = (on ? fixed : nativ).split; - - features.natives = on; -} - -/** - * Returns the object, or throws an error if it is `null` or `undefined`. This is used to follow - * the ES5 abstract operation `ToObject`. - * - * @private - * @param {*} value Object to check and return. - * @returns {*} The provided object. - */ -function toObject(value) { - // null or undefined - if (value == null) { - throw new TypeError('Cannot convert null or undefined to object'); - } - - return value; -} - -// ==--------------------------== -// Constructor -// ==--------------------------== - -/** - * Creates an extended regular expression object for matching text with a pattern. Differs from a - * native regular expression in that additional syntax and flags are supported. The returned object - * is in fact a native `RegExp` and works with all native methods. - * - * @class XRegExp - * @constructor - * @param {String|RegExp} pattern Regex pattern string, or an existing regex object to copy. - * @param {String} [flags] Any combination of flags. - * Native flags: - * - `g` - global - * - `i` - ignore case - * - `m` - multiline anchors - * - `u` - unicode (ES6) - * - `y` - sticky (Firefox 3+, ES6) - * Additional XRegExp flags: - * - `n` - explicit capture - * - `s` - dot matches all (aka singleline) - * - `x` - free-spacing and line comments (aka extended) - * - `A` - astral (requires the Unicode Base addon) - * Flags cannot be provided when constructing one `RegExp` from another. - * @returns {RegExp} Extended regular expression object. - * @example - * - * // With named capture and flag x - * XRegExp('(?<year> [0-9]{4} ) -? # year \n\ - * (?<month> [0-9]{2} ) -? # month \n\ - * (?<day> [0-9]{2} ) # day ', 'x'); - * - * // Providing a regex object copies it. Native regexes are recompiled using native (not XRegExp) - * // syntax. Copies maintain extended data, are augmented with `XRegExp.prototype` properties, and - * // have fresh `lastIndex` properties (set to zero). - * XRegExp(/regex/); - */ -function XRegExp(pattern, flags) { - if (XRegExp.isRegExp(pattern)) { - if (flags !== undefined) { - throw new TypeError('Cannot supply flags when copying a RegExp'); - } - return copyRegex(pattern); - } - - // Copy the argument behavior of `RegExp` - pattern = pattern === undefined ? '' : String(pattern); - flags = flags === undefined ? '' : String(flags); - - if (XRegExp.isInstalled('astral') && flags.indexOf('A') === -1) { - // This causes an error to be thrown if the Unicode Base addon is not available - flags += 'A'; - } - - if (!patternCache[pattern]) { - patternCache[pattern] = {}; - } - - if (!patternCache[pattern][flags]) { - var context = { - hasNamedCapture: false, - captureNames: [] - }; - var scope = defaultScope; - var output = ''; - var pos = 0; - var result; - - // Check for flag-related errors, and strip/apply flags in a leading mode modifier - var applied = prepareFlags(pattern, flags); - var appliedPattern = applied.pattern; - var appliedFlags = applied.flags; - - // Use XRegExp's tokens to translate the pattern to a native regex pattern. - // `appliedPattern.length` may change on each iteration if tokens use `reparse` - while (pos < appliedPattern.length) { - do { - // Check for custom tokens at the current position - result = runTokens(appliedPattern, appliedFlags, pos, scope, context); - // If the matched token used the `reparse` option, splice its output into the - // pattern before running tokens again at the same position - if (result && result.reparse) { - appliedPattern = appliedPattern.slice(0, pos) + - result.output + - appliedPattern.slice(pos + result.matchLength); - } - } while (result && result.reparse); - - if (result) { - output += result.output; - pos += (result.matchLength || 1); - } else { - // Get the native token at the current position - var token = XRegExp.exec(appliedPattern, nativeTokens[scope], pos, 'sticky')[0]; - output += token; - pos += token.length; - if (token === '[' && scope === defaultScope) { - scope = classScope; - } else if (token === ']' && scope === classScope) { - scope = defaultScope; - } - } - } - - patternCache[pattern][flags] = { - // Use basic cleanup to collapse repeated empty groups like `(?:)(?:)` to `(?:)`. Empty - // groups are sometimes inserted during regex transpilation in order to keep tokens - // separated. However, more than one empty group in a row is never needed. - pattern: nativ.replace.call(output, /(?:\(\?:\))+/g, '(?:)'), - // Strip all but native flags - flags: nativ.replace.call(appliedFlags, /[^gimuy]+/g, ''), - // `context.captureNames` has an item for each capturing group, even if unnamed - captures: context.hasNamedCapture ? context.captureNames : null - }; - } - - var generated = patternCache[pattern][flags]; - return augment( - new RegExp(generated.pattern, generated.flags), - generated.captures, - pattern, - flags - ); -} - -// Add `RegExp.prototype` to the prototype chain -XRegExp.prototype = new RegExp(); - -// ==--------------------------== -// Public properties -// ==--------------------------== - -/** - * The XRegExp version number as a string containing three dot-separated parts. For example, - * '2.0.0-beta-3'. - * - * @static - * @memberOf XRegExp - * @type String - */ -XRegExp.version = '3.2.0'; - -// ==--------------------------== -// Public methods -// ==--------------------------== - -// Intentionally undocumented; used in tests and addons -XRegExp._clipDuplicates = clipDuplicates; -XRegExp._hasNativeFlag = hasNativeFlag; -XRegExp._dec = dec; -XRegExp._hex = hex; -XRegExp._pad4 = pad4; - -/** - * Extends XRegExp syntax and allows custom flags. This is used internally and can be used to - * create XRegExp addons. If more than one token can match the same string, the last added wins. - * - * @memberOf XRegExp - * @param {RegExp} regex Regex object that matches the new token. - * @param {Function} handler Function that returns a new pattern string (using native regex syntax) - * to replace the matched token within all future XRegExp regexes. Has access to persistent - * properties of the regex being built, through `this`. Invoked with three arguments: - * - The match array, with named backreference properties. - * - The regex scope where the match was found: 'default' or 'class'. - * - The flags used by the regex, including any flags in a leading mode modifier. - * The handler function becomes part of the XRegExp construction process, so be careful not to - * construct XRegExps within the function or you will trigger infinite recursion. - * @param {Object} [options] Options object with optional properties: - * - `scope` {String} Scope where the token applies: 'default', 'class', or 'all'. - * - `flag` {String} Single-character flag that triggers the token. This also registers the - * flag, which prevents XRegExp from throwing an 'unknown flag' error when the flag is used. - * - `optionalFlags` {String} Any custom flags checked for within the token `handler` that are - * not required to trigger the token. This registers the flags, to prevent XRegExp from - * throwing an 'unknown flag' error when any of the flags are used. - * - `reparse` {Boolean} Whether the `handler` function's output should not be treated as - * final, and instead be reparseable by other tokens (including the current token). Allows - * token chaining or deferring. - * - `leadChar` {String} Single character that occurs at the beginning of any successful match - * of the token (not always applicable). This doesn't change the behavior of the token unless - * you provide an erroneous value. However, providing it can increase the token's performance - * since the token can be skipped at any positions where this character doesn't appear. - * @example - * - * // Basic usage: Add \a for the ALERT control code - * XRegExp.addToken( - * /\\a/, - * function() {return '\\x07';}, - * {scope: 'all'} - * ); - * XRegExp('\\a[\\a-\\n]+').test('\x07\n\x07'); // -> true - * - * // Add the U (ungreedy) flag from PCRE and RE2, which reverses greedy and lazy quantifiers. - * // Since `scope` is not specified, it uses 'default' (i.e., transformations apply outside of - * // character classes only) - * XRegExp.addToken( - * /([?*+]|{\d+(?:,\d*)?})(\??)/, - * function(match) {return match[1] + (match[2] ? '' : '?');}, - * {flag: 'U'} - * ); - * XRegExp('a+', 'U').exec('aaa')[0]; // -> 'a' - * XRegExp('a+?', 'U').exec('aaa')[0]; // -> 'aaa' - */ -XRegExp.addToken = function(regex, handler, options) { - options = options || {}; - var optionalFlags = options.optionalFlags; - var i; - - if (options.flag) { - registerFlag(options.flag); - } - - if (optionalFlags) { - optionalFlags = nativ.split.call(optionalFlags, ''); - for (i = 0; i < optionalFlags.length; ++i) { - registerFlag(optionalFlags[i]); - } - } - - // Add to the private list of syntax tokens - tokens.push({ - regex: copyRegex(regex, { - addG: true, - addY: hasNativeY, - isInternalOnly: true - }), - handler: handler, - scope: options.scope || defaultScope, - flag: options.flag, - reparse: options.reparse, - leadChar: options.leadChar - }); - - // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and flags - // might now produce different results - XRegExp.cache.flush('patterns'); -}; - -/** - * Caches and returns the result of calling `XRegExp(pattern, flags)`. On any subsequent call with - * the same pattern and flag combination, the cached copy of the regex is returned. - * - * @memberOf XRegExp - * @param {String} pattern Regex pattern string. - * @param {String} [flags] Any combination of XRegExp flags. - * @returns {RegExp} Cached XRegExp object. - * @example - * - * while (match = XRegExp.cache('.', 'gs').exec(str)) { - * // The regex is compiled once only - * } - */ -XRegExp.cache = function(pattern, flags) { - if (!regexCache[pattern]) { - regexCache[pattern] = {}; - } - return regexCache[pattern][flags] || ( - regexCache[pattern][flags] = XRegExp(pattern, flags) - ); -}; - -// Intentionally undocumented; used in tests -XRegExp.cache.flush = function(cacheName) { - if (cacheName === 'patterns') { - // Flush the pattern cache used by the `XRegExp` constructor - patternCache = {}; - } else { - // Flush the regex cache populated by `XRegExp.cache` - regexCache = {}; - } -}; - -/** - * Escapes any regular expression metacharacters, for use when matching literal strings. The result - * can safely be used at any point within a regex that uses any flags. - * - * @memberOf XRegExp - * @param {String} str String to escape. - * @returns {String} String with regex metacharacters escaped. - * @example - * - * XRegExp.escape('Escaped? <.>'); - * // -> 'Escaped\?\ <\.>' - */ -XRegExp.escape = function(str) { - return nativ.replace.call(toObject(str), /[-\[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); -}; - -/** - * Executes a regex search in a specified string. Returns a match array or `null`. If the provided - * regex uses named capture, named backreference properties are included on the match array. - * Optional `pos` and `sticky` arguments specify the search start position, and whether the match - * must start at the specified position only. The `lastIndex` property of the provided regex is not - * used, but is updated for compatibility. Also fixes browser bugs compared to the native - * `RegExp.prototype.exec` and can be used reliably cross-browser. - * - * @memberOf XRegExp - * @param {String} str String to search. - * @param {RegExp} regex Regex to search with. - * @param {Number} [pos=0] Zero-based index at which to start the search. - * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position - * only. The string `'sticky'` is accepted as an alternative to `true`. - * @returns {Array} Match array with named backreference properties, or `null`. - * @example - * - * // Basic use, with named backreference - * var match = XRegExp.exec('U+2620', XRegExp('U\\+(?<hex>[0-9A-F]{4})')); - * match.hex; // -> '2620' - * - * // With pos and sticky, in a loop - * var pos = 2, result = [], match; - * while (match = XRegExp.exec('<1><2><3><4>5<6>', /<(\d)>/, pos, 'sticky')) { - * result.push(match[1]); - * pos = match.index + match[0].length; - * } - * // result -> ['2', '3', '4'] - */ -XRegExp.exec = function(str, regex, pos, sticky) { - var cacheKey = 'g'; - var addY = false; - var fakeY = false; - var match; - var r2; - - addY = hasNativeY && !!(sticky || (regex.sticky && sticky !== false)); - if (addY) { - cacheKey += 'y'; - } else if (sticky) { - // Simulate sticky matching by appending an empty capture to the original regex. The - // resulting regex will succeed no matter what at the current index (set with `lastIndex`), - // and will not search the rest of the subject string. We'll know that the original regex - // has failed if that last capture is `''` rather than `undefined` (i.e., if that last - // capture participated in the match). - fakeY = true; - cacheKey += 'FakeY'; - } - - regex[REGEX_DATA] = regex[REGEX_DATA] || {}; - - // Shares cached copies with `XRegExp.match`/`replace` - r2 = regex[REGEX_DATA][cacheKey] || ( - regex[REGEX_DATA][cacheKey] = copyRegex(regex, { - addG: true, - addY: addY, - source: fakeY ? regex.source + '|()' : undefined, - removeY: sticky === false, - isInternalOnly: true - }) - ); - - pos = pos || 0; - r2.lastIndex = pos; - - // Fixed `exec` required for `lastIndex` fix, named backreferences, etc. - match = fixed.exec.call(r2, str); - - // Get rid of the capture added by the pseudo-sticky matcher if needed. An empty string means - // the original regexp failed (see above). - if (fakeY && match && match.pop() === '') { - match = null; - } - - if (regex.global) { - regex.lastIndex = match ? r2.lastIndex : 0; - } - - return match; -}; - -/** - * Executes a provided function once per regex match. Searches always start at the beginning of the - * string and continue until the end, regardless of the state of the regex's `global` property and - * initial `lastIndex`. - * - * @memberOf XRegExp - * @param {String} str String to search. - * @param {RegExp} regex Regex to search with. - * @param {Function} callback Function to execute for each match. Invoked with four arguments: - * - The match array, with named backreference properties. - * - The zero-based match index. - * - The string being traversed. - * - The regex object being used to traverse the string. - * @example - * - * // Extracts every other digit from a string - * var evens = []; - * XRegExp.forEach('1a2345', /\d/, function(match, i) { - * if (i % 2) evens.push(+match[0]); - * }); - * // evens -> [2, 4] - */ -XRegExp.forEach = function(str, regex, callback) { - var pos = 0; - var i = -1; - var match; - - while ((match = XRegExp.exec(str, regex, pos))) { - // Because `regex` is provided to `callback`, the function could use the deprecated/ - // nonstandard `RegExp.prototype.compile` to mutate the regex. However, since `XRegExp.exec` - // doesn't use `lastIndex` to set the search position, this can't lead to an infinite loop, - // at least. Actually, because of the way `XRegExp.exec` caches globalized versions of - // regexes, mutating the regex will not have any effect on the iteration or matched strings, - // which is a nice side effect that brings extra safety. - callback(match, ++i, str, regex); - - pos = match.index + (match[0].length || 1); - } -}; - -/** - * Copies a regex object and adds flag `g`. The copy maintains extended data, is augmented with - * `XRegExp.prototype` properties, and has a fresh `lastIndex` property (set to zero). Native - * regexes are not recompiled using XRegExp syntax. - * - * @memberOf XRegExp - * @param {RegExp} regex Regex to globalize. - * @returns {RegExp} Copy of the provided regex with flag `g` added. - * @example - * - * var globalCopy = XRegExp.globalize(/regex/); - * globalCopy.global; // -> true - */ -XRegExp.globalize = function(regex) { - return copyRegex(regex, {addG: true}); -}; - -/** - * Installs optional features according to the specified options. Can be undone using - * `XRegExp.uninstall`. - * - * @memberOf XRegExp - * @param {Object|String} options Options object or string. - * @example - * - * // With an options object - * XRegExp.install({ - * // Enables support for astral code points in Unicode addons (implicitly sets flag A) - * astral: true, - * - * // DEPRECATED: Overrides native regex methods with fixed/extended versions - * natives: true - * }); - * - * // With an options string - * XRegExp.install('astral natives'); - */ -XRegExp.install = function(options) { - options = prepareOptions(options); - - if (!features.astral && options.astral) { - setAstral(true); - } - - if (!features.natives && options.natives) { - setNatives(true); - } -}; - -/** - * Checks whether an individual optional feature is installed. - * - * @memberOf XRegExp - * @param {String} feature Name of the feature to check. One of: - * - `astral` - * - `natives` - * @returns {Boolean} Whether the feature is installed. - * @example - * - * XRegExp.isInstalled('astral'); - */ -XRegExp.isInstalled = function(feature) { - return !!(features[feature]); -}; - -/** - * Returns `true` if an object is a regex; `false` if it isn't. This works correctly for regexes - * created in another frame, when `instanceof` and `constructor` checks would fail. - * - * @memberOf XRegExp - * @param {*} value Object to check. - * @returns {Boolean} Whether the object is a `RegExp` object. - * @example - * - * XRegExp.isRegExp('string'); // -> false - * XRegExp.isRegExp(/regex/i); // -> true - * XRegExp.isRegExp(RegExp('^', 'm')); // -> true - * XRegExp.isRegExp(XRegExp('(?s).')); // -> true - */ -XRegExp.isRegExp = function(value) { - return toString.call(value) === '[object RegExp]'; - //return isType(value, 'RegExp'); -}; - -/** - * Returns the first matched string, or in global mode, an array containing all matched strings. - * This is essentially a more convenient re-implementation of `String.prototype.match` that gives - * the result types you actually want (string instead of `exec`-style array in match-first mode, - * and an empty array instead of `null` when no matches are found in match-all mode). It also lets - * you override flag g and ignore `lastIndex`, and fixes browser bugs. - * - * @memberOf XRegExp - * @param {String} str String to search. - * @param {RegExp} regex Regex to search with. - * @param {String} [scope='one'] Use 'one' to return the first match as a string. Use 'all' to - * return an array of all matched strings. If not explicitly specified and `regex` uses flag g, - * `scope` is 'all'. - * @returns {String|Array} In match-first mode: First match as a string, or `null`. In match-all - * mode: Array of all matched strings, or an empty array. - * @example - * - * // Match first - * XRegExp.match('abc', /\w/); // -> 'a' - * XRegExp.match('abc', /\w/g, 'one'); // -> 'a' - * XRegExp.match('abc', /x/g, 'one'); // -> null - * - * // Match all - * XRegExp.match('abc', /\w/g); // -> ['a', 'b', 'c'] - * XRegExp.match('abc', /\w/, 'all'); // -> ['a', 'b', 'c'] - * XRegExp.match('abc', /x/, 'all'); // -> [] - */ -XRegExp.match = function(str, regex, scope) { - var global = (regex.global && scope !== 'one') || scope === 'all'; - var cacheKey = ((global ? 'g' : '') + (regex.sticky ? 'y' : '')) || 'noGY'; - var result; - var r2; - - regex[REGEX_DATA] = regex[REGEX_DATA] || {}; - - // Shares cached copies with `XRegExp.exec`/`replace` - r2 = regex[REGEX_DATA][cacheKey] || ( - regex[REGEX_DATA][cacheKey] = copyRegex(regex, { - addG: !!global, - removeG: scope === 'one', - isInternalOnly: true - }) - ); - - result = nativ.match.call(toObject(str), r2); - - if (regex.global) { - regex.lastIndex = ( - (scope === 'one' && result) ? - // Can't use `r2.lastIndex` since `r2` is nonglobal in this case - (result.index + result[0].length) : 0 - ); - } - - return global ? (result || []) : (result && result[0]); -}; - -/** - * Retrieves the matches from searching a string using a chain of regexes that successively search - * within previous matches. The provided `chain` array can contain regexes and or objects with - * `regex` and `backref` properties. When a backreference is specified, the named or numbered - * backreference is passed forward to the next regex or returned. - * - * @memberOf XRegExp - * @param {String} str String to search. - * @param {Array} chain Regexes that each search for matches within preceding results. - * @returns {Array} Matches by the last regex in the chain, or an empty array. - * @example - * - * // Basic usage; matches numbers within <b> tags - * XRegExp.matchChain('1 <b>2</b> 3 <b>4 a 56</b>', [ - * XRegExp('(?is)<b>.*?</b>'), - * /\d+/ - * ]); - * // -> ['2', '4', '56'] - * - * // Passing forward and returning specific backreferences - * html = '<a href="http://xregexp.com/api/">XRegExp</a>\ - * <a href="http://www.google.com/">Google</a>'; - * XRegExp.matchChain(html, [ - * {regex: /<a href="([^"]+)">/i, backref: 1}, - * {regex: XRegExp('(?i)^https?://(?<domain>[^/?#]+)'), backref: 'domain'} - * ]); - * // -> ['xregexp.com', 'www.google.com'] - */ -XRegExp.matchChain = function(str, chain) { - return (function recurseChain(values, level) { - var item = chain[level].regex ? chain[level] : {regex: chain[level]}; - var matches = []; - - function addMatch(match) { - if (item.backref) { - // Safari 4.0.5 (but not 5.0.5+) inappropriately uses sparse arrays to hold the - // `undefined`s for backreferences to nonparticipating capturing groups. In such - // cases, a `hasOwnProperty` or `in` check on its own would inappropriately throw - // the exception, so also check if the backreference is a number that is within the - // bounds of the array. - if (!(match.hasOwnProperty(item.backref) || +item.backref < match.length)) { - throw new ReferenceError('Backreference to undefined group: ' + item.backref); - } - - matches.push(match[item.backref] || ''); - } else { - matches.push(match[0]); - } - } - - for (var i = 0; i < values.length; ++i) { - XRegExp.forEach(values[i], item.regex, addMatch); - } - - return ((level === chain.length - 1) || !matches.length) ? - matches : - recurseChain(matches, level + 1); - }([str], 0)); -}; - -/** - * Returns a new string with one or all matches of a pattern replaced. The pattern can be a string - * or regex, and the replacement can be a string or a function to be called for each match. To - * perform a global search and replace, use the optional `scope` argument or include flag g if using - * a regex. Replacement strings can use `${n}` for named and numbered backreferences. Replacement - * functions can use named backreferences via `arguments[0].name`. Also fixes browser bugs compared - * to the native `String.prototype.replace` and can be used reliably cross-browser. - * - * @memberOf XRegExp - * @param {String} str String to search. - * @param {RegExp|String} search Search pattern to be replaced. - * @param {String|Function} replacement Replacement string or a function invoked to create it. - * Replacement strings can include special replacement syntax: - * - $$ - Inserts a literal $ character. - * - $&, $0 - Inserts the matched substring. - * - $` - Inserts the string that precedes the matched substring (left context). - * - $' - Inserts the string that follows the matched substring (right context). - * - $n, $nn - Where n/nn are digits referencing an existent capturing group, inserts - * backreference n/nn. - * - ${n} - Where n is a name or any number of digits that reference an existent capturing - * group, inserts backreference n. - * Replacement functions are invoked with three or more arguments: - * - The matched substring (corresponds to $& above). Named backreferences are accessible as - * properties of this first argument. - * - 0..n arguments, one for each backreference (corresponding to $1, $2, etc. above). - * - The zero-based index of the match within the total search string. - * - The total string being searched. - * @param {String} [scope='one'] Use 'one' to replace the first match only, or 'all'. If not - * explicitly specified and using a regex with flag g, `scope` is 'all'. - * @returns {String} New string with one or all matches replaced. - * @example - * - * // Regex search, using named backreferences in replacement string - * var name = XRegExp('(?<first>\\w+) (?<last>\\w+)'); - * XRegExp.replace('John Smith', name, '${last}, ${first}'); - * // -> 'Smith, John' - * - * // Regex search, using named backreferences in replacement function - * XRegExp.replace('John Smith', name, function(match) { - * return match.last + ', ' + match.first; - * }); - * // -> 'Smith, John' - * - * // String search, with replace-all - * XRegExp.replace('RegExp builds RegExps', 'RegExp', 'XRegExp', 'all'); - * // -> 'XRegExp builds XRegExps' - */ -XRegExp.replace = function(str, search, replacement, scope) { - var isRegex = XRegExp.isRegExp(search); - var global = (search.global && scope !== 'one') || scope === 'all'; - var cacheKey = ((global ? 'g' : '') + (search.sticky ? 'y' : '')) || 'noGY'; - var s2 = search; - var result; - - if (isRegex) { - search[REGEX_DATA] = search[REGEX_DATA] || {}; - - // Shares cached copies with `XRegExp.exec`/`match`. Since a copy is used, `search`'s - // `lastIndex` isn't updated *during* replacement iterations - s2 = search[REGEX_DATA][cacheKey] || ( - search[REGEX_DATA][cacheKey] = copyRegex(search, { - addG: !!global, - removeG: scope === 'one', - isInternalOnly: true - }) - ); - } else if (global) { - s2 = new RegExp(XRegExp.escape(String(search)), 'g'); - } - - // Fixed `replace` required for named backreferences, etc. - result = fixed.replace.call(toObject(str), s2, replacement); - - if (isRegex && search.global) { - // Fixes IE, Safari bug (last tested IE 9, Safari 5.1) - search.lastIndex = 0; - } - - return result; -}; - -/** - * Performs batch processing of string replacements. Used like `XRegExp.replace`, but accepts an - * array of replacement details. Later replacements operate on the output of earlier replacements. - * Replacement details are accepted as an array with a regex or string to search for, the - * replacement string or function, and an optional scope of 'one' or 'all'. Uses the XRegExp - * replacement text syntax, which supports named backreference properties via `${name}`. - * - * @memberOf XRegExp - * @param {String} str String to search. - * @param {Array} replacements Array of replacement detail arrays. - * @returns {String} New string with all replacements. - * @example - * - * str = XRegExp.replaceEach(str, [ - * [XRegExp('(?<name>a)'), 'z${name}'], - * [/b/gi, 'y'], - * [/c/g, 'x', 'one'], // scope 'one' overrides /g - * [/d/, 'w', 'all'], // scope 'all' overrides lack of /g - * ['e', 'v', 'all'], // scope 'all' allows replace-all for strings - * [/f/g, function($0) { - * return $0.toUpperCase(); - * }] - * ]); - */ -XRegExp.replaceEach = function(str, replacements) { - var i; - var r; - - for (i = 0; i < replacements.length; ++i) { - r = replacements[i]; - str = XRegExp.replace(str, r[0], r[1], r[2]); - } - - return str; -}; - -/** - * Splits a string into an array of strings using a regex or string separator. Matches of the - * separator are not included in the result array. However, if `separator` is a regex that contains - * capturing groups, backreferences are spliced into the result each time `separator` is matched. - * Fixes browser bugs compared to the native `String.prototype.split` and can be used reliably - * cross-browser. - * - * @memberOf XRegExp - * @param {String} str String to split. - * @param {RegExp|String} separator Regex or string to use for separating the string. - * @param {Number} [limit] Maximum number of items to include in the result array. - * @returns {Array} Array of substrings. - * @example - * - * // Basic use - * XRegExp.split('a b c', ' '); - * // -> ['a', 'b', 'c'] - * - * // With limit - * XRegExp.split('a b c', ' ', 2); - * // -> ['a', 'b'] - * - * // Backreferences in result array - * XRegExp.split('..word1..', /([a-z]+)(\d+)/i); - * // -> ['..', 'word', '1', '..'] - */ -XRegExp.split = function(str, separator, limit) { - return fixed.split.call(toObject(str), separator, limit); -}; - -/** - * Executes a regex search in a specified string. Returns `true` or `false`. Optional `pos` and - * `sticky` arguments specify the search start position, and whether the match must start at the - * specified position only. The `lastIndex` property of the provided regex is not used, but is - * updated for compatibility. Also fixes browser bugs compared to the native - * `RegExp.prototype.test` and can be used reliably cross-browser. - * - * @memberOf XRegExp - * @param {String} str String to search. - * @param {RegExp} regex Regex to search with. - * @param {Number} [pos=0] Zero-based index at which to start the search. - * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position - * only. The string `'sticky'` is accepted as an alternative to `true`. - * @returns {Boolean} Whether the regex matched the provided value. - * @example - * - * // Basic use - * XRegExp.test('abc', /c/); // -> true - * - * // With pos and sticky - * XRegExp.test('abc', /c/, 0, 'sticky'); // -> false - * XRegExp.test('abc', /c/, 2, 'sticky'); // -> true - */ -XRegExp.test = function(str, regex, pos, sticky) { - // Do this the easy way :-) - return !!XRegExp.exec(str, regex, pos, sticky); -}; - -/** - * Uninstalls optional features according to the specified options. All optional features start out - * uninstalled, so this is used to undo the actions of `XRegExp.install`. - * - * @memberOf XRegExp - * @param {Object|String} options Options object or string. - * @example - * - * // With an options object - * XRegExp.uninstall({ - * // Disables support for astral code points in Unicode addons - * astral: true, - * - * // DEPRECATED: Restores native regex methods - * natives: true - * }); - * - * // With an options string - * XRegExp.uninstall('astral natives'); - */ -XRegExp.uninstall = function(options) { - options = prepareOptions(options); - - if (features.astral && options.astral) { - setAstral(false); - } - - if (features.natives && options.natives) { - setNatives(false); - } -}; - -/** - * Returns an XRegExp object that is the union of the given patterns. Patterns can be provided as - * regex objects or strings. Metacharacters are escaped in patterns provided as strings. - * Backreferences in provided regex objects are automatically renumbered to work correctly within - * the larger combined pattern. Native flags used by provided regexes are ignored in favor of the - * `flags` argument. - * - * @memberOf XRegExp - * @param {Array} patterns Regexes and strings to combine. - * @param {String} [flags] Any combination of XRegExp flags. - * @param {Object} [options] Options object with optional properties: - * - `conjunction` {String} Type of conjunction to use: 'or' (default) or 'none'. - * @returns {RegExp} Union of the provided regexes and strings. - * @example - * - * XRegExp.union(['a+b*c', /(dogs)\1/, /(cats)\1/], 'i'); - * // -> /a\+b\*c|(dogs)\1|(cats)\2/i - * - * XRegExp.union([/man/, /bear/, /pig/], 'i', {conjunction: 'none'}); - * // -> /manbearpig/i - */ -XRegExp.union = function(patterns, flags, options) { - options = options || {}; - var conjunction = options.conjunction || 'or'; - var numCaptures = 0; - var numPriorCaptures; - var captureNames; - - function rewrite(match, paren, backref) { - var name = captureNames[numCaptures - numPriorCaptures]; - - // Capturing group - if (paren) { - ++numCaptures; - // If the current capture has a name, preserve the name - if (name) { - return '(?<' + name + '>'; - } - // Backreference - } else if (backref) { - // Rewrite the backreference - return '\\' + (+backref + numPriorCaptures); - } - - return match; - } - - if (!(isType(patterns, 'Array') && patterns.length)) { - throw new TypeError('Must provide a nonempty array of patterns to merge'); - } - - var parts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g; - var output = []; - var pattern; - for (var i = 0; i < patterns.length; ++i) { - pattern = patterns[i]; - - if (XRegExp.isRegExp(pattern)) { - numPriorCaptures = numCaptures; - captureNames = (pattern[REGEX_DATA] && pattern[REGEX_DATA].captureNames) || []; - - // Rewrite backreferences. Passing to XRegExp dies on octals and ensures patterns are - // independently valid; helps keep this simple. Named captures are put back - output.push(nativ.replace.call(XRegExp(pattern.source).source, parts, rewrite)); - } else { - output.push(XRegExp.escape(pattern)); - } - } - - var separator = conjunction === 'none' ? '' : '|'; - return XRegExp(output.join(separator), flags); -}; - -// ==--------------------------== -// Fixed/extended native methods -// ==--------------------------== - -/** - * Adds named capture support (with backreferences returned as `result.name`), and fixes browser - * bugs in the native `RegExp.prototype.exec`. Calling `XRegExp.install('natives')` uses this to - * override the native method. Use via `XRegExp.exec` without overriding natives. - * - * @memberOf RegExp - * @param {String} str String to search. - * @returns {Array} Match array with named backreference properties, or `null`. - */ -fixed.exec = function(str) { - var origLastIndex = this.lastIndex; - var match = nativ.exec.apply(this, arguments); - var name; - var r2; - var i; - - if (match) { - // Fix browsers whose `exec` methods don't return `undefined` for nonparticipating capturing - // groups. This fixes IE 5.5-8, but not IE 9's quirks mode or emulation of older IEs. IE 9 - // in standards mode follows the spec. - if (!correctExecNpcg && match.length > 1 && indexOf(match, '') > -1) { - r2 = copyRegex(this, { - removeG: true, - isInternalOnly: true - }); - // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed - // matching due to characters outside the match - nativ.replace.call(String(str).slice(match.index), r2, function() { - var len = arguments.length; - var i; - // Skip index 0 and the last 2 - for (i = 1; i < len - 2; ++i) { - if (arguments[i] === undefined) { - match[i] = undefined; - } - } - }); - } - - // Attach named capture properties - if (this[REGEX_DATA] && this[REGEX_DATA].captureNames) { - // Skip index 0 - for (i = 1; i < match.length; ++i) { - name = this[REGEX_DATA].captureNames[i - 1]; - if (name) { - match[name] = match[i]; - } - } - } - - // Fix browsers that increment `lastIndex` after zero-length matches - if (this.global && !match[0].length && (this.lastIndex > match.index)) { - this.lastIndex = match.index; - } - } - - if (!this.global) { - // Fixes IE, Opera bug (last tested IE 9, Opera 11.6) - this.lastIndex = origLastIndex; - } - - return match; -}; - -/** - * Fixes browser bugs in the native `RegExp.prototype.test`. Calling `XRegExp.install('natives')` - * uses this to override the native method. - * - * @memberOf RegExp - * @param {String} str String to search. - * @returns {Boolean} Whether the regex matched the provided value. - */ -fixed.test = function(str) { - // Do this the easy way :-) - return !!fixed.exec.call(this, str); -}; - -/** - * Adds named capture support (with backreferences returned as `result.name`), and fixes browser - * bugs in the native `String.prototype.match`. Calling `XRegExp.install('natives')` uses this to - * override the native method. - * - * @memberOf String - * @param {RegExp|*} regex Regex to search with. If not a regex object, it is passed to `RegExp`. - * @returns {Array} If `regex` uses flag g, an array of match strings or `null`. Without flag g, - * the result of calling `regex.exec(this)`. - */ -fixed.match = function(regex) { - var result; - - if (!XRegExp.isRegExp(regex)) { - // Use the native `RegExp` rather than `XRegExp` - regex = new RegExp(regex); - } else if (regex.global) { - result = nativ.match.apply(this, arguments); - // Fixes IE bug - regex.lastIndex = 0; - - return result; - } - - return fixed.exec.call(regex, toObject(this)); -}; - -/** - * Adds support for `${n}` tokens for named and numbered backreferences in replacement text, and - * provides named backreferences to replacement functions as `arguments[0].name`. Also fixes browser - * bugs in replacement text syntax when performing a replacement using a nonregex search value, and - * the value of a replacement regex's `lastIndex` property during replacement iterations and upon - * completion. Calling `XRegExp.install('natives')` uses this to override the native method. Note - * that this doesn't support SpiderMonkey's proprietary third (`flags`) argument. Use via - * `XRegExp.replace` without overriding natives. - * - * @memberOf String - * @param {RegExp|String} search Search pattern to be replaced. - * @param {String|Function} replacement Replacement string or a function invoked to create it. - * @returns {String} New string with one or all matches replaced. - */ -fixed.replace = function(search, replacement) { - var isRegex = XRegExp.isRegExp(search); - var origLastIndex; - var captureNames; - var result; - - if (isRegex) { - if (search[REGEX_DATA]) { - captureNames = search[REGEX_DATA].captureNames; - } - // Only needed if `search` is nonglobal - origLastIndex = search.lastIndex; - } else { - search += ''; // Type-convert - } - - // Don't use `typeof`; some older browsers return 'function' for regex objects - if (isType(replacement, 'Function')) { - // Stringifying `this` fixes a bug in IE < 9 where the last argument in replacement - // functions isn't type-converted to a string - result = nativ.replace.call(String(this), search, function() { - var args = arguments; - var i; - if (captureNames) { - // Change the `arguments[0]` string primitive to a `String` object that can store - // properties. This really does need to use `String` as a constructor - args[0] = new String(args[0]); - // Store named backreferences on the first argument - for (i = 0; i < captureNames.length; ++i) { - if (captureNames[i]) { - args[0][captureNames[i]] = args[i + 1]; - } - } - } - // Update `lastIndex` before calling `replacement`. Fixes IE, Chrome, Firefox, Safari - // bug (last tested IE 9, Chrome 17, Firefox 11, Safari 5.1) - if (isRegex && search.global) { - search.lastIndex = args[args.length - 2] + args[0].length; - } - // ES6 specs the context for replacement functions as `undefined` - return replacement.apply(undefined, args); - }); - } else { - // Ensure that the last value of `args` will be a string when given nonstring `this`, - // while still throwing on null or undefined context - result = nativ.replace.call(this == null ? this : String(this), search, function() { - // Keep this function's `arguments` available through closure - var args = arguments; - return nativ.replace.call(String(replacement), replacementToken, function($0, $1, $2) { - var n; - // Named or numbered backreference with curly braces - if ($1) { - // XRegExp behavior for `${n}`: - // 1. Backreference to numbered capture, if `n` is an integer. Use `0` for the - // entire match. Any number of leading zeros may be used. - // 2. Backreference to named capture `n`, if it exists and is not an integer - // overridden by numbered capture. In practice, this does not overlap with - // numbered capture since XRegExp does not allow named capture to use a bare - // integer as the name. - // 3. If the name or number does not refer to an existing capturing group, it's - // an error. - n = +$1; // Type-convert; drop leading zeros - if (n <= args.length - 3) { - return args[n] || ''; - } - // Groups with the same name is an error, else would need `lastIndexOf` - n = captureNames ? indexOf(captureNames, $1) : -1; - if (n < 0) { - throw new SyntaxError('Backreference to undefined group ' + $0); - } - return args[n + 1] || ''; - } - // Else, special variable or numbered backreference without curly braces - if ($2 === '$') { // $$ - return '$'; - } - if ($2 === '&' || +$2 === 0) { // $&, $0 (not followed by 1-9), $00 - return args[0]; - } - if ($2 === '`') { // $` (left context) - return args[args.length - 1].slice(0, args[args.length - 2]); - } - if ($2 === "'") { // $' (right context) - return args[args.length - 1].slice(args[args.length - 2] + args[0].length); - } - // Else, numbered backreference without curly braces - $2 = +$2; // Type-convert; drop leading zero - // XRegExp behavior for `$n` and `$nn`: - // - Backrefs end after 1 or 2 digits. Use `${..}` for more digits. - // - `$1` is an error if no capturing groups. - // - `$10` is an error if less than 10 capturing groups. Use `${1}0` instead. - // - `$01` is `$1` if at least one capturing group, else it's an error. - // - `$0` (not followed by 1-9) and `$00` are the entire match. - // Native behavior, for comparison: - // - Backrefs end after 1 or 2 digits. Cannot reference capturing group 100+. - // - `$1` is a literal `$1` if no capturing groups. - // - `$10` is `$1` followed by a literal `0` if less than 10 capturing groups. - // - `$01` is `$1` if at least one capturing group, else it's a literal `$01`. - // - `$0` is a literal `$0`. - if (!isNaN($2)) { - if ($2 > args.length - 3) { - throw new SyntaxError('Backreference to undefined group ' + $0); - } - return args[$2] || ''; - } - // `$` followed by an unsupported char is an error, unlike native JS - throw new SyntaxError('Invalid token ' + $0); - }); - }); - } - - if (isRegex) { - if (search.global) { - // Fixes IE, Safari bug (last tested IE 9, Safari 5.1) - search.lastIndex = 0; - } else { - // Fixes IE, Opera bug (last tested IE 9, Opera 11.6) - search.lastIndex = origLastIndex; - } - } - - return result; -}; - -/** - * Fixes browser bugs in the native `String.prototype.split`. Calling `XRegExp.install('natives')` - * uses this to override the native method. Use via `XRegExp.split` without overriding natives. - * - * @memberOf String - * @param {RegExp|String} separator Regex or string to use for separating the string. - * @param {Number} [limit] Maximum number of items to include in the result array. - * @returns {Array} Array of substrings. - */ -fixed.split = function(separator, limit) { - if (!XRegExp.isRegExp(separator)) { - // Browsers handle nonregex split correctly, so use the faster native method - return nativ.split.apply(this, arguments); - } - - var str = String(this); - var output = []; - var origLastIndex = separator.lastIndex; - var lastLastIndex = 0; - var lastLength; - - // Values for `limit`, per the spec: - // If undefined: pow(2,32) - 1 - // If 0, Infinity, or NaN: 0 - // If positive number: limit = floor(limit); if (limit >= pow(2,32)) limit -= pow(2,32); - // If negative number: pow(2,32) - floor(abs(limit)) - // If other: Type-convert, then use the above rules - // This line fails in very strange ways for some values of `limit` in Opera 10.5-10.63, unless - // Opera Dragonfly is open (go figure). It works in at least Opera 9.5-10.1 and 11+ - limit = (limit === undefined ? -1 : limit) >>> 0; - - XRegExp.forEach(str, separator, function(match) { - // This condition is not the same as `if (match[0].length)` - if ((match.index + match[0].length) > lastLastIndex) { - output.push(str.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < str.length) { - Array.prototype.push.apply(output, match.slice(1)); - } - lastLength = match[0].length; - lastLastIndex = match.index + lastLength; - } - }); - - if (lastLastIndex === str.length) { - if (!nativ.test.call(separator, '') || lastLength) { - output.push(''); - } - } else { - output.push(str.slice(lastLastIndex)); - } - - separator.lastIndex = origLastIndex; - return output.length > limit ? output.slice(0, limit) : output; -}; - -// ==--------------------------== -// Built-in syntax/flag tokens -// ==--------------------------== - -/* - * Letter escapes that natively match literal characters: `\a`, `\A`, etc. These should be - * SyntaxErrors but are allowed in web reality. XRegExp makes them errors for cross-browser - * consistency and to reserve their syntax, but lets them be superseded by addons. - */ -XRegExp.addToken( - /\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/, - function(match, scope) { - // \B is allowed in default scope only - if (match[1] === 'B' && scope === defaultScope) { - return match[0]; - } - throw new SyntaxError('Invalid escape ' + match[0]); - }, - { - scope: 'all', - leadChar: '\\' - } -); - -/* - * Unicode code point escape with curly braces: `\u{N..}`. `N..` is any one or more digit - * hexadecimal number from 0-10FFFF, and can include leading zeros. Requires the native ES6 `u` flag - * to support code points greater than U+FFFF. Avoids converting code points above U+FFFF to - * surrogate pairs (which could be done without flag `u`), since that could lead to broken behavior - * if you follow a `\u{N..}` token that references a code point above U+FFFF with a quantifier, or - * if you use the same in a character class. - */ -XRegExp.addToken( - /\\u{([\dA-Fa-f]+)}/, - function(match, scope, flags) { - var code = dec(match[1]); - if (code > 0x10FFFF) { - throw new SyntaxError('Invalid Unicode code point ' + match[0]); - } - if (code <= 0xFFFF) { - // Converting to \uNNNN avoids needing to escape the literal character and keep it - // separate from preceding tokens - return '\\u' + pad4(hex(code)); - } - // If `code` is between 0xFFFF and 0x10FFFF, require and defer to native handling - if (hasNativeU && flags.indexOf('u') > -1) { - return match[0]; - } - throw new SyntaxError('Cannot use Unicode code point above \\u{FFFF} without flag u'); - }, - { - scope: 'all', - leadChar: '\\' - } -); - -/* - * Empty character class: `[]` or `[^]`. This fixes a critical cross-browser syntax inconsistency. - * Unless this is standardized (per the ES spec), regex syntax can't be accurately parsed because - * character class endings can't be determined. - */ -XRegExp.addToken( - /\[(\^?)\]/, - function(match) { - // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S]. - // (?!) should work like \b\B, but is unreliable in some versions of Firefox - return match[1] ? '[\\s\\S]' : '\\b\\B'; - }, - {leadChar: '['} -); - -/* - * Comment pattern: `(?# )`. Inline comments are an alternative to the line comments allowed in - * free-spacing mode (flag x). - */ -XRegExp.addToken( - /\(\?#[^)]*\)/, - getContextualTokenSeparator, - {leadChar: '('} -); - -/* - * Whitespace and line comments, in free-spacing mode (aka extended mode, flag x) only. - */ -XRegExp.addToken( - /\s+|#[^\n]*\n?/, - getContextualTokenSeparator, - {flag: 'x'} -); - -/* - * Dot, in dotall mode (aka singleline mode, flag s) only. - */ -XRegExp.addToken( - /\./, - function() { - return '[\\s\\S]'; - }, - { - flag: 's', - leadChar: '.' - } -); - -/* - * Named backreference: `\k<name>`. Backreference names can use the characters A-Z, a-z, 0-9, _, - * and $ only. Also allows numbered backreferences as `\k<n>`. - */ -XRegExp.addToken( - /\\k<([\w$]+)>/, - function(match) { - // Groups with the same name is an error, else would need `lastIndexOf` - var index = isNaN(match[1]) ? (indexOf(this.captureNames, match[1]) + 1) : +match[1]; - var endIndex = match.index + match[0].length; - if (!index || index > this.captureNames.length) { - throw new SyntaxError('Backreference to undefined group ' + match[0]); - } - // Keep backreferences separate from subsequent literal numbers. This avoids e.g. - // inadvertedly changing `(?<n>)\k<n>1` to `()\11`. - return '\\' + index + ( - endIndex === match.input.length || isNaN(match.input.charAt(endIndex)) ? - '' : '(?:)' - ); - }, - {leadChar: '\\'} -); - -/* - * Numbered backreference or octal, plus any following digits: `\0`, `\11`, etc. Octals except `\0` - * not followed by 0-9 and backreferences to unopened capture groups throw an error. Other matches - * are returned unaltered. IE < 9 doesn't support backreferences above `\99` in regex syntax. - */ -XRegExp.addToken( - /\\(\d+)/, - function(match, scope) { - if ( - !( - scope === defaultScope && - /^[1-9]/.test(match[1]) && - +match[1] <= this.captureNames.length - ) && - match[1] !== '0' - ) { - throw new SyntaxError('Cannot use octal escape or backreference to undefined group ' + - match[0]); - } - return match[0]; - }, - { - scope: 'all', - leadChar: '\\' - } -); - -/* - * Named capturing group; match the opening delimiter only: `(?<name>`. Capture names can use the - * characters A-Z, a-z, 0-9, _, and $ only. Names can't be integers. Supports Python-style - * `(?P<name>` as an alternate syntax to avoid issues in some older versions of Opera which natively - * supported the Python-style syntax. Otherwise, XRegExp might treat numbered backreferences to - * Python-style named capture as octals. - */ -XRegExp.addToken( - /\(\?P?<([\w$]+)>/, - function(match) { - // Disallow bare integers as names because named backreferences are added to match arrays - // and therefore numeric properties may lead to incorrect lookups - if (!isNaN(match[1])) { - throw new SyntaxError('Cannot use integer as capture name ' + match[0]); - } - if (match[1] === 'length' || match[1] === '__proto__') { - throw new SyntaxError('Cannot use reserved word as capture name ' + match[0]); - } - if (indexOf(this.captureNames, match[1]) > -1) { - throw new SyntaxError('Cannot use same name for multiple groups ' + match[0]); - } - this.captureNames.push(match[1]); - this.hasNamedCapture = true; - return '('; - }, - {leadChar: '('} -); - -/* - * Capturing group; match the opening parenthesis only. Required for support of named capturing - * groups. Also adds explicit capture mode (flag n). - */ -XRegExp.addToken( - /\((?!\?)/, - function(match, scope, flags) { - if (flags.indexOf('n') > -1) { - return '(?:'; - } - this.captureNames.push(null); - return '('; - }, - { - optionalFlags: 'n', - leadChar: '(' - } -); - -module.exports = XRegExp; - -},{}]},{},[8])(8) -}); diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js deleted file mode 100644 index 6d56b1b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js +++ /dev/null @@ -1,160 +0,0 @@ -/* - XRegExp.build 3.2.0 - <xregexp.com> - Steven Levithan (c) 2012-2017 MIT License - Inspired by Lea Verou's RegExp.create <lea.verou.me> - XRegExp.matchRecursive 3.2.0 - <xregexp.com> - Steven Levithan (c) 2009-2017 MIT License - XRegExp Unicode Base 3.2.0 - <xregexp.com> - Steven Levithan (c) 2008-2017 MIT License - XRegExp Unicode Blocks 3.2.0 - <xregexp.com> - Steven Levithan (c) 2010-2017 MIT License - Unicode data by Mathias Bynens <mathiasbynens.be> - XRegExp Unicode Categories 3.2.0 - <xregexp.com> - Steven Levithan (c) 2010-2017 MIT License - Unicode data by Mathias Bynens <mathiasbynens.be> - XRegExp Unicode Properties 3.2.0 - <xregexp.com> - Steven Levithan (c) 2012-2017 MIT License - Unicode data by Mathias Bynens <mathiasbynens.be> - XRegExp Unicode Scripts 3.2.0 - <xregexp.com> - Steven Levithan (c) 2010-2017 MIT License - Unicode data by Mathias Bynens <mathiasbynens.be> - XRegExp 3.2.0 - <xregexp.com> - Steven Levithan (c) 2007-2017 MIT License -*/ -(function(H){"object"===typeof exports&&"undefined"!==typeof module?module.exports=H():"function"===typeof define&&define.amd?define([],H):("undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:this).XRegExp=H()})(function(){return function c(d,g,p){function A(l,b){if(!g[l]){if(!d[l]){var k="function"==typeof require&&require;if(!b&&k)return k(l,!0);if(B)return B(l,!0);b=Error("Cannot find module '"+l+"'");throw b.code="MODULE_NOT_FOUND",b;}b=g[l]={exports:{}}; -d[l][0].call(b.exports,function(b){var c=d[l][1][b];return A(c?c:b)},b,b.exports,c,d,g,p)}return g[l].exports}for(var B="function"==typeof require&&require,z=0;z<p.length;z++)A(p[z]);return A}({1:[function(d,g,p){g.exports=function(c){function A(b){var c=/^(?:\(\?:\))*\^/,l=/\$(?:\(\?:\))*$/;return c.test(b)&&l.test(b)&&l.test(b.replace(/\\[\s\S]/g,""))?b.replace(c,"").replace(l,""):b}function B(b,l){l=l?"x":"";return c.isRegExp(b)?b.xregexp&&b.xregexp.captureNames?b:c(b.source,l):c(b,l)}var z=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g, -l=c.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/,z],"g",{conjunction:"or"});c.build=function(b,k,g){g=g||"";var y=-1<g.indexOf("x"),m=/^\(\?([\w$]+)\)/.exec(b);m&&(g=c._clipDuplicates(g+m[1]));var h={},w;for(w in k)k.hasOwnProperty(w)&&(m=B(k[w],y),h[w]={pattern:A(m.source),names:m.xregexp.captureNames||[]});b=B(b,y);var x=0,v,q=0,f=[0],d=b.xregexp.captureNames||[];b=b.source.replace(l,function(b,c,m,l,y){var n=c||m;if(n){if(!h.hasOwnProperty(n))throw new ReferenceError("Undefined property "+b);if(c){var k= -d[q];f[++q]=++x;b="(?<"+(k||n)+">"}else b="(?:";v=x;return b+h[n].pattern.replace(z,function(f,b,c){if(b){if(k=h[n].names[x-v],++x,k)return"(?<"+k+">"}else if(c)return g=+c-1,h[n].names[g]?"\\k<"+h[n].names[g]+">":"\\"+(+c+v);return f})+")"}if(l){if(k=d[q],f[++q]=++x,k)return"(?<"+k+">"}else if(y){var g=+y-1;return d[g]?"\\k<"+d[g]+">":"\\"+f[+y]}return b});return c(b,g)}}},{}],2:[function(d,g,p){g.exports=function(c){function g(c,g,l,b){return{name:c,value:g,start:l,end:b}}c.matchRecursive=function(d, -p,l,b,k){b=b||"";k=k||{};var A=-1<b.indexOf("g"),y=-1<b.indexOf("y"),m=b.replace(/y/g,""),h=k.escapeChar;k=k.valueNames;var w=[],x=0,v=0,q=0,f=0;p=c(p,m);l=c(l,m);if(h){if(1<h.length)throw Error("Cannot use more than one escape character");h=c.escape(h);var z=new RegExp("(?:"+h+"[\\S\\s]|(?:(?!"+c.union([p,l],"",{conjunction:"or"}).source+")[^"+h+"])+)+",b.replace(/[^imu]+/g,""))}for(;;){h&&(q+=(c.exec(d,z,q,"sticky")||[""])[0].length);b=c.exec(d,p,q);m=c.exec(d,l,q);b&&m&&(b.index<=m.index?m=null: -b=null);if(b||m)v=(b||m).index,q=v+(b||m)[0].length;else if(!x)break;if(y&&!x&&v>f)break;if(b){if(!x){var n=v;var r=q}++x}else if(m&&x){if(!--x&&(k?(k[0]&&n>f&&w.push(g(k[0],d.slice(f,n),f,n)),k[1]&&w.push(g(k[1],d.slice(n,r),n,r)),k[2]&&w.push(g(k[2],d.slice(r,v),r,v)),k[3]&&w.push(g(k[3],d.slice(v,q),v,q))):w.push(d.slice(r,v)),f=q,!A))break}else throw Error("Unbalanced delimiter found in string");v===q&&++q}A&&!y&&k&&k[0]&&d.length>f&&w.push(g(k[0],d.slice(f),f,d.length));return w}}},{}],3:[function(d, -g,p){g.exports=function(c){function g(b){return b.replace(/[- _]+/g,"").toLowerCase()}function d(c){var m=/^\\[xu](.+)/.exec(c);return m?b(m[1]):c.charCodeAt("\\"===c.charAt(0)?1:0)}function p(b){var m="",h=-1;c.forEach(b,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,function(b){var c=d(b[1]);c>h+1&&(m+="\\u"+C(k(h+1)),c>h+2&&(m+="-\\u"+C(k(c-1))));h=d(b[2]||b[1])});65535>h&&(m+="\\u"+C(k(h+1)),65534>h&&(m+="-\\uFFFF"));return m}var l={},b=c._dec,k=c._hex,C=c._pad4;c.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/, -function(b,c,h){var m="P"===b[1]||!!b[2],d=-1<h.indexOf("A");h=g(b[4]||b[3]);var k=l[h];if("P"===b[1]&&b[2])throw new SyntaxError("Invalid double negation "+b[0]);if(!l.hasOwnProperty(h))throw new SyntaxError("Unknown Unicode token "+b[0]);if(k.inverseOf){h=g(k.inverseOf);if(!l.hasOwnProperty(h))throw new ReferenceError("Unicode token missing data "+b[0]+" -> "+k.inverseOf);k=l[h];m=!m}if(!k.bmp&&!d)throw new SyntaxError("Astral mode required for Unicode token "+b[0]);if(d){if("class"===c)throw new SyntaxError("Astral mode does not support Unicode tokens within character classes"); -b=m?"a!":"a=";(c=l[h][b])||(c=l[h],h=l[h],d="",h.bmp&&!h.isBmpLast&&(d="["+h.bmp+"]"+(h.astral?"|":"")),h.astral&&(d+=h.astral),h.isBmpLast&&h.bmp&&(d+=(h.astral?"|":"")+"["+h.bmp+"]"),c=c[b]=m?"(?:(?!"+d+")(?:[\ud800-\udbff][\udc00-\udfff]|[\x00-\uffff]))":"(?:"+d+")");return c}return"class"===c?m?l[h]["b!"]||(l[h]["b!"]=p(l[h].bmp)):k.bmp:(m?"[^":"[")+k.bmp+"]"},{scope:"all",optionalFlags:"A",leadChar:"\\"});c.addUnicodeData=function(b){for(var d,h=0;h<b.length;++h){d=b[h];if(!d.name)throw Error("Unicode token requires name"); -if(!(d.inverseOf||d.bmp||d.astral))throw Error("Unicode token has no character data "+d.name);l[g(d.name)]=d;d.alias&&(l[g(d.alias)]=d)}c.cache.flush("patterns")};c._getUnicodeProperty=function(b){b=g(b);return l[b]}}},{}],4:[function(d,g,p){g.exports=function(c){if(!c.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Blocks");c.addUnicodeData([{name:"InAdlam",astral:"\ud83a[\udd00-\udd5f]"},{name:"InAegean_Numbers",astral:"\ud800[\udd00-\udd3f]"},{name:"InAhom", -astral:"\ud805[\udf00-\udf3f]"},{name:"InAlchemical_Symbols",astral:"\ud83d[\udf00-\udf7f]"},{name:"InAlphabetic_Presentation_Forms",bmp:"\ufb00-\ufb4f"},{name:"InAnatolian_Hieroglyphs",astral:"\ud811[\udc00-\ude7f]"},{name:"InAncient_Greek_Musical_Notation",astral:"\ud834[\ude00-\ude4f]"},{name:"InAncient_Greek_Numbers",astral:"\ud800[\udd40-\udd8f]"},{name:"InAncient_Symbols",astral:"\ud800[\udd90-\uddcf]"},{name:"InArabic",bmp:"\u0600-\u06ff"},{name:"InArabic_Extended_A",bmp:"\u08a0-\u08ff"},{name:"InArabic_Mathematical_Alphabetic_Symbols", -astral:"\ud83b[\ude00-\udeff]"},{name:"InArabic_Presentation_Forms_A",bmp:"\ufb50-\ufdff"},{name:"InArabic_Presentation_Forms_B",bmp:"\ufe70-\ufeff"},{name:"InArabic_Supplement",bmp:"\u0750-\u077f"},{name:"InArmenian",bmp:"\u0530-\u058f"},{name:"InArrows",bmp:"\u2190-\u21ff"},{name:"InAvestan",astral:"\ud802[\udf00-\udf3f]"},{name:"InBalinese",bmp:"\u1b00-\u1b7f"},{name:"InBamum",bmp:"\ua6a0-\ua6ff"},{name:"InBamum_Supplement",astral:"\ud81a[\udc00-\ude3f]"},{name:"InBasic_Latin",bmp:"\x00-\u007f"}, -{name:"InBassa_Vah",astral:"\ud81a[\uded0-\udeff]"},{name:"InBatak",bmp:"\u1bc0-\u1bff"},{name:"InBengali",bmp:"\u0980-\u09ff"},{name:"InBhaiksuki",astral:"\ud807[\udc00-\udc6f]"},{name:"InBlock_Elements",bmp:"\u2580-\u259f"},{name:"InBopomofo",bmp:"\u3100-\u312f"},{name:"InBopomofo_Extended",bmp:"\u31a0-\u31bf"},{name:"InBox_Drawing",bmp:"\u2500-\u257f"},{name:"InBrahmi",astral:"\ud804[\udc00-\udc7f]"},{name:"InBraille_Patterns",bmp:"\u2800-\u28ff"},{name:"InBuginese",bmp:"\u1a00-\u1a1f"},{name:"InBuhid", -bmp:"\u1740-\u175f"},{name:"InByzantine_Musical_Symbols",astral:"\ud834[\udc00-\udcff]"},{name:"InCJK_Compatibility",bmp:"\u3300-\u33ff"},{name:"InCJK_Compatibility_Forms",bmp:"\ufe30-\ufe4f"},{name:"InCJK_Compatibility_Ideographs",bmp:"\uf900-\ufaff"},{name:"InCJK_Compatibility_Ideographs_Supplement",astral:"\ud87e[\udc00-\ude1f]"},{name:"InCJK_Radicals_Supplement",bmp:"\u2e80-\u2eff"},{name:"InCJK_Strokes",bmp:"\u31c0-\u31ef"},{name:"InCJK_Symbols_and_Punctuation",bmp:"\u3000-\u303f"},{name:"InCJK_Unified_Ideographs", -bmp:"\u4e00-\u9fff"},{name:"InCJK_Unified_Ideographs_Extension_A",bmp:"\u3400-\u4dbf"},{name:"InCJK_Unified_Ideographs_Extension_B",astral:"[\ud840-\ud868][\udc00-\udfff]|\ud869[\udc00-\udedf]"},{name:"InCJK_Unified_Ideographs_Extension_C",astral:"\ud869[\udf00-\udfff]|[\ud86a-\ud86c][\udc00-\udfff]|\ud86d[\udc00-\udf3f]"},{name:"InCJK_Unified_Ideographs_Extension_D",astral:"\ud86d[\udf40-\udfff]|\ud86e[\udc00-\udc1f]"},{name:"InCJK_Unified_Ideographs_Extension_E",astral:"\ud86e[\udc20-\udfff]|[\ud86f-\ud872][\udc00-\udfff]|\ud873[\udc00-\udeaf]"}, -{name:"InCarian",astral:"\ud800[\udea0-\udedf]"},{name:"InCaucasian_Albanian",astral:"\ud801[\udd30-\udd6f]"},{name:"InChakma",astral:"\ud804[\udd00-\udd4f]"},{name:"InCham",bmp:"\uaa00-\uaa5f"},{name:"InCherokee",bmp:"\u13a0-\u13ff"},{name:"InCherokee_Supplement",bmp:"\uab70-\uabbf"},{name:"InCombining_Diacritical_Marks",bmp:"\u0300-\u036f"},{name:"InCombining_Diacritical_Marks_Extended",bmp:"\u1ab0-\u1aff"},{name:"InCombining_Diacritical_Marks_Supplement",bmp:"\u1dc0-\u1dff"},{name:"InCombining_Diacritical_Marks_for_Symbols", -bmp:"\u20d0-\u20ff"},{name:"InCombining_Half_Marks",bmp:"\ufe20-\ufe2f"},{name:"InCommon_Indic_Number_Forms",bmp:"\ua830-\ua83f"},{name:"InControl_Pictures",bmp:"\u2400-\u243f"},{name:"InCoptic",bmp:"\u2c80-\u2cff"},{name:"InCoptic_Epact_Numbers",astral:"\ud800[\udee0-\udeff]"},{name:"InCounting_Rod_Numerals",astral:"\ud834[\udf60-\udf7f]"},{name:"InCuneiform",astral:"\ud808[\udc00-\udfff]"},{name:"InCuneiform_Numbers_and_Punctuation",astral:"\ud809[\udc00-\udc7f]"},{name:"InCurrency_Symbols",bmp:"\u20a0-\u20cf"}, -{name:"InCypriot_Syllabary",astral:"\ud802[\udc00-\udc3f]"},{name:"InCyrillic",bmp:"\u0400-\u04ff"},{name:"InCyrillic_Extended_A",bmp:"\u2de0-\u2dff"},{name:"InCyrillic_Extended_B",bmp:"\ua640-\ua69f"},{name:"InCyrillic_Extended_C",bmp:"\u1c80-\u1c8f"},{name:"InCyrillic_Supplement",bmp:"\u0500-\u052f"},{name:"InDeseret",astral:"\ud801[\udc00-\udc4f]"},{name:"InDevanagari",bmp:"\u0900-\u097f"},{name:"InDevanagari_Extended",bmp:"\ua8e0-\ua8ff"},{name:"InDingbats",bmp:"\u2700-\u27bf"},{name:"InDomino_Tiles", -astral:"\ud83c[\udc30-\udc9f]"},{name:"InDuployan",astral:"\ud82f[\udc00-\udc9f]"},{name:"InEarly_Dynastic_Cuneiform",astral:"\ud809[\udc80-\udd4f]"},{name:"InEgyptian_Hieroglyphs",astral:"\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2f]"},{name:"InElbasan",astral:"\ud801[\udd00-\udd2f]"},{name:"InEmoticons",astral:"\ud83d[\ude00-\ude4f]"},{name:"InEnclosed_Alphanumeric_Supplement",astral:"\ud83c[\udd00-\uddff]"},{name:"InEnclosed_Alphanumerics",bmp:"\u2460-\u24ff"},{name:"InEnclosed_CJK_Letters_and_Months", -bmp:"\u3200-\u32ff"},{name:"InEnclosed_Ideographic_Supplement",astral:"\ud83c[\ude00-\udeff]"},{name:"InEthiopic",bmp:"\u1200-\u137f"},{name:"InEthiopic_Extended",bmp:"\u2d80-\u2ddf"},{name:"InEthiopic_Extended_A",bmp:"\uab00-\uab2f"},{name:"InEthiopic_Supplement",bmp:"\u1380-\u139f"},{name:"InGeneral_Punctuation",bmp:"\u2000-\u206f"},{name:"InGeometric_Shapes",bmp:"\u25a0-\u25ff"},{name:"InGeometric_Shapes_Extended",astral:"\ud83d[\udf80-\udfff]"},{name:"InGeorgian",bmp:"\u10a0-\u10ff"},{name:"InGeorgian_Supplement", -bmp:"\u2d00-\u2d2f"},{name:"InGlagolitic",bmp:"\u2c00-\u2c5f"},{name:"InGlagolitic_Supplement",astral:"\ud838[\udc00-\udc2f]"},{name:"InGothic",astral:"\ud800[\udf30-\udf4f]"},{name:"InGrantha",astral:"\ud804[\udf00-\udf7f]"},{name:"InGreek_Extended",bmp:"\u1f00-\u1fff"},{name:"InGreek_and_Coptic",bmp:"\u0370-\u03ff"},{name:"InGujarati",bmp:"\u0a80-\u0aff"},{name:"InGurmukhi",bmp:"\u0a00-\u0a7f"},{name:"InHalfwidth_and_Fullwidth_Forms",bmp:"\uff00-\uffef"},{name:"InHangul_Compatibility_Jamo",bmp:"\u3130-\u318f"}, -{name:"InHangul_Jamo",bmp:"\u1100-\u11ff"},{name:"InHangul_Jamo_Extended_A",bmp:"\ua960-\ua97f"},{name:"InHangul_Jamo_Extended_B",bmp:"\ud7b0-\ud7ff"},{name:"InHangul_Syllables",bmp:"\uac00-\ud7af"},{name:"InHanunoo",bmp:"\u1720-\u173f"},{name:"InHatran",astral:"\ud802[\udce0-\udcff]"},{name:"InHebrew",bmp:"\u0590-\u05ff"},{name:"InHigh_Private_Use_Surrogates",bmp:"\udb80-\udbff"},{name:"InHigh_Surrogates",bmp:"\ud800-\udb7f"},{name:"InHiragana",bmp:"\u3040-\u309f"},{name:"InIPA_Extensions",bmp:"\u0250-\u02af"}, -{name:"InIdeographic_Description_Characters",bmp:"\u2ff0-\u2fff"},{name:"InIdeographic_Symbols_and_Punctuation",astral:"\ud81b[\udfe0-\udfff]"},{name:"InImperial_Aramaic",astral:"\ud802[\udc40-\udc5f]"},{name:"InInscriptional_Pahlavi",astral:"\ud802[\udf60-\udf7f]"},{name:"InInscriptional_Parthian",astral:"\ud802[\udf40-\udf5f]"},{name:"InJavanese",bmp:"\ua980-\ua9df"},{name:"InKaithi",astral:"\ud804[\udc80-\udccf]"},{name:"InKana_Supplement",astral:"\ud82c[\udc00-\udcff]"},{name:"InKanbun",bmp:"\u3190-\u319f"}, -{name:"InKangxi_Radicals",bmp:"\u2f00-\u2fdf"},{name:"InKannada",bmp:"\u0c80-\u0cff"},{name:"InKatakana",bmp:"\u30a0-\u30ff"},{name:"InKatakana_Phonetic_Extensions",bmp:"\u31f0-\u31ff"},{name:"InKayah_Li",bmp:"\ua900-\ua92f"},{name:"InKharoshthi",astral:"\ud802[\ude00-\ude5f]"},{name:"InKhmer",bmp:"\u1780-\u17ff"},{name:"InKhmer_Symbols",bmp:"\u19e0-\u19ff"},{name:"InKhojki",astral:"\ud804[\ude00-\ude4f]"},{name:"InKhudawadi",astral:"\ud804[\udeb0-\udeff]"},{name:"InLao",bmp:"\u0e80-\u0eff"},{name:"InLatin_Extended_Additional", -bmp:"\u1e00-\u1eff"},{name:"InLatin_Extended_A",bmp:"\u0100-\u017f"},{name:"InLatin_Extended_B",bmp:"\u0180-\u024f"},{name:"InLatin_Extended_C",bmp:"\u2c60-\u2c7f"},{name:"InLatin_Extended_D",bmp:"\ua720-\ua7ff"},{name:"InLatin_Extended_E",bmp:"\uab30-\uab6f"},{name:"InLatin_1_Supplement",bmp:"\u0080-\u00ff"},{name:"InLepcha",bmp:"\u1c00-\u1c4f"},{name:"InLetterlike_Symbols",bmp:"\u2100-\u214f"},{name:"InLimbu",bmp:"\u1900-\u194f"},{name:"InLinear_A",astral:"\ud801[\ude00-\udf7f]"},{name:"InLinear_B_Ideograms", -astral:"\ud800[\udc80-\udcff]"},{name:"InLinear_B_Syllabary",astral:"\ud800[\udc00-\udc7f]"},{name:"InLisu",bmp:"\ua4d0-\ua4ff"},{name:"InLow_Surrogates",bmp:"\udc00-\udfff"},{name:"InLycian",astral:"\ud800[\ude80-\ude9f]"},{name:"InLydian",astral:"\ud802[\udd20-\udd3f]"},{name:"InMahajani",astral:"\ud804[\udd50-\udd7f]"},{name:"InMahjong_Tiles",astral:"\ud83c[\udc00-\udc2f]"},{name:"InMalayalam",bmp:"\u0d00-\u0d7f"},{name:"InMandaic",bmp:"\u0840-\u085f"},{name:"InManichaean",astral:"\ud802[\udec0-\udeff]"}, -{name:"InMarchen",astral:"\ud807[\udc70-\udcbf]"},{name:"InMathematical_Alphanumeric_Symbols",astral:"\ud835[\udc00-\udfff]"},{name:"InMathematical_Operators",bmp:"\u2200-\u22ff"},{name:"InMeetei_Mayek",bmp:"\uabc0-\uabff"},{name:"InMeetei_Mayek_Extensions",bmp:"\uaae0-\uaaff"},{name:"InMende_Kikakui",astral:"\ud83a[\udc00-\udcdf]"},{name:"InMeroitic_Cursive",astral:"\ud802[\udda0-\uddff]"},{name:"InMeroitic_Hieroglyphs",astral:"\ud802[\udd80-\udd9f]"},{name:"InMiao",astral:"\ud81b[\udf00-\udf9f]"}, -{name:"InMiscellaneous_Mathematical_Symbols_A",bmp:"\u27c0-\u27ef"},{name:"InMiscellaneous_Mathematical_Symbols_B",bmp:"\u2980-\u29ff"},{name:"InMiscellaneous_Symbols",bmp:"\u2600-\u26ff"},{name:"InMiscellaneous_Symbols_and_Arrows",bmp:"\u2b00-\u2bff"},{name:"InMiscellaneous_Symbols_and_Pictographs",astral:"\ud83c[\udf00-\udfff]|\ud83d[\udc00-\uddff]"},{name:"InMiscellaneous_Technical",bmp:"\u2300-\u23ff"},{name:"InModi",astral:"\ud805[\ude00-\ude5f]"},{name:"InModifier_Tone_Letters",bmp:"\ua700-\ua71f"}, -{name:"InMongolian",bmp:"\u1800-\u18af"},{name:"InMongolian_Supplement",astral:"\ud805[\ude60-\ude7f]"},{name:"InMro",astral:"\ud81a[\ude40-\ude6f]"},{name:"InMultani",astral:"\ud804[\ude80-\udeaf]"},{name:"InMusical_Symbols",astral:"\ud834[\udd00-\uddff]"},{name:"InMyanmar",bmp:"\u1000-\u109f"},{name:"InMyanmar_Extended_A",bmp:"\uaa60-\uaa7f"},{name:"InMyanmar_Extended_B",bmp:"\ua9e0-\ua9ff"},{name:"InNKo",bmp:"\u07c0-\u07ff"},{name:"InNabataean",astral:"\ud802[\udc80-\udcaf]"},{name:"InNew_Tai_Lue", -bmp:"\u1980-\u19df"},{name:"InNewa",astral:"\ud805[\udc00-\udc7f]"},{name:"InNumber_Forms",bmp:"\u2150-\u218f"},{name:"InOgham",bmp:"\u1680-\u169f"},{name:"InOl_Chiki",bmp:"\u1c50-\u1c7f"},{name:"InOld_Hungarian",astral:"\ud803[\udc80-\udcff]"},{name:"InOld_Italic",astral:"\ud800[\udf00-\udf2f]"},{name:"InOld_North_Arabian",astral:"\ud802[\ude80-\ude9f]"},{name:"InOld_Permic",astral:"\ud800[\udf50-\udf7f]"},{name:"InOld_Persian",astral:"\ud800[\udfa0-\udfdf]"},{name:"InOld_South_Arabian",astral:"\ud802[\ude60-\ude7f]"}, -{name:"InOld_Turkic",astral:"\ud803[\udc00-\udc4f]"},{name:"InOptical_Character_Recognition",bmp:"\u2440-\u245f"},{name:"InOriya",bmp:"\u0b00-\u0b7f"},{name:"InOrnamental_Dingbats",astral:"\ud83d[\ude50-\ude7f]"},{name:"InOsage",astral:"\ud801[\udcb0-\udcff]"},{name:"InOsmanya",astral:"\ud801[\udc80-\udcaf]"},{name:"InPahawh_Hmong",astral:"\ud81a[\udf00-\udf8f]"},{name:"InPalmyrene",astral:"\ud802[\udc60-\udc7f]"},{name:"InPau_Cin_Hau",astral:"\ud806[\udec0-\udeff]"},{name:"InPhags_pa",bmp:"\ua840-\ua87f"}, -{name:"InPhaistos_Disc",astral:"\ud800[\uddd0-\uddff]"},{name:"InPhoenician",astral:"\ud802[\udd00-\udd1f]"},{name:"InPhonetic_Extensions",bmp:"\u1d00-\u1d7f"},{name:"InPhonetic_Extensions_Supplement",bmp:"\u1d80-\u1dbf"},{name:"InPlaying_Cards",astral:"\ud83c[\udca0-\udcff]"},{name:"InPrivate_Use_Area",bmp:"\ue000-\uf8ff"},{name:"InPsalter_Pahlavi",astral:"\ud802[\udf80-\udfaf]"},{name:"InRejang",bmp:"\ua930-\ua95f"},{name:"InRumi_Numeral_Symbols",astral:"\ud803[\ude60-\ude7f]"},{name:"InRunic", -bmp:"\u16a0-\u16ff"},{name:"InSamaritan",bmp:"\u0800-\u083f"},{name:"InSaurashtra",bmp:"\ua880-\ua8df"},{name:"InSharada",astral:"\ud804[\udd80-\udddf]"},{name:"InShavian",astral:"\ud801[\udc50-\udc7f]"},{name:"InShorthand_Format_Controls",astral:"\ud82f[\udca0-\udcaf]"},{name:"InSiddham",astral:"\ud805[\udd80-\uddff]"},{name:"InSinhala",bmp:"\u0d80-\u0dff"},{name:"InSinhala_Archaic_Numbers",astral:"\ud804[\udde0-\uddff]"},{name:"InSmall_Form_Variants",bmp:"\ufe50-\ufe6f"},{name:"InSora_Sompeng", -astral:"\ud804[\udcd0-\udcff]"},{name:"InSpacing_Modifier_Letters",bmp:"\u02b0-\u02ff"},{name:"InSpecials",bmp:"\ufff0-\uffff"},{name:"InSundanese",bmp:"\u1b80-\u1bbf"},{name:"InSundanese_Supplement",bmp:"\u1cc0-\u1ccf"},{name:"InSuperscripts_and_Subscripts",bmp:"\u2070-\u209f"},{name:"InSupplemental_Arrows_A",bmp:"\u27f0-\u27ff"},{name:"InSupplemental_Arrows_B",bmp:"\u2900-\u297f"},{name:"InSupplemental_Arrows_C",astral:"\ud83e[\udc00-\udcff]"},{name:"InSupplemental_Mathematical_Operators",bmp:"\u2a00-\u2aff"}, -{name:"InSupplemental_Punctuation",bmp:"\u2e00-\u2e7f"},{name:"InSupplemental_Symbols_and_Pictographs",astral:"\ud83e[\udd00-\uddff]"},{name:"InSupplementary_Private_Use_Area_A",astral:"[\udb80-\udbbf][\udc00-\udfff]"},{name:"InSupplementary_Private_Use_Area_B",astral:"[\udbc0-\udbff][\udc00-\udfff]"},{name:"InSutton_SignWriting",astral:"\ud836[\udc00-\udeaf]"},{name:"InSyloti_Nagri",bmp:"\ua800-\ua82f"},{name:"InSyriac",bmp:"\u0700-\u074f"},{name:"InTagalog",bmp:"\u1700-\u171f"},{name:"InTagbanwa", -bmp:"\u1760-\u177f"},{name:"InTags",astral:"\udb40[\udc00-\udc7f]"},{name:"InTai_Le",bmp:"\u1950-\u197f"},{name:"InTai_Tham",bmp:"\u1a20-\u1aaf"},{name:"InTai_Viet",bmp:"\uaa80-\uaadf"},{name:"InTai_Xuan_Jing_Symbols",astral:"\ud834[\udf00-\udf5f]"},{name:"InTakri",astral:"\ud805[\ude80-\udecf]"},{name:"InTamil",bmp:"\u0b80-\u0bff"},{name:"InTangut",astral:"[\ud81c-\ud821][\udc00-\udfff]"},{name:"InTangut_Components",astral:"\ud822[\udc00-\udeff]"},{name:"InTelugu",bmp:"\u0c00-\u0c7f"},{name:"InThaana", -bmp:"\u0780-\u07bf"},{name:"InThai",bmp:"\u0e00-\u0e7f"},{name:"InTibetan",bmp:"\u0f00-\u0fff"},{name:"InTifinagh",bmp:"\u2d30-\u2d7f"},{name:"InTirhuta",astral:"\ud805[\udc80-\udcdf]"},{name:"InTransport_and_Map_Symbols",astral:"\ud83d[\ude80-\udeff]"},{name:"InUgaritic",astral:"\ud800[\udf80-\udf9f]"},{name:"InUnified_Canadian_Aboriginal_Syllabics",bmp:"\u1400-\u167f"},{name:"InUnified_Canadian_Aboriginal_Syllabics_Extended",bmp:"\u18b0-\u18ff"},{name:"InVai",bmp:"\ua500-\ua63f"},{name:"InVariation_Selectors", -bmp:"\ufe00-\ufe0f"},{name:"InVariation_Selectors_Supplement",astral:"\udb40[\udd00-\uddef]"},{name:"InVedic_Extensions",bmp:"\u1cd0-\u1cff"},{name:"InVertical_Forms",bmp:"\ufe10-\ufe1f"},{name:"InWarang_Citi",astral:"\ud806[\udca0-\udcff]"},{name:"InYi_Radicals",bmp:"\ua490-\ua4cf"},{name:"InYi_Syllables",bmp:"\ua000-\ua48f"},{name:"InYijing_Hexagram_Symbols",bmp:"\u4dc0-\u4dff"}])}},{}],5:[function(d,g,p){g.exports=function(c){if(!c.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Categories"); -c.addUnicodeData([{name:"C",alias:"Other",isBmpLast:!0,bmp:"\x00-\u001f\u007f-\u009f\u00ad\u0378\u0379\u0380-\u0383\u038b\u038d\u03a2\u0530\u0557\u0558\u0560\u0588\u058b\u058c\u0590\u05c8-\u05cf\u05eb-\u05ef\u05f5-\u0605\u061c\u061d\u06dd\u070e\u070f\u074b\u074c\u07b2-\u07bf\u07fb-\u07ff\u082e\u082f\u083f\u085c\u085d\u085f-\u089f\u08b5\u08be-\u08d3\u08e2\u0984\u098d\u098e\u0991\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba\u09bb\u09c5\u09c6\u09c9\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de\u09e4\u09e5\u09fc-\u0a00\u0a04\u0a0b-\u0a0e\u0a11\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a\u0a3b\u0a3d\u0a43-\u0a46\u0a49\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d\u0a5f-\u0a65\u0a76-\u0a80\u0a84\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba\u0abb\u0ac6\u0aca\u0ace\u0acf\u0ad1-\u0adf\u0ae4\u0ae5\u0af2-\u0af8\u0afa-\u0b00\u0b04\u0b0d\u0b0e\u0b11\u0b12\u0b29\u0b31\u0b34\u0b3a\u0b3b\u0b45\u0b46\u0b49\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b64\u0b65\u0b78-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c04\u0c0d\u0c11\u0c29\u0c3a-\u0c3c\u0c45\u0c49\u0c4e-\u0c54\u0c57\u0c5b-\u0c5f\u0c64\u0c65\u0c70-\u0c77\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba\u0cbb\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce4\u0ce5\u0cf0\u0cf3-\u0d00\u0d04\u0d0d\u0d11\u0d3b\u0d3c\u0d45\u0d49\u0d50-\u0d53\u0d64\u0d65\u0d80\u0d81\u0d84\u0d97-\u0d99\u0db2\u0dbc\u0dbe\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5\u0dd7\u0de0-\u0de5\u0df0\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83\u0e85\u0e86\u0e89\u0e8b\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8\u0ea9\u0eac\u0eba\u0ebe\u0ebf\u0ec5\u0ec7\u0ece\u0ecf\u0eda\u0edb\u0ee0-\u0eff\u0f48\u0f6d-\u0f70\u0f98\u0fbd\u0fcd\u0fdb-\u0fff\u10c6\u10c8-\u10cc\u10ce\u10cf\u1249\u124e\u124f\u1257\u1259\u125e\u125f\u1289\u128e\u128f\u12b1\u12b6\u12b7\u12bf\u12c1\u12c6\u12c7\u12d7\u1311\u1316\u1317\u135b\u135c\u137d-\u137f\u139a-\u139f\u13f6\u13f7\u13fe\u13ff\u169d-\u169f\u16f9-\u16ff\u170d\u1715-\u171f\u1737-\u173f\u1754-\u175f\u176d\u1771\u1774-\u177f\u17de\u17df\u17ea-\u17ef\u17fa-\u17ff\u180e\u180f\u181a-\u181f\u1878-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c\u1a1d\u1a5f\u1a7d\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae\u1aaf\u1abf-\u1aff\u1b4c-\u1b4f\u1b7d-\u1b7f\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c89-\u1cbf\u1cc8-\u1ccf\u1cf7\u1cfa-\u1cff\u1df6-\u1dfa\u1f16\u1f17\u1f1e\u1f1f\u1f46\u1f47\u1f4e\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e\u1f7f\u1fb5\u1fc5\u1fd4\u1fd5\u1fdc\u1ff0\u1ff1\u1ff5\u1fff\u200b-\u200f\u202a-\u202e\u2060-\u206f\u2072\u2073\u208f\u209d-\u209f\u20bf-\u20cf\u20f1-\u20ff\u218c-\u218f\u23ff\u2427-\u243f\u244b-\u245f\u2b74\u2b75\u2b96\u2b97\u2bba-\u2bbc\u2bc9\u2bd2-\u2beb\u2bf0-\u2bff\u2c2f\u2c5f\u2cf4-\u2cf8\u2d26\u2d28-\u2d2c\u2d2e\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7\u2daf\u2db7\u2dbf\u2dc7\u2dcf\u2dd7\u2ddf\u2e45-\u2e7f\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u2ffc-\u2fff\u3040\u3097\u3098\u3100-\u3104\u312e-\u3130\u318f\u31bb-\u31bf\u31e4-\u31ef\u321f\u32ff\u4db6-\u4dbf\u9fd6-\u9fff\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7af\ua7b8-\ua7f6\ua82c-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua8fe\ua8ff\ua954-\ua95e\ua97d-\ua97f\ua9ce\ua9da-\ua9dd\ua9ff\uaa37-\uaa3f\uaa4e\uaa4f\uaa5a\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07\uab08\uab0f\uab10\uab17-\uab1f\uab27\uab2f\uab66-\uab6f\uabee\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\uf8ff\ufa6e\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37\ufb3d\ufb3f\ufb42\ufb45\ufbc2-\ufbd2\ufd40-\ufd4f\ufd90\ufd91\ufdc8-\ufdef\ufdfe\ufdff\ufe1a-\ufe1f\ufe53\ufe67\ufe6c-\ufe6f\ufe75\ufefd-\uff00\uffbf-\uffc1\uffc8\uffc9\uffd0\uffd1\uffd8\uffd9\uffdd-\uffdf\uffe7\uffef-\ufffb\ufffe\uffff", -astral:"\ud800[\udc0c\udc27\udc3b\udc3e\udc4e\udc4f\udc5e-\udc7f\udcfb-\udcff\udd03-\udd06\udd34-\udd36\udd8f\udd9c-\udd9f\udda1-\uddcf\uddfe-\ude7f\ude9d-\ude9f\uded1-\udedf\udefc-\udeff\udf24-\udf2f\udf4b-\udf4f\udf7b-\udf7f\udf9e\udfc4-\udfc7\udfd6-\udfff]|\ud801[\udc9e\udc9f\udcaa-\udcaf\udcd4-\udcd7\udcfc-\udcff\udd28-\udd2f\udd64-\udd6e\udd70-\uddff\udf37-\udf3f\udf56-\udf5f\udf68-\udfff]|\ud802[\udc06\udc07\udc09\udc36\udc39-\udc3b\udc3d\udc3e\udc56\udc9f-\udca6\udcb0-\udcdf\udcf3\udcf6-\udcfa\udd1c-\udd1e\udd3a-\udd3e\udd40-\udd7f\uddb8-\uddbb\uddd0\uddd1\ude04\ude07-\ude0b\ude14\ude18\ude34-\ude37\ude3b-\ude3e\ude48-\ude4f\ude59-\ude5f\udea0-\udebf\udee7-\udeea\udef7-\udeff\udf36-\udf38\udf56\udf57\udf73-\udf77\udf92-\udf98\udf9d-\udfa8\udfb0-\udfff]|\ud803[\udc49-\udc7f\udcb3-\udcbf\udcf3-\udcf9\udd00-\ude5f\ude7f-\udfff]|\ud804[\udc4e-\udc51\udc70-\udc7e\udcbd\udcc2-\udccf\udce9-\udcef\udcfa-\udcff\udd35\udd44-\udd4f\udd77-\udd7f\uddce\uddcf\udde0\uddf5-\uddff\ude12\ude3f-\ude7f\ude87\ude89\ude8e\ude9e\udeaa-\udeaf\udeeb-\udeef\udefa-\udeff\udf04\udf0d\udf0e\udf11\udf12\udf29\udf31\udf34\udf3a\udf3b\udf45\udf46\udf49\udf4a\udf4e\udf4f\udf51-\udf56\udf58-\udf5c\udf64\udf65\udf6d-\udf6f\udf75-\udfff]|\ud805[\udc5a\udc5c\udc5e-\udc7f\udcc8-\udccf\udcda-\udd7f\uddb6\uddb7\uddde-\uddff\ude45-\ude4f\ude5a-\ude5f\ude6d-\ude7f\udeb8-\udebf\udeca-\udeff\udf1a-\udf1c\udf2c-\udf2f\udf40-\udfff]|\ud806[\udc00-\udc9f\udcf3-\udcfe\udd00-\udebf\udef9-\udfff]|\ud807[\udc09\udc37\udc46-\udc4f\udc6d-\udc6f\udc90\udc91\udca8\udcb7-\udfff]|\ud808[\udf9a-\udfff]|\ud809[\udc6f\udc75-\udc7f\udd44-\udfff]|[\ud80a\ud80b\ud80e-\ud810\ud812-\ud819\ud823-\ud82b\ud82d\ud82e\ud830-\ud833\ud837\ud839\ud83f\ud874-\ud87d\ud87f-\udb3f\udb41-\udbff][\udc00-\udfff]|\ud80d[\udc2f-\udfff]|\ud811[\ude47-\udfff]|\ud81a[\ude39-\ude3f\ude5f\ude6a-\ude6d\ude70-\udecf\udeee\udeef\udef6-\udeff\udf46-\udf4f\udf5a\udf62\udf78-\udf7c\udf90-\udfff]|\ud81b[\udc00-\udeff\udf45-\udf4f\udf7f-\udf8e\udfa0-\udfdf\udfe1-\udfff]|\ud821[\udfed-\udfff]|\ud822[\udef3-\udfff]|\ud82c[\udc02-\udfff]|\ud82f[\udc6b-\udc6f\udc7d-\udc7f\udc89-\udc8f\udc9a\udc9b\udca0-\udfff]|\ud834[\udcf6-\udcff\udd27\udd28\udd73-\udd7a\udde9-\uddff\ude46-\udeff\udf57-\udf5f\udf72-\udfff]|\ud835[\udc55\udc9d\udca0\udca1\udca3\udca4\udca7\udca8\udcad\udcba\udcbc\udcc4\udd06\udd0b\udd0c\udd15\udd1d\udd3a\udd3f\udd45\udd47-\udd49\udd51\udea6\udea7\udfcc\udfcd]|\ud836[\ude8c-\ude9a\udea0\udeb0-\udfff]|\ud838[\udc07\udc19\udc1a\udc22\udc25\udc2b-\udfff]|\ud83a[\udcc5\udcc6\udcd7-\udcff\udd4b-\udd4f\udd5a-\udd5d\udd60-\udfff]|\ud83b[\udc00-\uddff\ude04\ude20\ude23\ude25\ude26\ude28\ude33\ude38\ude3a\ude3c-\ude41\ude43-\ude46\ude48\ude4a\ude4c\ude50\ude53\ude55\ude56\ude58\ude5a\ude5c\ude5e\ude60\ude63\ude65\ude66\ude6b\ude73\ude78\ude7d\ude7f\ude8a\ude9c-\udea0\udea4\udeaa\udebc-\udeef\udef2-\udfff]|\ud83c[\udc2c-\udc2f\udc94-\udc9f\udcaf\udcb0\udcc0\udcd0\udcf6-\udcff\udd0d-\udd0f\udd2f\udd6c-\udd6f\uddad-\udde5\ude03-\ude0f\ude3c-\ude3f\ude49-\ude4f\ude52-\udeff]|\ud83d[\uded3-\udedf\udeed-\udeef\udef7-\udeff\udf74-\udf7f\udfd5-\udfff]|\ud83e[\udc0c-\udc0f\udc48-\udc4f\udc5a-\udc5f\udc88-\udc8f\udcae-\udd0f\udd1f\udd28-\udd2f\udd31\udd32\udd3f\udd4c-\udd4f\udd5f-\udd7f\udd92-\uddbf\uddc1-\udfff]|\ud869[\uded7-\udeff]|\ud86d[\udf35-\udf3f]|\ud86e[\udc1e\udc1f]|\ud873[\udea2-\udfff]|\ud87e[\ude1e-\udfff]|\udb40[\udc00-\udcff\uddf0-\udfff]"}, -{name:"Cc",alias:"Control",bmp:"\x00-\u001f\u007f-\u009f"},{name:"Cf",alias:"Format",bmp:"\u00ad\u0600-\u0605\u061c\u06dd\u070f\u08e2\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff\ufff9-\ufffb",astral:"\ud804\udcbd|\ud82f[\udca0-\udca3]|\ud834[\udd73-\udd7a]|\udb40[\udc01\udc20-\udc7f]"},{name:"Cn",alias:"Unassigned",bmp:"\u0378\u0379\u0380-\u0383\u038b\u038d\u03a2\u0530\u0557\u0558\u0560\u0588\u058b\u058c\u0590\u05c8-\u05cf\u05eb-\u05ef\u05f5-\u05ff\u061d\u070e\u074b\u074c\u07b2-\u07bf\u07fb-\u07ff\u082e\u082f\u083f\u085c\u085d\u085f-\u089f\u08b5\u08be-\u08d3\u0984\u098d\u098e\u0991\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba\u09bb\u09c5\u09c6\u09c9\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de\u09e4\u09e5\u09fc-\u0a00\u0a04\u0a0b-\u0a0e\u0a11\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a\u0a3b\u0a3d\u0a43-\u0a46\u0a49\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d\u0a5f-\u0a65\u0a76-\u0a80\u0a84\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba\u0abb\u0ac6\u0aca\u0ace\u0acf\u0ad1-\u0adf\u0ae4\u0ae5\u0af2-\u0af8\u0afa-\u0b00\u0b04\u0b0d\u0b0e\u0b11\u0b12\u0b29\u0b31\u0b34\u0b3a\u0b3b\u0b45\u0b46\u0b49\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b64\u0b65\u0b78-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c04\u0c0d\u0c11\u0c29\u0c3a-\u0c3c\u0c45\u0c49\u0c4e-\u0c54\u0c57\u0c5b-\u0c5f\u0c64\u0c65\u0c70-\u0c77\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba\u0cbb\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce4\u0ce5\u0cf0\u0cf3-\u0d00\u0d04\u0d0d\u0d11\u0d3b\u0d3c\u0d45\u0d49\u0d50-\u0d53\u0d64\u0d65\u0d80\u0d81\u0d84\u0d97-\u0d99\u0db2\u0dbc\u0dbe\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5\u0dd7\u0de0-\u0de5\u0df0\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83\u0e85\u0e86\u0e89\u0e8b\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8\u0ea9\u0eac\u0eba\u0ebe\u0ebf\u0ec5\u0ec7\u0ece\u0ecf\u0eda\u0edb\u0ee0-\u0eff\u0f48\u0f6d-\u0f70\u0f98\u0fbd\u0fcd\u0fdb-\u0fff\u10c6\u10c8-\u10cc\u10ce\u10cf\u1249\u124e\u124f\u1257\u1259\u125e\u125f\u1289\u128e\u128f\u12b1\u12b6\u12b7\u12bf\u12c1\u12c6\u12c7\u12d7\u1311\u1316\u1317\u135b\u135c\u137d-\u137f\u139a-\u139f\u13f6\u13f7\u13fe\u13ff\u169d-\u169f\u16f9-\u16ff\u170d\u1715-\u171f\u1737-\u173f\u1754-\u175f\u176d\u1771\u1774-\u177f\u17de\u17df\u17ea-\u17ef\u17fa-\u17ff\u180f\u181a-\u181f\u1878-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c\u1a1d\u1a5f\u1a7d\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae\u1aaf\u1abf-\u1aff\u1b4c-\u1b4f\u1b7d-\u1b7f\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c89-\u1cbf\u1cc8-\u1ccf\u1cf7\u1cfa-\u1cff\u1df6-\u1dfa\u1f16\u1f17\u1f1e\u1f1f\u1f46\u1f47\u1f4e\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e\u1f7f\u1fb5\u1fc5\u1fd4\u1fd5\u1fdc\u1ff0\u1ff1\u1ff5\u1fff\u2065\u2072\u2073\u208f\u209d-\u209f\u20bf-\u20cf\u20f1-\u20ff\u218c-\u218f\u23ff\u2427-\u243f\u244b-\u245f\u2b74\u2b75\u2b96\u2b97\u2bba-\u2bbc\u2bc9\u2bd2-\u2beb\u2bf0-\u2bff\u2c2f\u2c5f\u2cf4-\u2cf8\u2d26\u2d28-\u2d2c\u2d2e\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7\u2daf\u2db7\u2dbf\u2dc7\u2dcf\u2dd7\u2ddf\u2e45-\u2e7f\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u2ffc-\u2fff\u3040\u3097\u3098\u3100-\u3104\u312e-\u3130\u318f\u31bb-\u31bf\u31e4-\u31ef\u321f\u32ff\u4db6-\u4dbf\u9fd6-\u9fff\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7af\ua7b8-\ua7f6\ua82c-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua8fe\ua8ff\ua954-\ua95e\ua97d-\ua97f\ua9ce\ua9da-\ua9dd\ua9ff\uaa37-\uaa3f\uaa4e\uaa4f\uaa5a\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07\uab08\uab0f\uab10\uab17-\uab1f\uab27\uab2f\uab66-\uab6f\uabee\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\ud7ff\ufa6e\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37\ufb3d\ufb3f\ufb42\ufb45\ufbc2-\ufbd2\ufd40-\ufd4f\ufd90\ufd91\ufdc8-\ufdef\ufdfe\ufdff\ufe1a-\ufe1f\ufe53\ufe67\ufe6c-\ufe6f\ufe75\ufefd\ufefe\uff00\uffbf-\uffc1\uffc8\uffc9\uffd0\uffd1\uffd8\uffd9\uffdd-\uffdf\uffe7\uffef-\ufff8\ufffe\uffff", -astral:"\ud800[\udc0c\udc27\udc3b\udc3e\udc4e\udc4f\udc5e-\udc7f\udcfb-\udcff\udd03-\udd06\udd34-\udd36\udd8f\udd9c-\udd9f\udda1-\uddcf\uddfe-\ude7f\ude9d-\ude9f\uded1-\udedf\udefc-\udeff\udf24-\udf2f\udf4b-\udf4f\udf7b-\udf7f\udf9e\udfc4-\udfc7\udfd6-\udfff]|\ud801[\udc9e\udc9f\udcaa-\udcaf\udcd4-\udcd7\udcfc-\udcff\udd28-\udd2f\udd64-\udd6e\udd70-\uddff\udf37-\udf3f\udf56-\udf5f\udf68-\udfff]|\ud802[\udc06\udc07\udc09\udc36\udc39-\udc3b\udc3d\udc3e\udc56\udc9f-\udca6\udcb0-\udcdf\udcf3\udcf6-\udcfa\udd1c-\udd1e\udd3a-\udd3e\udd40-\udd7f\uddb8-\uddbb\uddd0\uddd1\ude04\ude07-\ude0b\ude14\ude18\ude34-\ude37\ude3b-\ude3e\ude48-\ude4f\ude59-\ude5f\udea0-\udebf\udee7-\udeea\udef7-\udeff\udf36-\udf38\udf56\udf57\udf73-\udf77\udf92-\udf98\udf9d-\udfa8\udfb0-\udfff]|\ud803[\udc49-\udc7f\udcb3-\udcbf\udcf3-\udcf9\udd00-\ude5f\ude7f-\udfff]|\ud804[\udc4e-\udc51\udc70-\udc7e\udcc2-\udccf\udce9-\udcef\udcfa-\udcff\udd35\udd44-\udd4f\udd77-\udd7f\uddce\uddcf\udde0\uddf5-\uddff\ude12\ude3f-\ude7f\ude87\ude89\ude8e\ude9e\udeaa-\udeaf\udeeb-\udeef\udefa-\udeff\udf04\udf0d\udf0e\udf11\udf12\udf29\udf31\udf34\udf3a\udf3b\udf45\udf46\udf49\udf4a\udf4e\udf4f\udf51-\udf56\udf58-\udf5c\udf64\udf65\udf6d-\udf6f\udf75-\udfff]|\ud805[\udc5a\udc5c\udc5e-\udc7f\udcc8-\udccf\udcda-\udd7f\uddb6\uddb7\uddde-\uddff\ude45-\ude4f\ude5a-\ude5f\ude6d-\ude7f\udeb8-\udebf\udeca-\udeff\udf1a-\udf1c\udf2c-\udf2f\udf40-\udfff]|\ud806[\udc00-\udc9f\udcf3-\udcfe\udd00-\udebf\udef9-\udfff]|\ud807[\udc09\udc37\udc46-\udc4f\udc6d-\udc6f\udc90\udc91\udca8\udcb7-\udfff]|\ud808[\udf9a-\udfff]|\ud809[\udc6f\udc75-\udc7f\udd44-\udfff]|[\ud80a\ud80b\ud80e-\ud810\ud812-\ud819\ud823-\ud82b\ud82d\ud82e\ud830-\ud833\ud837\ud839\ud83f\ud874-\ud87d\ud87f-\udb3f\udb41-\udb7f][\udc00-\udfff]|\ud80d[\udc2f-\udfff]|\ud811[\ude47-\udfff]|\ud81a[\ude39-\ude3f\ude5f\ude6a-\ude6d\ude70-\udecf\udeee\udeef\udef6-\udeff\udf46-\udf4f\udf5a\udf62\udf78-\udf7c\udf90-\udfff]|\ud81b[\udc00-\udeff\udf45-\udf4f\udf7f-\udf8e\udfa0-\udfdf\udfe1-\udfff]|\ud821[\udfed-\udfff]|\ud822[\udef3-\udfff]|\ud82c[\udc02-\udfff]|\ud82f[\udc6b-\udc6f\udc7d-\udc7f\udc89-\udc8f\udc9a\udc9b\udca4-\udfff]|\ud834[\udcf6-\udcff\udd27\udd28\udde9-\uddff\ude46-\udeff\udf57-\udf5f\udf72-\udfff]|\ud835[\udc55\udc9d\udca0\udca1\udca3\udca4\udca7\udca8\udcad\udcba\udcbc\udcc4\udd06\udd0b\udd0c\udd15\udd1d\udd3a\udd3f\udd45\udd47-\udd49\udd51\udea6\udea7\udfcc\udfcd]|\ud836[\ude8c-\ude9a\udea0\udeb0-\udfff]|\ud838[\udc07\udc19\udc1a\udc22\udc25\udc2b-\udfff]|\ud83a[\udcc5\udcc6\udcd7-\udcff\udd4b-\udd4f\udd5a-\udd5d\udd60-\udfff]|\ud83b[\udc00-\uddff\ude04\ude20\ude23\ude25\ude26\ude28\ude33\ude38\ude3a\ude3c-\ude41\ude43-\ude46\ude48\ude4a\ude4c\ude50\ude53\ude55\ude56\ude58\ude5a\ude5c\ude5e\ude60\ude63\ude65\ude66\ude6b\ude73\ude78\ude7d\ude7f\ude8a\ude9c-\udea0\udea4\udeaa\udebc-\udeef\udef2-\udfff]|\ud83c[\udc2c-\udc2f\udc94-\udc9f\udcaf\udcb0\udcc0\udcd0\udcf6-\udcff\udd0d-\udd0f\udd2f\udd6c-\udd6f\uddad-\udde5\ude03-\ude0f\ude3c-\ude3f\ude49-\ude4f\ude52-\udeff]|\ud83d[\uded3-\udedf\udeed-\udeef\udef7-\udeff\udf74-\udf7f\udfd5-\udfff]|\ud83e[\udc0c-\udc0f\udc48-\udc4f\udc5a-\udc5f\udc88-\udc8f\udcae-\udd0f\udd1f\udd28-\udd2f\udd31\udd32\udd3f\udd4c-\udd4f\udd5f-\udd7f\udd92-\uddbf\uddc1-\udfff]|\ud869[\uded7-\udeff]|\ud86d[\udf35-\udf3f]|\ud86e[\udc1e\udc1f]|\ud873[\udea2-\udfff]|\ud87e[\ude1e-\udfff]|\udb40[\udc00\udc02-\udc1f\udc80-\udcff\uddf0-\udfff]|[\udbbf\udbff][\udffe\udfff]"}, -{name:"Co",alias:"Private_Use",bmp:"\ue000-\uf8ff",astral:"[\udb80-\udbbe\udbc0-\udbfe][\udc00-\udfff]|[\udbbf\udbff][\udc00-\udffd]"},{name:"Cs",alias:"Surrogate",bmp:"\ud800-\udfff"},{name:"L",alias:"Letter",bmp:"A-Za-z\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u1884\u1887-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2183\u2184\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005\u3006\u3031-\u3035\u303b\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6e5\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc", -astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf30-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude33\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udf00-\udf19]|\ud806[\udca0-\udcdf\udcff\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf44\udf50\udf93-\udf9f\udfe0]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]|\ud82c[\udc00\udc01]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud83a[\udc00-\udcc4\udd00-\udd43]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]"}, -{name:"Ll",alias:"Lowercase_Letter",bmp:"a-z\u00b5\u00df-\u00f6\u00f8-\u00ff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0561-\u0587\u13f8-\u13fd\u1c80-\u1c88\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6\u1fc7\u1fd0-\u1fd3\u1fd6\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6\u1ff7\u210a\u210e\u210f\u2113\u212f\u2134\u2139\u213c\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7b5\ua7b7\ua7fa\uab30-\uab5a\uab60-\uab65\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a", -astral:"\ud801[\udc28-\udc4f\udcd8-\udcfb]|\ud803[\udcc0-\udcf2]|\ud806[\udcc0-\udcdf]|\ud835[\udc1a-\udc33\udc4e-\udc54\udc56-\udc67\udc82-\udc9b\udcb6-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udccf\udcea-\udd03\udd1e-\udd37\udd52-\udd6b\udd86-\udd9f\uddba-\uddd3\uddee-\ude07\ude22-\ude3b\ude56-\ude6f\ude8a-\udea5\udec2-\udeda\udedc-\udee1\udefc-\udf14\udf16-\udf1b\udf36-\udf4e\udf50-\udf55\udf70-\udf88\udf8a-\udf8f\udfaa-\udfc2\udfc4-\udfc9\udfcb]|\ud83a[\udd22-\udd43]"},{name:"Lm",alias:"Modifier_Letter", -bmp:"\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5\u06e6\u07f4\u07f5\u07fa\u081a\u0824\u0828\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua69c\ua69d\ua717-\ua71f\ua770\ua788\ua7f8\ua7f9\ua9cf\ua9e6\uaa70\uaadd\uaaf3\uaaf4\uab5c-\uab5f\uff70\uff9e\uff9f",astral:"\ud81a[\udf40-\udf43]|\ud81b[\udf93-\udf9f\udfe0]"}, -{name:"Lo",alias:"Other_Letter",bmp:"\u00aa\u00ba\u01bb\u01c0-\u01c3\u0294\u05d0-\u05ea\u05f0-\u05f2\u0620-\u063f\u0641-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u0800-\u0815\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e45\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10d0-\u10fa\u10fd-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17dc\u1820-\u1842\u1844-\u1877\u1880-\u1884\u1887-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c77\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u2135-\u2138\u2d30-\u2d67\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3006\u303c\u3041-\u3096\u309f\u30a1-\u30fa\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua014\ua016-\ua48c\ua4d0-\ua4f7\ua500-\ua60b\ua610-\ua61f\ua62a\ua62b\ua66e\ua6a0-\ua6e5\ua78f\ua7f7\ua7fb-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9e0-\ua9e4\ua9e7-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa6f\uaa71-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb\uaadc\uaae0-\uaaea\uaaf2\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff66-\uff6f\uff71-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc", -astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf30-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc50-\udc9d\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude33\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udf00-\udf19]|\ud806[\udcff\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf44\udf50]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]|\ud82c[\udc00\udc01]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud83a[\udc00-\udcc4]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]"}, -{name:"Lt",alias:"Titlecase_Letter",bmp:"\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc"},{name:"Lu",alias:"Uppercase_Letter",bmp:"A-Z\u00c0-\u00d6\u00d8-\u00de\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u0179\u017b\u017d\u0181\u0182\u0184\u0186\u0187\u0189-\u018b\u018e-\u0191\u0193\u0194\u0196-\u0198\u019c\u019d\u019f\u01a0\u01a2\u01a4\u01a6\u01a7\u01a9\u01ac\u01ae\u01af\u01b1-\u01b3\u01b5\u01b7\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a\u023b\u023d\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\uff21-\uff3a", -astral:"\ud801[\udc00-\udc27\udcb0-\udcd3]|\ud803[\udc80-\udcb2]|\ud806[\udca0-\udcbf]|\ud835[\udc00-\udc19\udc34-\udc4d\udc68-\udc81\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb5\udcd0-\udce9\udd04\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd38\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd6c-\udd85\udda0-\uddb9\uddd4-\udded\ude08-\ude21\ude3c-\ude55\ude70-\ude89\udea8-\udec0\udee2-\udefa\udf1c-\udf34\udf56-\udf6e\udf90-\udfa8\udfca]|\ud83a[\udd00-\udd21]"},{name:"M", -alias:"Mark",bmp:"\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d4-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c00-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d01-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f\u109a-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u180b-\u180d\u1885\u1886\u18a9\u1920-\u192b\u1930-\u193b\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f\u1ab0-\u1abe\u1b00-\u1b04\u1b34-\u1b44\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1be6-\u1bf3\u1c24-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9e5\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f", -astral:"\ud800[\uddfd\udee0\udf76-\udf7a]|\ud802[\ude01-\ude03\ude05\ude06\ude0c-\ude0f\ude38-\ude3a\ude3f\udee5\udee6]|\ud804[\udc00-\udc02\udc38-\udc46\udc7f-\udc82\udcb0-\udcba\udd00-\udd02\udd27-\udd34\udd73\udd80-\udd82\uddb3-\uddc0\uddca-\uddcc\ude2c-\ude37\ude3e\udedf-\udeea\udf00-\udf03\udf3c\udf3e-\udf44\udf47\udf48\udf4b-\udf4d\udf57\udf62\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc35-\udc46\udcb0-\udcc3\uddaf-\uddb5\uddb8-\uddc0\udddc\udddd\ude30-\ude40\udeab-\udeb7\udf1d-\udf2b]|\ud807[\udc2f-\udc36\udc38-\udc3f\udc92-\udca7\udca9-\udcb6]|\ud81a[\udef0-\udef4\udf30-\udf36]|\ud81b[\udf51-\udf7e\udf8f-\udf92]|\ud82f[\udc9d\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]|\ud83a[\udcd0-\udcd6\udd44-\udd4a]|\udb40[\udd00-\uddef]"}, -{name:"Mc",alias:"Spacing_Mark",bmp:"\u0903\u093b\u093e-\u0940\u0949-\u094c\u094e\u094f\u0982\u0983\u09be-\u09c0\u09c7\u09c8\u09cb\u09cc\u09d7\u0a03\u0a3e-\u0a40\u0a83\u0abe-\u0ac0\u0ac9\u0acb\u0acc\u0b02\u0b03\u0b3e\u0b40\u0b47\u0b48\u0b4b\u0b4c\u0b57\u0bbe\u0bbf\u0bc1\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82\u0c83\u0cbe\u0cc0-\u0cc4\u0cc7\u0cc8\u0cca\u0ccb\u0cd5\u0cd6\u0d02\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d82\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2\u0df3\u0f3e\u0f3f\u0f7f\u102b\u102c\u1031\u1038\u103b\u103c\u1056\u1057\u1062-\u1064\u1067-\u106d\u1083\u1084\u1087-\u108c\u108f\u109a-\u109c\u17b6\u17be-\u17c5\u17c7\u17c8\u1923-\u1926\u1929-\u192b\u1930\u1931\u1933-\u1938\u1a19\u1a1a\u1a55\u1a57\u1a61\u1a63\u1a64\u1a6d-\u1a72\u1b04\u1b35\u1b3b\u1b3d-\u1b41\u1b43\u1b44\u1b82\u1ba1\u1ba6\u1ba7\u1baa\u1be7\u1bea-\u1bec\u1bee\u1bf2\u1bf3\u1c24-\u1c2b\u1c34\u1c35\u1ce1\u1cf2\u1cf3\u302e\u302f\ua823\ua824\ua827\ua880\ua881\ua8b4-\ua8c3\ua952\ua953\ua983\ua9b4\ua9b5\ua9ba\ua9bb\ua9bd-\ua9c0\uaa2f\uaa30\uaa33\uaa34\uaa4d\uaa7b\uaa7d\uaaeb\uaaee\uaaef\uaaf5\uabe3\uabe4\uabe6\uabe7\uabe9\uabea\uabec", -astral:"\ud804[\udc00\udc02\udc82\udcb0-\udcb2\udcb7\udcb8\udd2c\udd82\uddb3-\uddb5\uddbf\uddc0\ude2c-\ude2e\ude32\ude33\ude35\udee0-\udee2\udf02\udf03\udf3e\udf3f\udf41-\udf44\udf47\udf48\udf4b-\udf4d\udf57\udf62\udf63]|\ud805[\udc35-\udc37\udc40\udc41\udc45\udcb0-\udcb2\udcb9\udcbb-\udcbe\udcc1\uddaf-\uddb1\uddb8-\uddbb\uddbe\ude30-\ude32\ude3b\ude3c\ude3e\udeac\udeae\udeaf\udeb6\udf20\udf21\udf26]|\ud807[\udc2f\udc3e\udca9\udcb1\udcb4]|\ud81b[\udf51-\udf7e]|\ud834[\udd65\udd66\udd6d-\udd72]"}, -{name:"Me",alias:"Enclosing_Mark",bmp:"\u0488\u0489\u1abe\u20dd-\u20e0\u20e2-\u20e4\ua670-\ua672"},{name:"Mn",alias:"Nonspacing_Mark",bmp:"\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d4-\u08e1\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962\u0963\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b62\u0b63\u0b82\u0bc0\u0bcd\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c81\u0cbc\u0cbf\u0cc6\u0ccc\u0ccd\u0ce2\u0ce3\u0d01\u0d41-\u0d44\u0d4d\u0d62\u0d63\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u1885\u1886\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1bab-\u1bad\u1be6\u1be8\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u3099\u309a\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8c5\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaec\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f", -astral:"\ud800[\uddfd\udee0\udf76-\udf7a]|\ud802[\ude01-\ude03\ude05\ude06\ude0c-\ude0f\ude38-\ude3a\ude3f\udee5\udee6]|\ud804[\udc01\udc38-\udc46\udc7f-\udc81\udcb3-\udcb6\udcb9\udcba\udd00-\udd02\udd27-\udd2b\udd2d-\udd34\udd73\udd80\udd81\uddb6-\uddbe\uddca-\uddcc\ude2f-\ude31\ude34\ude36\ude37\ude3e\udedf\udee3-\udeea\udf00\udf01\udf3c\udf40\udf66-\udf6c\udf70-\udf74]|\ud805[\udc38-\udc3f\udc42-\udc44\udc46\udcb3-\udcb8\udcba\udcbf\udcc0\udcc2\udcc3\uddb2-\uddb5\uddbc\uddbd\uddbf\uddc0\udddc\udddd\ude33-\ude3a\ude3d\ude3f\ude40\udeab\udead\udeb0-\udeb5\udeb7\udf1d-\udf1f\udf22-\udf25\udf27-\udf2b]|\ud807[\udc30-\udc36\udc38-\udc3d\udc3f\udc92-\udca7\udcaa-\udcb0\udcb2\udcb3\udcb5\udcb6]|\ud81a[\udef0-\udef4\udf30-\udf36]|\ud81b[\udf8f-\udf92]|\ud82f[\udc9d\udc9e]|\ud834[\udd67-\udd69\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]|\ud83a[\udcd0-\udcd6\udd44-\udd4a]|\udb40[\udd00-\uddef]"}, -{name:"N",alias:"Number",bmp:"0-9\u00b2\u00b3\u00b9\u00bc-\u00be\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u09f4-\u09f9\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0b72-\u0b77\u0be6-\u0bf2\u0c66-\u0c6f\u0c78-\u0c7e\u0ce6-\u0cef\u0d58-\u0d5e\u0d66-\u0d78\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f33\u1040-\u1049\u1090-\u1099\u1369-\u137c\u16ee-\u16f0\u17e0-\u17e9\u17f0-\u17f9\u1810-\u1819\u1946-\u194f\u19d0-\u19da\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3007\u3021-\u3029\u3038-\u303a\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua620-\ua629\ua6e6-\ua6ef\ua830-\ua835\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19", -astral:"\ud800[\udd07-\udd33\udd40-\udd78\udd8a\udd8b\udee1-\udefb\udf20-\udf23\udf41\udf4a\udfd1-\udfd5]|\ud801[\udca0-\udca9]|\ud802[\udc58-\udc5f\udc79-\udc7f\udca7-\udcaf\udcfb-\udcff\udd16-\udd1b\uddbc\uddbd\uddc0-\uddcf\uddd2-\uddff\ude40-\ude47\ude7d\ude7e\ude9d-\ude9f\udeeb-\udeef\udf58-\udf5f\udf78-\udf7f\udfa9-\udfaf]|\ud803[\udcfa-\udcff\ude60-\ude7e]|\ud804[\udc52-\udc6f\udcf0-\udcf9\udd36-\udd3f\uddd0-\uddd9\udde1-\uddf4\udef0-\udef9]|\ud805[\udc50-\udc59\udcd0-\udcd9\ude50-\ude59\udec0-\udec9\udf30-\udf3b]|\ud806[\udce0-\udcf2]|\ud807[\udc50-\udc6c]|\ud809[\udc00-\udc6e]|\ud81a[\ude60-\ude69\udf50-\udf59\udf5b-\udf61]|\ud834[\udf60-\udf71]|\ud835[\udfce-\udfff]|\ud83a[\udcc7-\udccf\udd50-\udd59]|\ud83c[\udd00-\udd0c]"}, -{name:"Nd",alias:"Decimal_Number",bmp:"0-9\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19", -astral:"\ud801[\udca0-\udca9]|\ud804[\udc66-\udc6f\udcf0-\udcf9\udd36-\udd3f\uddd0-\uddd9\udef0-\udef9]|\ud805[\udc50-\udc59\udcd0-\udcd9\ude50-\ude59\udec0-\udec9\udf30-\udf39]|\ud806[\udce0-\udce9]|\ud807[\udc50-\udc59]|\ud81a[\ude60-\ude69\udf50-\udf59]|\ud835[\udfce-\udfff]|\ud83a[\udd50-\udd59]"},{name:"Nl",alias:"Letter_Number",bmp:"\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef",astral:"\ud800[\udd40-\udd74\udf41\udf4a\udfd1-\udfd5]|\ud809[\udc00-\udc6e]"}, -{name:"No",alias:"Other_Number",bmp:"\u00b2\u00b3\u00b9\u00bc-\u00be\u09f4-\u09f9\u0b72-\u0b77\u0bf0-\u0bf2\u0c78-\u0c7e\u0d58-\u0d5e\u0d70-\u0d78\u0f2a-\u0f33\u1369-\u137c\u17f0-\u17f9\u19da\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215f\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua830-\ua835",astral:"\ud800[\udd07-\udd33\udd75-\udd78\udd8a\udd8b\udee1-\udefb\udf20-\udf23]|\ud802[\udc58-\udc5f\udc79-\udc7f\udca7-\udcaf\udcfb-\udcff\udd16-\udd1b\uddbc\uddbd\uddc0-\uddcf\uddd2-\uddff\ude40-\ude47\ude7d\ude7e\ude9d-\ude9f\udeeb-\udeef\udf58-\udf5f\udf78-\udf7f\udfa9-\udfaf]|\ud803[\udcfa-\udcff\ude60-\ude7e]|\ud804[\udc52-\udc65\udde1-\uddf4]|\ud805[\udf3a\udf3b]|\ud806[\udcea-\udcf2]|\ud807[\udc5a-\udc6c]|\ud81a[\udf5b-\udf61]|\ud834[\udf60-\udf71]|\ud83a[\udcc7-\udccf]|\ud83c[\udd00-\udd0c]"}, -{name:"P",alias:"Punctuation",bmp:"!-#%-\\x2A,-/:;\\x3F@\\x5B-\\x5D_\\x7B}\u00a1\u00a7\u00ab\u00b6\u00b7\u00bb\u00bf\u037e\u0387\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0af0\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f14\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1360-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cc0-\u1cc7\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u2308-\u230b\u2329\u232a\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30-\u2e44\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua8fc\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uaaf0\uaaf1\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65", -astral:"\ud800[\udd00-\udd02\udf9f\udfd0]|\ud801\udd6f|\ud802[\udc57\udd1f\udd3f\ude50-\ude58\ude7f\udef0-\udef6\udf39-\udf3f\udf99-\udf9c]|\ud804[\udc47-\udc4d\udcbb\udcbc\udcbe-\udcc1\udd40-\udd43\udd74\udd75\uddc5-\uddc9\uddcd\udddb\udddd-\udddf\ude38-\ude3d\udea9]|\ud805[\udc4b-\udc4f\udc5b\udc5d\udcc6\uddc1-\uddd7\ude41-\ude43\ude60-\ude6c\udf3c-\udf3e]|\ud807[\udc41-\udc45\udc70\udc71]|\ud809[\udc70-\udc74]|\ud81a[\ude6e\ude6f\udef5\udf37-\udf3b\udf44]|\ud82f\udc9f|\ud836[\ude87-\ude8b]|\ud83a[\udd5e\udd5f]"}, -{name:"Pc",alias:"Connector_Punctuation",bmp:"_\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f"},{name:"Pd",alias:"Dash_Punctuation",bmp:"\\x2D\u058a\u05be\u1400\u1806\u2010-\u2015\u2e17\u2e1a\u2e3a\u2e3b\u2e40\u301c\u3030\u30a0\ufe31\ufe32\ufe58\ufe63\uff0d"},{name:"Pe",alias:"Close_Punctuation",bmp:"\\x29\\x5D}\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u2309\u230b\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u27ed\u27ef\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u2e23\u2e25\u2e27\u2e29\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e\u301f\ufd3e\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63"}, -{name:"Pf",alias:"Final_Punctuation",bmp:"\u00bb\u2019\u201d\u203a\u2e03\u2e05\u2e0a\u2e0d\u2e1d\u2e21"},{name:"Pi",alias:"Initial_Punctuation",bmp:"\u00ab\u2018\u201b\u201c\u201f\u2039\u2e02\u2e04\u2e09\u2e0c\u2e1c\u2e20"},{name:"Po",alias:"Other_Punctuation",bmp:"!-#%-'\\x2A,\\x2E/:;\\x3F@\\x5C\u00a1\u00a7\u00b6\u00b7\u00bf\u037e\u0387\u055a-\u055f\u0589\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0af0\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f14\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1360-\u1368\u166d\u166e\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u1805\u1807-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cc0-\u1cc7\u1cd3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203b-\u203e\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205e\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00\u2e01\u2e06-\u2e08\u2e0b\u2e0e-\u2e16\u2e18\u2e19\u2e1b\u2e1e\u2e1f\u2e2a-\u2e2e\u2e30-\u2e39\u2e3c-\u2e3f\u2e41\u2e43\u2e44\u3001-\u3003\u303d\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua8fc\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uaaf0\uaaf1\uabeb\ufe10-\ufe16\ufe19\ufe30\ufe45\ufe46\ufe49-\ufe4c\ufe50-\ufe52\ufe54-\ufe57\ufe5f-\ufe61\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff07\uff0a\uff0c\uff0e\uff0f\uff1a\uff1b\uff1f\uff20\uff3c\uff61\uff64\uff65", -astral:"\ud800[\udd00-\udd02\udf9f\udfd0]|\ud801\udd6f|\ud802[\udc57\udd1f\udd3f\ude50-\ude58\ude7f\udef0-\udef6\udf39-\udf3f\udf99-\udf9c]|\ud804[\udc47-\udc4d\udcbb\udcbc\udcbe-\udcc1\udd40-\udd43\udd74\udd75\uddc5-\uddc9\uddcd\udddb\udddd-\udddf\ude38-\ude3d\udea9]|\ud805[\udc4b-\udc4f\udc5b\udc5d\udcc6\uddc1-\uddd7\ude41-\ude43\ude60-\ude6c\udf3c-\udf3e]|\ud807[\udc41-\udc45\udc70\udc71]|\ud809[\udc70-\udc74]|\ud81a[\ude6e\ude6f\udef5\udf37-\udf3b\udf44]|\ud82f\udc9f|\ud836[\ude87-\ude8b]|\ud83a[\udd5e\udd5f]"}, -{name:"Ps",alias:"Open_Punctuation",bmp:"\\x28\\x5B\\x7B\u0f3a\u0f3c\u169b\u201a\u201e\u2045\u207d\u208d\u2308\u230a\u2329\u2768\u276a\u276c\u276e\u2770\u2772\u2774\u27c5\u27e6\u27e8\u27ea\u27ec\u27ee\u2983\u2985\u2987\u2989\u298b\u298d\u298f\u2991\u2993\u2995\u2997\u29d8\u29da\u29fc\u2e22\u2e24\u2e26\u2e28\u2e42\u3008\u300a\u300c\u300e\u3010\u3014\u3016\u3018\u301a\u301d\ufd3f\ufe17\ufe35\ufe37\ufe39\ufe3b\ufe3d\ufe3f\ufe41\ufe43\ufe47\ufe59\ufe5b\ufe5d\uff08\uff3b\uff5b\uff5f\uff62"},{name:"S", -alias:"Symbol",bmp:"\\x24\\x2B<->\\x5E`\\x7C~\u00a2-\u00a6\u00a8\u00a9\u00ac\u00ae-\u00b1\u00b4\u00b8\u00d7\u00f7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u09f2\u09f3\u09fa\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20be\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a\u218b\u2190-\u2307\u230c-\u2328\u232b-\u23fe\u2400-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u309b\u309c\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720\ua721\ua789\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\ufb29\ufbb2-\ufbc1\ufdfc\ufdfd\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc\ufffd", -astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9b\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|\ud805\udf3f|\ud81a[\udf3c-\udf3f\udf45]|\ud82f\udc9c|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\udde8\ude00-\ude41\ude45\udf00-\udf56]|\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud83b[\udef0\udef1]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udfff]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]"}, -{name:"Sc",alias:"Currency_Symbol",bmp:"\\x24\u00a2-\u00a5\u058f\u060b\u09f2\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20be\ua838\ufdfc\ufe69\uff04\uffe0\uffe1\uffe5\uffe6"},{name:"Sk",alias:"Modifier_Symbol",bmp:"\\x5E`\u00a8\u00af\u00b4\u00b8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u309b\u309c\ua700-\ua716\ua720\ua721\ua789\ua78a\uab5b\ufbb2-\ufbc1\uff3e\uff40\uffe3",astral:"\ud83c[\udffb-\udfff]"}, -{name:"Sm",alias:"Math_Symbol",bmp:"\\x2B<->\\x7C~\u00ac\u00b1\u00d7\u00f7\u03f6\u0606-\u0608\u2044\u2052\u207a-\u207c\u208a-\u208c\u2118\u2140-\u2144\u214b\u2190-\u2194\u219a\u219b\u21a0\u21a3\u21a6\u21ae\u21ce\u21cf\u21d2\u21d4\u21f4-\u22ff\u2320\u2321\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7\u25c1\u25f8-\u25ff\u266f\u27c0-\u27c4\u27c7-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe9-\uffec", -astral:"\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud83b[\udef0\udef1]"},{name:"So",alias:"Other_Symbol",bmp:"\u00a6\u00a9\u00ae\u00b0\u0482\u058d\u058e\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0d4f\u0d79\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u214a\u214c\u214d\u214f\u218a\u218b\u2195-\u2199\u219c-\u219f\u21a1\u21a2\u21a4\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0\u21d1\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u23fe\u2400-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u2767\u2794-\u27bf\u2800-\u28ff\u2b00-\u2b2f\u2b45\u2b46\u2b4d-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ua836\ua837\ua839\uaa77-\uaa79\ufdfd\uffe4\uffe8\uffed\uffee\ufffc\ufffd", -astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9b\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|\ud805\udf3f|\ud81a[\udf3c-\udf3f\udf45]|\ud82f\udc9c|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\udde8\ude00-\ude41\ude45\udf00-\udf56]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udffa]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]"}, -{name:"Z",alias:"Separator",bmp:" \u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000"},{name:"Zl",alias:"Line_Separator",bmp:"\u2028"},{name:"Zp",alias:"Paragraph_Separator",bmp:"\u2029"},{name:"Zs",alias:"Space_Separator",bmp:" \u00a0\u1680\u2000-\u200a\u202f\u205f\u3000"}])}},{}],6:[function(d,g,p){g.exports=function(c){if(!c.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Properties");var d=[{name:"ASCII",bmp:"\x00-\u007f"},{name:"Alphabetic",bmp:"A-Za-z\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0345\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05b0-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0657\u0659-\u065f\u066e-\u06d3\u06d5-\u06dc\u06e1-\u06e8\u06ed-\u06ef\u06fa-\u06fc\u06ff\u0710-\u073f\u074d-\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0817\u081a-\u082c\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u08d4-\u08df\u08e3-\u08e9\u08f0-\u093b\u093d-\u094c\u094e-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd-\u09c4\u09c7\u09c8\u09cb\u09cc\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09f0\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3e-\u0a42\u0a47\u0a48\u0a4b\u0a4c\u0a51\u0a59-\u0a5c\u0a5e\u0a70-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd-\u0ac5\u0ac7-\u0ac9\u0acb\u0acc\u0ad0\u0ae0-\u0ae3\u0af9\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d-\u0b44\u0b47\u0b48\u0b4b\u0b4c\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd0\u0bd7\u0c00-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4c\u0c55\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccc\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0cf1\u0cf2\u0d01-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4c\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e46\u0e4d\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ecd\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f71-\u0f81\u0f88-\u0f97\u0f99-\u0fbc\u1000-\u1036\u1038\u103b-\u103f\u1050-\u1062\u1065-\u1068\u106e-\u1086\u108e\u109c\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135f\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1713\u1720-\u1733\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17b3\u17b6-\u17c8\u17d7\u17dc\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u1938\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a1b\u1a20-\u1a5e\u1a61-\u1a74\u1aa7\u1b00-\u1b33\u1b35-\u1b43\u1b45-\u1b4b\u1b80-\u1ba9\u1bac-\u1baf\u1bba-\u1be5\u1be7-\u1bf1\u1c00-\u1c35\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1d00-\u1dbf\u1de7-\u1df4\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua674-\ua67b\ua67f-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua827\ua840-\ua873\ua880-\ua8c3\ua8c5\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua92a\ua930-\ua952\ua960-\ua97c\ua980-\ua9b2\ua9b4-\ua9bf\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa60-\uaa76\uaa7a\uaa7e-\uaabe\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf5\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabea\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc", -astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf30-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00-\ude03\ude05\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude33\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2]|\ud804[\udc00-\udc45\udc82-\udcb8\udcd0-\udce8\udd00-\udd32\udd50-\udd72\udd76\udd80-\uddbf\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude34\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udee8\udf00-\udf03\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d-\udf44\udf47\udf48\udf4b\udf4c\udf50\udf57\udf5d-\udf63]|\ud805[\udc00-\udc41\udc43-\udc45\udc47-\udc4a\udc80-\udcc1\udcc4\udcc5\udcc7\udd80-\uddb5\uddb8-\uddbe\uddd8-\udddd\ude00-\ude3e\ude40\ude44\ude80-\udeb5\udf00-\udf19\udf1d-\udf2a]|\ud806[\udca0-\udcdf\udcff\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc3e\udc40\udc72-\udc8f\udc92-\udca7\udca9-\udcb6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf36\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf44\udf50-\udf7e\udf93-\udf9f\udfe0]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]|\ud82c[\udc00\udc01]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9e]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd47]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud83c[\udd30-\udd49\udd50-\udd69\udd70-\udd89]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]"}, -{name:"Any",isBmpLast:!0,bmp:"\x00-\uffff",astral:"[\ud800-\udbff][\udc00-\udfff]"},{name:"Default_Ignorable_Code_Point",bmp:"\u00ad\u034f\u061c\u115f\u1160\u17b4\u17b5\u180b-\u180e\u200b-\u200f\u202a-\u202e\u2060-\u206f\u3164\ufe00-\ufe0f\ufeff\uffa0\ufff0-\ufff8",astral:"\ud82f[\udca0-\udca3]|\ud834[\udd73-\udd7a]|[\udb40-\udb43][\udc00-\udfff]"},{name:"Lowercase",bmp:"a-z\u00aa\u00b5\u00ba\u00df-\u00f6\u00f8-\u00ff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02b8\u02c0\u02c1\u02e0-\u02e4\u0345\u0371\u0373\u0377\u037a-\u037d\u0390\u03ac-\u03ce\u03d0\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0561-\u0587\u13f8-\u13fd\u1c80-\u1c88\u1d00-\u1dbf\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6\u1fc7\u1fd0-\u1fd3\u1fd6\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6\u1ff7\u2071\u207f\u2090-\u209c\u210a\u210e\u210f\u2113\u212f\u2134\u2139\u213c\u213d\u2146-\u2149\u214e\u2170-\u217f\u2184\u24d0-\u24e9\u2c30-\u2c5e\u2c61\u2c65\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73\u2c74\u2c76-\u2c7d\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b-\ua69d\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7b5\ua7b7\ua7f8-\ua7fa\uab30-\uab5a\uab5c-\uab65\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a", -astral:"\ud801[\udc28-\udc4f\udcd8-\udcfb]|\ud803[\udcc0-\udcf2]|\ud806[\udcc0-\udcdf]|\ud835[\udc1a-\udc33\udc4e-\udc54\udc56-\udc67\udc82-\udc9b\udcb6-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udccf\udcea-\udd03\udd1e-\udd37\udd52-\udd6b\udd86-\udd9f\uddba-\uddd3\uddee-\ude07\ude22-\ude3b\ude56-\ude6f\ude8a-\udea5\udec2-\udeda\udedc-\udee1\udefc-\udf14\udf16-\udf1b\udf36-\udf4e\udf50-\udf55\udf70-\udf88\udf8a-\udf8f\udfaa-\udfc2\udfc4-\udfc9\udfcb]|\ud83a[\udd22-\udd43]"},{name:"Noncharacter_Code_Point", -bmp:"\ufdd0-\ufdef\ufffe\uffff",astral:"[\ud83f\ud87f\ud8bf\ud8ff\ud93f\ud97f\ud9bf\ud9ff\uda3f\uda7f\udabf\udaff\udb3f\udb7f\udbbf\udbff][\udffe\udfff]"},{name:"Uppercase",bmp:"A-Z\u00c0-\u00d6\u00d8-\u00de\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u0179\u017b\u017d\u0181\u0182\u0184\u0186\u0187\u0189-\u018b\u018e-\u0191\u0193\u0194\u0196-\u0198\u019c\u019d\u019f\u01a0\u01a2\u01a4\u01a6\u01a7\u01a9\u01ac\u01ae\u01af\u01b1-\u01b3\u01b5\u01b7\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a\u023b\u023d\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e\u213f\u2145\u2160-\u216f\u2183\u24b6-\u24cf\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\uff21-\uff3a", -astral:"\ud801[\udc00-\udc27\udcb0-\udcd3]|\ud803[\udc80-\udcb2]|\ud806[\udca0-\udcbf]|\ud835[\udc00-\udc19\udc34-\udc4d\udc68-\udc81\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb5\udcd0-\udce9\udd04\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd38\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd6c-\udd85\udda0-\uddb9\uddd4-\udded\ude08-\ude21\ude3c-\ude55\ude70-\ude89\udea8-\udec0\udee2-\udefa\udf1c-\udf34\udf56-\udf6e\udf90-\udfa8\udfca]|\ud83a[\udd00-\udd21]|\ud83c[\udd30-\udd49\udd50-\udd69\udd70-\udd89]"}, -{name:"White_Space",bmp:"\t-\r \u0085\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000"}];d.push({name:"Assigned",inverseOf:"Cn"});c.addUnicodeData(d)}},{}],7:[function(d,g,p){g.exports=function(c){if(!c.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts");c.addUnicodeData([{name:"Adlam",astral:"\ud83a[\udd00-\udd4a\udd50-\udd59\udd5e\udd5f]"},{name:"Ahom",astral:"\ud805[\udf00-\udf19\udf1d-\udf2b\udf30-\udf3f]"},{name:"Anatolian_Hieroglyphs",astral:"\ud811[\udc00-\ude46]"}, -{name:"Arabic",bmp:"\u0600-\u0604\u0606-\u060b\u060d-\u061a\u061e\u0620-\u063f\u0641-\u064a\u0656-\u066f\u0671-\u06dc\u06de-\u06ff\u0750-\u077f\u08a0-\u08b4\u08b6-\u08bd\u08d4-\u08e1\u08e3-\u08ff\ufb50-\ufbc1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfd\ufe70-\ufe74\ufe76-\ufefc",astral:"\ud803[\ude60-\ude7e]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb\udef0\udef1]"}, -{name:"Armenian",bmp:"\u0531-\u0556\u0559-\u055f\u0561-\u0587\u058a\u058d-\u058f\ufb13-\ufb17"},{name:"Avestan",astral:"\ud802[\udf00-\udf35\udf39-\udf3f]"},{name:"Balinese",bmp:"\u1b00-\u1b4b\u1b50-\u1b7c"},{name:"Bamum",bmp:"\ua6a0-\ua6f7",astral:"\ud81a[\udc00-\ude38]"},{name:"Bassa_Vah",astral:"\ud81a[\uded0-\udeed\udef0-\udef5]"},{name:"Batak",bmp:"\u1bc0-\u1bf3\u1bfc-\u1bff"},{name:"Bengali",bmp:"\u0980-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09fb"}, -{name:"Bhaiksuki",astral:"\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc45\udc50-\udc6c]"},{name:"Bopomofo",bmp:"\u02ea\u02eb\u3105-\u312d\u31a0-\u31ba"},{name:"Brahmi",astral:"\ud804[\udc00-\udc4d\udc52-\udc6f\udc7f]"},{name:"Braille",bmp:"\u2800-\u28ff"},{name:"Buginese",bmp:"\u1a00-\u1a1b\u1a1e\u1a1f"},{name:"Buhid",bmp:"\u1740-\u1753"},{name:"Canadian_Aboriginal",bmp:"\u1400-\u167f\u18b0-\u18f5"},{name:"Carian",astral:"\ud800[\udea0-\uded0]"},{name:"Caucasian_Albanian",astral:"\ud801[\udd30-\udd63\udd6f]"}, -{name:"Chakma",astral:"\ud804[\udd00-\udd34\udd36-\udd43]"},{name:"Cham",bmp:"\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaa5f"},{name:"Cherokee",bmp:"\u13a0-\u13f5\u13f8-\u13fd\uab70-\uabbf"},{name:"Common",bmp:"\x00-@\\x5B-`\\x7B-\u00a9\u00ab-\u00b9\u00bb-\u00bf\u00d7\u00f7\u02b9-\u02df\u02e5-\u02e9\u02ec-\u02ff\u0374\u037e\u0385\u0387\u0589\u0605\u060c\u061b\u061c\u061f\u0640\u06dd\u08e2\u0964\u0965\u0e3f\u0fd5-\u0fd8\u10fb\u16eb-\u16ed\u1735\u1736\u1802\u1803\u1805\u1cd3\u1ce1\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u2000-\u200b\u200e-\u2064\u2066-\u2070\u2074-\u207e\u2080-\u208e\u20a0-\u20be\u2100-\u2125\u2127-\u2129\u212c-\u2131\u2133-\u214d\u214f-\u215f\u2189-\u218b\u2190-\u23fe\u2400-\u2426\u2440-\u244a\u2460-\u27ff\u2900-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2e00-\u2e44\u2ff0-\u2ffb\u3000-\u3004\u3006\u3008-\u3020\u3030-\u3037\u303c-\u303f\u309b\u309c\u30a0\u30fb\u30fc\u3190-\u319f\u31c0-\u31e3\u3220-\u325f\u327f-\u32cf\u3358-\u33ff\u4dc0-\u4dff\ua700-\ua721\ua788-\ua78a\ua830-\ua839\ua92e\ua9cf\uab5b\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufeff\uff01-\uff20\uff3b-\uff40\uff5b-\uff65\uff70\uff9e\uff9f\uffe0-\uffe6\uffe8-\uffee\ufff9-\ufffd", -astral:"\ud800[\udd00-\udd02\udd07-\udd33\udd37-\udd3f\udd90-\udd9b\uddd0-\uddfc\udee1-\udefb]|\ud82f[\udca0-\udca3]|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd66\udd6a-\udd7a\udd83\udd84\udd8c-\udda9\uddae-\udde8\udf00-\udf56\udf60-\udf71]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udfcb\udfce-\udfff]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd00-\udd0c\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\uddff\ude01\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udfff]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|\udb40[\udc01\udc20-\udc7f]"}, -{name:"Coptic",bmp:"\u03e2-\u03ef\u2c80-\u2cf3\u2cf9-\u2cff"},{name:"Cuneiform",astral:"\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc70-\udc74\udc80-\udd43]"},{name:"Cypriot",astral:"\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f]"},{name:"Cyrillic",bmp:"\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f"},{name:"Deseret",astral:"\ud801[\udc00-\udc4f]"},{name:"Devanagari",bmp:"\u0900-\u0950\u0953-\u0963\u0966-\u097f\ua8e0-\ua8fd"},{name:"Duployan", -astral:"\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9c-\udc9f]"},{name:"Egyptian_Hieroglyphs",astral:"\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]"},{name:"Elbasan",astral:"\ud801[\udd00-\udd27]"},{name:"Ethiopic",bmp:"\u1200-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e"}, -{name:"Georgian",bmp:"\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u10ff\u2d00-\u2d25\u2d27\u2d2d"},{name:"Glagolitic",bmp:"\u2c00-\u2c2e\u2c30-\u2c5e",astral:"\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]"},{name:"Gothic",astral:"\ud800[\udf30-\udf4a]"},{name:"Grantha",astral:"\ud804[\udf00-\udf03\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3c-\udf44\udf47\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]"},{name:"Greek", -bmp:"\u0370-\u0373\u0375-\u0377\u037a-\u037d\u037f\u0384\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03e1\u03f0-\u03ff\u1d26-\u1d2a\u1d5d-\u1d61\u1d66-\u1d6a\u1dbf\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2126\uab65",astral:"\ud800[\udd40-\udd8e\udda0]|\ud834[\ude00-\ude45]"},{name:"Gujarati",bmp:"\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9"}, -{name:"Gurmukhi",bmp:"\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75"},{name:"Han",bmp:"\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u3005\u3007\u3021-\u3029\u3038-\u303b\u3400-\u4db5\u4e00-\u9fd5\uf900-\ufa6d\ufa70-\ufad9",astral:"[\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872][\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]"}, -{name:"Hangul",bmp:"\u1100-\u11ff\u302e\u302f\u3131-\u318e\u3200-\u321e\u3260-\u327e\ua960-\ua97c\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"},{name:"Hanunoo",bmp:"\u1720-\u1734"},{name:"Hatran",astral:"\ud802[\udce0-\udcf2\udcf4\udcf5\udcfb-\udcff]"},{name:"Hebrew",bmp:"\u0591-\u05c7\u05d0-\u05ea\u05f0-\u05f4\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufb4f"},{name:"Hiragana",bmp:"\u3041-\u3096\u309d-\u309f",astral:"\ud82c\udc01|\ud83c\ude00"}, -{name:"Imperial_Aramaic",astral:"\ud802[\udc40-\udc55\udc57-\udc5f]"},{name:"Inherited",bmp:"\u0300-\u036f\u0485\u0486\u064b-\u0655\u0670\u0951\u0952\u1ab0-\u1abe\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u200c\u200d\u20d0-\u20f0\u302a-\u302d\u3099\u309a\ufe00-\ufe0f\ufe20-\ufe2d",astral:"\ud800[\uddfd\udee0]|\ud834[\udd67-\udd69\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad]|\udb40[\udd00-\uddef]"},{name:"Inscriptional_Pahlavi",astral:"\ud802[\udf60-\udf72\udf78-\udf7f]"}, -{name:"Inscriptional_Parthian",astral:"\ud802[\udf40-\udf55\udf58-\udf5f]"},{name:"Javanese",bmp:"\ua980-\ua9cd\ua9d0-\ua9d9\ua9de\ua9df"},{name:"Kaithi",astral:"\ud804[\udc80-\udcc1]"},{name:"Kannada",bmp:"\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2"},{name:"Katakana",bmp:"\u30a1-\u30fa\u30fd-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff6f\uff71-\uff9d",astral:"\ud82c\udc00"}, -{name:"Kayah_Li",bmp:"\ua900-\ua92d\ua92f"},{name:"Kharoshthi",astral:"\ud802[\ude00-\ude03\ude05\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude33\ude38-\ude3a\ude3f-\ude47\ude50-\ude58]"},{name:"Khmer",bmp:"\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u19e0-\u19ff"},{name:"Khojki",astral:"\ud804[\ude00-\ude11\ude13-\ude3e]"},{name:"Khudawadi",astral:"\ud804[\udeb0-\udeea\udef0-\udef9]"},{name:"Lao",bmp:"\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf"}, -{name:"Latin",bmp:"A-Za-z\u00aa\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u02e0-\u02e4\u1d00-\u1d25\u1d2c-\u1d5c\u1d62-\u1d65\u1d6b-\u1d77\u1d79-\u1dbe\u1e00-\u1eff\u2071\u207f\u2090-\u209c\u212a\u212b\u2132\u214e\u2160-\u2188\u2c60-\u2c7f\ua722-\ua787\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua7ff\uab30-\uab5a\uab5c-\uab64\ufb00-\ufb06\uff21-\uff3a\uff41-\uff5a"},{name:"Lepcha",bmp:"\u1c00-\u1c37\u1c3b-\u1c49\u1c4d-\u1c4f"},{name:"Limbu",bmp:"\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u194f"}, -{name:"Linear_A",astral:"\ud801[\ude00-\udf36\udf40-\udf55\udf60-\udf67]"},{name:"Linear_B",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa]"},{name:"Lisu",bmp:"\ua4d0-\ua4ff"},{name:"Lycian",astral:"\ud800[\ude80-\ude9c]"},{name:"Lydian",astral:"\ud802[\udd20-\udd39\udd3f]"},{name:"Mahajani",astral:"\ud804[\udd50-\udd76]"},{name:"Malayalam",bmp:"\u0d01-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f"}, -{name:"Mandaic",bmp:"\u0840-\u085b\u085e"},{name:"Manichaean",astral:"\ud802[\udec0-\udee6\udeeb-\udef6]"},{name:"Marchen",astral:"\ud807[\udc70-\udc8f\udc92-\udca7\udca9-\udcb6]"},{name:"Meetei_Mayek",bmp:"\uaae0-\uaaf6\uabc0-\uabed\uabf0-\uabf9"},{name:"Mende_Kikakui",astral:"\ud83a[\udc00-\udcc4\udcc7-\udcd6]"},{name:"Meroitic_Cursive",astral:"\ud802[\udda0-\uddb7\uddbc-\uddcf\uddd2-\uddff]"},{name:"Meroitic_Hieroglyphs",astral:"\ud802[\udd80-\udd9f]"},{name:"Miao",astral:"\ud81b[\udf00-\udf44\udf50-\udf7e\udf8f-\udf9f]"}, -{name:"Modi",astral:"\ud805[\ude00-\ude44\ude50-\ude59]"},{name:"Mongolian",bmp:"\u1800\u1801\u1804\u1806-\u180e\u1810-\u1819\u1820-\u1877\u1880-\u18aa",astral:"\ud805[\ude60-\ude6c]"},{name:"Mro",astral:"\ud81a[\ude40-\ude5e\ude60-\ude69\ude6e\ude6f]"},{name:"Multani",astral:"\ud804[\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea9]"},{name:"Myanmar",bmp:"\u1000-\u109f\ua9e0-\ua9fe\uaa60-\uaa7f"},{name:"Nabataean",astral:"\ud802[\udc80-\udc9e\udca7-\udcaf]"},{name:"New_Tai_Lue",bmp:"\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de\u19df"}, -{name:"Newa",astral:"\ud805[\udc00-\udc59\udc5b\udc5d]"},{name:"Nko",bmp:"\u07c0-\u07fa"},{name:"Ogham",bmp:"\u1680-\u169c"},{name:"Ol_Chiki",bmp:"\u1c50-\u1c7f"},{name:"Old_Hungarian",astral:"\ud803[\udc80-\udcb2\udcc0-\udcf2\udcfa-\udcff]"},{name:"Old_Italic",astral:"\ud800[\udf00-\udf23]"},{name:"Old_North_Arabian",astral:"\ud802[\ude80-\ude9f]"},{name:"Old_Permic",astral:"\ud800[\udf50-\udf7a]"},{name:"Old_Persian",astral:"\ud800[\udfa0-\udfc3\udfc8-\udfd5]"},{name:"Old_South_Arabian",astral:"\ud802[\ude60-\ude7f]"}, -{name:"Old_Turkic",astral:"\ud803[\udc00-\udc48]"},{name:"Oriya",bmp:"\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b77"},{name:"Osage",astral:"\ud801[\udcb0-\udcd3\udcd8-\udcfb]"},{name:"Osmanya",astral:"\ud801[\udc80-\udc9d\udca0-\udca9]"},{name:"Pahawh_Hmong",astral:"\ud81a[\udf00-\udf45\udf50-\udf59\udf5b-\udf61\udf63-\udf77\udf7d-\udf8f]"},{name:"Palmyrene",astral:"\ud802[\udc60-\udc7f]"}, -{name:"Pau_Cin_Hau",astral:"\ud806[\udec0-\udef8]"},{name:"Phags_Pa",bmp:"\ua840-\ua877"},{name:"Phoenician",astral:"\ud802[\udd00-\udd1b\udd1f]"},{name:"Psalter_Pahlavi",astral:"\ud802[\udf80-\udf91\udf99-\udf9c\udfa9-\udfaf]"},{name:"Rejang",bmp:"\ua930-\ua953\ua95f"},{name:"Runic",bmp:"\u16a0-\u16ea\u16ee-\u16f8"},{name:"Samaritan",bmp:"\u0800-\u082d\u0830-\u083e"},{name:"Saurashtra",bmp:"\ua880-\ua8c5\ua8ce-\ua8d9"},{name:"Sharada",astral:"\ud804[\udd80-\uddcd\uddd0-\udddf]"},{name:"Shavian", -astral:"\ud801[\udc50-\udc7f]"},{name:"Siddham",astral:"\ud805[\udd80-\uddb5\uddb8-\udddd]"},{name:"SignWriting",astral:"\ud836[\udc00-\ude8b\ude9b-\ude9f\udea1-\udeaf]"},{name:"Sinhala",bmp:"\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4",astral:"\ud804[\udde1-\uddf4]"},{name:"Sora_Sompeng",astral:"\ud804[\udcd0-\udce8\udcf0-\udcf9]"},{name:"Sundanese",bmp:"\u1b80-\u1bbf\u1cc0-\u1cc7"},{name:"Syloti_Nagri",bmp:"\ua800-\ua82b"}, -{name:"Syriac",bmp:"\u0700-\u070d\u070f-\u074a\u074d-\u074f"},{name:"Tagalog",bmp:"\u1700-\u170c\u170e-\u1714"},{name:"Tagbanwa",bmp:"\u1760-\u176c\u176e-\u1770\u1772\u1773"},{name:"Tai_Le",bmp:"\u1950-\u196d\u1970-\u1974"},{name:"Tai_Tham",bmp:"\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad"},{name:"Tai_Viet",bmp:"\uaa80-\uaac2\uaadb-\uaadf"},{name:"Takri",astral:"\ud805[\ude80-\udeb7\udec0-\udec9]"},{name:"Tamil",bmp:"\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa"}, -{name:"Tangut",astral:"\ud81b\udfe0|[\ud81c-\ud820][\udc00-\udfff]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]"},{name:"Telugu",bmp:"\u0c00-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c78-\u0c7f"},{name:"Thaana",bmp:"\u0780-\u07b1"},{name:"Thai",bmp:"\u0e01-\u0e3a\u0e40-\u0e5b"},{name:"Tibetan",bmp:"\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fd4\u0fd9\u0fda"}, -{name:"Tifinagh",bmp:"\u2d30-\u2d67\u2d6f\u2d70\u2d7f"},{name:"Tirhuta",astral:"\ud805[\udc80-\udcc7\udcd0-\udcd9]"},{name:"Ugaritic",astral:"\ud800[\udf80-\udf9d\udf9f]"},{name:"Vai",bmp:"\ua500-\ua62b"},{name:"Warang_Citi",astral:"\ud806[\udca0-\udcf2\udcff]"},{name:"Yi",bmp:"\ua000-\ua48c\ua490-\ua4c6"}])}},{}],8:[function(d,g,p){p=d("./xregexp");d("./addons/build")(p);d("./addons/matchrecursive")(p);d("./addons/unicode-base")(p);d("./addons/unicode-blocks")(p);d("./addons/unicode-categories")(p); -d("./addons/unicode-properties")(p);d("./addons/unicode-scripts")(p);g.exports=p},{"./addons/build":1,"./addons/matchrecursive":2,"./addons/unicode-base":3,"./addons/unicode-blocks":4,"./addons/unicode-categories":5,"./addons/unicode-properties":6,"./addons/unicode-scripts":7,"./xregexp":9}],9:[function(d,g,p){function c(a){var e=!0;try{RegExp("",a)}catch(u){e=!1}return e}function A(a,e,u,b,c){var J;a.xregexp={captureNames:e};if(c)return a;if(a.__proto__)a.__proto__=f.prototype;else for(J in f.prototype)a[J]= -f.prototype[J];a.xregexp.source=u;a.xregexp.flags=b?b.split("").sort().join(""):b;return a}function B(a){return n.replace.call(a,/([\s\S])(?=[\s\S]*\1)/g,"")}function z(a,e){if(!f.isRegExp(a))throw new TypeError("Type RegExp expected");var u=a.xregexp||{},b=Q?a.flags:n.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(a))[1],c="",d="",E=null,h=null;e=e||{};e.removeG&&(d+="g");e.removeY&&(d+="y");d&&(b=n.replace.call(b,new RegExp("["+d+"]+","g"),""));e.addG&&(c+="g");e.addY&&(c+="y");c&&(b=B(b+ -c));e.isInternalOnly||(void 0!==u.source&&(E=u.source),null!=u.flags&&(h=c?B(u.flags+c):u.flags));return a=A(new RegExp(e.source||a.source,b),a.xregexp&&a.xregexp.captureNames?u.captureNames.slice(0):null,E,h,e.isInternalOnly)}function l(a){return parseInt(a,16)}function b(a,e,b){(e="("===a.input.charAt(a.index-1)||")"===a.input.charAt(a.index+a[0].length))||(e=a.input,a=a.index+a[0].length,b=-1<b.indexOf("x")?["\\s","#[^#\\n]*","\\(\\?#[^)]*\\)"]:["\\(\\?#[^)]*\\)"],e=n.test.call(new RegExp("^(?:"+ -b.join("|")+")*(?:[?*+]|{\\d+(?:,\\d*)?})"),e.slice(a)));return e?"":"(?:)"}function k(a){return parseInt(a,10).toString(16)}function C(a,e){var b=a.length,c;for(c=0;c<b;++c)if(a[c]===e)return c;return-1}function y(a,e){return L.call(a)==="[object "+e+"]"}function m(a){for(;4>a.length;)a="0"+a;return a}function h(a,e){var b;if(B(e)!==e)throw new SyntaxError("Invalid duplicate regex flag "+e);a=n.replace.call(a,/^\(\?([\w$]+)\)/,function(a,b){if(n.test.call(/[gy]/,b))throw new SyntaxError("Cannot use flag g or y in mode modifier "+ -a);e=B(e+b);return""});for(b=0;b<e.length;++b)if(!N[e.charAt(b)])throw new SyntaxError("Unknown regex flag "+e.charAt(b));return{pattern:a,flags:e}}function w(a){var e={};return y(a,"String")?(f.forEach(a,/[^\s,]+/,function(a){e[a]=!0}),e):a}function x(a){if(!/^[\w$]$/.test(a))throw Error("Flag must be a single character A-Za-z0-9_$");N[a]=!0}function v(a){RegExp.prototype.exec=(a?r:n).exec;RegExp.prototype.test=(a?r:n).test;String.prototype.match=(a?r:n).match;String.prototype.replace=(a?r:n).replace; -String.prototype.split=(a?r:n).split;D.natives=a}function q(a){if(null==a)throw new TypeError("Cannot convert null or undefined to object");return a}function f(a,e){if(f.isRegExp(a)){if(void 0!==e)throw new TypeError("Cannot supply flags when copying a RegExp");return z(a)}a=void 0===a?"":String(a);e=void 0===e?"":String(e);f.isInstalled("astral")&&-1===e.indexOf("A")&&(e+="A");F[a]||(F[a]={});if(!F[a][e]){var b={hasNamedCapture:!1,captureNames:[]},c="default",d="",g=0,E=h(a,e),k=E.pattern;for(E= -E.flags;g<k.length;){do{for(var l,m=k,p=E,q=g,r=c,v=b,w=I.length,x=m.charAt(q),y=null;w--;){var t=I[w];if(!(t.leadChar&&t.leadChar!==x||t.scope!==r&&"all"!==t.scope||t.flag&&-1===p.indexOf(t.flag))&&(l=f.exec(m,t.regex,q,"sticky"))){y={matchLength:l[0].length,output:t.handler.call(v,l,r,p),reparse:t.reparse};break}}(t=y)&&t.reparse&&(k=k.slice(0,g)+t.output+k.slice(g+t.matchLength))}while(t&&t.reparse);t?(d+=t.output,g+=t.matchLength||1):(t=f.exec(k,O[c],g,"sticky")[0],d+=t,g+=t.length,"["===t&&"default"=== -c?c="class":"]"===t&&"class"===c&&(c="default"))}F[a][e]={pattern:n.replace.call(d,/(?:\(\?:\))+/g,"(?:)"),flags:n.replace.call(E,/[^gimuy]+/g,""),captures:b.hasNamedCapture?b.captureNames:null}}b=F[a][e];return A(new RegExp(b.pattern,b.flags),b.captures,a,e)}var D={astral:!1,natives:!1},n={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},r={},G={},F={},I=[],O={"default":/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/, -"class":/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/},P=/\$(?:{([\w$]+)}|(\d\d?|[\s\S]))/g,R=void 0===n.exec.call(/()??/,"")[1],Q=void 0!==/x/.flags,L={}.toString,M=c("u"),K=c("y"),N={g:!0,i:!0,m:!0,u:M,y:K};f.prototype=RegExp();f.version="3.2.0";f._clipDuplicates=B;f._hasNativeFlag=c;f._dec=l;f._hex=k;f._pad4=m;f.addToken=function(a,e,b){b=b||{};var c=b.optionalFlags,d;b.flag&&x(b.flag);if(c)for(c=n.split.call(c,""),d=0;d<c.length;++d)x(c[d]); -I.push({regex:z(a,{addG:!0,addY:K,isInternalOnly:!0}),handler:e,scope:b.scope||"default",flag:b.flag,reparse:b.reparse,leadChar:b.leadChar});f.cache.flush("patterns")};f.cache=function(a,b){G[a]||(G[a]={});return G[a][b]||(G[a][b]=f(a,b))};f.cache.flush=function(a){"patterns"===a?F={}:G={}};f.escape=function(a){return n.replace.call(q(a),/[-\[\]{}()*+?.,\\^$|#\s]/g,"\\$&")};f.exec=function(a,b,c,d){var e="g",f,u=!1;(f=K&&!!(d||b.sticky&&!1!==d))?e+="y":d&&(u=!0,e+="FakeY");b.xregexp=b.xregexp||{}; -d=b.xregexp[e]||(b.xregexp[e]=z(b,{addG:!0,addY:f,source:u?b.source+"|()":void 0,removeY:!1===d,isInternalOnly:!0}));d.lastIndex=c||0;a=r.exec.call(d,a);u&&a&&""===a.pop()&&(a=null);b.global&&(b.lastIndex=a?d.lastIndex:0);return a};f.forEach=function(a,b,c){for(var e=0,d=-1;e=f.exec(a,b,e);)c(e,++d,a,b),e=e.index+(e[0].length||1)};f.globalize=function(a){return z(a,{addG:!0})};f.install=function(a){a=w(a);!D.astral&&a.astral&&(D.astral=!0);!D.natives&&a.natives&&v(!0)};f.isInstalled=function(a){return!!D[a]}; -f.isRegExp=function(a){return"[object RegExp]"===L.call(a)};f.match=function(a,b,c){var e=b.global&&"one"!==c||"all"===c,d=(e?"g":"")+(b.sticky?"y":"")||"noGY";b.xregexp=b.xregexp||{};d=b.xregexp[d]||(b.xregexp[d]=z(b,{addG:!!e,removeG:"one"===c,isInternalOnly:!0}));a=n.match.call(q(a),d);b.global&&(b.lastIndex="one"===c&&a?a.index+a[0].length:0);return e?a||[]:a&&a[0]};f.matchChain=function(a,b){return function S(a,e){function c(a){if(d.backref){if(!(a.hasOwnProperty(d.backref)||+d.backref<a.length))throw new ReferenceError("Backreference to undefined group: "+ -d.backref);g.push(a[d.backref]||"")}else g.push(a[0])}for(var d=b[e].regex?b[e]:{regex:b[e]},g=[],h=0;h<a.length;++h)f.forEach(a[h],d.regex,c);return e!==b.length-1&&g.length?S(g,e+1):g}([a],0)};f.replace=function(a,b,c,d){var e=f.isRegExp(b),g=b.global&&"one"!==d||"all"===d,h=(g?"g":"")+(b.sticky?"y":"")||"noGY",u=b;e?(b.xregexp=b.xregexp||{},u=b.xregexp[h]||(b.xregexp[h]=z(b,{addG:!!g,removeG:"one"===d,isInternalOnly:!0}))):g&&(u=new RegExp(f.escape(String(b)),"g"));a=r.replace.call(q(a),u,c);e&& -b.global&&(b.lastIndex=0);return a};f.replaceEach=function(a,b){var c;for(c=0;c<b.length;++c){var e=b[c];a=f.replace(a,e[0],e[1],e[2])}return a};f.split=function(a,b,c){return r.split.call(q(a),b,c)};f.test=function(a,b,c,d){return!!f.exec(a,b,c,d)};f.uninstall=function(a){a=w(a);D.astral&&a.astral&&(D.astral=!1);D.natives&&a.natives&&v(!1)};f.union=function(a,b,c){function d(a,b,c){var d=m[e-u];if(b){if(++e,d)return"(?<"+d+">"}else if(c)return"\\"+(+c+u);return a}c=c||{};c=c.conjunction||"or";var e= -0;if(!y(a,"Array")||!a.length)throw new TypeError("Must provide a nonempty array of patterns to merge");for(var g=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g,h=[],k,l=0;l<a.length;++l)if(k=a[l],f.isRegExp(k)){var u=e;var m=k.xregexp&&k.xregexp.captureNames||[];h.push(n.replace.call(f(k.source).source,g,d))}else h.push(f.escape(k));return f(h.join("none"===c?"":"|"),b)};r.exec=function(a){var b=this.lastIndex,c=n.exec.apply(this,arguments),d;if(c){if(!R&&1<c.length&&-1<C(c,"")){var f= -z(this,{removeG:!0,isInternalOnly:!0});n.replace.call(String(a).slice(c.index),f,function(){var a=arguments.length,b;for(b=1;b<a-2;++b)void 0===arguments[b]&&(c[b]=void 0)})}if(this.xregexp&&this.xregexp.captureNames)for(d=1;d<c.length;++d)(f=this.xregexp.captureNames[d-1])&&(c[f]=c[d]);this.global&&!c[0].length&&this.lastIndex>c.index&&(this.lastIndex=c.index)}this.global||(this.lastIndex=b);return c};r.test=function(a){return!!r.exec.call(this,a)};r.match=function(a){if(!f.isRegExp(a))a=new RegExp(a); -else if(a.global){var b=n.match.apply(this,arguments);a.lastIndex=0;return b}return r.exec.call(a,q(this))};r.replace=function(a,b){var c=f.isRegExp(a);if(c){if(a.xregexp)var d=a.xregexp.captureNames;var e=a.lastIndex}else a+="";var g=y(b,"Function")?n.replace.call(String(this),a,function(){var e=arguments,f;if(d)for(e[0]=new String(e[0]),f=0;f<d.length;++f)d[f]&&(e[0][d[f]]=e[f+1]);c&&a.global&&(a.lastIndex=e[e.length-2]+e[0].length);return b.apply(void 0,e)}):n.replace.call(null==this?this:String(this), -a,function(){var a=arguments;return n.replace.call(String(b),P,function(b,c,e){if(c){e=+c;if(e<=a.length-3)return a[e]||"";e=d?C(d,c):-1;if(0>e)throw new SyntaxError("Backreference to undefined group "+b);return a[e+1]||""}if("$"===e)return"$";if("&"===e||0===+e)return a[0];if("`"===e)return a[a.length-1].slice(0,a[a.length-2]);if("'"===e)return a[a.length-1].slice(a[a.length-2]+a[0].length);e=+e;if(!isNaN(e)){if(e>a.length-3)throw new SyntaxError("Backreference to undefined group "+b);return a[e]|| -""}throw new SyntaxError("Invalid token "+b);})});c&&(a.lastIndex=a.global?0:e);return g};r.split=function(a,b){if(!f.isRegExp(a))return n.split.apply(this,arguments);var c=String(this),d=[],e=a.lastIndex,g=0,h;b=(void 0===b?-1:b)>>>0;f.forEach(c,a,function(a){a.index+a[0].length>g&&(d.push(c.slice(g,a.index)),1<a.length&&a.index<c.length&&Array.prototype.push.apply(d,a.slice(1)),h=a[0].length,g=a.index+h)});g===c.length?(!n.test.call(a,"")||h)&&d.push(""):d.push(c.slice(g));a.lastIndex=e;return d.length> -b?d.slice(0,b):d};f.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,function(a,b){if("B"===a[1]&&"default"===b)return a[0];throw new SyntaxError("Invalid escape "+a[0]);},{scope:"all",leadChar:"\\"});f.addToken(/\\u{([\dA-Fa-f]+)}/,function(a,b,c){b=l(a[1]);if(1114111<b)throw new SyntaxError("Invalid Unicode code point "+a[0]);if(65535>=b)return"\\u"+m(k(b));if(M&&-1<c.indexOf("u"))return a[0];throw new SyntaxError("Cannot use Unicode code point above \\u{FFFF} without flag u"); -},{scope:"all",leadChar:"\\"});f.addToken(/\[(\^?)\]/,function(a){return a[1]?"[\\s\\S]":"\\b\\B"},{leadChar:"["});f.addToken(/\(\?#[^)]*\)/,b,{leadChar:"("});f.addToken(/\s+|#[^\n]*\n?/,b,{flag:"x"});f.addToken(/\./,function(){return"[\\s\\S]"},{flag:"s",leadChar:"."});f.addToken(/\\k<([\w$]+)>/,function(a){var b=isNaN(a[1])?C(this.captureNames,a[1])+1:+a[1],c=a.index+a[0].length;if(!b||b>this.captureNames.length)throw new SyntaxError("Backreference to undefined group "+a[0]);return"\\"+b+(c===a.input.length|| -isNaN(a.input.charAt(c))?"":"(?:)")},{leadChar:"\\"});f.addToken(/\\(\d+)/,function(a,b){if(!("default"===b&&/^[1-9]/.test(a[1])&&+a[1]<=this.captureNames.length)&&"0"!==a[1])throw new SyntaxError("Cannot use octal escape or backreference to undefined group "+a[0]);return a[0]},{scope:"all",leadChar:"\\"});f.addToken(/\(\?P?<([\w$]+)>/,function(a){if(!isNaN(a[1]))throw new SyntaxError("Cannot use integer as capture name "+a[0]);if("length"===a[1]||"__proto__"===a[1])throw new SyntaxError("Cannot use reserved word as capture name "+ -a[0]);if(-1<C(this.captureNames,a[1]))throw new SyntaxError("Cannot use same name for multiple groups "+a[0]);this.captureNames.push(a[1]);this.hasNamedCapture=!0;return"("},{leadChar:"("});f.addToken(/\((?!\?)/,function(a,b,c){if(-1<c.indexOf("n"))return"(?:";this.captureNames.push(null);return"("},{optionalFlags:"n",leadChar:"("});g.exports=f},{}]},{},[8])(8)}); diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/404.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/404.html deleted file mode 100644 index 19f0749..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/404.html +++ /dev/null @@ -1,12 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block title %}{% translate 'Page not found' %}{% endblock %} - -{% block content %} - -<h2>{% translate 'Page not found' %}</h2> - -<p>{% translate 'We’re sorry, but the requested page could not be found.' %}</p> - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/500.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/500.html deleted file mode 100644 index b5ac5c3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/500.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› {% translate 'Server error' %} -</div> -{% endblock %} - -{% block title %}{% translate 'Server error (500)' %}{% endblock %} - -{% block content %} -<h1>{% translate 'Server Error <em>(500)</em>' %}</h1> -<p>{% translate 'There’s been an error. It’s been reported to the site administrators via email and should be fixed shortly. Thanks for your patience.' %}</p> - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/actions.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/actions.html deleted file mode 100644 index ca1327c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/actions.html +++ /dev/null @@ -1,23 +0,0 @@ -{% load i18n %} -<div class="actions"> - {% block actions %} - {% block actions-form %} - {% for field in action_form %}{% if field.label %}<label>{{ field.label }} {{ field }}</label>{% else %}{{ field }}{% endif %}{% endfor %} - {% endblock %} - {% block actions-submit %} - <button type="submit" class="button" title="{% translate "Run the selected action" %}" name="index" value="{{ action_index|default:0 }}">{% translate "Go" %}</button> - {% endblock %} - {% block actions-counter %} - {% if actions_selection_counter %} - <span class="action-counter" data-actions-icnt="{{ cl.result_list|length }}">{{ selection_note }}</span> - {% if cl.result_count != cl.result_list|length %} - <span class="all hidden">{{ selection_note_all }}</span> - <span class="question hidden"> - <a href="#" title="{% translate "Click here to select the objects across all pages" %}">{% blocktranslate with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktranslate %}</a> - </span> - <span class="clear hidden"><a href="#">{% translate "Clear selection" %}</a></span> - {% endif %} - {% endif %} - {% endblock %} - {% endblock %} -</div> diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/app_index.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/app_index.html deleted file mode 100644 index 727f72b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/app_index.html +++ /dev/null @@ -1,20 +0,0 @@ -{% extends "admin/index.html" %} -{% load i18n %} - -{% block bodyclass %}{{ block.super }} app-{{ app_label }}{% endblock %} - -{% if not is_popup %} -{% block nav-breadcrumbs %} - <nav aria-label="{% translate 'Breadcrumbs' %}"> - <div class="breadcrumbs"> - <a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> - › - {% for app in app_list %} - {{ app.name }} - {% endfor %} - </div> - </nav> -{% endblock %} -{% endif %} - -{% block sidebar %}{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/app_list.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/app_list.html deleted file mode 100644 index 00c4178..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/app_list.html +++ /dev/null @@ -1,40 +0,0 @@ -{% load i18n %} - -{% if app_list %} - {% for app in app_list %} - <div class="app-{{ app.app_label }} module{% if app.app_url in request.path|urlencode %} current-app{% endif %}"> - <table> - <caption> - <a href="{{ app.app_url }}" class="section" title="{% blocktranslate with name=app.name %}Models in the {{ name }} application{% endblocktranslate %}">{{ app.name }}</a> - </caption> - {% for model in app.models %} - <tr class="model-{{ model.object_name|lower }}{% if model.admin_url in request.path|urlencode %} current-model{% endif %}"> - {% if model.admin_url %} - <th scope="row"><a href="{{ model.admin_url }}"{% if model.admin_url in request.path|urlencode %} aria-current="page"{% endif %}>{{ model.name }}</a></th> - {% else %} - <th scope="row">{{ model.name }}</th> - {% endif %} - - {% if model.add_url %} - <td><a href="{{ model.add_url }}" class="addlink">{% translate 'Add' %}</a></td> - {% else %} - <td></td> - {% endif %} - - {% if model.admin_url and show_changelinks %} - {% if model.view_only %} - <td><a href="{{ model.admin_url }}" class="viewlink">{% translate 'View' %}</a></td> - {% else %} - <td><a href="{{ model.admin_url }}" class="changelink">{% translate 'Change' %}</a></td> - {% endif %} - {% elif show_changelinks %} - <td></td> - {% endif %} - </tr> - {% endfor %} - </table> - </div> - {% endfor %} -{% else %} - <p>{% translate 'You don’t have permission to view or edit anything.' %}</p> -{% endif %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/auth/user/add_form.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/auth/user/add_form.html deleted file mode 100644 index 61cf5b1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/auth/user/add_form.html +++ /dev/null @@ -1,10 +0,0 @@ -{% extends "admin/change_form.html" %} -{% load i18n %} - -{% block form_top %} - {% if not is_popup %} - <p>{% translate 'First, enter a username and password. Then, you’ll be able to edit more user options.' %}</p> - {% else %} - <p>{% translate "Enter a username and password." %}</p> - {% endif %} -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/auth/user/change_password.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/auth/user/change_password.html deleted file mode 100644 index 5a5cc2e..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/auth/user/change_password.html +++ /dev/null @@ -1,57 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n static %} -{% load admin_urls %} - -{% block extrastyle %}{{ block.super }}<link rel="stylesheet" href="{% static "admin/css/forms.css" %}">{% endblock %} -{% block bodyclass %}{{ block.super }} {{ opts.app_label }}-{{ opts.model_name }} change-form{% endblock %} -{% if not is_popup %} -{% block breadcrumbs %} -<div class="breadcrumbs"> -<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a> -› <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a> -› <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a> -› <a href="{% url opts|admin_urlname:'change' original.pk|admin_urlquote %}">{{ original|truncatewords:"18" }}</a> -› {% translate 'Change password' %} -</div> -{% endblock %} -{% endif %} -{% block content %}<div id="content-main"> -<form{% if form_url %} action="{{ form_url }}"{% endif %} method="post" id="{{ opts.model_name }}_form">{% csrf_token %}{% block form_top %}{% endblock %} -<input type="text" name="username" value="{{ original.get_username }}" class="hidden"> -<div> -{% if is_popup %}<input type="hidden" name="{{ is_popup_var }}" value="1">{% endif %} -{% if form.errors %} - <p class="errornote"> - {% blocktranslate count counter=form.errors.items|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} - </p> -{% endif %} - -<p>{% blocktranslate with username=original %}Enter a new password for the user <strong>{{ username }}</strong>.{% endblocktranslate %}</p> - -<fieldset class="module aligned"> - -<div class="form-row"> - {{ form.password1.errors }} - <div class="flex-container">{{ form.password1.label_tag }} {{ form.password1 }}</div> - {% if form.password1.help_text %} - <div class="help"{% if form.password1.id_for_label %} id="{{ form.password1.id_for_label }}_helptext">{% endif %}{{ form.password1.help_text|safe }}</div> - {% endif %} -</div> - -<div class="form-row"> - {{ form.password2.errors }} - <div class="flex-container">{{ form.password2.label_tag }} {{ form.password2 }}</div> - {% if form.password2.help_text %} - <div class="help"{% if form.password2.id_for_label %} id="{{ form.password2.id_for_label }}_helptext"{% endif %}>{{ form.password2.help_text|safe }}</div> - {% endif %} -</div> - -</fieldset> - -<div class="submit-row"> -<input type="submit" value="{% translate 'Change password' %}" class="default"> -</div> - -</div> -</form></div> -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/base.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/base.html deleted file mode 100644 index 1167c03..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/base.html +++ /dev/null @@ -1,125 +0,0 @@ -{% load i18n static %}<!DOCTYPE html> -{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %} -<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" dir="{{ LANGUAGE_BIDI|yesno:'rtl,ltr,auto' }}"> -<head> -<title>{% block title %}{% endblock %} - -{% block dark-mode-vars %} - - -{% endblock %} -{% if not is_popup and is_nav_sidebar_enabled %} - - -{% endif %} -{% block extrastyle %}{% endblock %} -{% if LANGUAGE_BIDI %}{% endif %} -{% block extrahead %}{% endblock %} -{% block responsive %} - - - {% if LANGUAGE_BIDI %}{% endif %} -{% endblock %} -{% block blockbots %}{% endblock %} - - - -{% translate 'Skip to main content' %} - -

- - {% if not is_popup %} - - {% block header %} - - {% endblock %} - - {% block nav-breadcrumbs %} - - {% endblock %} - {% endif %} - -
- {% if not is_popup and is_nav_sidebar_enabled %} - {% block nav-sidebar %} - {% include "admin/nav_sidebar.html" %} - {% endblock %} - {% endif %} -
- {% block messages %} - {% if messages %} -
    {% for message in messages %} - {{ message|capfirst }} - {% endfor %}
- {% endif %} - {% endblock messages %} - -
- {% block pretitle %}{% endblock %} - {% block content_title %}{% if title %}

{{ title }}

{% endif %}{% endblock %} - {% block content_subtitle %}{% if subtitle %}

{{ subtitle }}

{% endif %}{% endblock %} - {% block content %} - {% block object-tools %}{% endblock %} - {{ content }} - {% endblock %} - {% block sidebar %}{% endblock %} -
-
- - {% block footer %}{% endblock %} -
-
-
- - - - - - - - - - - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/base_site.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/base_site.html deleted file mode 100644 index d83ac0d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/base_site.html +++ /dev/null @@ -1,12 +0,0 @@ -{% extends "admin/base.html" %} - -{% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} - -{% block branding %} -

{{ site_header|default:_('Django administration') }}

-{% if user.is_anonymous %} - {% include "admin/color_theme_toggle.html" %} -{% endif %} -{% endblock %} - -{% block nav-global %}{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_form.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_form.html deleted file mode 100644 index 20cc4a3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_form.html +++ /dev/null @@ -1,81 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n admin_urls static admin_modify %} - -{% block extrahead %}{{ block.super }} - -{{ media }} -{% endblock %} - -{% block extrastyle %}{{ block.super }}{% endblock %} - -{% block coltype %}colM{% endblock %} - -{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-form{% endblock %} - -{% if not is_popup %} -{% block breadcrumbs %} - -{% endblock %} -{% endif %} - -{% block content %}
-{% block object-tools %} -{% if change and not is_popup %} -
    - {% block object-tools-items %} - {% change_form_object_tools %} - {% endblock %} -
-{% endif %} -{% endblock %} -
{% csrf_token %}{% block form_top %}{% endblock %} -
-{% if is_popup %}{% endif %} -{% if to_field %}{% endif %} -{% if save_on_top %}{% block submit_buttons_top %}{% submit_row %}{% endblock %}{% endif %} -{% if errors %} -

- {% blocktranslate count counter=errors|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} -

- {{ adminform.form.non_field_errors }} -{% endif %} - -{% block field_sets %} -{% for fieldset in adminform %} - {% include "admin/includes/fieldset.html" %} -{% endfor %} -{% endblock %} - -{% block after_field_sets %}{% endblock %} - -{% block inline_field_sets %} -{% for inline_admin_formset in inline_admin_formsets %} - {% include inline_admin_formset.opts.template %} -{% endfor %} -{% endblock %} - -{% block after_related_objects %}{% endblock %} - -{% block submit_buttons_bottom %}{% submit_row %}{% endblock %} - -{% block admin_change_form_document_ready %} - -{% endblock %} - -{# JavaScript for prepopulated fields #} -{% prepopulated_fields_js %} - -
-
-{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_form_object_tools.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_form_object_tools.html deleted file mode 100644 index 067ae83..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_form_object_tools.html +++ /dev/null @@ -1,8 +0,0 @@ -{% load i18n admin_urls %} -{% block object-tools-items %} -
  • - {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %} - {% translate "History" %} -
  • -{% if has_absolute_url %}
  • {% translate "View on site" %}
  • {% endif %} -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list.html deleted file mode 100644 index a0ecde1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list.html +++ /dev/null @@ -1,87 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n admin_urls static admin_list %} - -{% block extrastyle %} - {{ block.super }} - - {% if cl.formset %} - - {% endif %} - {% if cl.formset or action_form %} - - {% endif %} - {{ media.css }} - {% if not actions_on_top and not actions_on_bottom %} - - {% endif %} -{% endblock %} - -{% block extrahead %} -{{ block.super }} -{{ media.js }} - -{% endblock %} - -{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-list{% endblock %} - -{% if not is_popup %} -{% block breadcrumbs %} - -{% endblock %} -{% endif %} - -{% block coltype %}{% endblock %} - -{% block content %} -
    - {% block object-tools %} -
      - {% block object-tools-items %} - {% change_list_object_tools %} - {% endblock %} -
    - {% endblock %} - {% if cl.formset and cl.formset.errors %} -

    - {% blocktranslate count counter=cl.formset.total_error_count %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} -

    - {{ cl.formset.non_form_errors }} - {% endif %} -
    -
    - {% block search %}{% search_form cl %}{% endblock %} - {% block date_hierarchy %}{% if cl.date_hierarchy %}{% date_hierarchy cl %}{% endif %}{% endblock %} - -
    {% csrf_token %} - {% if cl.formset %} -
    {{ cl.formset.management_form }}
    - {% endif %} - - {% block result_list %} - {% if action_form and actions_on_top and cl.show_admin_actions %}{% admin_actions %}{% endif %} - {% result_list cl %} - {% if action_form and actions_on_bottom and cl.show_admin_actions %}{% admin_actions %}{% endif %} - {% endblock %} - {% block pagination %}{% pagination cl %}{% endblock %} -
    -
    - {% block filters %} - {% if cl.has_filters %} -
    -

    {% translate 'Filter' %}

    - {% if cl.has_active_filters %}

    - ✖ {% translate "Clear all filters" %} -

    {% endif %} - {% for spec in cl.filter_specs %}{% admin_list_filter cl spec %}{% endfor %} -
    - {% endif %} - {% endblock %} -
    -
    -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list_object_tools.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list_object_tools.html deleted file mode 100644 index 11cc6fa..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list_object_tools.html +++ /dev/null @@ -1,12 +0,0 @@ -{% load i18n admin_urls %} - -{% block object-tools-items %} - {% if has_add_permission %} -
  • - {% url cl.opts|admin_urlname:'add' as add_url %} - - {% blocktranslate with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktranslate %} - -
  • - {% endif %} -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list_results.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list_results.html deleted file mode 100644 index d2a9fee..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/change_list_results.html +++ /dev/null @@ -1,36 +0,0 @@ -{% load i18n %} -{% if result_hidden_fields %} -
    {# DIV for HTML validation #} -{% for item in result_hidden_fields %}{{ item }}{% endfor %} -
    -{% endif %} -{% if results %} -
    - - - -{% for header in result_headers %} -{% endfor %} - - - -{% for result in results %} -{% if result.form and result.form.non_field_errors %} - -{% endif %} -{% for item in result %}{{ item }}{% endfor %} -{% endfor %} - -
    - {% if header.sortable and header.sort_priority > 0 %} -
    - - {% if num_sorted_fields > 1 %}{{ header.sort_priority }}{% endif %} - -
    - {% endif %} -
    {% if header.sortable %}{{ header.text|capfirst }}{% else %}{{ header.text|capfirst }}{% endif %}
    -
    -
    {{ result.form.non_field_errors }}
    -
    -{% endif %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/color_theme_toggle.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/color_theme_toggle.html deleted file mode 100644 index f5a326d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/color_theme_toggle.html +++ /dev/null @@ -1,15 +0,0 @@ -{% load i18n %} - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/date_hierarchy.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/date_hierarchy.html deleted file mode 100644 index c508856..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/date_hierarchy.html +++ /dev/null @@ -1,14 +0,0 @@ -{% if show %} - -{% endif %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/delete_confirmation.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/delete_confirmation.html deleted file mode 100644 index 09e25e1..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/delete_confirmation.html +++ /dev/null @@ -1,50 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n admin_urls static %} - -{% block extrahead %} - {{ block.super }} - {{ media }} - -{% endblock %} - -{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation{% endblock %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} -{% if perms_lacking %} - {% block delete_forbidden %} -

    {% blocktranslate with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}

    -
      {{ perms_lacking|unordered_list }}
    - {% endblock %} -{% elif protected %} - {% block delete_protected %} -

    {% blocktranslate with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would require deleting the following protected related objects:{% endblocktranslate %}

    -
      {{ protected|unordered_list }}
    - {% endblock %} -{% else %} - {% block delete_confirm %} -

    {% blocktranslate with escaped_object=object %}Are you sure you want to delete the {{ object_name }} "{{ escaped_object }}"? All of the following related items will be deleted:{% endblocktranslate %}

    - {% include "admin/includes/object_delete_summary.html" %} -

    {% translate "Objects" %}

    -
      {{ deleted_objects|unordered_list }}
    -
    {% csrf_token %} -
    - - {% if is_popup %}{% endif %} - {% if to_field %}{% endif %} - - {% translate "No, take me back" %} -
    -
    - {% endblock %} -{% endif %} -{% endblock content %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/delete_selected_confirmation.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/delete_selected_confirmation.html deleted file mode 100644 index 51b93a5..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/delete_selected_confirmation.html +++ /dev/null @@ -1,47 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n l10n admin_urls static %} - -{% block extrahead %} - {{ block.super }} - {{ media }} - -{% endblock %} - -{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation delete-selected-confirmation{% endblock %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} -{% if perms_lacking %} -

    {% blocktranslate %}Deleting the selected {{ objects_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}

    -
      {{ perms_lacking|unordered_list }}
    -{% elif protected %} -

    {% blocktranslate %}Deleting the selected {{ objects_name }} would require deleting the following protected related objects:{% endblocktranslate %}

    -
      {{ protected|unordered_list }}
    -{% else %} -

    {% blocktranslate %}Are you sure you want to delete the selected {{ objects_name }}? All of the following objects and their related items will be deleted:{% endblocktranslate %}

    - {% include "admin/includes/object_delete_summary.html" %} -

    {% translate "Objects" %}

    - {% for deletable_object in deletable_objects %} -
      {{ deletable_object|unordered_list }}
    - {% endfor %} -
    {% csrf_token %} -
    - {% for obj in queryset %} - - {% endfor %} - - - - {% translate "No, take me back" %} -
    -
    -{% endif %} -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/edit_inline/stacked.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/edit_inline/stacked.html deleted file mode 100644 index 31d917b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/edit_inline/stacked.html +++ /dev/null @@ -1,29 +0,0 @@ -{% load i18n admin_urls %} -
    -
    - {% if inline_admin_formset.formset.max_num == 1 %} -

    {{ inline_admin_formset.opts.verbose_name|capfirst }}

    - {% else %} -

    {{ inline_admin_formset.opts.verbose_name_plural|capfirst }}

    - {% endif %} -{{ inline_admin_formset.formset.management_form }} -{{ inline_admin_formset.formset.non_form_errors }} - -{% for inline_admin_form in inline_admin_formset %}
    -

    {{ inline_admin_formset.opts.verbose_name|capfirst }}: {% if inline_admin_form.original %}{{ inline_admin_form.original }}{% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %} {% if inline_admin_formset.has_change_permission %}{% translate "Change" %}{% else %}{% translate "View" %}{% endif %}{% endif %} -{% else %}#{{ forloop.counter }}{% endif %} - {% if inline_admin_form.show_url %}{% translate "View on site" %}{% endif %} - {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission and inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }} {{ inline_admin_form.deletion_field.label_tag }}{% endif %} -

    - {% if inline_admin_form.form.non_field_errors %}{{ inline_admin_form.form.non_field_errors }}{% endif %} - {% for fieldset in inline_admin_form %} - {% include "admin/includes/fieldset.html" %} - {% endfor %} - {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %} - {% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %} -
    {% endfor %} -
    -
    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/edit_inline/tabular.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/edit_inline/tabular.html deleted file mode 100644 index 84c9fe3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/edit_inline/tabular.html +++ /dev/null @@ -1,66 +0,0 @@ -{% load i18n admin_urls static admin_modify %} -
    - -
    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/filter.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/filter.html deleted file mode 100644 index a6094ec..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/filter.html +++ /dev/null @@ -1,12 +0,0 @@ -{% load i18n %} -
    - - {% blocktranslate with filter_title=title %} By {{ filter_title }} {% endblocktranslate %} - - -
    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html deleted file mode 100644 index 9a4372f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html +++ /dev/null @@ -1,34 +0,0 @@ -
    - {% if fieldset.name %}

    {{ fieldset.name }}

    {% endif %} - {% if fieldset.description %} -
    {{ fieldset.description|safe }}
    - {% endif %} - {% for line in fieldset %} -
    - {% if line.fields|length == 1 %}{{ line.errors }}{% else %}
    {% endif %} - {% for field in line %} -
    - {% if not line.fields|length == 1 and not field.is_readonly %}{{ field.errors }}{% endif %} -
    - {% if field.is_checkbox %} - {{ field.field }}{{ field.label_tag }} - {% else %} - {{ field.label_tag }} - {% if field.is_readonly %} -
    {{ field.contents }}
    - {% else %} - {{ field.field }} - {% endif %} - {% endif %} -
    - {% if field.field.help_text %} -
    -
    {{ field.field.help_text|safe }}
    -
    - {% endif %} -
    - {% endfor %} - {% if not line.fields|length == 1 %}
    {% endif %} -
    - {% endfor %} -
    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/includes/object_delete_summary.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/includes/object_delete_summary.html deleted file mode 100644 index 9ad97db..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/includes/object_delete_summary.html +++ /dev/null @@ -1,7 +0,0 @@ -{% load i18n %} -

    {% translate "Summary" %}

    -
      - {% for model_name, object_count in model_count %} -
    • {{ model_name|capfirst }}: {{ object_count }}
    • - {% endfor %} -
    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/index.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/index.html deleted file mode 100644 index af4f26d..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/index.html +++ /dev/null @@ -1,50 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n static %} - -{% block extrastyle %}{{ block.super }}{% endblock %} - -{% block coltype %}colMS{% endblock %} - -{% block bodyclass %}{{ block.super }} dashboard{% endblock %} - -{% block nav-breadcrumbs %}{% endblock %} - -{% block nav-sidebar %}{% endblock %} - -{% block content %} -
    - {% include "admin/app_list.html" with app_list=app_list show_changelinks=True %} -
    -{% endblock %} - -{% block sidebar %} - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/invalid_setup.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/invalid_setup.html deleted file mode 100644 index 1ef7c71..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/invalid_setup.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} -

    {% translate 'Something’s wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user.' %}

    -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/login.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/login.html deleted file mode 100644 index b61d9ec..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/login.html +++ /dev/null @@ -1,68 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n static %} - -{% block extrastyle %}{{ block.super }} -{{ form.media }} -{% endblock %} - -{% block bodyclass %}{{ block.super }} login{% endblock %} - -{% block usertools %}{% endblock %} - -{% block nav-global %}{% endblock %} - -{% block nav-sidebar %}{% endblock %} - -{% block content_title %}{% endblock %} - -{% block nav-breadcrumbs %}{% endblock %} - -{% block content %} -{% if form.errors and not form.non_field_errors %} -

    -{% blocktranslate count counter=form.errors.items|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} -

    -{% endif %} - -{% if form.non_field_errors %} -{% for error in form.non_field_errors %} -

    - {{ error }} -

    -{% endfor %} -{% endif %} - -
    - -{% if user.is_authenticated %} -

    -{% blocktranslate trimmed %} - You are authenticated as {{ username }}, but are not authorized to - access this page. Would you like to login to a different account? -{% endblocktranslate %} -

    -{% endif %} - -
    {% csrf_token %} -
    - {{ form.username.errors }} - {{ form.username.label_tag }} {{ form.username }} -
    -
    - {{ form.password.errors }} - {{ form.password.label_tag }} {{ form.password }} - -
    - {% url 'admin_password_reset' as password_reset_url %} - {% if password_reset_url %} - - {% endif %} -
    - -
    -
    - -
    -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/nav_sidebar.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/nav_sidebar.html deleted file mode 100644 index a413e23..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/nav_sidebar.html +++ /dev/null @@ -1,8 +0,0 @@ -{% load i18n %} - - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/object_history.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/object_history.html deleted file mode 100644 index f83984c..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/object_history.html +++ /dev/null @@ -1,56 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n admin_urls %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} -
    -
    - -{% if action_list %} - - - - - - - - - - {% for action in action_list %} - - - - - - {% endfor %} - -
    {% translate 'Date/time' %}{% translate 'User' %}{% translate 'Action' %}
    {{ action.action_time|date:"DATETIME_FORMAT" }}{{ action.user.get_username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %}{{ action.get_change_message }}
    -

    - {% if pagination_required %} - {% for i in page_range %} - {% if i == action_list.paginator.ELLIPSIS %} - {{ action_list.paginator.ELLIPSIS }} - {% elif i == action_list.number %} - {{ i }} - {% else %} - {{ i }} - {% endif %} - {% endfor %} - {% endif %} - {{ action_list.paginator.count }} {% blocktranslate count counter=action_list.paginator.count %}entry{% plural %}entries{% endblocktranslate %} -

    -{% else %} -

    {% translate 'This object doesn’t have a change history. It probably wasn’t added via this admin site.' %}

    -{% endif %} -
    -
    -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/pagination.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/pagination.html deleted file mode 100644 index bc3117b..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/pagination.html +++ /dev/null @@ -1,12 +0,0 @@ -{% load admin_list %} -{% load i18n %} -

    -{% if pagination_required %} -{% for i in page_range %} - {% paginator_number cl i %} -{% endfor %} -{% endif %} -{{ cl.result_count }} {% if cl.result_count == 1 %}{{ cl.opts.verbose_name }}{% else %}{{ cl.opts.verbose_name_plural }}{% endif %} -{% if show_all_url %}{% translate 'Show all' %}{% endif %} -{% if cl.formset and cl.result_count %}{% endif %} -

    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/popup_response.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/popup_response.html deleted file mode 100644 index 57a1ae3..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/popup_response.html +++ /dev/null @@ -1,10 +0,0 @@ -{% load i18n static %} - - {% translate 'Popup closing…' %} - - - - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/prepopulated_fields_js.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/prepopulated_fields_js.html deleted file mode 100644 index dd6e561..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/prepopulated_fields_js.html +++ /dev/null @@ -1,5 +0,0 @@ -{% load static %} - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/search_form.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/search_form.html deleted file mode 100644 index ad86af9..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/search_form.html +++ /dev/null @@ -1,20 +0,0 @@ -{% load i18n static %} -{% if cl.search_fields %} -
    -{% endif %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/submit_line.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/submit_line.html deleted file mode 100644 index b2b2054..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/submit_line.html +++ /dev/null @@ -1,17 +0,0 @@ -{% load i18n admin_urls %} -
    -{% block submit-row %} -{% if show_save %}{% endif %} -{% if show_save_as_new %}{% endif %} -{% if show_save_and_add_another %}{% endif %} -{% if show_save_and_continue %}{% endif %} -{% if show_close %} - {% url opts|admin_urlname:'changelist' as changelist_url %} - {% translate 'Close' %} -{% endif %} -{% if show_delete_link and original %} - {% url opts|admin_urlname:'delete' original.pk|admin_urlquote as delete_url %} - {% translate "Delete" %} -{% endif %} -{% endblock %} -
    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/clearable_file_input.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/clearable_file_input.html deleted file mode 100644 index fe71ebd..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/clearable_file_input.html +++ /dev/null @@ -1,6 +0,0 @@ -{% if widget.is_initial %}

    {{ widget.initial_text }}: {{ widget.value }}{% if not widget.required %} - - -{% endif %}
    -{{ widget.input_text }}:{% endif %} -{% if widget.is_initial %}

    {% endif %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/date.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/date.html deleted file mode 100644 index acd5d5f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/date.html +++ /dev/null @@ -1,3 +0,0 @@ -

    - {% include "django/forms/widgets/date.html" %} -

    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html deleted file mode 100644 index be93e05..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html +++ /dev/null @@ -1,2 +0,0 @@ -{% include 'django/forms/widgets/input.html' %}{% if related_url %}{% endif %}{% if link_label %} -{% if link_url %}{{ link_label }}{% else %}{{ link_label }}{% endif %}{% endif %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html deleted file mode 100644 index 0dd0331..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html +++ /dev/null @@ -1 +0,0 @@ -{% include 'admin/widgets/foreign_key_raw_id.html' %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/radio.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/radio.html deleted file mode 100644 index 780899a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/radio.html +++ /dev/null @@ -1 +0,0 @@ -{% include "django/forms/widgets/multiple_input.html" %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html deleted file mode 100644 index 6c285ea..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html +++ /dev/null @@ -1,41 +0,0 @@ -{% load i18n static %} - diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/split_datetime.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/split_datetime.html deleted file mode 100644 index 7fc7bf6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/split_datetime.html +++ /dev/null @@ -1,4 +0,0 @@ -

    - {{ date_label }} {% with widget=widget.subwidgets.0 %}{% include widget.template_name %}{% endwith %}
    - {{ time_label }} {% with widget=widget.subwidgets.1 %}{% include widget.template_name %}{% endwith %} -

    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/time.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/time.html deleted file mode 100644 index e4eaca6..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/time.html +++ /dev/null @@ -1,3 +0,0 @@ -

    - {% include "django/forms/widgets/time.html" %} -

    diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/url.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/url.html deleted file mode 100644 index 69dc401..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/admin/widgets/url.html +++ /dev/null @@ -1 +0,0 @@ -{% if url_valid %}

    {{ current_label }} {{ widget.value }}
    {{ change_label }} {% endif %}{% include "django/forms/widgets/input.html" %}{% if url_valid %}

    {% endif %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/logged_out.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/logged_out.html deleted file mode 100644 index e9a5545..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/logged_out.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %}{% endblock %} - -{% block nav-sidebar %}{% endblock %} - -{% block content %} - -

    {% translate "Thanks for spending some quality time with the web site today." %}

    - -

    {% translate 'Log in again' %}

    - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_change_done.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_change_done.html deleted file mode 100644 index 784ab37..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_change_done.html +++ /dev/null @@ -1,20 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block userlinks %} - {% url 'django-admindocs-docroot' as docsroot %}{% if docsroot %}{% translate 'Documentation' %} / {% endif %}{% translate 'Change password' %} / -
    - {% csrf_token %} - -
    - {% include "admin/color_theme_toggle.html" %} -{% endblock %} -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} -

    {% translate 'Your password was changed.' %}

    -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_change_form.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_change_form.html deleted file mode 100644 index fde2373..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_change_form.html +++ /dev/null @@ -1,64 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n static %} -{% block extrastyle %}{{ block.super }}{% endblock %} -{% block userlinks %} - {% url 'django-admindocs-docroot' as docsroot %}{% if docsroot %}{% translate 'Documentation' %} / {% endif %} {% translate 'Change password' %} / -
    - {% csrf_token %} - -
    - {% include "admin/color_theme_toggle.html" %} -{% endblock %} -{% block breadcrumbs %} - -{% endblock %} - -{% block content %}
    - -
    {% csrf_token %} -
    -{% if form.errors %} -

    - {% blocktranslate count counter=form.errors.items|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} -

    -{% endif %} - - -

    {% translate 'Please enter your old password, for security’s sake, and then enter your new password twice so we can verify you typed it in correctly.' %}

    - -
    - -
    - {{ form.old_password.errors }} -
    {{ form.old_password.label_tag }} {{ form.old_password }}
    -
    - -
    - {{ form.new_password1.errors }} -
    {{ form.new_password1.label_tag }} {{ form.new_password1 }}
    - {% if form.new_password1.help_text %} -
    {{ form.new_password1.help_text|safe }}
    - {% endif %} -
    - -
    - {{ form.new_password2.errors }} -
    {{ form.new_password2.label_tag }} {{ form.new_password2 }}
    - {% if form.new_password2.help_text %} -
    {{ form.new_password2.help_text|safe }}
    - {% endif %} -
    - -
    - -
    - -
    - -
    -
    - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_complete.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_complete.html deleted file mode 100644 index e6a383f..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_complete.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} - -

    {% translate "Your password has been set. You may go ahead and log in now." %}

    - -

    {% translate 'Log in' %}

    - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_confirm.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_confirm.html deleted file mode 100644 index c93f9c4..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_confirm.html +++ /dev/null @@ -1,41 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n static %} - -{% block extrastyle %}{{ block.super }}{% endblock %} -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} - -{% if validlink %} - -

    {% translate "Please enter your new password twice so we can verify you typed it in correctly." %}

    - -
    {% csrf_token %} -
    - -
    - {{ form.new_password1.errors }} - - {{ form.new_password1 }} -
    -
    - {{ form.new_password2.errors }} - - {{ form.new_password2 }} -
    - -
    -
    - -{% else %} - -

    {% translate "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}

    - -{% endif %} - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_done.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_done.html deleted file mode 100644 index 8b1971a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_done.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} - -

    {% translate 'We’ve emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly.' %}

    - -

    {% translate 'If you don’t receive an email, please make sure you’ve entered the address you registered with, and check your spam folder.' %}

    - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_email.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_email.html deleted file mode 100644 index 6482209..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_email.html +++ /dev/null @@ -1,14 +0,0 @@ -{% load i18n %}{% autoescape off %} -{% blocktranslate %}You're receiving this email because you requested a password reset for your user account at {{ site_name }}.{% endblocktranslate %} - -{% translate "Please go to the following page and choose a new password:" %} -{% block reset_link %} -{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %} -{% endblock %} -{% translate 'Your username, in case you’ve forgotten:' %} {{ user.get_username }} - -{% translate "Thanks for using our site!" %} - -{% blocktranslate %}The {{ site_name }} team{% endblocktranslate %} - -{% endautoescape %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_form.html b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_form.html deleted file mode 100644 index 3804415..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templates/registration/password_reset_form.html +++ /dev/null @@ -1,27 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n static %} - -{% block extrastyle %}{{ block.super }}{% endblock %} -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} - -

    {% translate 'Forgotten your password? Enter your email address below, and we’ll email instructions for setting a new one.' %}

    - -
    {% csrf_token %} -
    -
    - {{ form.email.errors }} - - {{ form.email }} -
    - -
    -
    - -{% endblock %} diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/__init__.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_list.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_list.py deleted file mode 100644 index 5865843..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_list.py +++ /dev/null @@ -1,533 +0,0 @@ -import datetime - -from django.conf import settings -from django.contrib.admin.templatetags.admin_urls import add_preserved_filters -from django.contrib.admin.utils import ( - display_for_field, - display_for_value, - get_fields_from_path, - label_for_field, - lookup_field, -) -from django.contrib.admin.views.main import ( - ALL_VAR, - IS_POPUP_VAR, - ORDER_VAR, - PAGE_VAR, - SEARCH_VAR, -) -from django.core.exceptions import ObjectDoesNotExist -from django.db import models -from django.template import Library -from django.template.loader import get_template -from django.templatetags.static import static -from django.urls import NoReverseMatch -from django.utils import formats, timezone -from django.utils.html import format_html -from django.utils.safestring import mark_safe -from django.utils.text import capfirst -from django.utils.translation import gettext as _ - -from .base import InclusionAdminNode - -register = Library() - - -@register.simple_tag -def paginator_number(cl, i): - """ - Generate an individual page index link in a paginated list. - """ - if i == cl.paginator.ELLIPSIS: - return format_html("{} ", cl.paginator.ELLIPSIS) - elif i == cl.page_num: - return format_html('{} ', i) - else: - return format_html( - '{} ', - cl.get_query_string({PAGE_VAR: i}), - mark_safe(' class="end"' if i == cl.paginator.num_pages else ""), - i, - ) - - -def pagination(cl): - """ - Generate the series of links to the pages in a paginated list. - """ - pagination_required = (not cl.show_all or not cl.can_show_all) and cl.multi_page - page_range = ( - cl.paginator.get_elided_page_range(cl.page_num) if pagination_required else [] - ) - need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page - return { - "cl": cl, - "pagination_required": pagination_required, - "show_all_url": need_show_all_link and cl.get_query_string({ALL_VAR: ""}), - "page_range": page_range, - "ALL_VAR": ALL_VAR, - "1": 1, - } - - -@register.tag(name="pagination") -def pagination_tag(parser, token): - return InclusionAdminNode( - parser, - token, - func=pagination, - template_name="pagination.html", - takes_context=False, - ) - - -def result_headers(cl): - """ - Generate the list column headers. - """ - ordering_field_columns = cl.get_ordering_field_columns() - for i, field_name in enumerate(cl.list_display): - text, attr = label_for_field( - field_name, cl.model, model_admin=cl.model_admin, return_attr=True - ) - is_field_sortable = cl.sortable_by is None or field_name in cl.sortable_by - if attr: - field_name = _coerce_field_name(field_name, i) - # Potentially not sortable - - # if the field is the action checkbox: no sorting and special class - if field_name == "action_checkbox": - yield { - "text": text, - "class_attrib": mark_safe(' class="action-checkbox-column"'), - "sortable": False, - } - continue - - admin_order_field = getattr(attr, "admin_order_field", None) - # Set ordering for attr that is a property, if defined. - if isinstance(attr, property) and hasattr(attr, "fget"): - admin_order_field = getattr(attr.fget, "admin_order_field", None) - if not admin_order_field: - is_field_sortable = False - - if not is_field_sortable: - # Not sortable - yield { - "text": text, - "class_attrib": format_html(' class="column-{}"', field_name), - "sortable": False, - } - continue - - # OK, it is sortable if we got this far - th_classes = ["sortable", "column-{}".format(field_name)] - order_type = "" - new_order_type = "asc" - sort_priority = 0 - # Is it currently being sorted on? - is_sorted = i in ordering_field_columns - if is_sorted: - order_type = ordering_field_columns.get(i).lower() - sort_priority = list(ordering_field_columns).index(i) + 1 - th_classes.append("sorted %sending" % order_type) - new_order_type = {"asc": "desc", "desc": "asc"}[order_type] - - # build new ordering param - o_list_primary = [] # URL for making this field the primary sort - o_list_remove = [] # URL for removing this field from sort - o_list_toggle = [] # URL for toggling order type for this field - - def make_qs_param(t, n): - return ("-" if t == "desc" else "") + str(n) - - for j, ot in ordering_field_columns.items(): - if j == i: # Same column - param = make_qs_param(new_order_type, j) - # We want clicking on this header to bring the ordering to the - # front - o_list_primary.insert(0, param) - o_list_toggle.append(param) - # o_list_remove - omit - else: - param = make_qs_param(ot, j) - o_list_primary.append(param) - o_list_toggle.append(param) - o_list_remove.append(param) - - if i not in ordering_field_columns: - o_list_primary.insert(0, make_qs_param(new_order_type, i)) - - yield { - "text": text, - "sortable": True, - "sorted": is_sorted, - "ascending": order_type == "asc", - "sort_priority": sort_priority, - "url_primary": cl.get_query_string({ORDER_VAR: ".".join(o_list_primary)}), - "url_remove": cl.get_query_string({ORDER_VAR: ".".join(o_list_remove)}), - "url_toggle": cl.get_query_string({ORDER_VAR: ".".join(o_list_toggle)}), - "class_attrib": format_html(' class="{}"', " ".join(th_classes)) - if th_classes - else "", - } - - -def _boolean_icon(field_val): - icon_url = static( - "admin/img/icon-%s.svg" % {True: "yes", False: "no", None: "unknown"}[field_val] - ) - return format_html('{}', icon_url, field_val) - - -def _coerce_field_name(field_name, field_index): - """ - Coerce a field_name (which may be a callable) to a string. - """ - if callable(field_name): - if field_name.__name__ == "": - return "lambda" + str(field_index) - else: - return field_name.__name__ - return field_name - - -def items_for_result(cl, result, form): - """ - Generate the actual list of data. - """ - - def link_in_col(is_first, field_name, cl): - if cl.list_display_links is None: - return False - if is_first and not cl.list_display_links: - return True - return field_name in cl.list_display_links - - first = True - pk = cl.lookup_opts.pk.attname - for field_index, field_name in enumerate(cl.list_display): - empty_value_display = cl.model_admin.get_empty_value_display() - row_classes = ["field-%s" % _coerce_field_name(field_name, field_index)] - try: - f, attr, value = lookup_field(field_name, result, cl.model_admin) - except ObjectDoesNotExist: - result_repr = empty_value_display - else: - empty_value_display = getattr( - attr, "empty_value_display", empty_value_display - ) - if f is None or f.auto_created: - if field_name == "action_checkbox": - row_classes = ["action-checkbox"] - boolean = getattr(attr, "boolean", False) - result_repr = display_for_value(value, empty_value_display, boolean) - if isinstance(value, (datetime.date, datetime.time)): - row_classes.append("nowrap") - else: - if isinstance(f.remote_field, models.ManyToOneRel): - field_val = getattr(result, f.name) - if field_val is None: - result_repr = empty_value_display - else: - result_repr = field_val - else: - result_repr = display_for_field(value, f, empty_value_display) - if isinstance( - f, (models.DateField, models.TimeField, models.ForeignKey) - ): - row_classes.append("nowrap") - row_class = mark_safe(' class="%s"' % " ".join(row_classes)) - # If list_display_links not defined, add the link tag to the first field - if link_in_col(first, field_name, cl): - table_tag = "th" if first else "td" - first = False - - # Display link to the result's change_view if the url exists, else - # display just the result's representation. - try: - url = cl.url_for_result(result) - except NoReverseMatch: - link_or_text = result_repr - else: - url = add_preserved_filters( - {"preserved_filters": cl.preserved_filters, "opts": cl.opts}, url - ) - # Convert the pk to something that can be used in JavaScript. - # Problem cases are non-ASCII strings. - if cl.to_field: - attr = str(cl.to_field) - else: - attr = pk - value = result.serializable_value(attr) - link_or_text = format_html( - '{}', - url, - format_html(' data-popup-opener="{}"', value) - if cl.is_popup - else "", - result_repr, - ) - - yield format_html( - "<{}{}>{}", table_tag, row_class, link_or_text, table_tag - ) - else: - # By default the fields come from ModelAdmin.list_editable, but if we pull - # the fields out of the form instead of list_editable custom admins - # can provide fields on a per request basis - if ( - form - and field_name in form.fields - and not ( - field_name == cl.model._meta.pk.name - and form[cl.model._meta.pk.name].is_hidden - ) - ): - bf = form[field_name] - result_repr = mark_safe(str(bf.errors) + str(bf)) - yield format_html("{}", row_class, result_repr) - if form and not form[cl.model._meta.pk.name].is_hidden: - yield format_html("{}", form[cl.model._meta.pk.name]) - - -class ResultList(list): - """ - Wrapper class used to return items in a list_editable changelist, annotated - with the form object for error reporting purposes. Needed to maintain - backwards compatibility with existing admin templates. - """ - - def __init__(self, form, *items): - self.form = form - super().__init__(*items) - - -def results(cl): - if cl.formset: - for res, form in zip(cl.result_list, cl.formset.forms): - yield ResultList(form, items_for_result(cl, res, form)) - else: - for res in cl.result_list: - yield ResultList(None, items_for_result(cl, res, None)) - - -def result_hidden_fields(cl): - if cl.formset: - for res, form in zip(cl.result_list, cl.formset.forms): - if form[cl.model._meta.pk.name].is_hidden: - yield mark_safe(form[cl.model._meta.pk.name]) - - -def result_list(cl): - """ - Display the headers and data list together. - """ - headers = list(result_headers(cl)) - num_sorted_fields = 0 - for h in headers: - if h["sortable"] and h["sorted"]: - num_sorted_fields += 1 - return { - "cl": cl, - "result_hidden_fields": list(result_hidden_fields(cl)), - "result_headers": headers, - "num_sorted_fields": num_sorted_fields, - "results": list(results(cl)), - } - - -@register.tag(name="result_list") -def result_list_tag(parser, token): - return InclusionAdminNode( - parser, - token, - func=result_list, - template_name="change_list_results.html", - takes_context=False, - ) - - -def date_hierarchy(cl): - """ - Display the date hierarchy for date drill-down functionality. - """ - if cl.date_hierarchy: - field_name = cl.date_hierarchy - field = get_fields_from_path(cl.model, field_name)[-1] - if isinstance(field, models.DateTimeField): - dates_or_datetimes = "datetimes" - qs_kwargs = {"is_dst": True} if settings.USE_DEPRECATED_PYTZ else {} - else: - dates_or_datetimes = "dates" - qs_kwargs = {} - year_field = "%s__year" % field_name - month_field = "%s__month" % field_name - day_field = "%s__day" % field_name - field_generic = "%s__" % field_name - year_lookup = cl.params.get(year_field) - month_lookup = cl.params.get(month_field) - day_lookup = cl.params.get(day_field) - - def link(filters): - return cl.get_query_string(filters, [field_generic]) - - if not (year_lookup or month_lookup or day_lookup): - # select appropriate start level - date_range = cl.queryset.aggregate( - first=models.Min(field_name), last=models.Max(field_name) - ) - if date_range["first"] and date_range["last"]: - if dates_or_datetimes == "datetimes": - date_range = { - k: timezone.localtime(v) if timezone.is_aware(v) else v - for k, v in date_range.items() - } - if date_range["first"].year == date_range["last"].year: - year_lookup = date_range["first"].year - if date_range["first"].month == date_range["last"].month: - month_lookup = date_range["first"].month - - if year_lookup and month_lookup and day_lookup: - day = datetime.date(int(year_lookup), int(month_lookup), int(day_lookup)) - return { - "show": True, - "back": { - "link": link({year_field: year_lookup, month_field: month_lookup}), - "title": capfirst(formats.date_format(day, "YEAR_MONTH_FORMAT")), - }, - "choices": [ - {"title": capfirst(formats.date_format(day, "MONTH_DAY_FORMAT"))} - ], - } - elif year_lookup and month_lookup: - days = getattr(cl.queryset, dates_or_datetimes)( - field_name, "day", **qs_kwargs - ) - return { - "show": True, - "back": { - "link": link({year_field: year_lookup}), - "title": str(year_lookup), - }, - "choices": [ - { - "link": link( - { - year_field: year_lookup, - month_field: month_lookup, - day_field: day.day, - } - ), - "title": capfirst(formats.date_format(day, "MONTH_DAY_FORMAT")), - } - for day in days - ], - } - elif year_lookup: - months = getattr(cl.queryset, dates_or_datetimes)( - field_name, "month", **qs_kwargs - ) - return { - "show": True, - "back": {"link": link({}), "title": _("All dates")}, - "choices": [ - { - "link": link( - {year_field: year_lookup, month_field: month.month} - ), - "title": capfirst( - formats.date_format(month, "YEAR_MONTH_FORMAT") - ), - } - for month in months - ], - } - else: - years = getattr(cl.queryset, dates_or_datetimes)( - field_name, "year", **qs_kwargs - ) - return { - "show": True, - "back": None, - "choices": [ - { - "link": link({year_field: str(year.year)}), - "title": str(year.year), - } - for year in years - ], - } - - -@register.tag(name="date_hierarchy") -def date_hierarchy_tag(parser, token): - return InclusionAdminNode( - parser, - token, - func=date_hierarchy, - template_name="date_hierarchy.html", - takes_context=False, - ) - - -def search_form(cl): - """ - Display a search form for searching the list. - """ - return { - "cl": cl, - "show_result_count": cl.result_count != cl.full_result_count, - "search_var": SEARCH_VAR, - "is_popup_var": IS_POPUP_VAR, - } - - -@register.tag(name="search_form") -def search_form_tag(parser, token): - return InclusionAdminNode( - parser, - token, - func=search_form, - template_name="search_form.html", - takes_context=False, - ) - - -@register.simple_tag -def admin_list_filter(cl, spec): - tpl = get_template(spec.template) - return tpl.render( - { - "title": spec.title, - "choices": list(spec.choices(cl)), - "spec": spec, - } - ) - - -def admin_actions(context): - """ - Track the number of times the action field has been rendered on the page, - so we know which value to use. - """ - context["action_index"] = context.get("action_index", -1) + 1 - return context - - -@register.tag(name="admin_actions") -def admin_actions_tag(parser, token): - return InclusionAdminNode( - parser, token, func=admin_actions, template_name="actions.html" - ) - - -@register.tag(name="change_list_object_tools") -def change_list_object_tools_tag(parser, token): - """Display the row of change list object tools.""" - return InclusionAdminNode( - parser, - token, - func=lambda context: context, - template_name="change_list_object_tools.html", - ) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_modify.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_modify.py deleted file mode 100644 index 0e3046a..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_modify.py +++ /dev/null @@ -1,150 +0,0 @@ -import json - -from django import template -from django.template.context import Context - -from .base import InclusionAdminNode - -register = template.Library() - - -def prepopulated_fields_js(context): - """ - Create a list of prepopulated_fields that should render JavaScript for - the prepopulated fields for both the admin form and inlines. - """ - prepopulated_fields = [] - if "adminform" in context: - prepopulated_fields.extend(context["adminform"].prepopulated_fields) - if "inline_admin_formsets" in context: - for inline_admin_formset in context["inline_admin_formsets"]: - for inline_admin_form in inline_admin_formset: - if inline_admin_form.original is None: - prepopulated_fields.extend(inline_admin_form.prepopulated_fields) - - prepopulated_fields_json = [] - for field in prepopulated_fields: - prepopulated_fields_json.append( - { - "id": "#%s" % field["field"].auto_id, - "name": field["field"].name, - "dependency_ids": [ - "#%s" % dependency.auto_id for dependency in field["dependencies"] - ], - "dependency_list": [ - dependency.name for dependency in field["dependencies"] - ], - "maxLength": field["field"].field.max_length or 50, - "allowUnicode": getattr(field["field"].field, "allow_unicode", False), - } - ) - - context.update( - { - "prepopulated_fields": prepopulated_fields, - "prepopulated_fields_json": json.dumps(prepopulated_fields_json), - } - ) - return context - - -@register.tag(name="prepopulated_fields_js") -def prepopulated_fields_js_tag(parser, token): - return InclusionAdminNode( - parser, - token, - func=prepopulated_fields_js, - template_name="prepopulated_fields_js.html", - ) - - -def submit_row(context): - """ - Display the row of buttons for delete and save. - """ - add = context["add"] - change = context["change"] - is_popup = context["is_popup"] - save_as = context["save_as"] - show_save = context.get("show_save", True) - show_save_and_add_another = context.get("show_save_and_add_another", True) - show_save_and_continue = context.get("show_save_and_continue", True) - has_add_permission = context["has_add_permission"] - has_change_permission = context["has_change_permission"] - has_view_permission = context["has_view_permission"] - has_editable_inline_admin_formsets = context["has_editable_inline_admin_formsets"] - can_save = ( - (has_change_permission and change) - or (has_add_permission and add) - or has_editable_inline_admin_formsets - ) - can_save_and_add_another = ( - has_add_permission - and not is_popup - and (not save_as or add) - and can_save - and show_save_and_add_another - ) - can_save_and_continue = ( - not is_popup and can_save and has_view_permission and show_save_and_continue - ) - can_change = has_change_permission or has_editable_inline_admin_formsets - ctx = Context(context) - ctx.update( - { - "can_change": can_change, - "show_delete_link": ( - not is_popup - and context["has_delete_permission"] - and change - and context.get("show_delete", True) - ), - "show_save_as_new": not is_popup - and has_add_permission - and change - and save_as, - "show_save_and_add_another": can_save_and_add_another, - "show_save_and_continue": can_save_and_continue, - "show_save": show_save and can_save, - "show_close": not (show_save and can_save), - } - ) - return ctx - - -@register.tag(name="submit_row") -def submit_row_tag(parser, token): - return InclusionAdminNode( - parser, token, func=submit_row, template_name="submit_line.html" - ) - - -@register.tag(name="change_form_object_tools") -def change_form_object_tools_tag(parser, token): - """Display the row of change form object tools.""" - return InclusionAdminNode( - parser, - token, - func=lambda context: context, - template_name="change_form_object_tools.html", - ) - - -@register.filter -def cell_count(inline_admin_form): - """Return the number of cells used in a tabular inline.""" - count = 1 # Hidden cell with hidden 'id' field - for fieldset in inline_admin_form: - # Count all visible fields. - for line in fieldset: - for field in line: - try: - is_hidden = field.field.is_hidden - except AttributeError: - is_hidden = field.field["is_hidden"] - if not is_hidden: - count += 1 - if inline_admin_form.formset.can_delete: - # Delete checkbox - count += 1 - return count diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_urls.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_urls.py deleted file mode 100644 index 13ded03..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/admin_urls.py +++ /dev/null @@ -1,66 +0,0 @@ -from urllib.parse import parse_qsl, unquote, urlparse, urlunparse - -from django import template -from django.contrib.admin.utils import quote -from django.urls import Resolver404, get_script_prefix, resolve -from django.utils.http import urlencode - -register = template.Library() - - -@register.filter -def admin_urlname(value, arg): - return "admin:%s_%s_%s" % (value.app_label, value.model_name, arg) - - -@register.filter -def admin_urlquote(value): - return quote(value) - - -@register.simple_tag(takes_context=True) -def add_preserved_filters(context, url, popup=False, to_field=None): - opts = context.get("opts") - preserved_filters = context.get("preserved_filters") - - parsed_url = list(urlparse(url)) - parsed_qs = dict(parse_qsl(parsed_url[4])) - merged_qs = {} - - if opts and preserved_filters: - preserved_filters = dict(parse_qsl(preserved_filters)) - - match_url = "/%s" % unquote(url).partition(get_script_prefix())[2] - try: - match = resolve(match_url) - except Resolver404: - pass - else: - current_url = "%s:%s" % (match.app_name, match.url_name) - changelist_url = "admin:%s_%s_changelist" % ( - opts.app_label, - opts.model_name, - ) - if ( - changelist_url == current_url - and "_changelist_filters" in preserved_filters - ): - preserved_filters = dict( - parse_qsl(preserved_filters["_changelist_filters"]) - ) - - merged_qs.update(preserved_filters) - - if popup: - from django.contrib.admin.options import IS_POPUP_VAR - - merged_qs[IS_POPUP_VAR] = 1 - if to_field: - from django.contrib.admin.options import TO_FIELD_VAR - - merged_qs[TO_FIELD_VAR] = to_field - - merged_qs.update(parsed_qs) - - parsed_url[4] = urlencode(merged_qs) - return urlunparse(parsed_url) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/base.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/base.py deleted file mode 100644 index 23e4cfb..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/base.py +++ /dev/null @@ -1,45 +0,0 @@ -from inspect import getfullargspec - -from django.template.library import InclusionNode, parse_bits - - -class InclusionAdminNode(InclusionNode): - """ - Template tag that allows its template to be overridden per model, per app, - or globally. - """ - - def __init__(self, parser, token, func, template_name, takes_context=True): - self.template_name = template_name - params, varargs, varkw, defaults, kwonly, kwonly_defaults, _ = getfullargspec( - func - ) - bits = token.split_contents() - args, kwargs = parse_bits( - parser, - bits[1:], - params, - varargs, - varkw, - defaults, - kwonly, - kwonly_defaults, - takes_context, - bits[0], - ) - super().__init__(func, takes_context, args, kwargs, filename=None) - - def render(self, context): - opts = context["opts"] - app_label = opts.app_label.lower() - object_name = opts.object_name.lower() - # Load template for this render call. (Setting self.filename isn't - # thread-safe.) - context.render_context[self] = context.template.engine.select_template( - [ - "admin/%s/%s/%s" % (app_label, object_name, self.template_name), - "admin/%s/%s" % (app_label, self.template_name), - "admin/%s" % self.template_name, - ] - ) - return super().render(context) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/log.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/log.py deleted file mode 100644 index 098aa64..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/templatetags/log.py +++ /dev/null @@ -1,69 +0,0 @@ -from django import template -from django.contrib.admin.models import LogEntry - -register = template.Library() - - -class AdminLogNode(template.Node): - def __init__(self, limit, varname, user): - self.limit, self.varname, self.user = limit, varname, user - - def __repr__(self): - return "" - - def render(self, context): - if self.user is None: - entries = LogEntry.objects.all() - else: - user_id = self.user - if not user_id.isdigit(): - user_id = context[self.user].pk - entries = LogEntry.objects.filter(user__pk=user_id) - context[self.varname] = entries.select_related("content_type", "user")[ - : int(self.limit) - ] - return "" - - -@register.tag -def get_admin_log(parser, token): - """ - Populate a template variable with the admin log for the given criteria. - - Usage:: - - {% get_admin_log [limit] as [varname] for_user [context_var_with_user_obj] %} - - Examples:: - - {% get_admin_log 10 as admin_log for_user 23 %} - {% get_admin_log 10 as admin_log for_user user %} - {% get_admin_log 10 as admin_log %} - - Note that ``context_var_containing_user_obj`` can be a hard-coded integer - (user ID) or the name of a template context variable containing the user - object whose ID you want. - """ - tokens = token.contents.split() - if len(tokens) < 4: - raise template.TemplateSyntaxError( - "'get_admin_log' statements require two arguments" - ) - if not tokens[1].isdigit(): - raise template.TemplateSyntaxError( - "First argument to 'get_admin_log' must be an integer" - ) - if tokens[2] != "as": - raise template.TemplateSyntaxError( - "Second argument to 'get_admin_log' must be 'as'" - ) - if len(tokens) > 4: - if tokens[4] != "for_user": - raise template.TemplateSyntaxError( - "Fourth argument to 'get_admin_log' must be 'for_user'" - ) - return AdminLogNode( - limit=tokens[1], - varname=tokens[3], - user=(tokens[5] if len(tokens) > 5 else None), - ) diff --git a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/tests.py b/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/tests.py deleted file mode 100644 index dc85705..0000000 --- a/Arminta_web/skyonnweb/skyonnweb/.venv/Lib/site-packages/django/contrib/admin/tests.py +++ /dev/null @@ -1,233 +0,0 @@ -from contextlib import contextmanager - -from django.contrib.staticfiles.testing import StaticLiveServerTestCase -from django.test import modify_settings -from django.test.selenium import SeleniumTestCase -from django.utils.deprecation import MiddlewareMixin -from django.utils.translation import gettext as _ - - -class CSPMiddleware(MiddlewareMixin): - """The admin's JavaScript should be compatible with CSP.""" - - def process_response(self, request, response): - response.headers["Content-Security-Policy"] = "default-src 'self'" - return response - - -@modify_settings(MIDDLEWARE={"append": "django.contrib.admin.tests.CSPMiddleware"}) -class AdminSeleniumTestCase(SeleniumTestCase, StaticLiveServerTestCase): - available_apps = [ - "django.contrib.admin", - "django.contrib.auth", - "django.contrib.contenttypes", - "django.contrib.sessions", - "django.contrib.sites", - ] - - def wait_until(self, callback, timeout=10): - """ - Block the execution of the tests until the specified callback returns a - value that is not falsy. This method can be called, for example, after - clicking a link or submitting a form. See the other public methods that - call this function for more details. - """ - from selenium.webdriver.support.wait import WebDriverWait - - WebDriverWait(self.selenium, timeout).until(callback) - - def wait_for_and_switch_to_popup(self, num_windows=2, timeout=10): - """ - Block until `num_windows` are present and are ready (usually 2, but can - be overridden in the case of pop-ups opening other pop-ups). Switch the - current window to the new pop-up. - """ - self.wait_until(lambda d: len(d.window_handles) == num_windows, timeout) - self.selenium.switch_to.window(self.selenium.window_handles[-1]) - self.wait_page_ready() - - def wait_for(self, css_selector, timeout=10): - """ - Block until a CSS selector is found on the page. - """ - from selenium.webdriver.common.by import By - from selenium.webdriver.support import expected_conditions as ec - - self.wait_until( - ec.presence_of_element_located((By.CSS_SELECTOR, css_selector)), timeout - ) - - def wait_for_text(self, css_selector, text, timeout=10): - """ - Block until the text is found in the CSS selector. - """ - from selenium.webdriver.common.by import By - from selenium.webdriver.support import expected_conditions as ec - - self.wait_until( - ec.text_to_be_present_in_element((By.CSS_SELECTOR, css_selector), text), - timeout, - ) - - def wait_for_value(self, css_selector, text, timeout=10): - """ - Block until the value is found in the CSS selector. - """ - from selenium.webdriver.common.by import By - from selenium.webdriver.support import expected_conditions as ec - - self.wait_until( - ec.text_to_be_present_in_element_value( - (By.CSS_SELECTOR, css_selector), text - ), - timeout, - ) - - def wait_until_visible(self, css_selector, timeout=10): - """ - Block until the element described by the CSS selector is visible. - """ - from selenium.webdriver.common.by import By - from selenium.webdriver.support import expected_conditions as ec - - self.wait_until( - ec.visibility_of_element_located((By.CSS_SELECTOR, css_selector)), timeout - ) - - def wait_until_invisible(self, css_selector, timeout=10): - """ - Block until the element described by the CSS selector is invisible. - """ - from selenium.webdriver.common.by import By - from selenium.webdriver.support import expected_conditions as ec - - self.wait_until( - ec.invisibility_of_element_located((By.CSS_SELECTOR, css_selector)), timeout - ) - - def wait_page_ready(self, timeout=10): - """ - Block until the page is ready. - """ - self.wait_until( - lambda driver: driver.execute_script("return document.readyState;") - == "complete", - timeout, - ) - - @contextmanager - def wait_page_loaded(self, timeout=10): - """ - Block until a new page has loaded and is ready. - """ - from selenium.webdriver.common.by import By - from selenium.webdriver.support import expected_conditions as ec - - old_page = self.selenium.find_element(By.TAG_NAME, "html") - yield - # Wait for the next page to be loaded - self.wait_until(ec.staleness_of(old_page), timeout=timeout) - self.wait_page_ready(timeout=timeout) - - def admin_login(self, username, password, login_url="/admin/"): - """ - Log in to the admin. - """ - from selenium.webdriver.common.by import By - - self.selenium.get("%s%s" % (self.live_server_url, login_url)) - username_input = self.selenium.find_element(By.NAME, "username") - username_input.send_keys(username) - password_input = self.selenium.find_element(By.NAME, "password") - password_input.send_keys(password) - login_text = _("Log in") - with self.wait_page_loaded(): - self.selenium.find_element( - By.XPATH, '//input[@value="%s"]' % login_text - ).click() - - def select_option(self, selector, value): - """ - Select the