Hurtigt svar
Hjemmeenergilagring kan hjælpe husstande med at reagere mere effektivt på dynamiske elpriser ved at flytte køb af netstrøm væk fra dyre perioder og hen imod perioder med lavere priser.
I modsætning til en konventionel tidsafhængig tarif, hvor spids- og lavbelastningsperioder normalt er forudbestemte, kan en dynamisk eltarif ændre sig fra dag til dag eller endda fra time til time. Dette betyder, at batteriopladningsstrategien også skal blive mere fleksibel.
En typisk driftsstrategi kan omfatte opladning af batteriet, når elpriserne er relativt lave, bevarelse af solenergi, når den er mere værdifuld til senere brug, og afladning af lagret energi, når netstrømmen bliver dyr.
Men, den laveste elpris bør ikke være det eneste kontrolmål. En praktisk hjemmeenergilagringsstrategi skal også tage højde for:
- Husholdningsbelastning
- Solenergi
- Batteristatus
- Batteriopladning og afladningseffekt
- Forventede elpriser
- Backup reservekrav
- Batteridriftsgrænser
Af denne grund fungerer dynamisk tarifdrift bedst, når batteriet, inverteren, energistyringslogikken og husholdningens forbrugsmønster betragtes som ét system.
KUVO designs Energilagring i hjemmet løsninger til boligenergi-styringsapplikationer, hvor solcelle-selvforbrug, backup-strøm og tarifbaseret drift alle kan have brug for at fungere sammen.
Hvad er en dynamisk elpris?
En dynamisk elpris er en prisstruktur, hvor prisen på netstrøm kan variere afhængigt af ændrede markeds- eller systemforhold.
I stedet for at betale én fast elpris hele dagen, kan husstanden opleve forskellige priser i løbet af forskellige timer.
På nogle markeder kan priserne annonceres en dag i forvejen. På andre kan elpriserne følge kortere prisintervaller eller være tættere knyttet til engrosmarkedets forhold.
Den vigtige forskel er, at de billigste og dyreste perioder ikke nødvendigvis er identiske hver dag.
For eksempel kan én dag have relativt lave elpriser fra kl. 1.00 til 5.00. En anden dag kan også indeholde en periode med lave priser omkring middagstid, fordi vedvarende energiproduktion er høj.
Samtidig kan den dyreste periode skifte afhængigt af elforbruget, vejrforholdene, vedvarende energiproduktion og netværksforhold.
Dette ændrer, hvordan et hjemmebatteri bør betjenes.
Med en simpel fastpristarif har batteristyring muligvis ikke stor økonomisk værdi.
Med en traditionel tidsafhængig tarif kan husejeren normalt programmere batteriet omkring kendte spids- og lavprisperioder.
Med en dynamisk tarif kan hjemmets energilagringssystem muligvis reagere på en ændrende tidsplan for elpriser.
Det gør batteristyring vigtigere.
Dynamiske Tariffer vs. Tid-af-Brug Tariffer
Dynamisk prissætning og tidsafhængig prissætning er relaterede, men de er ikke det samme.
En tidsafhængig tarif opdeler normalt dagen i forudbestemte prisperioder. Den præcise struktur varierer mellem forsyningsselskaber, men husstanden kan på forhånd vide, at visse aftentimer er dyre, mens elektricitet om natten er billigere.
For eksempel:
| Tarifetype | Prisstruktur | Batteristrategi |
| Fast pris | Lignende pris hele dagen | Fokus primært på solcelle-selvforbrug eller backup |
| Tidstarif | Faste spids- og lavbelastningsperioder | Oplad og aflad efter en tilbagevendende tidsplan |
| Dynamisk takst | Priser kan ændre sig dagligt eller time for time | Juster batteridrift efter skiftende prissignaler |
Med en tidsafhængig tarif kan hjemmets energilagringsplan ofte forblive ens fra mandag til fredag.
Dynamiske tariffer er anderledes.
Et batteri kan have en god opladningsmulighed kl. 3 om morgenen en dag og en anden mulighed omkring middagstid næste dag. En dyr aftenperiode kan også begynde tidligere eller senere afhængigt af markedet.
Dette betyder, at en fast timer alene måske ikke altid fanger de bedste tilgængelige opladnings- og afladningsvinduer.
En mere nyttig strategi er at kombinere prisinformation med den faktiske tilstand af husholdningens energisystem.

Sådan fungerer hjemmeenergilagring med dynamiske elpriser
På det mest grundlæggende niveau flytter hjemmeenergilagring elektrisk energi fra én periode til en anden.
Batteriet lagrer energi, når det er fordelagtigt at oplade, og leverer den energi, når netstrømmen er dyrere, eller når der er behov for backup-strøm.
Under en dynamisk elprisordning bliver logikken mere sofistikeret, fordi systemet ikke kun beslutter når energi er tilgængelig, men også når den energi har den største værdi for husstanden.
Et forenklet eksempel kunne se således ud:
| Tid | Gitterpris | Solenergi | Batteristrategi |
| 02:00 | Lav | Ingen | Oplad fra nettet, hvis det er relevant |
| 08:00 | Medium | Lav | Forsyn husholdningsforbrug normalt |
| 12:00 | Lav | Høj | Oplad med overskydende solenergi |
| 18:00 | Høj | Lav | Aflad batteri |
| 21:00 | Meget høj | Ingen | Fortsæt afladning, mens du opretholder backup-reserve |
Den præcise strategi afhænger af systemkonfigurationen.
En husstand med et stort solcelleanlæg kan prioritere opladning fra solen.
En husstand med et lille overskud af solenergi om dagen kan i højere grad udnytte billig opladning fra elnettet.
En husejer, der kræver betydelig backup-kapacitet, kan holde en større del af batteriet ubrugt til tarifoptimering.
Derfor er der ikke én enkelt opladningsplan, der er korrekt for enhver hjemmeenergilagringsinstallation.
Systemet skal balancere flere mål på samme tid.
Opladning af batteriet i perioder med lave priser
En af de tydeligste muligheder under en dynamisk tarif er at oplade batteriet, når netstrømmen bliver relativt billig.
Antag, at den næste dags elpriser viser en lavprisperiode tidligt om morgenen.
I stedet for at købe det meste af husholdningens elektricitet sent om aftenen til en højere pris, kan batteriet oplade i perioden med lavere pris og lagre den energi til senere brug.
Det grundlæggende økonomiske princip er ligetil:
Billigere netstrøm → batterilagring → reducerede netkøb i perioder med højere priser
Dette betyder dog ikke, at batteriet automatisk skal oplades til 100% hver gang strømmen bliver billig.
Flere spørgsmål er stadig vigtige.
Hvor meget energi vil husstanden reelt have brug for?
Hvis det forventede aftenforbrug kun er 4 kWh, kan det give lille ekstra fordel at fylde et meget større batteri helt op fra nettet.
Vil solenergi være tilgængelig senere?
Hvis der forventes stærk solproduktion i løbet af dagen, kan det efterlade utilstrækkelig lagerkapacitet til overskydende solenergi at fylde batteriet helt op natten over.
Dette kan reducere solenergiforbruget.
En bedre tilgang kan være kun at oplade batteriet delvist natten over, hvilket giver plads til solcelleproduktion om dagen.
Hvor lav er den lave pris?
En lille forskel mellem opladningsprisen og den senere elpris retfærdiggør muligvis ikke aggressiv battericykling.
Batterikonverteringstab og langtidscyklus bør også overvejes.
Af denne grund bør tariferingsbaseret hjemmeenergilagring fungere ud fra meningsfulde prisforskelle snarere end blot at reagere på enhver lille udsving i elpriserne.
Afladning når netstrømmen bliver dyr
Den anden side af strategien er at reducere indkøb fra nettet i perioder med høje priser.
Hvis elektricitet bliver dyr mellem kl. 17.00 og 20.00, kan batteriet levere en del af husholdningens forbrug i den periode.
Dette kan være særligt nyttigt, fordi elforbruget om aftenen ofte forbliver højt, mens solproduktionen allerede er faldet betydeligt.
Almindelige boligforbrug i denne periode kan omfatte:
- Køkkenudstyr
- Belysning
- Airconditionering
- Varmepumper
- Water heating
- Hjemmeelektronik
- EV-opladning
- Andre husholdningsapparater
A hjemmeenergilagringssystem behøver ikke nødvendigvis at levere hele huset i den dyre periode.
Dens bidrag afhænger af både batteriets energikapacitet og inverterens udgangseffekt.
For eksempel kan et batteri indeholde nok lagret energi til at dække flere timers husholdningsforbrug, men stadig have en invertereffektbegrænsning under hjemmets øjeblikkelige spidsbelastning.
I denne situation kan batteriet stadig reducere netkøb betydeligt, men nettet kan fortsat levere den del af belastningen, der ligger over inverterens output.
Denne skelnen mellem kWh-kapacitet og kW-ydelse er vigtig, når man designer hjemmeenergilagring til optimering af tariffer.
Et større batteri betyder ikke automatisk, at det kan understøtte en større øjeblikkelig husholdningsbelastning.

