Results 1 to 6 of 6

Thread: Ultimate Fibonacci Number Generator

  1. #1
    Join Date
    Dec 2006
    Location
    Sydney, New South Wales, Australia
    Posts
    4,603
    Mentioned
    15 Post(s)
    Quoted
    42 Post(s)

    Default Ultimate Fibonacci Number Generator

    This is the Ultimate Fibonacci Number Generator It isn't only limited to the range of Int64's, but the range of an AnsiString, which can support over 2 billion characters! Or the range of an Int64 (which really depends on how many loops you want it to do).

    Here's the highest number i went up to:
    Quote Originally Posted by Dan's The Man's Ultimate Fibonacci Number Generator
    52838008358976543267749320231654720787942132887034 68961834340790432037993637379623472248029350345127 10491126701654599379487882398944895951412901374096 97289144226745589805487996458661690389777129009585 65415938135155543000753670304859040158520022791427 55573064313348134330714716433085897157497810808547 71051009540500856123586630923674663793981482630865 35324154105642510215440549302054282588012817868532 79358532634142364252923169066887303936266186635348 27599252614672062615976259256925348392197985333744 32996436497351124286532798099044460555970171396495 88809234657725222787384665534961187916378328995866 80020326963700690281641593735118740340025476661634 14483137305316341779106145562224133242504924993400 58880242178528693028445767674184444932119333297180 16190007403837268721122617870958019304335436360914 76263833586172855304321897305399131118232956982476 80995994180077318284251788645984991879886646535175 61023644740770220738740102471787701291294933261914 74650145829739834601147553861696070335226059405216 11124112682222324125753600768508086260261523181052 73335509503933724746221755550653225948586983426662 80171532344031071385540256387410161570758056227666 31586016786095107087991991193588180276654453382923 37260921372038693974190418688398923228691451668241 14512316521283209404075613883581992204851975142819 54339286290296458526939555627542402168167577528939 01194119100757286193209576835450160948296492498458 97389838579950099225812224134956589244700411371814 47260306170241551381142463278109864482872606149326 57248216777123134438557124115884434709437436638744 92143046139891238679391751954491434462073905959153 44958661560784891533245620418017372066556152295577 56849411907809726219462398617576338915219604007146 48923140313459606190095936581724671519677500973503 58160140205434857112503278222856531371082070911299 96403830018943937943807225426556886525635207601759 20681989014025297067166766940233979045157712268629 07898560940754460783158983543832736843777378751535 45497795317013926679280728840709864713968137304023 23583443159433446416982614918832033706209117764523 56397512239609366952412840463152667788328291244797 53711534990917117660464324792409543688283984465644 80321040213934248095615403142234650699321875217589 11627844430073480911908163536295857658176854352847 30144857415700272013770103230866002430674353330182 04894302886082796177114717783269922378188882494301 35009840017170433748923784889465165934989501215740 39499491416196559347002726931967095032207882947339 89150790074857035731660249244363089647991962232517 99289214596458219465223419055068734106923414940673 53610359435480068264942817563002847250113793995759 98089739113240245212585616507565523286154866370112 59815340759988166721654941880928899938937491512059 90002831469667053662873363478830705405797252464170 65372393767273125821465085634933814146166719724025 29591574379109091255325028017023632944862866802511 91927815520942459302067891220419077656268507912538 60707211335726843917435849768962186317558815494012 80795648378392629979238839651259259224935340744518 33454123137006801463936311362212404182409497313780 22046971578743525967033009431857515008421536482493 45426096348219615038374391960181959236266982287469 49035402690593203173033271361930272792832544428016 82718788836166567912606094082096059482520948815718 97252025623606820237990538021031372895387815178899 98791210313683645359735180884339248047654116328835 94833323274187147871486598733251956126827491297335 83484851790630257107649072733594742169562026807433 28899333803878821172157959851876709290692763041131 34215061907286163683161586275181395093054345394667 71125980625555753029100566764657723530922107082760 95571767216971345665055503635623260931562942728523 53170064740925255767303843810939300317775384506071 16166846705824118371002640419882121311030392179788 94406922647034724858210104318802886960016410676374 39736453021183075365716012510034294014153944909742 77359866563472611340548513394018088874114727937568 90818400615547006438604882774794358155689146232799 92893575623393818336258002208241064680538186694441 36513602932340698316190202358412461433734660887452 67587942050173140728651226056384643367370469954988 02053639921581613420003162912095863284774312338432 21940191015129984479560427037724595432096751244753 87964146134770903998756246255795808614329712053488 19565804258864282607041225472484106717844877362871 41938265029083664303131233261240127192369822709910 75784746080272181085249254991580998579091143693017 25350218438906135860995083882789900229254491832314 98752206226425419963504162567758317861122946150720 71629488515067819453734653525754189111328592031553 94734827687985373806640489406535306011342663725025 47577539262579521364047359681710235186553556259147 25752976979156636381275910003600243919669636459433 06808870387645066862220831955866099512467377828989 19177935647881893020586525815257125420966447055196 73692866896765393707144644422377173228838393159376 06437225310588804553559332050389437742304160051901 00018272779974121206912772301584235101988473341656 63614322934611136986345025210893703763071701029796 84672397516065707612194946421360959170947361921597 67560152782333996131905028902906067240655314671236 79787998029744025350698197137802305328453384066329 75888869557782581287729459502116483544773393976919 56971862977295130783028470889538248286172269174508 20718248941923358004740140652247581764780245634332 26730583085689303040575181390977398104003787817244 96556501329245782946438731952078891681095750774959 46727292877979817728551090754038709562748230103135 23057961613848061543413658126576593139220580861264 40572551025160392513372570573086189997486053622075 78611351555681220809426698505551919944318735065123 67080509479293043622830074954339252167196104225311 30696897493171704434968774121806959308170012372276 00788197209393480403012735507457844868419213481169 57382172221312535289844685532369398043311624951046 57963241750390463859053999507302778467378538895642 85993819286139051059643613952190570564752266351993 23471766115732527741855040101392821326145534210453 87538923383066867428215393482033916055168686526982 21752368764042060384604476326600151070714589388930 85846348290516590362149697889838029488890220028634 62380453047455889107612548442908729523829207782349 84673478865564342300781805335416507627680736307360 92810772187698639506039333157325148996963842122764 17558093399095899958301358707129535904372007401635 30608982247603914635947126843257042421171540592464 44466388502147185693272957944289993253969326200147 95154065406779767874037871315622510317958982649350 61252352821544899804418624032196540721596978395136 36639277702753038539970602758025750706554881613118 84778631464748529652273221590450201145659960037489 53972254466140322977862019964850870706559306376061 54204613680731368713050762310585521833936208508066 88402407523076889096254650796326730284181878196378 07288348538035106418827389579784609508995235630451 84658607846034542225124024746929119522033852764606 01555492781448993218135273256756730118329030159087 37382372942317319142564308586103505869639329684623 44289775869746913927102960731544216061953436758166 70566156181324180357614495836353265288243715069542 27388468780191298678363080110147474261384534585228 57794562119730921963451008316099122638174845559579 54714348510005750543477254434682201226466878447941 28335204041742873237905412437376621946214940137782 27954930387892904140119460199652510563586773514487 49466844272294105087968421919080112024642644435860 63635394051697518657405720743126753910851193366339 98369155161130021404752252525983886889100745480473 73948071433547903452850992462372899791561761406770 53987497020420877482246185321578280539422784425117 06502130183700947085243555498893220156653853630769 38141793707194700235374363142054119634514879895439 05305097796868530667388375644399917665823296725736 89536245941975291507472529977186435855187498540351 33753040088122636480494122444827631522992046153415 82813859890684758518460282838602975177389981044807 15318220125964332456605546602858817058136033756038 35099384821934790743129644353882410836809625030138 82178191509928500816182059308684802832494491858164 48518825997004778750359096425085530383070319364726 49689196558439363967909499906533558426546807595048 90084145422053457302794180347882859216377775387974 70398342815572353517740992337426938909256851357213 78468416394282535396718081261424025605954888275778 721559283665
    Enjoy guys

    scar Code:
    // -- Dan's The Man's ULTIMATE Fibonacci Number Generator!

    const
      Times = 10000000000; //How many times to do the Fibonacci?
      WPeri = 2; //Wait period between Fibonacci prints?
      PrAll = True; //Print all the Fibonacci numbers?

    function Plus2Str(Str1, Str2: AnsiString): AnsiString;
    var
      i, bI, Remainder, cI: Integer;
      bStr1, bStr2: AnsiString;
    begin
      bI := Max(Length(Str1), Length(Str2)) + 1;
      bStr1 := PadZ(Str1, bI);
      bStr2 := PadZ(Str2, bI);
      //bI := Length(bStr1);
      SetLength(Result, bI);
      for i := bI downto 1 do
      begin
        cI := StrToInt(bStr1[i]) + StrToInt(bStr2[i]) + Remainder;
        if(cI > 9) then
        begin
          Remainder := 1;
          cI := cI - 10;
        end else
          Remainder := 0;
        Result[i] := IntToStr(cI)[1];
      end;
      if(Result[1] = '0') then
        Delete(Result, 1, 1);
    end;

    var
      D, A, Tmp: AnsiString;
      I: Int64;

    begin
      ClearDebug; //Comment out to not clear the debug box =P
      D := '0';
      A := '1';
      for i := 1 to Times do
      begin
        Tmp := D;
        D := Plus2Str(Tmp, A);
        A := Tmp;
        if(PrAll) then
        begin
          Writeln(D);
          Sleep(WPeri);
        end;
      end;
      if(not(PrAll)) then
        Writeln(D);
    end.
    Last edited by Daniel; 10-18-2009 at 10:25 AM.
    You may contact me with any concerns you have.
    Are you a victim of harassment? Please notify me or any other staff member.

    | SRL Community Rules | SRL Live Help & Chat | Setting up Simba | F.A.Q's |

  2. #2
    Join Date
    May 2008
    Posts
    1,345
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Very cool, how long did it take you to return that string? I'm probably going to leave it overnight and try to max out the string :P.

    Edit:

    Damn, it made a second line in SCARs debug box.

    12238772859981717926891107668035922389283524197103 62697704258186334211565313156564095356759577776959 76306770097808644528073882695765594150397535764438 10000780096211484847118359070503549017553716347302 38062018436591115752593320452276125700901292380275 82669840510154680947854705360876353800202616199548 83848446400688136243601148246825424976327914656293 81945661056493073607809724496030842574829279342992 87833069477415013546835578904201410782523912807160 07294964436841059837862253995316824906162793834857 59503948359610315281616247982561977303953623231454 69867569444980962412765247742358324677261253331773 63864533248180658622914819819346200918004738721719 84096404361842500147319227574168662702482810806076 84005306814965744153675889085137111537067113724454 79366949381885313817613958535508020863264141541237 58720110266717361847917132944317883411085141493558 28510426134508389110096299227814020163634243741379 00108634646209059344779829056410813128659900749779 84412991153493125768125411673127708381772941097812 96137820990772795231203462298227429122291257699886 74180503799742660842152344776485888086653141545572 51014381617302119382699519005556137670483017433074 05649854083739709756320741574022484770865908262335 25300077899918995847401960860917216408067509213978 45920138699462786851605773679115675032052975111333 73680545564156726622818344047726418270282924775646 38037091168403647865742885232817238294099274263116 80927081992208572420133338629136243080381231548307 70581861503759166448897562486074720165940033836877 36794620021939992460305927830051899143479963653377 02770284180346438249411510254990935508466188507852 94323683050621847929047601861919790978767868314214 60675164642400262625893655074889405391172132271420 11101778525529744766376953299858483071555712096108 38517384406178091784599228122227599308613047357368 58256353797057808166317505440365813470710819061387 24969895439359889530115197067049270421247063026883 25476701378990261405151874671614093668612134473561 50227909929271654586739062536250256479938358320656 51034679026839829071555793289631737094102656444634 51928278840352098621584718551077164830914919374456 39639356837304680690062467991617183984710211187002 47512146536167440849750714317982064843228078740841 44175435751471244793446850554656620769972296897909 70954279354083311168106184616363635420658056535390 09795553075931897399702832915350622839790099851899 05682577202589062571277866419126087293575827741552 66322386335463739709612423083002764297511153085195 94941575979717682611728920668302398686004446955503 69538514629415303158972250783986549060383657121310 53769752590618708052597828202466658599199729886001 59289300776685177315304935302826789031534577692624 25518844239086455235545310894468536929954567881630 12411875913388669520993731078890551046948192119591 77804968539333381174869208985300479163136056514945 02860893011674506320047947403211062534975871740748 27983697517146203059650095493290791918252309851016 52470423047578440346102538098456059547170852191071 38535984915167242943481639872959839340372729427513 91658372027816619027994542063149837512093367309890 60704981185511245169008943301812955893228579573948 25062169
    ~Sandstorm
    Last edited by Sandstorm; 10-01-2009 at 05:03 AM.

  3. #3
    Join Date
    Sep 2006
    Posts
    6,089
    Mentioned
    77 Post(s)
    Quoted
    43 Post(s)

    Default

    Pretty cool But why use strings?

    I made something for big numbers some time ago and adjusted it to output the Fibonacci row:

    SCAR Code:
    program New;

    const
      Lo = 1;
      Hi = 1000;
    type
      TBigNum = array[Lo..Hi] of Byte;
    var
      APow: array[0..10] of Integer;

    procedure InitPow;
    var
      i: Integer;
    begin
      for i := 0 to 10 do
        APow[i] := Round(Pow(10, i));
    end;

    procedure ResetBigNum(var BigNum: TBigNum);
    var
      i: Integer;
    begin
      for i := Lo to Hi do
        BigNum[i] := 0;
    end;

    function CopyBigNum(BigNum: TBigNum): TBigNum;
    var
      i: Integer;
    begin
      for i := Lo to Hi do
        Result[i] := BigNum[i];
    end;

    function IntToBigNum(Int: Integer): TBigNum;
    var
      i, c: Integer;
    begin
      ResetBigNum(Result);
      for i := High(APow) downto 0 do
        if (Int >= APow[i]) then
        begin
          c := Floor(Int / Extended(APow[i]));
          Result[Hi - i] := c;
          Int := Int mod APow[i];
        end;
    end;

    function BigNumToString(Num: TBigNum): string;
    var
      i: Integer;
      Start: Boolean;
    begin
      Result := '';
      for i := Lo to Hi do
      begin
        if (not Start) then
          Start := (Num[i] > 0);
        if Start then
          Result := Result + IntToStr(Num[i]);
      end;
      if (not Start) then
        Result := '0';
    end;

    procedure PrintBigNum(Num: TBigNum);
    begin
      WriteLn(BigNumToString(Num));
    end;

    procedure SetBigIndex(var Base: TBigNum; Val: Integer; Index: Integer);
    var
      i: Integer;
    begin
      if (Val >= 0) and (Val < 10) then
      begin
        Base[Index] := Val;
        Exit;
      end;

      for i := High(APow) downto 1 do
        if (Val >= APow[i]) then
        begin
          if ((Index - i) >= Lo) then
            SetBigIndex(Base, Base[Index - i] + (Val div APow[i]), Index - i);
          Val := (Val mod APow[i]);
        end
        else if (Val <= -APow[i - 1]) then
        begin
          if ((Index - i) >= Lo) then
          begin
            SetBigIndex(Base, Base[Index - i] - Max((Val div APow[i]), 1), Index - i);
          end;
          Val := (Val + 10) mod APow[i];
        end;
      Base[Index] := iAbs(Val);
    end;

    procedure BigAddIntAt(var Base: TBigNum; Add, Index: Integer);
    var
      bAdd: TBigNum;
      i: Integer;
    begin
      bAdd := IntToBigNum(iAbs(Add));
      for i := High(APow) downto 0 do
        if (Add > 0) then
          SetBigIndex(Base, Integer(Base[Index - i]) + Integer(bAdd[Hi - i]), Index - i)
        else
          SetBigIndex(Base, Integer(Base[Index - i]) - Integer(bAdd[Hi - i]), Index - i);
    end;

    procedure BigAdd(var Base: TBigNum; Add: TBigNum);
    var
      i: Integer;
    begin
      for i := Lo to Hi do
        SetBigIndex(Base, Integer(Base[i]) + Integer(Add[i]), i);
    end;

    procedure BigSubtract(var Base: TBigNum; Subtract: TBigNum);
    var
      i: Integer;
    begin
      for i := Lo to Hi do
        SetBigIndex(Base, Integer(Base[i]) - Integer(Subtract[i]), i);
    end;

    procedure BigMulitply(var Base: TBigNum; n: Integer);
    var
      i: Integer;
    begin
      for i := Lo to Hi do
        SetBigIndex(Base, Integer(Base[i]) * n, i);
    end;

    function BigDivMod(Num: TBigNum; n: Integer; out AMod, AModIndex: Integer): TBigNum;
    var
      i, ii,
      b, Index,
      c: Integer;
      Base: TBigNum;
    begin
      ResetBignum(Result);
      Base := CopyBigNum(Num);
      AMod := 0;
      AModIndex := Lo;
     
      if (n < 1) then
      begin
        WriteLn('Can''t divide by zero!');
        Exit;
      end;
     
      for i := Lo to Hi do
        if (Base[i] > 0) then
        begin
          b := 0;
          ii := 0;
          while (b < n) and (ii + i <= Hi) do
          begin
            b := (b * 10) + Base[ii + i];
            Inc(ii);
          end;
          if (b > n) then
          begin
            c := Floor(Extended(b) / n);
            Index := i + Length(IntToStr(b)) - 1;
            if (c > 0) then
            begin
              BigAddIntAt(Result, c, Index);
              BigAddIntAt(Base, -(c * n), Index);
            end;
            //Continue;
          end
          else
          begin
            AMod := b;
            AModIndex := i + Length(IntToStr(b)) - 1;
          end;
        end;
    end;

    function BigDivide(Num: TBigNum; n: Integer): TBigNum;
    var
      AMod, AModIndex: Integer;
    begin
      Result := BigDivMod(Num, n, AMod, AModIndex);
      if (AMod > 0) then
        BigAddIntAt(Result, Round(Extended(AMod) / n), AModIndex);
    end;

    function BigMod(Num: TBigNum; n: Integer): Integer;
    var
      i: Integer;
    begin
      BigDivMod(Num, n, Result, i);
    end;

    function BigPower(b, g: Integer): TBigNum;
    var
      i: Integer;
    begin
      Result := IntToBigNum(1);
      for i := 1 to g do
        BigMulitply(Result, b);
    end;

    function BigFactorial(n: Integer): TBigNum;
    var
      i: Integer;
    begin
      Result := IntToBigNum(1);
      for i := 2 to n do
        BigMulitply(Result, i);
    end;

    function BigSum(Num: TBigNum): Integer;
    var
      i: Integer;
    begin
      Result := 0;
      for i := Lo to Hi do
        Result := Result + Num[i];
    end;

    var
      F1, F2, R: TBigNum;
      s: string;
    begin
      ClearDebug;
      InitPow;
     
      F1 := IntToBigNum(0);
      F2 := IntToBigNum(1);
      ResetBigNum(R);
     
      while (Length(s) < Hi) do
      begin
        R := F1;
        BigAdd(R, F2);
       
        Swap(R, F2);
        Swap(R, F1);
     
        s := BigNumToString(R);
        WriteLn(s);
      end;
    end.

    I think I would've done it differently now, but it works anyway

  4. #4
    Join Date
    Sep 2006
    Location
    Canada
    Posts
    1,124
    Mentioned
    0 Post(s)
    Quoted
    5 Post(s)

    Default

    I cannot even fathom how long it took you guys to compute those numbers in SCAR, lol.

  5. #5
    Join Date
    May 2008
    Posts
    1,345
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I've got it almost a twelfth of the way to a second full line in the debug box, and it's been roughly twenty minutes.

    Edit:

    Had to stop it so I can bot.

    66140373350447042602620841504102148381923827756044 86651515909055703507717857879579886915262579862854 35722207253940765023565311160973771120146257557771 12238131487199976555163028566210553872982493622490 20452752358449850631406217155670258485683813696980 78792611482501530887939947659728747915265559210468 11462934941089648681537847002430693171332729398795 65630417196777943768062628894997830281057714056520 95688802552322636738262690466996623863132148984760 16853448412000320312129490741297362768914870213259 29474047446129951540790079904394431908137663484447 20111898827783188831633252554451665287378450046486 45468581682194052151884044671091564163380289988870 24856443484144373013701819494538476371009181429829 91947927622199927587121045510695296470865847657035 01827500097115349033690167757119278508958455792043 89795779196814852633270912757990983419866283264587 52476035920855287607164350907264634307759095504013 23157244187018900122229962825540978980965785161049 20639063200312857156983637872440713097768627797906 68829351852007411147721402039745754091549212936651 05536480915335907714734334958517512031998448790371 16447618825285935591750059826047642503114230146972 45849816954639671390157302936418229273083601986001 12303475835706266118650636593898225744360469175086 04077808915506153825581866285193579580700894150803 22657711658042750711033233872978416624912379768500 31893783196932053582782551380989065702079450695607 57718435883390136710160625443031216515157670667615 28569328820743456989128110214291108456200157362969 88608485627343114553065613852198167129669589728722 06104243584557545786229717323621970663258118565367 49850122896408025194441544379709915474721994418246 33414951892653270129461661088702379485664463801415 24717656464328148051986106875337488688918677340962 22898627841047164628678810362100553471027139689295 08374682192674316729891467064615198069778053701440 78258869119684207971694538837949017168981418285456 79733128299546894862709820369036468944813326513199 17283435563445114792369047187588403854782212350899 42026445292307960936309204392874404430269630155344 22424897472841431141234716813007374261714246344880 92849284848243435264799173768044790487416320297414 93455654148643270744789135139700354959895878773981 78388928089925919420078770115687395154202628582083 27571078366631545807897729537394445744195091046913 24363898946696482867743074621563264993866968315648 41233176774221205952295249073137161495203696388736 67144385707460595382816667788298414900903427652449 36332299291969952551758702735420439071870720101279 71711670745223763438045716934064203799039790966879 46330935152210143246843318187023187534043535971558 40716149541751744163231716999555519478557065904073 74577229549245368285880387025811085888836936007923 74027551001672931829065562578152380668830129420574 16225755935985938414776951796383828894254281048341 21844774959312416562279648148575279088208370627202 39809732530291964861621772866854220676565201529018 43758449418181600785521996306103904192881042214764 04738441237316570593856808598936646904898904956158 34628690900708968203902359993973372387235658252509 30531879093303530600253601471422857825607430735651 23020343818144796085818184617998274792976865820775 03827612774856173728779548233839778976805759930895 61866609551770730451334678603147881658387298542833 47222642830003622037352098237322909308761224774524 64974001392262710520374068458273641618144383881975 89526648747760113262413571688423139475737383539417 14391126815175287764763127563779037046649057390545 93697718532871810503757761091499060457105948569101 06202787831432463742742461665264311202729961696242 04461793388557379816880460097816112615132854133972 29052210013991402950266581007212164794540889286946 96884135950947906982596308843537302182661983086276 93218571437019512097920022585870865415062290058885 18232579292081308600690988283143454047884225362500 83820991752510509419891485471490040531779812598680 13545798605786751315570333059329532866999839124448 94748869081005746651649744817929603062832246953016 84111798616572175584481208666079902110148320274055 11630701920508766011551587119976141321012262181694 21127103704640497369478728293425021417375720953250 95494232922369400109755039875136582390958955796490 17397010690410798890674401199233994279542398848478 99229068933759954780714084988215788732378706384765 43049048560315039364051363748560598697910725113816 57678766467516285673068743043162284625372361230488 02462531564337702838085038773922332939930546424136 10730419241705590958563232990150156987228662585104 67133930700960906341330545690798834756746208321785 11418446191291785640459693859557209885535916468715 21677681461257844615959662475365633331342094591318 85450443230145153101437077432560895794441205395944 81120225697797519879410265227999735790399702723223 79180233116266223577189688572731003681202620609171 61
    .

    ~Sandstorm
    Last edited by Sandstorm; 10-01-2009 at 06:09 AM.

  6. #6
    Join Date
    Dec 2006
    Location
    Sydney, New South Wales, Australia
    Posts
    4,603
    Mentioned
    15 Post(s)
    Quoted
    42 Post(s)

    Default

    Quote Originally Posted by nielsie95 View Post
    Pretty cool But why use strings?
    Well, because it can support a massive amount of characters and so far it's faster than your example (not much about speed, but meh)
    You may contact me with any concerns you have.
    Are you a victim of harassment? Please notify me or any other staff member.

    | SRL Community Rules | SRL Live Help & Chat | Setting up Simba | F.A.Q's |

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •