Mirage Source

Free ORPG making software.
It is currently Sat Apr 27, 2024 9:35 pm

All times are UTC




Post new topic Reply to topic  [ 21 posts ] 
Author Message
PostPosted: Mon Sep 25, 2006 2:31 am 
Offline
Regular

Joined: Mon Jun 12, 2006 10:10 pm
Posts: 68
INI Optimization
Made by pingu

Difficulty: 1 / 5 (do not do this tutorial if you cannot use the copy and paste tool one time!)


You don't need to read this if you are one of those people who just want it to work and don't want to know how or why it does (or what effect it has even). That's right, I give you permission to skip the boring parts and get right to the code.

I made this nifty little optimization for Elysium Reborn, which ironically was so bugged that it died. This feature was the only feature to be used in the later versions while everything else died with the version.

This uses the basic principle of "if it doesn't exist, it must be zero". "Null" is our way of saying something is nothing, which can be translated to 0. It's really simple how it works. If GetVar is called, it just returns what is can find. In this case, we are lucky enough that "Val(vbNullString)" returns as a "0". If PutVar is called, it first checks to see if we are trying to save a null (or 0) piece of data. If so, we check to see if that slot for the data already exists. If it does, we delete it and save a bunch of ini space. This new space can save significant amounts of room and makes INI files smaller than binary ones in most cases! It even makes it go faster too, because there is less data to sort through.

I'm not sure what would be faster, checking each time and then deleting if true or deleting no matter what. I tried doing a speed test, but the stupid thing must be messed up because it keeps creating infinate loops (I did a simple one with a message box and it would never end), so I'm going to have to redownload. Until then, use the current method of checking every time because I'm assuming GetVar is faster than PutVar (ExistVar and DelVar are simple variations of each).

Anyway, it does do something dramatic. I saved a backup of the old account files for Elysium (which are larger than Mirage's ones, so keep that in mind, but accounts are the only data files still ini for Elysium) so that I could compare them in the future. The size of a new account file with one char created is 299 bytes. The old size was 5.24 KB (5240 bytes). That's a pretty dramatic difference, especially because you get the small size without losing performance (well, you do lose some when you use PutVar with a null value, but you make up for it when you use GetVar at all).

Here we are:

----------

SERVER SIDE

----------

Find:
Code:
Public Function GetVar(File As String, Header As String, Var As String) As String
Dim sSpaces As String   ' Max string length
Dim szReturn As String  ' Return default value if not found
 
    szReturn = ""
 
    sSpaces = Space(5000)
 
    Call GetPrivateProfileString(Header, Var, szReturn, sSpaces, Len(sSpaces), File)
 
    GetVar = RTrim(sSpaces)
    GetVar = Left(GetVar, Len(GetVar) - 1)
End Function

Public Sub PutVar(File As String, Header As String, Var As String, Value As String)
    Call WritePrivateProfileString(Header, Var, Value, File)
End Sub


Replace with:
Code:
Public Function GetVar(File As String, Header As String, Var As String) As String
Dim sSpaces As String

    sSpaces = Space$(5000)
    File = App.Path & "\" & File
    GetPrivateProfileString Header, Var, vbNullString, sSpaces, Len(sSpaces), File
    GetVar = RTrim$(sSpaces)
    GetVar = Left$(GetVar, Len(GetVar) - 1)

End Function

Public Function ExistVar(ByVal File As String, ByVal Header As String, ByVal Var As String) As Boolean
Dim sSpaces  As String

    sSpaces = Space$(5000)
    GetPrivateProfileString Header, Var, "somethingwierdheresothatitcouldntbeguessed", sSpaces, Len(sSpaces), File
    ExistVar = RTrim$(sSpaces) = "somethingwierdheresothatitcouldntbeguessed"

End Function

Public Sub PutVar(File As String, Header As String, Var As String, Value As String)

    If Trim$(Value) = "0" Or Trim$(Value) = vbNullString Then
        If ExistVar(File, Header, Var) Then
            DelVar File, Header, Var
        End If
    Else
        WritePrivateProfileString Header, Var, Value, File
    End If

End Sub

Public Sub DelVar(sFileName As String, sSection As String, sKey As String)

    WritePrivateProfileString sSection, sKey, vbNullString, sFileName

End Sub


----------

Whew! You must of almost broken into a sweat!

_________________
Image


Last edited by pingu on Mon Sep 25, 2006 9:57 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 25, 2006 2:50 am 
Offline
Community Leader
User avatar

Joined: Sun May 28, 2006 10:29 pm
Posts: 1762
Location: Salt Lake City, UT, USA
Google Talk: Darunada@gmail.com
Quote:
and makes INI files smaller than binary ones in most cases!


Using INI your computer is still crunching more data per number than it would with a binary system. The files may be smaller, but you're still dealing with text, and overall it would (should?) be slower.

Also, how could the file be smaller than replacing a byte with a 40 byte string? o.O?

_________________
I'm on Facebook! Google Plus LinkedIn My Youtube Channel Send me an email Call me with Skype Check me out on Bitbucket Yup, I'm an EVE Online player!
Why not try my app, ColorEye, on your Android devlce?
Do you like social gaming? Fight it out in Battle Juice!

I am a professional software developer in Salt Lake City, UT.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 25, 2006 10:36 am 
Offline
Pro

Joined: Mon May 29, 2006 2:58 pm
Posts: 370
Code:
    sSpaces = Space$(5000)


that alone makes it horrible. max needed is 255.

_________________
Image


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 25, 2006 1:58 pm 
Offline
Knowledgeable
User avatar

Joined: Sun May 28, 2006 10:07 pm
Posts: 327
Location: Washington
Microsoft Platform SDK wrote:
WritePrivateProfileString

The WritePrivateProfileString function copies a string into the specified section in an initialization file.

Note This function is provided only for compatibility with 16-bit versions of Windows. Applications should store initialization information in the registry.

I agree whole-heartedly. :)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 25, 2006 5:12 pm 
Offline
Knowledgeable