Hvordan solenergi ændrer dynamikken i tarifstrategien
Tilføjelse af solceller ændrer beregningen, fordi husstanden nu har tre potentielle energikilder:
Solcelleanlæg + batterilagring + elnettet
Målet er ikke længere blot at købe strøm billigt og bruge den senere.
Systemet skal også beslutte, hvor meget solenergi der skal bruges med det samme, hvor meget der skal lagres, og hvornår netopladning er økonomisk rentabel.
Overvej en husholdning, der forventer stærk solproduktion den følgende eftermiddag.
Hvis batteriet er fuldt opladet fra nettet natten over, kan solcelleanlægget senere generere mere elektricitet, end husholdningen kan forbruge eller lagre.
Afhængigt af den lokale eksportafgift kan dette overskud eksporteres til elnettet til en lavere værdi end den elektricitet, husstanden ellers ville købe senere.
I det tilfælde er det måske ikke den bedste strategi at oplade batteriet helt i perioden med lave priser natten over.
En mere afbalanceret tidsplan for hjemmeenergilag kunne være:
- Oplad delvist fra nettet i en særligt billig natteperiode.
- Behold en del af batterikapaciteten tilgængelig.
- Brug morgenens solproduktion til husholdningsforbrug.
- Lagre overskudds solcelleproduksjon i løpet av dagen.
- Aflad batteriet i dyre aftentimer med elektricitet.
- Oprethold tilstrækkelig energi til backup i henhold til husejerens krav.
Denne type strategi kan udnytte både solenergiproduktion og dynamiske elpriser bedre.
Den passende balance ændrer sig med årstiden.
Om sommeren kan rigelig solenergi om dagen reducere behovet for opladning fra elnettet.
Om vinteren eller i perioder med langvarigt overskyet vejr kan billig netopladning blive mere nyttig.
Af denne grund er en fast årsplan for batteriet muligvis ikke den mest effektive måde at drive et solcelleanlæg med batterilagring på.
Batteriets SOC og backup-reserve betyder stadig noget
Optimering af elpriser bør ikke fuldstændig tilsidesætte husstandens primære energisikkerhedskrav.
En husejer ønsker måske at opretholde en minimum batteritilstand af opladning i tilfælde af et netudfald.
For eksempel kunne systemet reservere en del af den tilgængelige batterikapacitet i stedet for at aflade til den minimum tilladte SOC, når elpriserne er høje.
Den brugbare batterienergi kan derefter betragtes som to funktionelle dele:
Backup reserve + tarifoptimeringskapacitet
Forholdet mellem dem afhænger af husstandens prioriteter.
En husstand i et område med et stabilt elnet kan afsætte mere batterikapacitet til optimering af elpriser.
En husstand, der oplever hyppige udfald, foretrækker muligvis en større nødreserve.
Den samme husstand kan endda ændre reserveniveauet sæsonbestemt.
For eksempel, under perioder med ekstremt vejr, kan det være vigtigere at opretholde en større backup-reserve end at udnytte enhver tilgængelig prisforskel.
Det centrale punkt er, at dynamisk prissætning bør behandles som ét driftsmål snarere end det eneste mål.
Hjemmeenergilagring kan samtidigt have brug for at understøtte:
- Sol-selvforbrug
- Elprisstyring
- Nødstrøm
- Spidsbelastningsreduktion
- Husstandets energiselvforsyning
En passende kontrolstrategi skal balancere disse funktioner snarere end at maksimere én af dem på bekostning af alle andre.
Batterikapacitet og effektklassificering for dynamiske tariffer
Husejere fokuserer sommetider kun på batterikapacitet, når de overvejer dynamiske elpriser.
Kapacitet er vigtig, men det er kun en del af systemdesignet.
Batterikapacitet bestemmer, hvor meget energi der kan flyttes
Et 16 kWh batteri kan teoretisk set lagre mere energi til senere brug end et 8 kWh batteri.
Dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog, dog,
Antag, at et hjemmeenergilagringssystem har en nominel batterikapacitet på 16 kWh, og at husejeren reserverer 20 % til backup.
Den del, der er tilgængelig for normal tarifeffektskift, vil derfor være lavere end den fulde nominelle kapacitet.
Faktisk brugbar energi afhænger også af den specifikke batterikonfiguration og driftsgrænser.
Inverterens output bestemmer, hvor hurtigt lagret energi kan forsyne huset
Hvis batteriet er forbundet gennem en 6kW inverter, påvirkes systemets evne til at udligne nettet også af denne 6kW udgangskapacitet.
Forestil dig, at husholdningernes efterspørgsel pludselig når 9 kW.
Selvom batteriet indeholder masser af lagret energi, kan nettet stadig være nødt til at levere en del af belastningen, hvis lagringssystemet ikke kan levere de fulde 9 kW.
Derfor bør dynamiske tarifapplikationer overveje begge dele:
Energibehov i kWh og strømbehov i kW
KUVO's alt-i-en boligløsninger, herunder systemer der kombinerer cirka 6 kW invertereffekt med 16 kWh batterilagring, illustrerer dette forhold tydeligt: lagringskapacitet bestemmer, hvor meget energi der kan flyttes over tid, mens inverterens kapacitet bestemmer, hvor meget strøm der kan leveres på et givent tidspunkt.
Til projektvalg bør disse parametre evalueres mod den faktiske husstandsprofil snarere end at blive valgt uafhængigt.
Hvorfor simpel "billig opladning, dyr afladning"-logik ikke er nok
Ved første øjekast virker dynamisk elprissætning simpelt.
Oplad, når elektricitet er billig. Aflad, når elektricitet er dyr.
I praksis kræver en bedre kontrolstrategi for hjemmeenergilagning mere information.
Overvej en situation, hvor elektricitet er billig kl. 3 om morgenen, men batteriet allerede er på 70% opladningstilstand, og der forventes kraftig solproduktion efter solopgang.
Opladning til 100% kan fjerne nyttig lagerplads til solenergi senere.
Betragt nu en anden dag.
Batteriet er på 35%, der forventes begrænset solproduktion, og der forudsiges en meget dyr elperiode om aftenen.
Netopladning i perioden med lave priser kan være meget mere værdifuldt.
Beslutningen afhænger derfor af en kombination af flere variabler:
Nuværende SOC → forventet husholdningsforbrug → forventet PV-produktion → fremtidig elpris → backup-behov
En effektiv energistyringsstrategi kan evaluere disse faktorer samlet.
Prisprognoser er særligt vigtige.
Den billigste elperiode er ikke altid den første lavprisperiode, der dukker op.
Hvis tarifferne giver dagspriser, kan kontrolsystemet sammenligne forskellige opladningsmuligheder, før det beslutter, hvor meget energi der skal lagres.
Tilsvarende betyder en periode med høj pris ikke nødvendigvis, at batteriet skal aflades med maksimal effekt med det samme.
Der kan være en endnu dyrere periode senere på aftenen.
Batteriet har derfor et begrænset energibudget, der skal fordeles intelligent hen over dagen.
Hvad gør et hjemmeenergilagringssystem egnet til dynamiske tariffer?
Til dynamisk elprissætning er hardware alene ikke nok.
Systemets anvendelighed afhænger i høj grad af, hvordan inverteren og batteriet kan styres.
En passende hjemmeenergilagringskonfiguration bør muliggøre praktisk styring af opladnings- og afladningsadfærd.
Vigtige funktioner kan omfatte programmerbare opladningsperioder, styring af netopladning, batteriets SOC-grænser, indstillinger for backup-reserve, solcelleprioritetsfunktioner og konfigurerbar afladningsadfærd.
Hvor dynamiske prisdata kan integreres i et eksternt energistyringssystem, kan mere avancerede strategier også være mulige.
Den præcise implementering afhænger af inverteren, kommunikationsgrænsefladen, den lokale elhandler, smart meter-miljøet og markedsstrukturen.
Af denne grund bør toldintegration overvejes under systemdesignet snarere end efter installationen.
Fra et producent- og systemvalgsperspektiv evaluerer KUVO hjemmeenergilagring ud fra den komplette boligapplikation snarere end alene batterikapacitet.
For OEM'er, distributører, installatører og integratorer af boligenergisystemer, omfatter nyttige projektinformationer normalt husstandens forbrugsprofil, PV-kapacitet, netforhold, krævet backup-varighed, forventet tarifstruktur, tilgængelig installationsplads og foretrukken batterikonfiguration.
Disse faktorer hjælper med at afgøre, om en vægmonteret, stabelbar, rackmonteret eller alt-i-én-lagerkonfiguration er mere passende for projektet.

