Changelog ========== v4.0.8 ---------------------------- 2024.11.03 * Telepules kereso: javitott visszefejtes * Frequency info at places v4.0.7 ---------------------------- 2024.10.31 * Megallok csoportositasa * A csoportositas 300 meterrol 500-ra emelkedett * A center_lat_lng es a radius szamitas csak a hasznalt megallokkal kalkulal v4.0.6 ---------------------------- 2024.10.29 * default_agency_id at gtfs_config table * agency_ids * stop * stop_group v4.0.5 ---------------------------- 2024.10.26 * Repteri jaratok * 711-es repteri tipusra modositas * budapest * 100E + 200E jaratok * pecs * A ✈ jarat * Gratisz route description-nal 'Közvetlen repülőtéri járat' * config files update * default_agency_id * agency * Agency loader * Ettol fogva minden olyan estben, amikor felulbirahtato statikus adattal az agency tabala, akkor az egy manualisan osszerakott agency.db fajlbol kerul betoltesre * Fixed duplicated datas * unique static id + id as primary key * new columns * parent_id * place_id * name_normalized * long_name * long_name_normalized * description * description_normalized * favicon_url * color * gtfs_info * name_normalized * place_info * county_id * center_latitude * center_longitude * radius_avg * radius_med * sort_order * route * short_name_normalized * long_name_normalized * description_normalized v4.0.4 ---------------------------- 2024.08.28 * Log fixies v4.0.3 ---------------------------- 2024.08.22 * Engedelyezett stop_set exclude + include tablak * Uj fajl meretek - 7z - 10 napos * budapest * korabban: 15.1 * most: 7.1 * kecskemet * korabban: 2.9 * most: 2.2 * miskolc * korabban: 4.2 * most: 2.6 * pecs * korabban: 6.8 * most: 2.8 * szeged * korabban: 3.7 * most: 2.4 v4.0.2 ---------------------------- 2024.08.05 * Engedelyzett hungary config * Veglegesitett stop_set_exclude_include kalkulacio * createStopSetExcludes * calculateStopByAndExcludeInclude * Egyenlore kikapcsolt allapotban (az appok miatt) * Shape reduction bug fix * Fixalt trim_to_days exclude v4.0.1 ---------------------------- 2024.08.01 * Uj shell * run_all_downloads_only.sh * Jelentős teljesítmeny javítás * createTripCountsForRoutes * createBeginAndEndDateForRoutes * stopGroupIDs * GtfsMerger * fixTripBlockIDs * fixTripDeltaTimeIDs * fixTripHeadsignIDs * Jellemzoen 90%-al kevesebb ido szukseges * Erintett teruletek * Export release .db files * applyExtraModifiers v4.0.0 ---------------------------- 2024.07.28 * Új, bővített, módosított táblák * direction - mod_add * stop_count * stops_by * route - mod_add * type_vehicle (old => type) * type (old => type_org) * shape_compat - new * shape_id * polyline * total_count * travel_dist * stop_set - mod_remove * route_key * flow_hash * flow_hash_info_id * stop_set_exclude - new * stop_set_id * exclude_sequence * stop_set_include - new * stop_set_id * include_sequence * stop_set_full - view * sqlite view for all stop_set * Redundáns stop_set -ek kizárása * A generált útvonalaknak köszönhetően nem tároljuk tovabb hasonlo/redundans utvonalakat. * A stop_set_exclude tabla tartalmazza a kizarando sequence -iakat. * A stop_set_include tabla tartalmazza a hasznlhato sequence -iakat. * Mindig a kevesebb erteket tartalmazo tabla van feltoltve. * Megallokat listazni pedig a direction tabla stops_by erteke alapjan lehetseges. * A stop_set tabla ezert nem tartalmaz(!) tobbe minden stop_set -et, azok bo 50%-a jellemzoen torlesre kerul. * A kizaras, egyben a stop_set_exclude tabla tartalmanak letrehozasa opcionalis. Alaperelmezetten igen-re van allitva. Select tesztelesnel sokat segit, ha ki van kapcsolva. * Shapek * Ettol kezdve a Google Polyline encodere is feldolgozza a shape-ket. * Mindezz legalabb 50%-os a méret csokkenest jelent. * Peldaul a volánbusznál a nyers 280MB-ból ~100MB lesz a work mappaban. * Trimmelt adabázis * Az osszes olyan adatbazis, amely napra trimmelt, abbol torlesre kerul a shape tabla teljes tartalma! * Jelentosen csokkent build ido 30-40% * Egyeb aprobb hibajavitasok. Szovegezsek, stb * Módosított config json * Kikapcsolt települések * szombathely * tatabanya * veszprem * Megszuntek az 1 napos menetrendek * Elerhetove valt az orszagos Hungary adatbazis, amely jelenleg nem egyenlo a teljes orszaggal! Elore kivalasztott telepeulsek es export configok kerulnek bele. Jelenleg ugy az orszag 60%-a lehet benne. v3.6.5 ---------------------------- 2024.06.24 * Volán * Módosított forrás kompatibilizálása * feed_includes_prefixed_ids importálása * trip_delta_times * Alkalmazott PRIMARY KEY * Egyben gtfs export bug fix * AllGtfsBuilder * Unique értékek javítása v3.6.4 ---------------------------- 2024.05.16 * BKK * Support telebusz_roles source file v3.6.3 ---------------------------- 2024.04.09 * Megállók * group_id javítás * normalized_name megjelenése * Települések * normalized_name megjelenése * Új tábla: stop_group * id * center_latitude * center_longitude * size * distance_avg * distance_med * related_routes (by route_key) * SQL táblák * VARCHAR to TEXT v3.6.2 ---------------------------- 2024.02.14 * BackupAgent * 30 napról 7 napra állítva (downloads only) * Clean up old directories patch v3.6.1 ---------------------------- 2023.12.03 * Település visszafejtő * Felesleges Google API hívások megszüntetve! * Az engedélyzett közeli város hatósugara 10km re lett növelve az 5km-ről * Shape bővítés * Minden olyan tripnél, ahol hiányos vagy érvénytelen a shape_id a source állományban, ott a megálló koordinátáiból mostantól létrejön egy fiktív shape. Vizuálisan bután fog kinézni, mert a koordináták megállókat fognak összekötni. Tehát nem a valós nyomvonal fog megjelenni, azonban a shape kötelező érték és így cserébe nem fog törlődni egyetlen trip sem. Mindezz sokkal több meneterendi adatot jelent! Szerencsére ez a probléma jellemzően és kizárólag a MÁV-os adatokat illeti, ott is csak pár százalékban hiányosak az adatok. * Garázsmenetek * Az útvonal tömörítő ettől fogva egy kalap alá veszi az összes útvonalat és nem kezeli indirekt külön a garázsmenti útvonalakat. Tehát előfordulhat, hogy egy nem garázsmeneti útvonal beleépül egy garaázsmenetibe. Ezzel a figyelmen kívul hagyással jelentősen több útvonal lesz rejtett. Ennek az eredeti célja az volt, hogy biztos ami biztos tarton meg a rendszer egy "rendes" útvonalat a járatból. * Egyenlőre csak ki lett commentezve, ahol a csoportosítás történt. Szükség esetén csak vissza kell állítani. * DatabaseBuilder --, garage * GtfsRouteDirectionGenerator --garage v3.6.0 ---------------------------- 2023.12.01 * Letöltés kezelő * Érvénytelen _temp fájlok és mappáinak törlése fix * GTFS forrás * Újra teljes értékű a WeekendBus menetrendje * Teljesítmény javítás * Az országos gtfs buildernél * A sub gtfs buildernél * Kulcsok * Növelve lett az általános unique key range 10 ezerről 100 ezerre * Ez oldotta meg a WeekendBus bugot, mivel az ezt megelőző Volánbusz adatainak mennyisge átlépte a shape_id-nál a 10 ezret, és összeértek az kulcsok * Járatok * Javított order_in_type (általános sorba rendezés) * Naptárak * Ettől fogva a source adatbázis nem trimmel se negatív, se pozitív irányba! * A source adatbázisban folyamatosan a tényleges maximum adat érhető el! * Calendar trimmelést kizárólag a GtfsReleaseExport végezhez (GtfsMerger + GtfsReleaseTrimmer), mint minimum a mai nap + pl 60 nap v3.5.1 ---------------------------- 2023.11.25 * Településkezelő * parent_id bevezetése * volán: agency name alapján történő beállítása * route_places tábla megjelenése * Járatok * Járatcsoportok agency_id alapján csoportosul * order_in type agency id alapján csoportosul v3.5.0 ---------------------------- 2023.11.23 * Adatbázis verzió: 4 -esre léptetve * Generált útvonalak * Stabil állapotba lépett a nyomvonal tömörítés algoritmusa!!!! * Ettől fogva nem kevesebb, mint 80% adat szüntethethető meg a stop_set táblából. * A szülő és alárendelt útvonalak viszonyának számítása teljesen újra lett írva! * Létre lett hozva a teszteléshez egy egyértelmű logolási és számítási logika * Az érintett programkód direkt magyarul lett kódolva, hogy méginkább segítse az átláthatóságot. * Teljesen ki lett emelve és ki lett szervezve és generált útvonalakhoz szükséges index számtási rendszer * Ez a menetrendi rendszer központi magdja. * Megszűnt az összes korábbi hiba és nincs többé hibás pozíció számítás sem. * Közvetlen a parent_sequence kapja a helyes adatot és nincs már utókorrekció sem a pozitív kimenetelért. * Külön számított érték lett a place_sequence, amely a helyes település rendezést felel. * Megállók csoportosítása * Megjelent a stop_group_id érték, ami az 500 méteren belüli azonos megállókat jeloli. * Megálló nevek * Összevonásra kerülnek azok a megálló nevek, amelyekben karekter elétrés található, de amúgy teljesen azonosak * A rendszer megkeresi a lehetséges maximum variációt és automtatikusan eldönti, hogy melyik megállónevet alkalmazza * Figyelembe van véve az ékezetes karakterek mennyiége, a kis és nagybetűk mennyisége, valamint, hogy 1 darab szóról van e szó. * Példák * A 'Dózsa Mozi' és 'Dózsa mozi' variációkból a 'Dózsa Mozi' lesz kiválasztva, mert több a nagybetű benne * A 'VIDEOTON' és 'Videoton' variációkból a 'Videoton' lesz kiválasztva, mert csupán 1 szó, amikor és ahol a kevesebb nagybetű a mérvadó * A 'ZF Hungária Kft.' és 'ZF Hungária kft.' variációkból a 'ZF Hungária Kft.' lesz kiválasztva, mert egyel több nagybetű van benne * Mindennek a célja, hogy az automatikus nyomvonal tömörítő méginkább egymásba tudjon tömöríteni azonos megállókat. * Az automatikus útvonal tömörító megálló azonosítóra vagy a megálló neve alapján tud tömöríteni. * Korábban nem tudta egybevonni a 'Dózsa Mozi' és 'Dózsa mozi'-t a volán 1125-ös két útvonalánál, mert tényleg nem egyezett sem a stop_key, sem pedig az stop_info_id. A mostani megálló név egységesétéssel azonos lett az info_id, ezért már is egybe tudott vonni két útvonalat. * Városok specifikus támogatottsága * A megálló nevekből ki lett varázsolva a település név, hogy a megállónevek célzottan váljanak elérherővé * Megjelent a places tábla valamint a place_id a stop táblában * Ennek köszönhetően még kevesebb stop_info fog generálódni * A település adatbázis nemzetközi, amelyben 23 ezer település neve és koordinátája található meg. Mindebből 3600 magyar település. * A hiányzó település nevek és adatok a Google rendszeréből kerülnek visszafejtésre * Mindez tovább növeli a település alapú exportálási lehetőségeket. * A városi szolgáltatók saját maguk település azonosítóit öröklik meg, azonban helyenként felülbírálásra kerülhetnek! * Downloads * Megjelent az db_version érték * Ettől fogva ennek az értéknek is meg kell feleni folyamatosan * Abban az esetben, ha a gtfs download request nem határozza meg az általa támogatott adatbázis verziót, akkor minden esetben a legújabb kerül letöltésre. * Az állományok törlésére vontakozó általános 30 napos szabályzat kizárólag a legfrissebb adatbázis verzióra érvényes * A korábbi adatbázis verziókból kizárólag 1 darabot tart meg a rendszer, ami ha elérhető, akkor a __max lesz az v3.4.0 ---------------------------- 2023.11.06 * Kényszerített futtatás * Ettől fogva forceBuild lesz a teljes builder, ha nincsenek korábbról globals fájlok. * Akkor hasznos, ha újragenerálás végett törölve lett a statikus kulcsokat tároló fájl * Ha forceBuild van, akkor mindenképp újraépül az adott work mappa teljes tartalma. * Generált útvonalak * Tovább fejlesztett algoritmus! * Jelentősen több útvonal lesz hasznosan elrejtett * Mindez egyszerűbbé és átláthatóbbá teszi az eredményeket pl egy megálló választóban * Eredetileg kizárólag flow_hash alapján voltak tömörítve az útvonalak * Mostantól akkor is child lesz egy nyomvonal, ha az útvonal nem érint pár megállót * Felbújó teszteset: volán 1134 => hibásan generált a rendszer. Pár megálló sokkal előrébb lett pozícionálva, mint valójában lett volna a helye. Ez azt eredményezte, hogy a teljes nyomvonal család redundáns lett és a megálló választóban azonnal. * Az új algoritmus jelentősen szabálykövetőbb, mint kiderült pár kiemelt probléma v3.3.6 ---------------------------- 2023.11.02 * GtfsDownloader * loadArchive fixies * reArchive: kizárólag az eredeti fájlok kerülnek bele. (Korábban véletlen bele került a last_mod.log) * BackupAgent * A source gtfs ettől fogva a módosítás dátuma alapján kerül mentésre * Backup policy szeparálása * Dátum taromány alapján * Mappa mennyiség alapján v3.3.5 ---------------------------- 2023.10.11 * GtfsDownloader: offline reLoad patch * Extra readme files at __backup /apps /globals /source directories v3.3.4 ---------------------------- 2023.10.09 * GtfsBackupAgent: SourceLastModLog patch * Univerzális útvonal algoritmus: javított nyomvonal tömörítés, ha kizárólag 2 megállóból áll a szakasz * Nyomvonalak: megjelent a group_sequence érték. Specifikus nyomvonal tömörítéshez jött létre. Például a H8 hév-nél 6db Cinkota megálló van egymás után, ami valóban 6db differens fizikai megálló. Mindebből majd egy darab fog megjelenni. * Járat lista: javított sorrend számítás dynamic_route esetekor v3.3.3 ---------------------------- 2023.09.28 * GtfsDownloader: extractArchive error handling patch * Cron: megjelenik a forrás gtfs módosításának dátuma és ideje v3.3.2 ---------------------------- 2023.09.25 * Letöltések: fájl megtartás + szülő mappa törlés fixek * EmptyDB: reCreate fix v3.3.1 ---------------------------- 2023.09.23 * Letöltések * Korábbi menetrendek megtartása és törlése patch * Backup policy bevezetése: 30 napnal régebbi állományok mindeképp törlésre kerülnek * Backup * Mentésre kerülnek a runtime log fájlok __backup/logs mappába * Adatbázis * Minden egyes futtatás után létrejön az empty.db fájl a __generator/work mappába a gyors sql séma áttekinthetőségért. v3.3.0 ---------------------------- 2023.09.21 * MÁV * Adatjavítás * Manual merge: group by type fix * Javított nyomvonal csoportosítás * Bővített manuális járat csoportosítás * StaticKey fix when long_name isEmpty * Ezentúl törlésre kerülnek az üres long_name-el rendelkező járatok * Csak akkor marad üresen egy long_name, ha tényleg semmiből sem tudta visszafejteni, vagy ki-generálni * Általános * Körjáratok neveinek javítása * Shape redukció: direction, mint követelmény v3.2.3 ---------------------------- 2023.09.09 * SQL: enabled high performance mode * JournalMode 'MEMORY' * Synchronous 'normal' * JournalSizeLimit '6144000' * MemoryMappingSize '30000000000' * PageSize '32768' * GtfsReleaseTrimmer => direction_date fix * Validators: direction_date check * Termux support for Android v3.2.2 ---------------------------- 2023.09.07 * Release konfiguráció * Szűkített generálás * Új 'enabled = false' paraméterként külön szabályozhatók * Pontosított readme.md leírások * Bővített CPU és DISK learások a futtatási információk között * A source.db 7z-re alakítása ezentúl a build után történik * Az aktuális dátum viszonyítások ezentúl a generátor start dátumán alapul * Tegnapi letöltések * A ma és tegnap még minden letölthető állományt tartalmaz * Ettől visszafelé csak a 7z állomány és annak hash állománya érhető el v3.2.1 ---------------------------- 2023.09.05 * Egyszersített gtfs downloader forráskód, 7z rögzítéssel * A gtfs.hash ezentul a source-ba van és nem a work-be * Pontosított __download/info.db * Minden a mai naptól korábbi letöltés csak 7z formátumban érhető el * Ezzel 85%-ot spórol a tárhely * ShellArchive * Át lett álltve native = false módra, mert nem javít a külön process * Az archive7z sdk végzi a tömörítést * A backup a source mappáról csak akkor készít mentést, ha valóban új a forrás * A _generator source mappa ettől fogva semmit sem tárol egy sikeres build után * Minden amire szükség lehet, az elérhető ::latestFileFrom_BackupSource függvény segítségével * Ettől fogve minden build után külön ki van takarítva minden használt könyvtár * Jelölve lett a generátor verziója a kiküldött emailben v3.2.0 ---------------------------- 2023.09.03 * Teljesen új mappa struktúrát kaptak a runtime és a kimeneti állományok * Ezentúl 2 fő helyen található meg minden * __download * gtfs * Valamennyi konfiguráció letölthető eredménye * A fájlok visszamenőleg 30 napig érhetők el * Minden korábbi fájl automatikusan törlésre kerül! * Minden egyes konfiguráció dátum szerint van rendezve * Azon belül pedig naptár peridóikus rendszerben * __max | 1 | 5 | 10 | 30 | 60 * info.db * A letöltések legfontosabb információ: pl created, checksum, útvonal * Ez a fájl minden esetben a futtatás legvégén jön létre, hogy az API minden esetben elkészült eredményeket lásson * A fájl tartalma sosem törlődik, mindig csak frissül! * __generator * globals * Generált egyedi kulcsok mappája * source * Eredei gtfs források és azok szükséges minimumra feldolgozott adatai * work * Véglegesre számított gtfs formátumok, forrás konfiguráció alapján * Konfigurációba helyezett forceBuild ellenőrzés * Egyszerűsített DeletAll.php v3.1.6 ---------------------------- 2023.08.26 * Új egyesített konfiguráció: MÁV-Volán v3.1.5 ---------------------------- 2023.08.20 * Backup agent * Biztonsági mentés készül ezentúl minden nap! * Ezzel megjelent a __backup mappa. * Kizárólag akkor készül mentés, ha az adott konfigurációnál tényleg új menetrendet adott ki a szolgáltató v3.1.4 ---------------------------- 2023.08.06 * Javított távolság számítás és sub-exportok fix * Apróságok * Logolás patch * Gyorsított sub-export * Módosított __globals forrás * .gitkeep fixies v3.1.3 ---------------------------- 2023.08.06 * Alkonfigurációk * Jelentős gyorsítás történt a szolgáltatói adatok exportjánál => **GtfsRegionDistance** * Előre ki vannak számítva a viszonyított távolságok. Meglló <=> Település * A Volán adatokat még ellenőrzni szükséges! * Egyéb * Javított log szövegezések * RunAll.php => elérhetővá vált a "-calculateRegionDistanceOnly" üzemmód v3.1.2 ---------------------------- 2023.08.04 * Trip törlés patch * Hamarabb kerültek törlése a rossz tripek, mint kellett volna * Feldolgozási sorrend felcserélésével lett javítva * Feladat: törölni kell minden olyan tripet, ahol a következő érkezési idő hamrabb van, mint ahonnan érkezett * Ez egy szolgáltatói hiba az adatok generálásánál. Jellemzően a Volánbusznál fordul elő. * MÁV * Teljes korrekció a jármű típusok kapcsán * Módosítva lett a városi busz (704) típusa általános távolsági buszra (200) * Biztonsági okokból blokkolni fog a generátor, ha új tpust vezet be a MÁV v3.1.1 ---------------------------- 2023.07.30 * Volánbusz: új GTFS forrás beállítása * Távolsági buszok * Megszűnt 701-es típus * Helyükre a 201, a 202 és 204-es típusok kerültek v3.1.0 ---------------------------- 2023.02.23 * Json alapú cron konfiguráció, Teljes kiszervezés, ország függetlenre * ./gtfs/config/config.json * route_types * regions * build_configs * release_configs * Konfigurációból rögzített járat típusok -ok * Új megjelenésekor a builder crashel és emailt küld * A _release fájlokat az új gtfs merge -er, mint összeépítő hozza létre, json-ból irányítva * pl: pecs + mav_pecs + volan_pecs * Specialis sub_exportok támogatása gtfs -ből. Városnév, mint megállót keresve, km sugár, vagy mindkettő alapján * Kódba égett BUILD_CONFIG konfiguráció teljes kivezetésre került * Php-ba szervezett gtfs source.zip letöltő * A korábbi bash alapú megoldás teljesen megszűnt * Biztonsági patch: hibás forrás esetekor nem írja felül a legutóbbit * Automatikus mappa generálás és tisztítás * Jelenleg 56 konfigrucáió létezik al-konfigurációkkal * Még további ~6 várható * Egyedi cmd parancsok támogatása, 'pecs' -force -skipDownload -skipSourceParse stb.. * Konfiguráció alapra helyezett DeleteAll.php * Gtfs típusok beveztése: city or country => provider * Bbővített gtfs_info tábla * NO_Teljesen automata source gtfs építés. Manuális schema építés megszüntetése. (ex : AutoSourceParser) * NO_Teljesen automata release gtfs fájl építés. Új konfignál már egy kapavágás sem kell. (ex : AutoGtfsBuilder) * Teljesen újraszervezett mappa szerkezet és futtathatóság (gtfs_folder + RunAll.php) * Teljes arhiválási folyamat PHP-ba került. 7z és zip kimenetekkel. Jelszavas és jelszó nélküli dupla verziókban * A korábbi bash zip alap teljes megszüntetésre került * Folyamat egyszerűsített / átalakított (Run)All.php * ?? Tovább gyorsított shape extend ~30% * Legutóbbi email tartalom html fájlba mentése 'daily_report' + 'latest_error' neveken * NO_Email tartalom informatív bővítése * Rögzített run.log fájl bevezetése.A korábbi sub_log kivezetésre kerültek * Log echo vizuál full patch + tisztázott log rendszer * Új hash rendszer kialakítása a _release gtfs -ekhez * A _work mappa továbbra is a legutóbb érvényes source_csv.zip alapján működik / buildel vagy sem. * Egy _release gtfs bármennyi szolgálatót tartalmazhat, ezért ott más hash kerül mentésre * SHA256 => 18|20230101|20230115 <= gtfs.hash * Közlekedő járatok mennyisége | Közlekedő első dátum | Közlekedő utolsó dátum v3.0.0_stabile ---------------------------- 2023.01.29 * Új konfigurációk * MÁV * Volánbusz * Véglegesítés * Generált útvonalak * Megállók közitt eltelt idők * Teljesítmény növelése * stop_set generálása * shape_redukálás * shape újrakulcsolás * Email jelentő beveztése * Napi jelentés * Hiba jelentés v3.0.0_preview ---------------------------- 2020-Q3 - 2022-Q4 * Teljes könyvtár és szerkezet szeparáció * Source és Builder sztéválasztása * Univerzális útvonalak bevezetése * Adat trimmelés null -ra, ha üres annak tartalma * Naptárak redukálása * Pécs: tüke naptár érvényesítése aktív kapcsolattal, weboldalukról * Járat csoportok számítása * Körjáratok számítása * Járatok valódi sorrendének kialakítása * Szenzitív szolgáltató adatok prefixelése * Új konfigurációk beveztése * Budaörs * Dombóvár * MÁV * Speciális wrapperrel, tömörítővel * Szombathely * WeekendBus * Adatbázis kiegészítése * route_dates * agency * app_meta * trip_headsign * order_hash * related_routes * stop_enter_exit * trip_initial_time * trip_blocks * stop_info * direction * direction_lines * direction_main * direction_hidden * direction_garage * trip_delta_times * bikes_allowed * wheelchair_accessible * boarding_door * ... * AWS Lightsail -re váltás v2.0.0 ---------------------------- 2019 * Új városok a konfigrucáióban * Budapest * Kecskemét * Miskolc * Pécs * Szeged Version 1.0.0 ---------------------------- 2017 * Tervezés megkezdése Budapest, Pécs konfigruációkkal * Teszt jelleggel alkalmazásokhoz rögzítése * Aws EC2 publikálás . . . **Powered by: MenetBrand**