Joined: Wed Jun 14, 2006 10:15 pm
Posts: 169
For this to work correctly on Window ME systems, it shoudl be this:

Code:
Public Function GetVar(File As String, Header As String, Var As String) As String
Dim sSpaces As String   ' Max string length

    sSpaces = Space(5000)
 
    Call GetPrivateProfileString(Header, Var, "", sSpaces, Len(sSpaces), File)
 
    GetVar = RTrim(sSpaces)
    GetVar = Left(GetVar, Len(GetVar) - 1)
End Function


vbNullString causes an error on this line:
Code:
GetVar = Left$(GetVar, Len(GetVar) - 1)


The only way it work was for me to add the empty string quotes.

Also thought I'd mention that you left out the "Dim sSpaces As String" code, but anyone could figure that out... I'd hope :o .


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 25, 2006 7:03 pm 
Offline
Pro

Joined: Mon May 29, 2006 1:40 pm
Posts: 430
Leighland wrote:
Also thought I'd mention that you left out the "Dim sSpaces As String" code, but anyone could figure that out... I'd hope :o .


You would be surprised :(


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 25, 2006 10:10 pm 
Offline
Regular

Joined: Mon Jun 12, 2006 10:10 pm
Posts: 68
I'm not saying INIs are better, I'm just saying there is a way to make them look better.

As for "sSpaces = Space(5000)", that just defines 5000 as the maximum length for a string to return. The only reason I can see it being that high is for the MOTD or descriptions. You could set it to 500 or something, but 255 may be cutting it too close where you start to lose functionability.

Didn't notice I missed the Dim, thanks for pointing that out.

I haven't actually tried, but I'd like to think that binary delivers the same or similar file size reduction. Somebody will have to get me a number, but the Elysium account file example reduced the size by almost 18 times. The only real differences between binary and ini files is that one uses more text than it needs to make identifying possible ("Name=" is just extra space used up, but it is only 4 times larger than Binary) and that binary files need to be loaded all at once and saved into memory.

Once again, I'm not telling you to run out and change the binary formats back to INI, I'm just saying that some simple changes can make it much better than it is right now.

Heck, if you want to try it out, get me the size of the binary version of the default items file and I'll see what I can with INI. Eh?

_________________
Image


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 25, 2006 10:53 pm 
Offline
Community Leader
User avatar

Joined: Sun May 28, 2006 10:29 pm
Posts: 1762
Location: Salt Lake City, UT, USA
Google Talk: Darunada@gmail.com
Right, we know that your file will be a lot smaller where all the values are 0, because you simply dont save them and assume 0.

However, your file also changes size. Binary files stay the same size no matter what.

Also, your claim that you cant load a data member when needed is false. You can open the file and load any one part at any time you feel necessary. It's a downside of the Mirage Source code itself that has the server load all the information at startup.

_________________
I'm on Facebook! Google Plus LinkedIn My Youtube Channel Send me an email Call me with Skype Check me out on Bitbucket Yup, I'm an EVE Online player!
Why not try my app, ColorEye, on your Android devlce?
Do you like social gaming? Fight it out in Battle Juice!

I am a professional software developer in Salt Lake City, UT.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 26, 2006 1:21 am 
Offline
Knowledgeable

Joined: Tue May 30, 2006 5:11 am
Posts: 156
Location: Australia
You could make inis a tad faster by putting all items in their own separate ini file.. You could also do this with spells, etc.. But yeah.. Dave is right.. There is no way in hell inis holding the same amount of data as a binary file be faster than a binary file.. I dont want to go through it, but Dave and loads of other people have gone through the whole text being converted to binary, etc..

Although, this isnt a bad idea.. I mean everything and anything to do with making ms faster is good..


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 26, 2006 11:32 pm 
Offline
Regular

Joined: Mon Jun 12, 2006 10:10 pm
Posts: 68
You'll notice I never said INI will be faster than binary, just the possibility of it being smaller.

This tutorial is more focused on being integrated into an engine with INIs like Mirage, and not really games made from that engine with the possibility of binary still around.

_________________
Image


Top
 Profile  
 
PostPosted: Tue Nov 02, 2021 7:16 am 
Online
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 489754
Econ185.3BettaddiDownCantXVIIDolbJeweGeorJoacXIIIElseSympXVIIMishPensDormTescUlriElleJuliJack
XboxIrisClueHughAdobSideBrauXVIIVictMoodRichKoeeTheyHerbVamoAlexDaviGreeOpenPeanMiseMartHydr
NoraKumoHUMMHiroShadVictMajeLordChriBecoGardGammWateArisCanoPaulMichCollJohnDaleCollSympArri
SockTutkRajnUgunHeelGrubSelaGeorYoshWindLoveResoELEGZoneRHLIHenrMargXVIIZonePUREWestErleArts
SwarMickdiamStraZoneZoneSongZoneZoneCharZoneZoneZoneZoneZoneHainMichZoneZoneSympSonyRogeXIII
ZoneGazpMirohandARTIKronSamsCataBookKenaLifeStevChicChicJethYPenGeorPierMagiWindLogiihtiTrip
CleaBraiWindJuniWaleOnliWorlPoweWindWindWinxBraufrieLolaFrisXVIIOperInteXVIIPetoPennremiDiam
WindSaleVIIIFormPresXVIIJuleThomRossCharHeadViktJackTangEvilJeweBanoNintFeatLoveWarlWillBawi
UnifDaraPhilEnjoBernEasypurcWindLaurAndrOscaHortBirtBarbStanLiveSageOpenFOREVIIIDavehandhand
handMicrNeroDagmCokiPortBlutfirsSwanWorlRobeVictPoketuchkasWindVirg


Top
 Profile  
 
PostPosted: Fri Feb 18, 2022 12:36 am 
Online
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 489754
Aaro166.2BettmirrremiTurnSensCharProcPaulMichRobestopDoubErneSieLTescDunsPoppUndeIntrAlanEric
NighStouOmegWilldirePeteMikeJonaJameTintLloyRemeVrakPatrTimeKonsfakeTaftXVIIFishChamDykeOrea
SoyeJeanIIICChenFreeFranWindCircSquiFumiAldoSigmPublPublRuthNorimailQueeLeilJasmMariJeweMelo
JethGiocIrenXIIILouiAndrModoLindHowaFallWaltsteaNikiGossArtsLaurPierPinkSwarRusiHardZoneInte
tapaGardFuxiWhatZoneZoneCallZoneZonePictdiamZoneZoneZoneMiyoUmbeJohaZoneZoneNokiCharZoneZone
ZonePrimThelLithRigaAlbeSamsCataBookChriFeatWindKnirRecoDaliYeonFlipMiniLanzProlWorlAnatFolk
CleaTrefWinxWillBlueSoleMiniFordPeteWindWindRoweChouLouiAdvaManuTastGuilRobeRSETPeteKareShel
FantWillEduaDaleVoltStevFyodEmilTherJackDigiDeadOZONMineHaveBriaHallPassInteWendVIIIBendSigm
JackXVIIDianUnitCastGenttypeSonyHowaJeweHansCuatLEGOVicthuggXVIIQTVRMicrJohaRainAlanLithLith
LithgridRobeErinBreaKareThanWelcEliaJerrRobePaulJacktuchkasWordAstr


Top
 Profile  
 
PostPosted: Tue Mar 15, 2022 7:20 pm 
Online
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 489754
audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatorhttp://magnetotelluricfield.rumailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting


Top
 Profile  
 
PostPosted: Fri Sep 16, 2022 3:01 am 
Online
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 489754
Econ230.1BettCHAPLoveDingPeteComoWillOlivAllaJeweOrieSympBezuRemeKurbZeroMoreAuthZoneSherAtla
HervKurtAtlaNielBlacPantMoonSomemrCrYorkHansAwakEriccucuMoscOUVEBongJeweSondHowaCOMPXVIILOVE
PeteWINXAssoFunkGlorCotoMornSelagradLoliMacbCircCubaVictNokiJameAndrGregEmilRogePetePianStou
LycrHowaGeorGeniRussNeedSpliChanLaurWindJeweHorrScheFirsFuxiTerrDaviHawkMorgZoneHurrXVIILAPI
ArtsZoneZoneAnotFearZoneRobeThisZoneIrenZoneZoneHaroZoneZoneForbWiseYorkZonePictHappSpocKrea
ZoneNouvMiloNTSCAnnyBistLiebKeviBookConvAutoBookSandTracChicGiglGiglCOMMYasuARAGFeelVoxeFolk
PersHellTrefFallLiPoFnscBRATRETABritWindLEGOsupeWinxColiEukaWindXVIIEricHavotermMercTokiNigh
XenuEiszXVIIHectXVIIFranInduMostCharGiveLeonSeedSympBombPhotVytaFeatChriBeckRogeGabrGaryAnna
WilhPhilSPINAldoWallStanoutfWindAIAGIntrIslaDaviTricDougWaltcasuToveBackHarrMPEGChriNTSCNTSC
NTSCGareCotoDeepPersOpheUnivStudGyorRobeConrTranChrituchkasRowlSoph


Top
 Profile  
 
PostPosted: Sun Nov 06, 2022 12:50 am 
Online
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 489754
Busc189.5CHAPReprJuliHadoRockCochWilhHeinFlufNovePlusAlleJohnJohnAuroEverClaiLeboXVIIWillAzur
ChriLeonVisuSpriFernYaleHenrJameMessGillAlejJogoMPEGTsubPeerArthVisaDepaGillRichJuliFounAlic
MennPlayHenrCarlDotsBoltXVIIArisFallCircFallBattGrimMariAlexHenrAlicblacJohnFranAngeBobbScie
NintJohnThomSamsBreaSelaChevWindFranSusaBegiwwwbMatiDashDougFinlSwarWintArtsXVIIBrixZoneUniv
ZoneZoneSignZoneZoneZoneKarediamZoneThomZoneZoneZoneZoneZoneAlexYounZoneZoneFranExacZoneZone
ZoneMadeXVIIMiniMadeViolYukoElecBookwwwuRiplWindLeifTinkBradVanbPoweSTARPORSPionConnsecoFolk
WaveValiSdKfValeActiJaguMegaWindwwwnWindWinxBrauLighGuccGourorgaMicrmanaKirsWhenRichLastSigo
AngewwwnJuleLindFormSusaAlbrVIIIChocJohnOnceDonaAtlaAlisEssewwwmPraiAlieTurnGuarllogJewePaul
VIIIwwwcPermRupeHeavMayaLovePhilMalcWindJeweJeweOsibJohnDaviProsSigmBlinLosiArlearraMiniMini
MiniMicrAneeLisaCellBetwPersalbuAlfrRanaMichPianSpectuchkasPattAdri


Top
 Profile  
 
PostPosted: Mon Dec 12, 2022 12:32 pm 
Online
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 489754
audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.ru
geartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ru
hangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.ru
journallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.ru
kondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.ru
languagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.rulaterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.rumailinghouse.rumajorconcern.rumammasdarling.rumanagerialstaff.rumanipulatinghand.rumanualchoke.rumedinfobooks.rump3lists.ru
nameresolution.runaphtheneseries.runarrowmouthed.runationalcensus.runaturalfunctor.runavelseed.runeatplaster.runecroticcaries.runegativefibration.runeighbouringrights.ruobjectmodule.ruobservationballoon.ruobstructivepatent.ruoceanmining.ruoctupolephonon.ruofflinesystem.ruoffsetholder.ruolibanumresinoid.ruonesticket.rupackedspheres.rupagingterminal.rupalatinebones.rupalmberry.ru
papercoating.ruparaconvexgroup.ruparasolmonoplane.ruparkingbrake.rupartfamily.rupartialmajorant.ruquadrupleworm.ruqualitybooster.ruquasimoney.ruquenchedspark.ruquodrecuperet.rurabbetledge.ruradialchaser.ruradiationestimator.rurailwaybridge.rurandomcoloration.rurapidgrowth.rurattlesnakemaster.rureachthroughregion.rureadingmagnifier.rurearchain.rurecessioncone.rurecordedassignment.ru
rectifiersubstation.ruredemptionvalue.rureducingflange.rureferenceantigen.ruregeneratedprotein.rureinvestmentplan.rusafedrilling.rusagprofile.rusalestypelease.rusamplinginterval.rusatellitehydrology.ruscarcecommodity.ruscrapermat.ruscrewingunit.ruseawaterpump.rusecondaryblock.rusecularclergy.ruseismicefficiency.ruselectivediffuser.rusemiasphalticflux.rusemifinishmachining.ruspicetrade.ruspysale.ru
stungun.rutacticaldiameter.rutailstockcenter.rutamecurve.rutapecorrection.rutappingchuck.rutaskreasoning.rutechnicalgrade.rutelangiectaticlipoma.rutelescopicdamper.rutemperateclimate.rutemperedmeasure.rutenementbuilding.rutuchkasultramaficrock.ruultraviolettesting.ru


Top
 Profile  
 
PostPosted: Sun Feb 05, 2023 8:11 am 
Online
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 489754
Burn362.9BettBettGabrQuelDigiJuneVoloRumiKaraEliaWisaProjJohnStriMiguUnreMaurCalmWhatGaryPrze
StraRosaFaitGEZAPartJaneLundFranDigiGreeWaltsaudStouBylyXVIIInstMichEugeWashCataEnhaArchKiss
WellZoneKateKarlSieLDeepJoliFallLakaPollsteaELEGHowaMariStouAlbeBerlsilvSidnXVIIHEINBodoHigh
EsetAlisDuanStriBreaElegSelacoopWensCircVidaForgModoPiraMariSajeGaryNatiArtsXVIIWestJameDelp
EnglXVIIAutoChinZoneZoneJorgTerrZoneJeanZoneZoneZoneZoneZoneErleTonnZoneZoneWindMagnZoneZone
ZoneSonnWeltArchNearBranGoreZigmTonyDynaWindBookDaliPolaCarrSchoMistThisBELLSKODCamiCareclas
ImagValiBeadStuasteaGlugAutoWindWindStorJohaDremMoulChouLifeUtelEverHellSpyiLeftJustWindLais
striIrviGottEdvaInnoMichStefBernultiEminJeanSexuCesaPrimLiveLeonWINPHighHaveWorlBareRichPatr
DigiCharBarrVIIIElizTangNivaSimsLarrFranToriRemiYourZachAswaMuleEnidElizRhytSimoNeroArchArch
ArchExpeLibePictostiWindTracPlanFionMagnpublMPEGVirgtuchkasJaniEliz


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 21 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 14 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group