Er hjemmelagring altid profitabel under dynamiske tariffer?
Ikke nødvendigvis.
Dynamiske tariffer skaber muligheder for batterienergiforskydning, men det økonomiske resultat afhænger af det faktiske prisspænd og driftsforholdene.
Den potentielle fordel er generelt større, når der er en meningsfuld forskel mellem perioder med lav og høj elpris.
Hvis elektricitet koster 0,10 pr. enhed i en opladningsperiode og 0,35 i en aften-spidsbelastning, er muligheden meget anderledes end en takst, hvor priserne kun varierer mellem 0,20 og 0,23.
Flere faktorer påvirker de faktiske besparelser:
- Forskel mellem opladnings- og afladningspriser
- Batteriets rundturseffektivitet
- Husstandets elforbrug
- Solenergi
- Batterikapacitet
- Tilgængelig udgangseffekt
- Antal nyttige prisbegivenheder
- Eksport af elkompensation
- Batteridriftsstrategi
Battericyklus bør derfor have et økonomisk formål.
Et hjemmeenergilagringssystem behøver ikke at jagte enhver mindre elprisbevægelse.
I mange tilfælde er det mere fornuftigt at koncentrere opladning og afladning i de perioder, hvor prisforskellene er store nok til at give meningsfuld værdi.
Økonomien kan også ændre sig i systemets levetid.
Elpriser kan ændre sig, husholdningens forbrug kan stige, en elbil kan tilføjes, eller boligejeren kan installere yderligere solpaneler.
Af denne grund kan fleksible driftstilstande være værdifulde for langsigtet boligenergiforvaltning.
OFTE STILLEDE SPØRGSMÅL
Kan et hjemmebatteri automatisk reagere på dynamiske elpriser?
Potentielt, ja, men niveauet af automatisering afhænger af inverteren, energistyringssystemet, datakilden for elpriser, kommunikationsgrænsefladen og det lokale marked.
Nogle installationer bruger programmerede tidsplaner baseret på næste dags priser, mens mere avancerede systemer kan integrere dynamiske prisoplysninger i automatiseret energistyring.
Den påkrævede kontrolmetode bør bekræftes under systemdesignet.
Er en dynamisk tarif bedre end en tidsafhængig tarif for hjemmeenergilagring?
Ingen er automatisk bedre.
En tidsafhængig tarif er enklere, fordi de dyre og billige perioder normalt er forudsigelige.
En dynamisk tarif kan skabe større eller hyppigere prisforskelle, men batteristyring kan også blive mere kompleks.
Den bedre løsning afhænger af den lokale takst, husholdningens forbrug, solcelleproduktion og Energilagring i hjemmet kontrolkapacitet.
Kan jeg oplade et hjemmebatteri fra elnettet, når elpriserne er lave?
Ja, hvis inverteren og den lokale installation tillader netopladning.
Batteriet kan derefter lagre billigere netstrøm til brug i en senere dyr periode.
Dogan, opladning af nettet bør koordineres med forventet solproduktion og krav til backup-reserver.
Skal batteriet altid oplades til 100% i den billigste periode?
Ikke nødvendigvis.
Hvis der forventes betydelig solproduktion senere, kan det at efterlade tilgængelig batterikapacitet muliggøre lagring af mere overskydende PV-energi.
Det passende opladningsmål afhænger af forventet husholdningsforbrug, solproduktion, fremtidige elpriser og den nødvendige backupkapacitet.
Kan dynamisk elpris fungere uden solpaneler?
Ja.
Et hjemmeenergilagringssystem kan potentielt oplade fra elnettet i perioder med lave priser og aflade i perioder med høje priser, selv uden solceller.
Solenergi tilføjer en anden kilde til billig husholdningsenergi, men er teknisk set ikke nødvendig for tariferet energiskift.
Hvor meget batterikapacitet er nødvendig for dynamiske tariffer?
Der er ingen universel kapacitet.
Batteristørrelsen bør baseres på mængden af husholdningsenergi, der skal flyttes mellem lavpris- og højprisperioder.
Et større batteri kan flytte mere energi, men en overdimensionering af batteriet giver ikke automatisk bedre økonomi, hvis husholdningens forbrug er relativt lavt.
Betyder inverterens effekt noget for besparelser på tariffer?
Ja.
Batterikapacitet bestemmer, hvor meget energi der er tilgængelig, mens inverterens output bestemmer, hvor hurtigt batteriet kan levere strøm til husholdningsapparater.
Begge bør derfor overvejes, når man designer et hjemmeenergilagringssystem til dynamiske tariffer.
Kan jeg beholde backup-strøm, samtidig som jeg bruger batteriet til at spare penge på elpriserne?
Ja.
En minimum SOC eller backup-reserve kan opretholdes, mens den resterende batterikapacitet bruges til tarifoptimering.
Den passende reserve afhænger af risikoen for nedbrud og husstandens backup-prioriteter.
Er dynamisk tarifdrift egnet for enhver husstand?
Nej.
Det er mest nyttigt, når elpriserne varierer nok til at skabe rentable opladnings- og afladningsmuligheder.
Husholdninger med meget små prisforskelle, lavt elforbrug eller begrænset batteristyringskapacitet kan opleve mindre fordele.
Hvordan skal et boligenergilagringssystem vælges til dynamiske elpriser?
Valget bør samlet set tage højde for husstandens forbrugsprofil, solcellekapacitet, batterikapacitet, invertereffekt, backup-krav, elpris, installationsmetode og kontrolstrategi.
KUVO leverer Energilagring i hjemmet løsninger til boliganvendelser, herunder alt-i-én, vægmonterede, stabelbare og rackmonterede konfigurationer, der gør det muligt at matche systemvalget til forskellige husholdningers energistyringskrav.