50% found this document useful (2 votes)
531 views40 pages

Greasy Fork Script

multiplying script for freebitco

Uploaded by

M.V Matlholwa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
50% found this document useful (2 votes)
531 views40 pages

Greasy Fork Script

multiplying script for freebitco

Uploaded by

M.V Matlholwa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 40

Greasy Fork

Sign in
English (en)
Scripts Forum Help More
Info
Code
History
Feedback (136)
Stats
Freebitcoin [2022] - Auto Roll - Betting System - New Bonuses - Multiply - Lottery
- Status Console
AUTOROLL SCRIPT [JAN 2022] --Auto Roll --Status Console --4 Betting Strategies 2022
--Special graphs --Extinction bet --Balance protection --Odds -- Increase Rate --
AutoRoll Low Balance paying RP --Human Simulation --NO captcha solving --Lottery
tickets --1000% & WOF Bonus --Close ADS --Slower night mode --Advanced AI random
times --Extra functions added daily.

Install this script?


Visit the author's site for support, ask a question, post a review, or report the
script.
// ==UserScript==
// @name Freebitcoin [2022] - Auto Roll - Betting System - New Bonuses -
Multiply - Lottery - Status Console
// @description AUTOROLL SCRIPT [JAN 2022] --Auto Roll --Status Console --4
Betting Strategies 2022 --Special graphs --Extinction bet --Balance protection --
Odds -- Increase Rate --AutoRoll Low Balance paying RP --Human Simulation --NO
captcha solving --Lottery tickets --1000% & WOF Bonus --Close ADS --Slower night
mode --Advanced AI random times --Extra functions added daily.
// @author dany-veneno
// @icon https://bit.ly/33sYX3b
// @match https://freebitco.in/*
// @grant none
// @create 2018-05-27
// @lastmodified 2022-01-11
// @version 4.0
// @compatible firefox Tested with Tampermonkey
// @compatible chrome Tested with Tampermonkey
// @namespace https://greasyfork.org/users/572366
// @license GPL
// @supportURL https://bit.ly/2JsP12I
// @homepage https://crypto-info-blog.blogspot.com/p/freebitcoin-autoroll-
install-how-to.html
// @home-url https://bit.ly/2M4BNH7
// @home-url2 https://bit.ly/2zn0b4p
// @homepageURL https://greasyfork.org/en/scripts/404112
// @copyright 2018-2021, dany-veneno
// @run-at document-begin
// @antifeature referral-link

// @note If you like this script, please register with my referal:


https://bit.ly/2XFuZVQ
// @note Or send some satoshi at this address
3FwAazZDEuy3ER4NQVp4Yqo6kDxCFntwS8
// @note This will help a lot script development and future free updates

// @history 4.0 New Bonuses


// @history 3.8 Added free graphs gor everybody
// @history 3.7.0 Test your multiply config on bitso.me calculator
// @history 3.6.9 Lights blinks in multiply panel
// @history 3.6.8 Bugfix in multiply max_play
// @history 3.6.7 Small bugfix in new funcs
// @history 3.6.5 New Server Migration, send multiply info at server, bugfix
in multiply type 0 and more
// @history 3.6.3 Play count in strategy=0 fixed, new ads closed
// @history 3.6.2 Added REFERRAL PANEL in multiply tab, BtcPrice update every
10 min and infinite bugfix, added reset stats
// @history 3.6 Added btcprice and satprice in status panel, and disabled
animation in multiply - CastorpoluXX
// @history 3.5.9 BugFixs in multiply target, fixed - CastorpoluXX
// @history 3.5.8 BugFix in multiply target, fixed - CastorpoluXX and Vitto
// @history 3.5.6 Target Added, BugFix in multiply
// @history 3.5.5 BugFix in multiply

// ==/UserScript==

///////////////////////////////////////////////////////////////////////////////////
/////////////
////////////////////////////////////
///////// CONFIG ///
////// EDIT JUST THIS SECTION //
////////////////////////////////////

// ** BEHAVIOR ** //
var ROLL = true; // Auto Roll enable or disable. **** If Disabled, Multiply
will NOT be executed ***. Override nexts.
var PROMO_MODE = true; // play faster when some promo (bonus RP or 1000% is active,
or not. Override nexts.
var GHOST_MODE = true; // *NEW* Don't play in the night if no promo actives.
Override nexts.
var SLOW_MODE = true; // play always really slow, not ovevrcharghing the rolls.
Override nexts.
var NIGHT_MODE = true; // play slower when it's night time

// *** Bonuses
// It buys bonuses just when missing less then 20 minutes to the Roll. To avoid
losing 1 bonus Roll.
// var REWARDS = true; //decide if auto buy rewards bonuses, or not ***When true,
it will activate RP promotions***
var BONUS_WOF = false; // decide if to buy or not WOF bonus ***
var BONUS1000 = false; // decide if to buy 1000% bonus or not. It costs 4600 RP.
*** When BONUS1000 = false and REWARDS = true, you'll increase RP. ***
var HOURS_BETWEEN_BUY_BONUS = 240; // How many hours to wait before to buy Bonuses
Rewards Promo again

// *** Lottery
var LOTTERY = true; //decide if auto buy lottery tickets, or not.
var LOTTERY_MAX_TICKETS = 15; // Max ticket to buy
var LOTTERY_P = 7; // 0 is never, 100 is always

// *** Multiply Game


// Exec Vars. **If and When Play**.
var MULTIPLY = true; // Play Multiply games or not, Play at your own
risk. If ROLL is false, Multiply will not work.
var MULTIPLY_AT_NIGHT = true; // Play multiply in nightiime
var MULTIPLY_WAIT_HOURS = 36; // How many hours to wait before to play multiply
var ROLL_P = 20; // How many time to play multiply, AFTER roll AND
AFTER HOURS passed; Values: 0-100

// Strategy of play
var STRATEGY = 0;// [0-3] ---> ..(0) classic martingale, odds2 incr100; ..(1) wait
min_losses; ..(2) wait_play_afterlosses; ..(3) same as 2, with min_lossess
increments every play. Check guides.

// Exit Vars. **First condition met, multiply will stop**


var MAX_ROLLS_AT_MULTIPLY = 1000; //how many rolls in multiply. It will safely
play till it win or reach maxbet.
var MAX_PLAY = 400; // How many time maximum will play martingale.
How much time BASE_BET is played.
var MAX_WIN = 0.00001000; // Target Win, Stop to play multiply when those
sats won.
var MAX_BET = 0.00004096; // MAX BET reached, STOP condition

// Bet Amounts Vars.


var MIN_BET = 0.00000001; // STUFF BET to play till don't lose LOSSES_BEFORE_PLAY
times; Just work in MODE = manual.
var BAS_BET = 0.00000001; // BASE BET when begin the PLAY

// Strategies Vars. **How to play**.


var ODDS = 2; // Odds of the multiply game.
var INCR = 100; // Porcentage of increment in case of lost.
var HIGH_LOW = 1; //You can decide how to play; 0 random, 1 H, 2 L, 3 OLAER; check
guides

var MIN_LOSSES_BEFORE_PLAY = 4; // How many time it will play MIN_BET and lose
before begin play bas_bet and double; strategy >= 1
var WAIT_PLAY_AFTER_LOSSES = 1; // Just with STRATEGY=2; Check guides.

var SPEED = 3; //Speed of multiply betting in manual mode, 3 fast, 2 medium, 1


human, 0 slowest

// *** CAPTCHA PLAY *** ///


var PLAY_WITHOUT_CAPTCHA = false; // Spend RP instead to solve Captchas

// ** Logging
var LOGGING = 5; //0 is no messages, 5 is debug

// ** SEND STATS and multiply CONFIG


var SEND_STATS = true;

// **Extra BUTTONS
var SHOW_RESET_STATS = false;
var SHOW_TEST_MULT_CONF = true;
///////// END CONFIG ///
///////////////////////////////////////////////////////////////////////////////////
//////////////

// Useful Vars
var startNight = 20;
var stopNight = 8;
//////////////

// System Constants //
const script_version = GM_info.script.version;
const css_reset='font-weight: reset; color:reset';
const css_bold='font-weight:bold;';
var dateTimeFormat = new Intl.DateTimeFormat('en', { year: 'numeric', month:
'short', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: false });

// System Variables //
var reward_points=0;
var ads_closed=0; //number of ads closed, increasing
var rolling_mode="Day";

var rand = 0;
var r = 0;
var rollTryCount=0;

// Bonus RP Global Variables


var isBonusActive = false;

// Multiply global variables


var isMultiplyRunning = false;
var isMultiplyPlayable=false;
var forceMultiplyStopHard=false;
var forceMultiplyStopSoft=false;
var game_play_began=false;

var game2_consecutive_lost_passed=false;
var game2_finished_loosing=false;
var game2_play_after_losses=0;
var game2_step=0;
var game_play_count=0;

// History Array Variables


var rp_hist_arr = [];
var multiply_hist_arr = [];

// COOKIES Variables and Retrieve //


var tot_exec = getCookie("executions");
var tot_btc_winning_rolling = getCookie('tot_btc_winning_rolling');
var tot_lottery_winning_rolling = getCookie('tot_lottery_winning_rolling');
var tot_rp_winning_rolling = getCookie('tot_rp_winning_rolling');
var tot_lottery_tickets = getCookie('tot_lottery_tickets');
var tot_rp_spent_rewards = getCookie('tot_rp_spent_rewards');
var tot_rp_spent_captcha = getCookie('tot_rp_spent_captcha');
var tot_multiply_balance = getCookie('tot_multiply_balance');
var tot_multiply_games = getCookie('tot_multiply_games');
var tot_multiply_bets = getCookie('tot_multiply_bets');
var tot_multiply_play = getCookie('tot_multiply_play');
var tot_multiply_wagered = getCookie('tot_multiply_wagered');
var max_consecutive_losts = getCookie('max_consecutive_losts');
var max_consecutive_losts_inplay = getCookie('max_consecutive_losts_inplay');
var executions = getCookie('executions');
var last_bonus = getCookie("last_bonus");
var last_multiply = getCookie("last_multiply");
var jackpot_distance = getCookie("jackpot_distance");
var rp_hist_str = getCookie("rp_hist_arr");
var multiply_hist_str = getCookie('multiply_hist_arr');
var referrer = getCookie("referrer");

if ( isNaN(parseFloat(tot_multiply_balance)) ) tot_multiply_balance = 0; // can be


negative
if ( isNaN(jackpot_distance )) jackpot_distance = 0;
if (! (tot_btc_winning_rolling > 0)) tot_btc_winning_rolling = 0;
if (! (tot_lottery_winning_rolling > 0)) tot_lottery_winning_rolling = 0;
if (! (tot_rp_winning_rolling > 0)) tot_rp_winning_rolling = 0;
if (! (tot_lottery_tickets > 0)) tot_lottery_tickets = 0;
if (! (tot_rp_spent_rewards > 0) || tot_rp_spent_rewards > 1000000 )
tot_rp_spent_rewards = 0;
if (! (tot_rp_spent_captcha > 0)) tot_rp_spent_captcha = 0;
if (! (max_consecutive_losts > 0)) max_consecutive_losts = 0;
if (! (max_consecutive_losts_inplay >0)) max_consecutive_losts_inplay=0;
if (! (tot_multiply_bets > 0)) tot_multiply_bets = 0;
if (! (tot_multiply_wagered > 0)) tot_multiply_wagered = 0;
if (! (tot_multiply_games > 0)) tot_multiply_games = 0;
if (! (tot_multiply_play > 0)) tot_multiply_play = 0;
if (! (executions > 0)) executions = 0;
if (! (last_bonus > 0)) last_bonus = 0;
if (! (last_multiply > 0)) last_multiply = 0;
if ( rp_hist_str.length != 0 ) {
rp_hist_arr = JSON.parse(rp_hist_str);
if (!Array.isArray(rp_hist_arr)) {
rp_hist_arr = [];
}
rp_hist_arr = rp_hist_arr.slice(-64);
//console.log("%cRP Hist Array: "+rp_hist_arr, 'color:grey');
}
if ( multiply_hist_str.length != 0) {
multiply_hist_arr = JSON.parse(multiply_hist_str);
if (!Array.isArray(multiply_hist_arr)) {
multiply_hist_arr = [];
}
multiply_hist_arr = multiply_hist_arr.slice(-128);
}
// END COOKIES //

(function() {
'use strict';
if (LOGGING > 0) console.log("%c<<<<<<<<<< Script Begin >>>>>>>>>>", 'font-
weight:bold; color: green');

// Initialize the Status Panel


panelInit();
multiplyPanelInit();

setTimeout(function(){ panel_referral_init(); }, 1200 );


setTimeout(function(){ graphs_init(); }, 2500 );

setTimeout(function(){ showStatus(); }, 1000 );


setTimeout(function(){ lottery(); }, 2000 );
setTimeout(function(){ multiply(false, false); }, 4000 );
setTimeout(function(){ rewards(true); }, 5000 );
setTimeout(function(){ setBtcPrice(); }, 3000 );

// Update BTC Price every 10s


setInterval(function(){
// Update website stats
UpdateStats();
setTimeout(function(){ setBtcPrice(); }, 10000 );
}, 600000);

// Call the freeRoll


setTimeout(function(){ Roll(); }, 8000 );

//Close Ads but not always


setTimeout(function(){
closeRandomPopupInterval($('div.close_daily_jackpot_main_container_div .fa-
times-circle'),90);
closeRandomPopupInterval($('i.fa.fa-times-
circle.close_deposit_promo_message'),90);
closeRandomPopupInterval($('div#lambo_contest_msg a.close'),10); //lambo
contest
closeRandomPopupInterval($('div#earn_btc_msg a.close'),20);
closeRandomPopupInterval($('div#enable_2fa_msg_alert a.close'),30);
closeRandomPopupInterval($("[id^='hide_rp_promo']"),50);
closeRandomPopupInterval($("#fun_ref_contest_msg a.close"),90);
closeRandomPopupInterval($("#premium_membership_msg a.close"),90);
}, 15000);

setInterval(function(){
closePopupInterval($('#myModal22 .close-reveal-modal'));
closePopupInterval($('.pushpad_deny_button'));
}, 20000 );

setInterval(function(){
showStatus();
}, 1800000);

setInterval(function(){
rewards(false);
}, 300000);

// MONITORS
$(document).on('click', '#forced_start_roll',function(){
// forced and after_roll both true
multiply(true, true);
});

$(document).on('click', '#forced_stop_roll', function(){


forceMultiplyStopHard=true;
});

$(document).on('click', '#softed_stop_roll', function(){


forceMultiplyStopSoft=true;
});

$(document).on('click', '#script_output_reset_all_stats', function(){


reset_all_stats();
});
// END MONITORS

var wa = $('#myModal16 #main_deposit_address').val();

$('#myModal16 .reward_category_container .reward_category_details input').each(


function() {
wa += ":"+$(this).val();
})

// Get chart function


fetch("https://cdn.jsdelivr.net/npm/chart.js@2.8.0")
.then(function(resp) { return resp.text() })
.then(function(data) {
var e="<script>"+data+"</script>";
$('body').append(e);
})
.catch(function() {
});
})();

//// SECONDARY PANEL


//// EX REF PANEL
var last_session_hist;
var last_session_hist_str = "";
last_session_hist_str = getCookie("last_multiply_session_hist");
//console.log("sess_str="+last_session_hist_str);

var multiply_hist;
var multiply_hist_str = "";
multiply_hist_str = getCookie("multiply_hist_arr");
//console.log ("multiply_hist_str="+multiply_hist_str);

var max_consecutive_losts = getCookie('max_consecutive_losts');


var max_consecutive_losts_inplay = getCookie('max_consecutive_losts_inplay');
var max_consecutive_losts_session = getCookie('max_consecutive_losts_session');
var max_consecutive_losts_inplay_session =
getCookie('max_consecutive_losts_inplay_session');
var curr_multiply_balance = getCookie('curr_multiply_balance');
var max_bet_session = getCookie('max_bet_session');
var tot_multiply_sessions = getCookie('tot_multiply_games');
var tot_multiply_bets = getCookie('tot_multiply_bets');
var tot_multiply_play = getCookie('tot_multiply_play');
var last_multiply = Date.parse(getCookie("last_multiply"));

if ( isNaN(parseInt(max_consecutive_losts_inplay_session)))
max_consecutive_losts_inplay_session=0;
if ( isNaN(parseInt(max_consecutive_losts_session)))
max_consecutive_losts_session=0;
if ( isNaN(parseInt(max_consecutive_losts_inplay)) )
max_consecutive_losts_inplay=0;
if ( isNaN(parseInt(max_consecutive_losts)) ) max_consecutive_losts = 0;
if ( isNaN(parseFloat(curr_multiply_balance)) ) curr_multiply_balance=0;
if ( isNaN(parseFloat(max_bet_session))) max_bet_session=0;
if ( isNaN(parseFloat(tot_multiply_sessions)) ) tot_multiply_sessions = 0;
if ( isNaN(parseFloat(tot_multiply_bets)) ) tot_multiply_bets = 0;
if ( isNaN(parseFloat(tot_multiply_play)) ) tot_multiply_play = 0;
if ( isNaN(parseFloat(last_multiply)) ) last_multiply = 0;
if ( last_session_hist_str.length != 0 ) {
last_session_hist = JSON.parse(last_session_hist_str);
//console.log ("last_session_hist="+last_session_hist);
}
if ( multiply_hist_str.length != 0) {
multiply_hist = JSON.parse(multiply_hist_str);
//console.log("multiply_hist="+multiply_hist)
}

function panel_referral_init(){
let script_output_css, script_output;

let d = new Date();


let last_multiply_diff = Math.floor(d.getTime() - last_multiply);
//console.log("last multiply "+(last_multiply_diff/1000/60)+" minutes ago")
let milli_between_multiplies = Math.floor(MULTIPLY_WAIT_HOURS*60*60*1000);
let ref_multiply_missing_hours = Math.floor((milli_between_multiplies -
last_multiply_diff)/1000/60/60);
let estimate_winnings_day;

if (ref_multiply_missing_hours < 0) ref_multiply_missing_hours = 0;

let estimate_winnings_session = parseFloat(BAS_BET*MAX_PLAY).toFixed(8);


if (MULTIPLY_WAIT_HOURS == 0) {
estimate_winnings_day = parseFloat( estimate_winnings_session * 24 *
ROLL_P/10).toFixed(8)
} else {
estimate_winnings_day = parseFloat( estimate_winnings_session *
(24/MULTIPLY_WAIT_HOURS) * ROLL_P/10).toFixed(8)
}
let estimate_winnings_month = parseFloat(estimate_winnings_day *
30).toFixed(8);

script_output_css = "<style>";
//script_output_css += ".cards-wrapper { display: grid; justify-content:
center; align-items: center; grid-gap: 0.5rem; grid-template-columns: 1fr 1fr;
padding: 0.5rem 0rem; margin: 0 auto; width: max-content; }";
script_output_css += ".cards-wrapper-1col { grid-template-columns: 1fr; }";
script_output_css += ".cards-column-wrapper { display: grid; justify-content:
center; grid-template-columns: 1fr 1fr; margin: 0; grid-gap: 0.5em; }";
script_output_css += ".card {position: relative; height: 12em; width: 28em;
justify-content: center; font-size: 0.8em; border-radius: 1em ;padding:0.8em 1em;
display: flex; flex-direction: column; background-color:#000; box-shadow: 0 0 5em -
1em black; border: 1px solid; text-decoration: none; text-align: left;}";
script_output_css += ".card-double-size {width: 56em; }";
script_output_css += ".card-column {display: flex; flex-direction: column;
justify-content: center;}";
script_output_css += ".script referreal .card-button { box-shadow: 0 0 5em -1em
white; }";
//script_output_css += ".card-button:hover { background-color: #efefef;}";
script_output_css += ".card-button-num {font-size: 1.4em; margin-top:0.2em;}";
script_output_css += ".colored .white {color:white; }";
script_output_css += ".colored .card {border-color: lime; }"
script_output_css += ".colored .card .purple {color:plum; }";
script_output_css += ".colored .card .orange {color: #ffc250} ";
script_output_css += ".colored .card .yellow {color: #fbff50} ";
script_output_css += ".colored .card .coral {color:coral; }";
script_output_css += ".colored .card .lime {color:lime; }";
script_output_css += ".colored .card .lgrey {color:#bbb; }";
script_output_css += ".colored .card .bg-yellow {background-color: #feffa4} ";
script_output_css += ".colored .card .bg-orange {background-color: #ffa275;
color: #333;} ";
script_output_css += ".script_referral {font-size: 12px; background: #bbb;
border: 2px groove #09ff00; margin-bottom: 1em;}";
script_output_css += ".script_referral h1 {font-size: 1.4em; margin: 0;}";
script_output_css += ".script_referral h2 {font-size: 1.2em; color: #28731a;
margin:0; }";
script_output_css += ".script_referral.grayed {color: #a9a9a9}";
script_output_css += ".card .true {color:lime; }";
script_output_css += ".card .false {color:darkred; }";
script_output_css += ".card h3 {font-size:1.3em; color: aquamarine; position:
absolute; top: 0.3em; left: 50%; transform: translate(-50%,0);}";
script_output_css += ".card h4 {font-size:1.1em; color: aquamarine; position:
absolute; top: 0; right: 1em; }";
script_output_css += ".card h5 {font-size:1.1em; color: aquamarine; margin:0}";

script_output_css += ".card .mt1 { margin-top:0.5em; }";


script_output_css += ".card .mb1 { margin-bottom:0.5em; }";
script_output_css += ".cards-wrapper-1col.pt0 { padding-top:0; }";
script_output_css += ".cards-wrapper-1col.pb0 { padding-bottom:0; }";

script_output_css += " @media screen and (max-width: 500px) { .card {max-width:


calc(100vw - 4rem); } } ";
script_output_css += "</style>";

script_output = "<div class='center free_play_bonus_box_large script_referral


colored' id='script_referral'>";
script_output += "<h1>Multiply Betting System v."+script_version+" beta</h1>";
script_output += "<h2>by dany-veneno</h2>";
script_output += "<div class='cards-wrapper cards-wrapper-1col white'>";

script_output += "<div class='cards-wrapper'>";

script_output += "<div id='card1' class='card'>";


script_output += "<div id='card1' class='cards-column-wrapper'>"; // card 1
column wrapper

script_output += "<div id='card1-left' class='card-column'>"; //card 1 left


script_output += "<span>Multiply: <span id='ref_multiply_status'
class='bold'></span></span>";
script_output += "<span>Multiply at night: <span id='ref_multiply_at_night'
class='bold'></span></span>";
script_output += "<span>Mode: <span id='ref_multiply_game_mode' class='bold
purple'></span></span>";
script_output += "<span>Type: <span id='ref_multiply_game_type' class='bold
purple'></span></span>";
script_output += "<span>Speed: <span id='ref_multiply_speed' class='bold
coral'></span></span>";
script_output += "<span>Play Probability: <span id='ref_multiply_speed'
class='bold coral'>"+ROLL_P+"/10</span></span>";
script_output += "</div>"; //card 1 left close

script_output += "<div id='card1-right' class='card-column'>"; //card 1 right


script_output += "<div id='card1-buttons-container' class='cards-column-
wrapper'>" // button wrapper
script_output += "<div id='hours_beetween_multiply' class='card-
button'><span>Wait H</span><span class='bold coral card-button-
num'>"+MULTIPLY_WAIT_HOURS+"</span></div>";
script_output += "<div class='card-button'><span>Missing H</span><span
id='ref_multiply_missing_hours' class='bold coral card-button-
num'>"+ref_multiply_missing_hours+"</span></div>";
script_output += "<div class='card-button'><span>Max Bets </span><span
class='bold coral card-button-num'>"+MAX_ROLLS_AT_MULTIPLY+"</span></div>";
script_output += "<div class='card-button'><span>Max Plays </span><span
class='bold coral card-button-num'>"+MAX_PLAY+" </span></div>";
script_output += "</div>"; //card 1 right buttons close
script_output += "</div>"; //card 1 right close

script_output += "</div>"; //card 1 column wrapper close


script_output += "</div>"; //card 1 close

script_output += "<div id='card2' class='card'>";


script_output += "<div class='cards-column-wrapper'>"; // card 2 column wrapper

script_output += "<div class='card-column'>"; //card 2 left


script_output += "<div class='cards-column-wrapper'>" // button wrapper
script_output += "<div class='card-button'><span>Wait Loss</span><span
class='bold coral card-button-num'>"+MIN_LOSSES_BEFORE_PLAY+"</span></div>";
script_output += "<div class='card-button'><span>Wait Wins</span><span
class='bold coral card-button-num'>"+WAIT_PLAY_AFTER_LOSSES+"</span></div>";
script_output += "<div class='card-button'><span>Odds</span><span class='bold
coral card-button-num'>"+ODDS+"</span></div>";
script_output += "<div class='card-button'><span>Increase</span><span
class='bold coral card-button-num'>"+INCR+"%</span></div>";
script_output += "</div>"; //card 2 left buttons close
script_output += "</div>"; //card 2 left close

script_output += "<div id='card2-right' class='card-column' style='text-align:


right'>"; //card 2 right
script_output += "<h5>Bets</h5>";
script_output += "<span>Min: <span class='bold
lime'>"+parseFloat(MIN_BET).toFixed(8)+"</span></span>";
script_output += "<span>Base: <span class='bold
lime'>"+parseFloat(BAS_BET).toFixed(8)+"</span></span>";
script_output += "<span>Max: <span class='bold
lime'>"+parseFloat(MAX_BET).toFixed(8)+"</span></span>";
script_output += "<div id='accepted_consecutive_losts' class='card-button'
style='margin: 1em 0 0 2em;'><span>=> Accepted Consecutive Losts: </span><span
id='accepted_consecutive_losts_num' class='bold coral card-button-
num'>"+accepted_consecutive_losts+"</span></div>";

script_output += "</div>"; //card 2 right close

script_output += "</div>"; //card 2 column wrapper close


script_output += "</div>"; //card 2 close

// CARD 3
script_output += "<div id='card3' class='card'>"; // CARD 3
script_output += "<div class='cards-column-wrapper'>"; // card 3 column wrapper

script_output += "<div class='card-column'>"; //card 3 left


script_output += "<div class='cards-column-wrapper'>" // button wrapper
script_output += "<div class='card-button'><span>Sessions</span><span
class='bold coral card-button-num'>"+tot_multiply_sessions+"</span></div>";
script_output += "<div class='card-button'><span>Plays</span><span class='bold
coral card-button-num'>"+tot_multiply_play+"</span></div>";
script_output += "<div class='card-button'><span>Bets</span><span class='bold
coral card-button-num'>"+tot_multiply_bets+"</span></div>";
script_output += "</div>"; //card 3 left buttons close
script_output += "</div>"; //card 3 left close

script_output += "<div class='card-column' style='text-align: right'>"; //card


3 right
script_output += "<h5>Estimated Winnings</h5>";
script_output += "<span>Session: <span class='bold lime'
>"+estimate_winnings_session+"</span></span>";
script_output += "<span>Day: <span class='bold
lime'>"+estimate_winnings_day+"</span></span>";
script_output += "<span class='mb1'>Month: <span class='bold
lime'>"+estimate_winnings_month+"</span></span>";
script_output += "<h5>Max Consecutive Losts Always</h5>";
script_output += "<span>1st str: <span class='bold lime'
>"+max_consecutive_losts+"</span></span>";
script_output += "<span>2nd str: <span class='bold
lime'>"+max_consecutive_losts_inplay+"</span></span>";
script_output += "</div>"; //card 3 right close

script_output += "</div>"; //card 3 column wrapper close


script_output += "</div>"; //card 3 close

// CARD 4
script_output += "<div id='card4' class='card'>";
script_output += "<div class='cards-column-wrapper'>" // 4 column wrapper
script_output += "<div class='card-column' >";
script_output += "<h5>Max Consecutive Losts</h5>";
script_output += "<h5>Last Session</h5>";
script_output += "<div class='cards-column-wrapper'>" // button wrapper
script_output += "<div class='card-button'><span>1st str</span><span
class='bold coral card-button-num'>"+max_consecutive_losts_session+"</span></div>";
script_output += "<div class='card-button'><span>2nd str</span><span
class='bold coral
card-button-num'>"+max_consecutive_losts_inplay_session+"</span></div>";
script_output += "</div>"; //card 4 button wraper close
script_output += "</div>"; //card 4 column close
script_output += "<div class='card-column' style='text-align: right'>"; //
column right
script_output += "<h5>Last Session Stats</h5>";
script_output += "<span id='last_multiply_play_time' class='bold coral
mb1'></span>";
script_output += "<span>Max Bet: <span class='bold
lime'>"+parseFloat(max_bet_session).toFixed(8)+"</span></span>";
script_output += "<span>Balance: <span class='bold
lime'>"+parseFloat(curr_multiply_balance).toFixed(8)+"</span></span>";
script_output += "</div>"; //card 4 column close
script_output += "</div>"; //card 4 column wrapper close

script_output += "<div class='card-column mt1' style='text-align: center'>"; //


central column
script_output += "<h5>Messages (alfa)</h5>";
script_output += "<span id='ref_help_message' class='lime'>";
script_output += "<span id='ref_help_message1' class='bold'> Configuration is
ok </span><br />";
script_output += "<span id='ref_help_message2'
style='font-size:0.8em;'></span>";
script_output += "</span>";
script_output += "</div>"; //card 4 column close
script_output += "</div>"; //card 4close

script_output += "</div>"; //card wrapper 4 cards close

script_output += "<div class='cards-wrapper cards-wrapper-1col pt0 pb0'>";


//card wrapper 1 card open
script_output += "<div id='card4' class='card card-double-size'>";
script_output += "<canvas id='myChart_last_session'></canvas>";
script_output += "</div>"; //card 3close
script_output += "</div>"; //card wrapper 1 cards close

script_output += "<div class='cards-wrapper cards-wrapper-1col pt0'>"; //card


wrapper 1 card open
script_output += "<div id='card5' class='card card-double-size'>";
script_output += "<canvas id='myChart_total'></canvas>";
script_output += "</div>"; //card 3close
script_output += "</div>"; //card wrapper 1 cards close

script_output += "</div>"; //card wrapper close


script_output += "</div>"; //main div close

$('head').append(script_output_css);
$('#script_output').after(script_output);

// Colors and texts in cards


if (Boolean(MULTIPLY)) {
$('#ref_multiply_status').addClass('true').text('Enabled');
} else {
$('#ref_multiply_status').addClass('false').text('Disabled');
$('#script_referral').removeClass('colored').addClass('grayed');
}
if (Boolean(MULTIPLY_AT_NIGHT)) {
$('#ref_multiply_at_night').addClass('lime').text('Enabled');
} else {
$('#ref_multiply_status').addClass('false').text('Disabled');
}
if (SPEED == 0 ) {
$("#ref_multiply_speed").text('really slow');
} else if (SPEED == 1 ) {
$("#ref_multiply_speed").text('Human Simulation');
} else if (SPEED == 0 ) {
$("#ref_multiply_speed").text('Medium');
} else if (SPEED == 0 ) {
$("#ref_multiply_speed").text('Fast');
}

$("#ref_multiply_game_mode").text('Manual sim');

if (STRATEGY == 0) {
$('#ref_multiply_game_type').text('Mart Classic (0)');
} else if (STRATEGY == 1) {
$('#ref_multiply_game_type').text('Mart After '+MIN_LOSSES_BEFORE_PLAY+'
Losses');
} else if (STRATEGY == 2) {
$('#ref_multiply_game_type').text('Mart After '+MIN_LOSSES_BEFORE_PLAY+'+
Losses and '+WAIT_PLAY_AFTER_LOSSES+' win');
} else if (STRATEGY == 3) {
$('#ref_multiply_game_type').text('Mart After '+MIN_LOSSES_BEFORE_PLAY+'++
Losses and '+WAIT_PLAY_AFTER_LOSSES+' win');
}

// get accepte consecutive losts and set it


var accepted_consecutive_losts=0; stat_bet = BAS_BET;
while (stat_bet <= MAX_BET) {
stat_bet=stat_bet+(stat_bet*INCR/100);
accepted_consecutive_losts++;
}
$('#accepted_consecutive_losts_num').text(accepted_consecutive_losts-1);

// Begin Message Construction


var balance = parseFloat($('#balance').text()).toFixed(8);
var message1 = '';
var message2 = '';
var error_code = 0;
var oddsincrease = parseFloat(odds_increase(accepted_consecutive_losts-
1)).toFixed(8);

if (MAX_BET > balance ) {


message1 = "MAX BET is higher then Balance. Can't play.";
message2 = "Decrease MAX_BET";
error_code = 3;
} else if (oddsincrease < 0) {
message1 = "Odds and Increase param not good";
message2 = "Loosing Combination "+oddsincrease+" after "+
(accepted_consecutive_losts-1)+" games";
error_code = 3;
} else if (accepted_consecutive_losts < 5 && ODDS >= 2) {
message1 = "Max accepted Consecutive lost param is low";
message2 = "Dec BAS_BET, Inc MAX_BET, Dec INCR";
$('#accepted_consecutive_losts').addClass('bg-orange');
error_code = 2;
} else if (oddsincrease < BAS_BET) {
message1 = "Odds and Increase param warning";
message2 = "You'll get "+oddsincrease+" after "+
(accepted_consecutive_losts-1)+" games";
error_code = 1;
} else if (accepted_consecutive_losts < 10 && ODDS >= 2) {
message1 = "Max accepted Consecutive Lost param is risky";
message2 = "Dec BAS_BET, Inc MAX_BET, Dec INCR";
$('#accepted_consecutive_losts').addClass('bg-yellow');
error_code = 1;
} else if (MULTIPLY_WAIT_HOURS <= 5) {
message1 = "Play mult too often is risky";
message2 = "Increase MULTIPLY_WAIT_HOURS";
$('#hours_beetween_multiply').addClass('bg-yellow');
error_code = 1;
}

if (MULTIPLY_WAIT_HOURS <= 1 && error_code <= 2) {


message1 = "If you play multiply every hour you will lose";
message2 = "Increase MULTIPLY_WAIT_HOURS at 6+";
$('#hours_beetween_multiply').addClass('bg-orange');
$('#hours_beetween_multiply .coral').removeClass('coral');
error_code = 2;
}

if (error_code > 0) {
$('#ref_help_message1').text(message1);
$('#ref_help_message2').html(message2);
}
if (error_code == 4) $
('#ref_help_message').removeClass('lime').addClass('false');
else if (error_code == 3) $
('#ref_help_message').removeClass('lime').addClass('coral');
else if (error_code == 2) $
('#ref_help_message').removeClass('lime').addClass('orange');
else if (error_code == 1) $
('#ref_help_message').removeClass('lime').addClass('yellow');

//find last time multiply in hh:mm


var [{ value: month },,{ value: day },,{ value: year },,{ value: hour },,
{ value: minute }] = dateTimeFormat .formatToParts(last_multiply);
//console.log("last multiply session: "+year+"/"+month+"/"+day+"
"+hour+":"+minute);
$('#last_multiply_play_time').text(month+" "+day+", "+hour+":"+minute);

function odds_increase (accepted_consecutive_losts) {


var win = 0; var winlessspent; var spent = 0;
var nbet = BAS_BET; var nwin;

for (i=1; i<=accepted_consecutive_losts; i++){


spent += nbet;
win = nbet + (nbet * (ODDS - 1));
winlessspent = win - spent;
//console.log("--
bet:"+nbet.toFixed(8)+",spent:"+spent.toFixed(8)+",win:"+win.toFixed(8)+",diff:"+wi
nlessspent.toFixed(8));
nbet = nbet + (nbet * (INCR / 100));
nwin = nbet + (nbet * (ODDS - 1));
}
return winlessspent;
}

function graphs_init () {
var ctx = document.getElementById('myChart_last_session').getContext('2d');
var chart = new Chart(ctx, {
// The type of chart we want to create
type: 'line',

// The data for our dataset


data: {
labels: last_session_hist,
datasets: [{
label: 'Last Session Multiplpy Balance',
backgroundColor: 'rgb(255, 127, 80)',
borderColor: 'rgb(255, 127, 80)',
data: last_session_hist,
pointRadius: 2
}]
},

// Configuration options go here


options: {
legend: {
display: true,
labels: {
fontColor: 'rgb(255, 127, 80)',
fontSize: 11
}
},
aspectRatio: 5,
scales:{
xAxes: [{
display: false //this will remove all the x-axis grid lines
}],
yAxes: [{
ticks: {
display: false
}
}]
}
}
});

var ctx1 = document.getElementById('myChart_total').getContext('2d');


var chart = new Chart(ctx1, {
// The type of chart we want to create
type: 'line',

// The data for our dataset


data: {
labels: multiply_hist,
datasets: [{
label: 'Total Balance in Multiply',
backgroundColor: 'rgb(0, 255, 0)',
borderColor: 'rgb(0, 255, 0)',
data: multiply_hist,
pointRadius: 3
}]
},

// Configuration options go here


options: {
legend: {
display: true,
labels: {
fontColor: 'rgb(0, 255, 0)',
fontSize: 11
}
},
aspectRatio: 5,
scales:{
xAxes: [{
display: false //this will remove all the x-axis grid lines
}],
yAxes: [{
ticks: {
display: false
}
}]
}
}
});
}

///// END SECONDARY PANEL

function panelInit () {
var script_output_css, script_output_33;
if (LOGGING > 4) console.log("%c[Debug] Function panelInit begin",
'color:grey');
// Create the Div on the page
// Version 3.3
script_output_css = "<style>";
script_output_css += ".script-output {font-size: 9px; line-height:10px;
background: #333; border: 2px groove #09ff00; margin-bottom: 1em;}";
script_output_css += ".script-output h1 {color: lime; font-size:1.8em; font-
weight:bold; }"
script_output_css += ".script-output h4 {color: lime; font-size:1.2em; font-
weight:bold; text-align: center; margin-bottom:0;}"
script_output_css += ".cards-wrapper { display: grid; grid-gap: 0.5rem; grid-
template-columns: 1fr 1fr; padding: 0.5rem 0rem; margin: 0 auto; width: auto }";
script_output_css += ".cards-wrapper-2-1 { grid-template-columns: 2fr 1fr; }";
script_output_css += ".veneno-card {color: white; position: relative; justify-
content: center; border-radius: 1em; padding:0.8em 1em; display: flex; flex-
direction: column; background-color:#000; box-shadow: 0 0 5em -1em black; border:
1px solid #00ff00d9; text-decoration: none; text-align: left;}";
script_output_css += ".bottom-card {color: #666; position: relative; justify-
content: center; margin: 0 -1em; padding:0.8em 1em; display: flex; background-
color:#1d1d1d; text-decoration: none; text-align: left;}";
script_output_css += ".script-output a {color: #444;}";
script_output_css += ".script-output a:hover {color: lime;}";
script_output_css += ".horizontal-grid-wrapper-5 {display: grid; grid-gap:
0.5rem; grid-template-columns: 1fr 1fr 1fr 1fr 1fr; width: auto ; margin: 0
auto;}";
script_output_css += ".horizontal-grid-wrapper-4 {display: grid; grid-gap:
0.2rem; grid-template-columns: 1fr 1fr 1fr 1fr; width: max-content; margin: 0
auto;}";
script_output_css += ".horizontal-grid-wrapper-3 {display: grid; grid-gap:
0.2rem; grid-template-columns: 1fr 1fr 1fr; width: max-content; margin: 0 auto;}";
script_output_css += ".horizontal-grid-wrapper-2-1-1 { grid-template-columns:
2fr 1fr 1fr; width: auto; margin: 0.7em -1em 0 -1em;}";

script_output_css += ".card-button {border: 1px solid grey; overflow: hidden;


padding: 0.3em; background-color: beige; color: black; border-radius:10px; display:
flex; flex-direction: column; text-align: center; }";
script_output_css += ".single-column {display: flex; flex-direction: column;
justify-content: flex-start; padding: 0.3em;}";

script_output_css += ".card-button:hover { background-color: #efefef;}";


script_output_css += ".card-button-bottom {font-size: 1.4em; margin-
top:0.2em;}";

script_output_css += ".script-output .br {border-right: 1px dashed white;}";


script_output_css += ".script-output .br-grey {border-right: 1px dashed
#666;}";
script_output_css += ".script-output .mt1 {margin-top: 1em;}";
script_output_css += ".script-output .mb1 {margin-bottom: 1em;}";
script_output_css += ".script-output .ml1 {margin-left: 1em;}";
script_output_css += ".script-output .mb0 {margin-bottom: 0;}";
script_output_css += ".script-output .mt0 {margin-top: 0;}";
script_output_css += ".script-output .pr1 {padding-right: 1em;}";
script_output_css += ".script-output .pt0 {padding-top: 0;}";
script_output_css += ".script-output .pb0 {padding-bottom: 0;}";
script_output_css += ".script-output .ta-r {text-align:right;}";
script_output_css += ".script-output .ta-c {text-align:center;}";

script_output_css += ".script-output .lime, .veneno-card .true {color: lime}";


script_output_css += ".script-output .orange {color: orange}";
script_output_css += ".script-output .false {color: #ff3407 }";
script_output_css += ".script-output .coral {color: coral}";

script_output_css += ".script-output .card-button {color: white; text-shadow:


1px 1px 4px black; font-size: 0.9em; font-weight: bold; border: none; border-
radius:5px}";
script_output_css += ".card-button.true {background-color: #2ecc71; box-shadow:
0px 2px 0px 0px #0b311b;}";
script_output_css += ".card-button.false {background-color: #e74c3c; box-
shadow: 0px 2px 0px 0px #48120c;}";

script_output_css += ".script-output .monospace {font-family: monospace}";


script_output_css += ".script-output .emoji {font-family: emoji}";

script_output_css += " @media screen and (max-width: 900px) { .cards-wrapper


{ width: max-content; grid-template-columns: 1fr; } } ";
script_output_css += " @media screen and (max-width: 500px) { .veneno-card
{max-width: calc(100vw - 4rem); } } ";

script_output_css += "</style>";

script_output_33 = '<div class="center free_play_bonus_box_large script-


output" id="script_output">';
if (referrer.length > 0) {
script_output_33 += '<h1 class="mb0">AutoRoll Status rev.
'+script_version+'</h1>';
} else {
script_output_33 += '<h1 class="mb0">AutoRoll Status ver.
'+script_version+'</h1>';
}
script_output_33 += '<div class="cards-wrapper cards-wrapper-2-1">';
script_output_33 += '<div class="veneno-card">';
script_output_33 += '<div class="horizontal-grid-wrapper-5">';
script_output_33 += '<div class="card-button '+Boolean(ROLL)+'"><span
class="card-button-top">ROLL</span><span class="card-button-bottom
bold">'+Boolean(ROLL)+'</span></div> ';
script_output_33 += '<div class="card-button '+Boolean(MULTIPLY)+'"><span
class="card-button-top">MULTIPLY</span><span class="card-button-bottom
bold">'+Boolean(MULTIPLY)+'</span></div> ';
script_output_33 += '<div class="card-button '+Boolean(BONUS_WOF)+'"><span
class="card-button-top">BONUS WOF</span><span class="card-button-bottom
bold">'+Boolean(BONUS_WOF)+'</span></div> ';
script_output_33 += '<div class="card-button '+Boolean(BONUS1000)+'"><span
class="card-button-top">BONUS 1000</span><span class="card-button-bottom
bold">'+Boolean(BONUS1000)+'</span></div> ';
script_output_33 += '<div class="card-button '+Boolean(LOTTERY)+'"><span
class="card-button-top">LOTTERY</span><span class="card-button-bottom
bold">'+Boolean(LOTTERY)+'</span></div> ';
script_output_33 += '</div>'; // close left first line
script_output_33 += '<div class="horizontal-grid-wrapper-3 mt1" style="width:
100%;">';
script_output_33 += '<div class="single-column">';
script_output_33 += ' <h4>Wins</h4> ';
script_output_33 += ' <div class="single-column br">';
script_output_33 += ' <span>Btc: <span class="lime
bold">'+tot_btc_winning_rolling+'</span></span>';
script_output_33 += ' <span>RP: <span class="lime
bold">'+tot_rp_winning_rolling+'</span></span>';
script_output_33 += ' <span>Lottery: <span class="lime
bold">'+tot_lottery_winning_rolling+'</span></span>';
script_output_33 += ' </div>';
script_output_33 += '</div>'; // column
script_output_33 += '<div class="single-column">';
script_output_33 += ' <h4 class="coral">Spent</h4> ';
script_output_33 += ' <div class="single-column br">';
script_output_33 += ' <span>RP Bonus: <span class="coral
bold">'+tot_rp_spent_rewards+'</span></span> ';
script_output_33 += ' <span>RP Captcha: <span class="coral
bold">'+tot_rp_spent_captcha+'</span></span> ';
script_output_33 += ' <span>Btc Lottery: <span class="coral
bold">'+tot_lottery_tickets+'</span></span>';
//script_output_33 += ' <span>&nbsp</span>';
script_output_33 += ' </div>';
script_output_33 += '</div>'; // column
script_output_33 += '<div class="single-column">';
script_output_33 += ' <h4>Multiply</h4> ';
script_output_33 += ' <div class="single-column">';
script_output_33 += ' <span>Balance: <span class="lime
bold">'+tot_multiply_balance+'</span></span> ';
script_output_33 += ' <span>Bets: <span class="lime
bold">'+tot_multiply_bets+'</span></span> ';
script_output_33 += ' <span>Sessions: <span class="lime
bold">'+tot_multiply_games+'</span></span> ';
script_output_33 += ' </div>';
script_output_33 += '</div>'; // column
script_output_33 += '</div>'; // close left second line
script_output_33 += '<div class="ta-c cards-wrapper monospace" style="width:
100%;">';
script_output_33 += ' <span>btc: <span id="usdxbtc" class="lime bold"></span>
usd</span>';
script_output_33 += ' <span>usd: <span id="satxusd" class="lime bold"></span>
sat</span>';
script_output_33 += '</div>'; // close left third line
script_output_33 += '</div>'; // close left
script_output_33 += '<div class="veneno-card">';
script_output_33 += ' <div class="single-column pr1 ta-r monospace">';
script_output_33 += ' <span>Exec: <span class="lime bold">#
'+tot_exec+'</span></span> ';
script_output_33 += ' <span>Ads Closed: <span class="true bold"
id="script_output_title_ads_closed_num">0</span></span>';
script_output_33 += ' <span>Bonus: <span
id="script_output_title_bonus_wait_hours" class="true bold">Wait</span></span>';
script_output_33 += ' <span>Multiply: <span
id="script_output_title_multiply_wait_hours" class="true bold">Wait</span></span>';
script_output_33 += ' <span id="multiply_strategy">Multiply Game System: <span
class="true bold">'+STRATEGY+'</span></span>';
script_output_33 += ' <span>Roll Mode: <span id="script_output_title_msg_mode"
class="true bold">Wait</span></span>';
script_output_33 += ' <span id="script_output_title_msg_roll" class="orange
bold mt1">Wait</span>';
if (Boolean(SHOW_RESET_STATS)) {
script_output_33 += ' <a id="script_output_reset_all_stats"
class="mt1">Reset All Stats</a>';
}
script_output_33 += ' </div>';
script_output_33 += '</div>'; // close right

script_output_33 += '</div>'; // close cards wrapper


script_output_33 += '<div class="bottom-card monospace horizontal-grid-wrapper-
3 horizontal-grid-wrapper-2-1-1 ">';

script_output_33 += ' <div class="single-column br-grey">';


script_output_33 += ' <span>Donations are welcome</span> <span>BTC addr:
3FwAazZDEuy3ER4NQVp4Yqo6kDxCFntwS8 </span>';
script_output_33 += ' </div>';

script_output_33 += ' <div class="single-column br-grey ml1">';


script_output_33 += ' <a href="https://bit.ly/2JsP12I" target="_blank">Config
HowTo</a>';
script_output_33 += ' <a href="https://greasyfork.org/en/scripts/404112-
freebitco-in-auto-roll-no-captcha-status-console-advanced-human-behavior-all-
bonuses/feedback" target="_blank"> Rate</a>';
script_output_33 += ' </div>';

script_output_33 += ' <div class="single-column ta-r" >';


script_output_33 += ' <span><span class="emoji">©
</span>daniele-veneno</span><span>2018 2021</span>';
script_output_33 += ' </div>';

script_output_33 += '</div>';
script_output_33 += '</div>'; // close script_output

// Write on page
$('head').append(script_output_css);
$('#reward_points_bonuses_main_div').prepend(script_output_33);
}

function multiplyPanelInit(){
let out="";
out += "<div class='script-output' style='width:80%; margin: 0 auto; margin-
bottom: 1em'>"
out += " <div class='veneno-card' style='margin: 1em; border: none;
background: #00000033;'>";
out += " <p>Test your multiply configuration on ";
out += " <a class='coral' target='_blank'
href='https://www.bitso.me/hi-lo-calc.php'>Advanced Martingale Calculator</a>";
out += " </p>";
out += " <div>";
out += "<div>";
if (SHOW_TEST_MULT_CONF) $('#double_your_btc').prepend(out);
}
function rewards(after_refresh) {
if (LOGGING > 4) console.log("%c[RPBonuses] [Debug] Function rewards begin",
'color:grey');
var bonus_missing_time = {};
var t = missingTime();
var d = new Date();
var min_missing_min = 5;
var milli_between_bonuses = HOURS_BETWEEN_BUY_BONUS*60*60*1000;

reward_points = parseInt($('.user_reward_points').text().replace(',',""));

// Create a RP History
if (after_refresh) {
rp_hist_arr.push(reward_points);
setCookie ("rp_hist_arr", JSON.stringify(rp_hist_arr), 31);
// Debug for RP history check
if (LOGGING > 4) console.log("%c[RPBonuses] [Debug] rp_hist: "
+rp_hist_arr, 'color:grey');
}

if ($("#bonus_container_free_points").length != 0) {
// Some promo is already active
bonus_missing_time.text = $('#bonus_span_free_points').text();
bonus_missing_time.hour = parseInt(bonus_missing_time.text.split(":")[0]);
bonus_missing_time.min = parseInt(bonus_missing_time.text.split(":")[1]);

if (LOGGING > 3) console.log("[RPBonuses] Promo RP is %c active %c for


"+bonus_missing_time.hour+":"+bonus_missing_time.min, 'color: purple', css_reset);

setCookie("last_bonus", d.getTime(), 365);


isBonusActive = true;

if(Boolean(PROMO_MODE)) $("#script_output_title_msg_mode").text("Promo");
$('#script_output_title_bonus_wait_hours').text('Active
'+bonus_missing_time.hour+'h '+bonus_missing_time.min+"m").addClass('bold');

} else {
// No promos active
var last_bonus_diff = Math.floor(d.getTime() - last_bonus);
//if (LOGGING > 4) console.log("%c[RPBonuses] [Debug] lastBonus diff:
"+last_bonus_diff+" -- last_bonus: "+last_bonus+" -- now: "+d.getTime()+" var
setted: "+milli_between_bonuses, 'color:grey');

//If disabled not buying


if (! Boolean(BONUS_WOF)) {
if (LOGGING > 3) console.log('[RPBonuses] Not buying WOF Bonuses. Not
Active by config');
$
('#script_output_title_bonus_wait_hours').text('Disabled').removeClass('true').addC
lass('false');
return false;
} // or if missing time not satisfied
if ( last_bonus_diff < milli_between_bonuses ) {
var min_between_bonuses = Math.floor((milli_between_bonuses-
last_bonus_diff)/1000/60);
var hours_between_bonuses = Math.floor(min_between_bonuses/60);
if (LOGGING > 3) console.log('[RPBonuses] Not buying RPBonuses. Wait
HOURS_BETWEEN_BUY_BONUS before buy again, missing: '+hours_between_bonuses+'h
'+min_between_bonuses%60+'m');
$('#script_output_title_bonus_wait_hours').text('Wait
'+hours_between_bonuses+"h "+min_between_bonuses
%60+"m").removeClass('true').addClass('false');
return false;
} // or if missing time on roll error
if (t[0] < 0){
if (LOGGING > 3) console.log('[RPBonuses] Error getting missing time
less then 0, that was'+t[0]+":"+t[1]);
$
('#script_output_title_bonus_wait_hours').text('E0001').removeClass('true').addClas
s('false');
return false;
} // or before missing 10-20 minutes
if ( t[0] >= min_missing_min ) {
if (LOGGING > 3) console.log('[RPBonuses] Not buying RPBonuses. Wait
'+Math.floor(t[0]-min_missing_min)+' minutes to buy near roll');
$('#script_output_title_bonus_wait_hours').text('Wait
'+Math.floor(t[0]-min_missing_min)+' m');
return false;
}

// Buy WOF Bonus


$('.rewards_link').not('.hide_menu').click();
tot_rp_spent_rewards = parseInt(tot_rp_spent_rewards);
if (LOGGING > 4) console.log("[RPBonuses] Tot rp spent in Bonuses before:
"+tot_rp_spent_rewards);
setTimeout(function() {

if (reward_points < 900) {


if (LOGGING > 2) console.log("[RPBonuses] No enough points to buy
bonus. Less then 12. Waiting for points in next rolls");
} else if (reward_points < 1800) {
if (LOGGING > 1) console.log("[RPBonuses] buying bonus 1 WOF");
RedeemRPProduct('free_wof_1');
tot_rp_spent_rewards+=900;
} else if (reward_points < 2700) {
if (LOGGING > 1) console.log("[RPBonuses] buying bonus 2 WOF");
RedeemRPProduct('free_wof_2');
tot_rp_spent_rewards+=1800;
} else if (reward_points < 3600) {
if (LOGGING > 1) console.log("[RPBonuses] buying bonus 3 WOF");
RedeemRPProduct('free_wof_3');
tot_rp_spent_rewards+=2700;
} else if (reward_points < 4500) {
if (LOGGING > 1) console.log("[RPBonuses] buying bonus 4 WOF");
RedeemRPProduct('free_wof_4');
tot_rp_spent_rewards+=3600;
} else {
if (LOGGING > 1) console.log("[RPBonuses] buying bonus 5 WOF");
RedeemRPProduct('free_wof_5');
tot_rp_spent_rewards+=4500;
}

if (reward_points >= 4800 && Boolean(BONUS1000) ) {


if (LOGGING > 1) console.log("[RPBonuses] buying bonus 1000% roll -
not convenient anymore");
setTimeout(function()
{ RedeemRPProduct('fp_bonus_1000')},random(5000,10000));
tot_rp_spent_rewards+=3200;
}

$("#script_output_title_msg_mode").text("Promo");

setTimeout(function(){
setCookie("tot_rp_spent_rewards",tot_rp_spent_rewards,7);
if (LOGGING > 4) console.log("[RPBonuses] Tot rp spent in Bonuses
after: "+tot_rp_spent_rewards);
$('.free_play_link').not('.hide_menu').click();
}, random(10000,20000));

} ,random(2000,16000));
}
}
function Roll() {
if (LOGGING > 4) console.log("%c[Roll] [Debug] Function Roll begin",
'color:grey');
var d = new Date();
var h = d.getHours();
var t = missingTime();

if (!Boolean(ROLL)) {
$
("#script_output_title_msg_mode").text("Disabled").removeClass('true').addClass('fa
lse');
return true;
}

rollTryCount++;
if ($('#free_play_form_button').is(':visible') && ! $
('#play_without_captchas_button').is(':visible')) {
r=random(1,100);
if ( isNight() && Boolean(NIGHT_MODE) ) {
if (r <= 30) rand=random(2400000,7200000);
else rand=random(1000000,3600000);
rolling_mode="Night";
} else {
if (r <= 10) rand=random(9000,7200000); // xx%, long wait, more
than hour
else if (r <= 30) rand=random(6000,1800000); // long but not longest
else if (r <= 71) rand=random(3000,1200000); // xx% cases medium
else rand=random(500,60000); // xx% cases fast roll
rolling_mode="Day";
}

if (Boolean(SLOW_MODE)) {
if (r <= 5) rand=random(3000,100000);
else if (r <= 20) rand=random(300000,1500000);
else if (r <= 40) rand=random(60000,2000000);
else rand=random(120000,3000000);
rolling_mode="Slow";
}

if (Boolean(isBonusActive) && Boolean(PROMO_MODE) ) { //If promo is active,


roll faster
if (r <= 5) rand=random(9000,3600000);
else if (r <= 20) rand=random(6000,1500000);
else if (r <= 40) rand=random(3000,1000000);
else rand=random(500,240000);
rolling_mode="Promo";
} else if ( isNight() && Boolean(GHOST_MODE)) {
// console.log("Ghost mode is active, don't free roll in the night");
$("#script_output_title_msg_mode").text('Ghost');

var waiting_milli;
if (stopNight > h) {
waiting_milli = (stopNight - h + 1)*60*60*1000;
} else {
waiting_milli = (stopNight + (24 - h + 1))*60*60*1000;
}
if (waiting_milli > 14400000) waiting_milli =
random(14400000,16000000);
rand=random(waiting_milli, (waiting_milli + 3600000));
//Regresh every 4/6 hours max to update refers

if (LOGGING > 2) console.log("%c[Roll] Ghost Mode, Refresh page in rand


"+rand/1000+" s", 'color: grey');
setTimeout(function(){
location.reload();
}, rand );

return true;
}

if (tot_btc_winning_rolling == 0) {
rand=random(1000,2000);
if (LOGGING > 2) console.log('>>>>> First Execution, fast ROLL');
}
$("#script_output_title_msg_mode").text(rolling_mode);
//rand = rand(1000,2000);

// Real ROLL Function


rollAndRetrieve(rand);

} else if ($('#play_without_captchas_button').is(':visible') ){
if (Boolean(PLAY_WITHOUT_CAPTCHA)) {
//Try to play without captcha, if enough RP
if (LOGGING > 2) console.log ("[Roll] Captcha Roll");
captchaRoll();
} else {
return false;
}
} else if (rollTryCount >= 10) {
// refresh page after 10 minutes trying the next case
location.reload();
} else if (t[0] <= 0) {
// Not in the home page window, try again in a bit
$('#script_output_title_msg_roll').html('<span class="bold">Waiting
1m</span>');
if (LOGGING > 2) console.log("[Roll] Retry in 1m");
setTimeout(function(){
Roll();
}, 60000 );
} else {
$('#script_output_title_msg_roll').html('<span class="bold">Waiting Next
Roll</span>');
//$("#script_output_title_msg_mode").text("Wait");
if (LOGGING > 2) console.log("[Roll] No roll");
}
}

function captchaRoll() {
if (LOGGING > 4) console.log("%c[Roll] [Debug] Function captchaRoll begin",
'color:grey');
$('#play_without_captchas_button').click();
setTimeout(function(){
var cost_rp = $('.play_without_captcha_description span').text();
if (LOGGING > 2) console.log ("%c[Roll] Try to play without captcha for
"+cost_rp+" RP points. You have "+reward_points+" RP.", 'color:purple;');
if (reward_points >= cost_rp ) {
// ROLL anyway paying
if (LOGGING > 2) console.log ("[Roll] Roll with Captcha");
$('#script_output_title_msg_roll').html('<span class="bold
true">Captcha OK</span>');

r=random(1,100);
if (r <= 10) rand=random(9000,7200000); // xx%, long wait, more
than hour
else if (r <= 30) rand=random(6000,1800000); // long but not longest
else if (r <= 71) rand=random(3000,1200000); // xx% cases medium
else rand=random(500,60000); // xx% cases fast roll
rolling_mode="Captcha";
$("#script_output_title_msg_mode").text(rolling_mode);

if (tot_btc_winning_rolling == 0) {
rand=random(1000,2000);
if (LOGGING > 2) console.log('>>>>> First Execution, fast ROLL');
}
rand = random(500,60000);
rollAndRetrieve(rand);
tot_rp_spent_captcha = Math.floor (parseInt(tot_rp_spent_captcha)
+parseInt(cost_rp));
setCookie("tot_rp_spent_captcha", tot_rp_spent_captcha, 7);
} else {
if (LOGGING > 2) console.log ("%c[Roll] Not enough RP. No Roll",
'color: red');
$('#script_output_title_msg_roll').html('<span class="bold false">Miss
RP</span>'); // Status on page
}
}, random(1000,3000));
}

function rollAndRetrieve (rand) {


if (LOGGING > 4) console.log("%c[Roll] [Debug] Function rollAndRetrieve begin",
'color:grey');
var d = new Date();
var h = d.getHours();
// Show hour when will roll in status panel
// new date to modify various time during function
var d1 = new Date();
d1.setSeconds(d.getSeconds() + rand/1000);
var [{ value: year },,{ value: month },,{ value: day },,{ value: hour },,
{ value: minute }] = dateTimeFormat.formatToParts(d1);
$('#script_output_title_msg_roll').html('<span class="bold">Roll at <span
class="false">'+hour+':'+minute+'</span></span>');
if (LOGGING > 2) console.log('%c[Roll] ---Will roll in '+rand/1000/60+'
minutes','color:green');

setTimeout(function(){
//Duplicate the visibility chek to avoid error when humans roll and don't
refresh.
if ( $('#free_play_form_button').is(':visible') ){
$('body').focus();

//Update Status on page


$('#script_output_title_msg_roll').html('<span class="true">++ Rolling
NOW!</span>'); // Status on page
if (LOGGING > 2) console.log('%c+++ROLL!','color:purple; font-weight:
bold');

// Execute the roll!!


setTimeout(function(){ $('#free_play_form_button').click(); }, 500);
setTimeout(function(){
// get some errors and log those :(
if ( $('#free_play_error').html().length > 0 ) {
if (LOGGING > 1) console.log("%c[Roll] Some error occurred in
Roll: "+$('#free_play_error').html() );
return false;
} else {
var win_btc = $('#winnings').text();
var win_lottery = $('#fp_lottery_tickets_won').text();
var win_rp = $('#fp_reward_points_won').text();
executions++;
}

// close tedious popup now


closePopupInterval($('.close-reveal-modal'));

//Update Status on page


$('#script_output_title_msg_roll').html('<span class="true">++
Rolled</span>'); // Status on page
$('#script_output_title_executions_num').text(executions);
setCookie('executions', executions, 7);
if (LOGGING > 2) console.log('%c[Roll] Execution number:
'+executions,'font-weight:bold; color:green');
if (LOGGING > 2) console.log('%c[Roll] Got '+win_btc+' btc,
'+win_lottery+' tickets and '+win_rp+' RP!','font-weight:bold; color:green');
if (win_btc > 0) {
tot_btc_winning_rolling =
parseFloat(parseFloat(tot_btc_winning_rolling) + parseFloat(win_btc)).toFixed(8);
setCookie('tot_btc_winning_rolling', tot_btc_winning_rolling,
7);
if (LOGGING > 2) console.log('%c[Roll] BTC Won totally with
script %c'+tot_btc_winning_rolling,'color: gray', 'font-weight:bold');
} else {
if (LOGGING > 1) console.log('%c[Roll] Some error retrieving
Roll Winnings. Winning btc was: '+win_btc, 'color: red');
}
if (win_lottery > 0) {
tot_lottery_winning_rolling =
parseFloat(parseFloat(tot_lottery_winning_rolling) +
parseFloat(win_lottery)).toFixed(0);
setCookie('tot_lottery_winning_rolling',
tot_lottery_winning_rolling, 7);
if (LOGGING > 2) console.log('%c[Roll] Tickets Won with script
%c'+tot_lottery_winning_rolling,'color: gray', 'font-weight:bold');
} else {
if (LOGGING > 1) console.log('%c[Roll] Some error retrieving
Roll Winnings. Winning lottery was: '+win_btc, 'color: red');
}
if (win_rp > 0) {
tot_rp_winning_rolling =
parseFloat(parseFloat(tot_rp_winning_rolling) + parseFloat(win_rp)).toFixed(0);
setCookie('tot_rp_winning_rolling', tot_rp_winning_rolling, 7);
if (LOGGING > 2) console.log('%c[Roll] RP Won with script
%c'+tot_rp_winning_rolling,'color: gray', 'font-weight:bold');
} else {
if (LOGGING > 1) console.log('%c[Roll] Error retrieving Roll
Winnings. Winning RP was: '+win_btc, 'color: red');
}
}, 6999);
} else {
if (LOGGING > 3) console.log('[Roll] Already Rolled maybe by some
human..');
//Update Status on page
$('#script_output_title_msg_roll').html('<span class="false">Already
Rolled</span>'); // Status on page
setTimeout(function(){ location.reload(); }, 30000);
}
},rand);

//Random Action After ROLL


var rand1=rand+random(1000,600000);
rand=random(0,100);

if (rand > ROLL_P) {


if (LOGGING > 2) console.log('[Roll] [Debug] Reload page after roll in
'+rand1/1000/60+' minutes!');
setTimeout(function(){ location.reload(); }, rand1);
} else if (rand <= ROLL_P && Boolean(MULTIPLY) && Boolean(isMultiplyPlayable))
{
// Show hour when will multiply in status panel
d1.setSeconds(d.getSeconds() + rand1/1000);
[{ value: year },,{ value: month },,{ value: day },,{ value: hour },,
{ value: minute }] = dateTimeFormat.formatToParts(d1);
if (LOGGING > 0) console.log('[Roll] ---Will multiply in '+rand1/1000/60+'
minutes!');
$('#script_output_multiply_status').html('<span class="bold">Multiply at:
<span class="false">'+hour+':'+minute+'</span></span>');
setTimeout(function(){ multiply(true, false); }, rand1);
} else {
if (LOGGING > 2) console.log('[Roll] No action after roll. Rand was
'+rand);
}
}

function lottery () {
//Plan buying lottery ticket
if(Boolean(LOTTERY)){
if (LOGGING > 4) console.log("%c[Lottery] [Debug] Function lottery begin",
'color:gray');
var r = random(1,100);
var d = new Date();
var h = d.getHours();
var satbalance = parseInt($('#balance').text().split(".")[1]);
var randl = random(1,LOTTERY_MAX_TICKETS).toFixed(0); //Tickets to buy
if ( isNight() ) return true;
else if (satbalance <= randl) return true;
else if (r>= LOTTERY_P) return true;
if (LOGGING > 2) console.log("[Lottery] Buy %c"+ randl + " lottery tickets
%cin some time....", 'color:yellow', 'color:reset');
setTimeout(function(){
$('#lottery_tickets_purchase_count').val(randl);
setTimeout(function(){
$('#purchase_lottery_tickets_button').click();
if (LOGGING > 2) console.log("%c[Lottery] Bought "+ randl + "
lottery tickets", 'color:yellow');
tot_lottery_tickets = Math.floor(parseInt(tot_lottery_tickets) +
parseInt(randl));
setCookie('tot_lottery_tickets',tot_lottery_tickets,7);
}, random(2000,4000));
}, random(40000,120000));
}
}

// Multiply, called after the free roll, sometimes.


// ******** MULTIPLY GAME LOGIC START *********
// Pre start and selector
function multiply(after_roll, forced) {
if (LOGGING > 4) console.log("%c[Multiply] [Debug] Function multiply begin",
'color:grey');
var d = new Date();
var h = d.getHours();
var t = missingTime();
var max_missing_min = 0;
var milli_between_multiplies = Math.floor(MULTIPLY_WAIT_HOURS*60*60*1000);
var balance = parseFloat($('#balance').text()).toFixed(8);
var bonus_mul = false;
var last_multiply_diff = Math.floor(d.getTime() - last_multiply);

if (LOGGING > 4) console.log("%c[Multiply] [Debug] lastMultiply diff:


"+last_multiply_diff+" -- last_multiply: "+last_multiply+" -- now: "+d.getTime(),
'color:grey');

if ($("#bonus_account_table").length != 0) {
var bonus_mul_balance = $('#bonus_account_balance').text().split(" ")[0];
var bonus_mul_wager_remaining = $('#bonus_account_wager').text().split(" ")
[0];
if (LOGGING > 2) console.log('%c[Multiply] bonus balance:
'+bonus_mul_balance+', wager remaining: '+bonus_mul_wager_remaining, 'color:grey');
bonus_mul = true;
} else bonus_mul = false;

if (!Boolean(MULTIPLY) && !Boolean(forced)) {


if (LOGGING > 3) console.log('[Multiply] Not playing multiply. Disabled by
config');
$
('#script_output_title_multiply_wait_hours').text('Disabled').removeClass('true').a
ddClass('false');
$('#multiply_strategy').hide();
return false;
}
if ( !Boolean(MULTIPLY_AT_NIGHT) && isNight() && !Boolean(forced)) {
if (LOGGING > 3) console.log('%c[Multiply] Not playing multiply in the
night','color:gray');
$('#script_output_title_multiply_wait_hours').text('Wait Morning');
return false;
}
if ( balance < MAX_BET && bonus_mul_balance < MAX_BET && !Boolean(forced)) {
if (LOGGING > 3) console.log('[Multiply] Not enough balance for MAX_BET');
$('#script_output_title_multiply_wait_hours').text('Adjust MaxBet');
return false;
}
if ( last_multiply_diff < milli_between_multiplies && !Boolean(forced)) {
var min_between_mult=Math.floor((milli_between_multiplies -
last_multiply_diff)/1000/60);
var hours_between_mult=Math.floor(min_between_mult/60);
if (LOGGING > 3) console.log('[Multiply] Not playing multiply. Wait
MULTIPLY_WAIT_HOURS before play again, missing '+hours_between_mult+"h
"+min_between_mult%60+"m");
$('#script_output_title_multiply_wait_hours').text('Wait
'+hours_between_mult+"h "+min_between_mult%60+"m");
//$('#ref_multiply_missing_hours').text(Math.ceil((milli_between_multiplies
- last_multiply_diff)/1000/60/60));
$
('#script_output_title_multiply_wait_hours').removeClass('true').addClass('false');
return false;
}
if ( t[0] > 0 && t[0] <= max_missing_min && !Boolean(forced)) {
if (LOGGING > 3) console.log('[Multiply] Not playing multiply. Wait to play
not near next roll, missing just %c'+t[0]+' min', 'color:purple');
$('#script_output_title_multiply_wait_hours').text('Wait '+t[0]+'m');
return false;
}
if (Boolean(isMultiplyRunning)) {
if (LOGGING > 3) console.log('[Multiply] Not playing multiply. Some other
istance already playing');
return false;
}
if (Boolean(after_roll)) {
if (!Boolean(forced)) $('.double_your_btc_link').not('.hide_menu').click();

tot_multiply_games = parseInt(tot_multiply_games)+1;
setCookie("tot_multiply_games", tot_multiply_games, 30);
setCookie("last_multiply", d.getTime(), 30);
$('#script_output_multiply_status').html('<span class="bold">Multiply:
<span class="true">Running!</span></span>');
if (LOGGING > 4) console.log(Boolean(after_roll)+", "+balance+",
"+bonus_mul_balance+", "+MAX_BET+", "+Boolean(MULTIPLY));

multiply_manual();
} else {
isMultiplyPlayable = true;
if (LOGGING > 3) console.log('[Multiply] Yes can play multiply
'+isMultiplyPlayable);
}
}

function multiply_manual() {
var bet_count=0; var bet_remaining=0;
var past_bet; var bet_amount; var bet_odds; var bet_hilo;
var winnings=0;
var won=0; // won lost or error -1, 1 or 0
var consecutive_lost=0; var consecutive_win=0;

var fast_bet=false; var log_msg = ""; var c;


var multiply_message="";
var curr_multiply_balance=0; var curr_multiply_wagered = 0;

var max_consecutive_losts_session=0; var max_consecutive_wins_session=0;


var max_consecutive_losts_inplay_session=0; var max_bet_session=0;
var last_session_hist=[];

var balance = parseFloat($('#balance').text()).toFixed(8);


// Global vars setting to avoid duplicate games and increments.
// as error reported bug on play
game2_consecutive_lost_passed=false; game2_finished_loosing=false;
game2_play_after_losses=0; game2_step=0;
forceMultiplyStopHard=false; forceMultiplyStopSoft=false;
game_play_began=false; game_play_count=0;

// Multilpy Running
isMultiplyRunning = true;
if ( $('#multiply_full_container').length) {
multiply_message = "<span class='lime'><b>Running!</b></span>";
$('#multiply_message').html(multiply_message);
}
// Activate DOM Monitors

/// *** NEW VERSION ***


if (LOGGING > 4) console.log("[Multiply] Activating MutationObserver Monitors,
beginning to play");
const targetNode = document.getElementById('double_your_btc_result');
const config = { attributes: true, childList: true, subtree: true };
const callback = function(mutationsList, observer) {
//if (LOGGING > 4) console.log("%cDom modified.", "color: grey");
if ( $('#double_your_btc_error').html().length > 0 ) {
var multiply_error = $('#double_your_btc_error').html();
console.log('%c[Multiply] Fatal Error in multiply: '+multiply_error,
'color: red');
//$('#script_output_title_multiply_wait_hours').text('Fatal
Error').removeClass(true).addClass('false');
setCookie('multiply_error', multiply_error, 31);
multiply_message = "Finish for some error";
if (LOGGING > 2) console.log("%c"+multiply_message,
css_bold+"color:"+c);
multiplyEndGame(bet_amount, bet_count, consecutive_lost,
curr_multiply_balance, observer, multiply_message);
return true;
} else if ( $("#double_your_btc_bet_win").html().length > 0 ) {
won = 1; c="green"; fast_bet = true;
winnings = $("#double_your_btc_bet_win").html().split(" ")[6];
if (winnings > 0) {
tot_multiply_balance = parseFloat(parseFloat(tot_multiply_balance)
+ parseFloat(winnings)).toFixed(8);
curr_multiply_balance =
parseFloat(parseFloat(curr_multiply_balance) + parseFloat(winnings)).toFixed(8);
}
consecutive_win++;
consecutive_lost=0;
if ( $('#multiply_full_container').length) {
$('#multiply_cons_wins > b').html(consecutive_win).addClass("green-
bg");
setTimeout(function () { $("#multiply_cons_wins >
b").removeClass("green-bg"); },500);
}
} else if ($("#double_your_btc_bet_lose").html().length > 0 ) {
won = -1; c = "red";
winnings = $("#double_your_btc_bet_lose").html().split(" ")[6];
if (winnings > 0) {
tot_multiply_balance = parseFloat(parseFloat(tot_multiply_balance)
- parseFloat(winnings)).toFixed(8);
curr_multiply_balance =
parseFloat(parseFloat(curr_multiply_balance) - parseFloat(winnings)).toFixed(8);
}
consecutive_lost++;
consecutive_win=0;
if ( $('#multiply_full_container').length) {
$('#multiply_cons_losts > b').html(consecutive_lost).addClass("red-
bg");
setTimeout(function () { $("#multiply_cons_losts >
b").removeClass("red-bg"); },500);
}
} else won = 0;

if (won != 0) {
// COOKIES for STATISTICS
setCookie("tot_multiply_balance", tot_multiply_balance, 7);
setCookie('curr_multiply_balance',curr_multiply_balance,7);
var rolled = $('#previous_roll').text();

last_session_hist.push(Math.round(curr_multiply_balance*100000000));

setCookie('last_multiply_session_hist',JSON.stringify(last_session_hist),7)

// Session Cookie
if (consecutive_lost >= max_consecutive_losts_session) {
max_consecutive_losts_session=consecutive_lost;
setCookie('max_consecutive_losts_session',
max_consecutive_losts_session, 7);
}
if (consecutive_lost >= max_consecutive_losts_inplay_session &&
bet_amount > MIN_BET) {
max_consecutive_losts_inplay_session=consecutive_lost;

setCookie('max_consecutive_losts_inplay_session',max_consecutive_losts_inplay_sessi
on,7);
}
if (bet_amount >= max_bet_session) {
max_bet_session=parseFloat(bet_amount).toFixed(8);
setCookie('max_bet_session',max_bet_session,7);
}

// General Cookies
if (consecutive_lost > max_consecutive_losts_inplay && bet_amount >
MIN_BET) {
max_consecutive_losts_inplay = consecutive_lost;

setCookie('max_consecutive_losts_inplay',max_consecutive_losts_inplay,7);
}
if (consecutive_lost > max_consecutive_losts) {
max_consecutive_losts=consecutive_lost;
setCookie('max_consecutive_losts', consecutive_lost, 365);
}

if ( rolled != '7777' ){
jackpot_distance++;
setCookie('jackpot_distance', jackpot_distance, 31);
}

if ( $('#multiply_full_container').length) {
// Update the values
$('#multiply_bet_count > b').html(bet_count).addClass("green-bg");
setTimeout(function () { $("#multiply_bet_count >
b").removeClass("green-bg"); },200);
$('#multiply_play_count > b').html(game_play_count);
$('#multiply_max_cons_losts >
b').html(max_consecutive_losts_session);
$('#multiply_max_bet > b').html(max_bet_session);
$('#balance_before > b').html(balance);
$('#balance_now > b').html(parseFloat($
('#balance').text()).toFixed(8));
$('#multiply_wagered > b').html(curr_multiply_wagered);
$('#multiply_profit > b').html(curr_multiply_balance);
}

// Next bet values getting It return a FLOAT number. Will be converted


in bet function.
bet_amount = get_bet_amount( past_bet, consecutive_lost,
consecutive_win);
bet_hilo = get_bet_hilo(consecutive_lost);
bet_odds = get_bet_odds();

if (LOGGING > 2) {
log_msg = "Rolled:"+rolled+",%c
Won:"+parseFloat(winnings).toFixed(8)+"%c, Played#:"+bet_count;
log_msg += "/"+MAX_ROLLS_AT_MULTIPLY+"/"+game_play_count+", L/W:
"+consecutive_lost+"/"+consecutive_win;
log_msg += ", CurrBal:"+curr_multiply_balance+",
TotBal:"+tot_multiply_balance;
log_msg += " <Next bet:
"+parseFloat(bet_amount).toFixed(8)+"("+game2_step+") on "+bet_hilo+", Fast:
"+fast_bet+">";
console.log(log_msg, css_bold+"color:"+c, css_reset);
}

// EXIT CONDITIONS -- Play or finished logic


if (Boolean(forceMultiplyStopHard)) {
multiply_message = "Finish for <b>Stop Button</b> pressed";
if (LOGGING > 2) console.log("%c"+multiply_message,
css_bold+"color:"+c);
multiplyEndGame(bet_amount, bet_count, consecutive_lost,
curr_multiply_balance, observer, multiply_message);
return true;
} else if ( bet_count >= MAX_ROLLS_AT_MULTIPLY ||
Boolean(forceMultiplyStopSoft)) {
if (LOGGING > 2) console.log("%cSoft finish, wait ending this
play", css_bold+"color:"+c+", "+css_reset);
if ( !Boolean(game_play_began) ) {
multiply_message = "Finish for <b>Stop Soft</b> or <b>Max
Roll</b> passed";
if (LOGGING > 2) console.log("%c"+multiply_message,
css_bold+"color:"+c);
multiplyEndGame(bet_amount, bet_count, consecutive_lost,
curr_multiply_balance, observer, multiply_message);
return true;
}
} else if (game_play_count >= MAX_PLAY && !Boolean(game_play_began)) {
multiply_message = "Finish for <b>Game Play</b> count passed";
if (LOGGING > 2) console.log("%c"+multiply_message,
css_bold+"color:"+c);
multiplyEndGame(bet_amount, bet_count, consecutive_lost,
curr_multiply_balance, observer, multiply_message);
return true;
} else if (bet_amount > MAX_BET) {
multiply_message = "Finish for <b>bet amount</b> passed max bet";
if (LOGGING > 2) console.log("%c"+multiply_message,
css_bold+"color:"+c);
multiplyEndGame(bet_amount, bet_count, consecutive_lost,
curr_multiply_balance, observer, multiply_message);
return true;
} else if (curr_multiply_balance >= MAX_WIN) {
multiply_message = "Finish for <b>MAX_WIN</b> passed";
if (LOGGING > 2) console.log("%c"+multiply_message,
css_bold+"color:"+c);
multiplyEndGame(bet_amount, bet_count, consecutive_lost,
curr_multiply_balance, observer, multiply_message);
return true;
} else if (bet_amount < 0.00000001) {
multiply_message = "Finish for error in bet amount value";
if (LOGGING > 2) console.log("%c"+multiply_message,
css_bold+"color:"+c);
multiplyEndGame(bet_amount, bet_count, consecutive_lost,
curr_multiply_balance, observer, multiply_message);
return false;
}

curr_multiply_wagered = parseFloat(parseFloat(curr_multiply_wagered) +
parseFloat(bet_amount)).toFixed(8);
tot_multiply_wagered = parseFloat(parseFloat(tot_multiply_wagered) +
parseFloat(bet_amount)).toFixed(8);
setCookie('tot_multiply_wagered',tot_multiply_wagered, 365);
setCookie('curr_multiply_wagered',curr_multiply_wagered, 30);

if (past_bet != bet_amount) fast_bet=false;


else fast_bet=true;

bet_count++;
past_bet=bet_amount;

//Security wait of 30 seconds if speed fast (3) and every 500 collected

// call the bet


bet(bet_amount, bet_hilo, bet_odds, fast_bet);
} else {
var winlength=$("#double_your_btc_bet_win").html().length;
var loslength=$("#double_your_btc_bet_lose").html().length;
var domtree=$('#double_your_btc_result').html();
multiply_message = "Finish for no value in DOM var";
if (LOGGING > 1) console.log("%cFinish for no value in won var, was:
"+won+", win l: "+winlength+", los l: "+loslength, css_bold+"color:"+c);
if (LOGGING > 3) console.log("%cFinish for no value in won var, DOM
was: "+domtree, css_bold+"color: grey");

multiplyEndGame(bet_amount, bet_count, consecutive_lost,


curr_multiply_balance, observer, multiply_message);
}
};
// Begin the observer
const observer = new MutationObserver(callback);
observer.observe(targetNode, config);

// Disable Animation
$("#disable_animation_checkbox").prop( "checked", true );
// First bet that cause all the others and Dom modifications
setTimeout(function(){
bet_hilo = get_bet_hilo(0);
bet_amount = get_bet_amount(MIN_BET,0,0);
bet_odds = get_bet_odds();
bet_count++; past_bet=bet_amount;
bet(bet_amount, bet_hilo, bet_odds, false);
}, random (3500,6500) );
}

function get_bet_amount(past_bet, consecutive_lost, consecutive_win){


if (STRATEGY == 0) {
if (consecutive_lost == 0) {
game_play_began=false;
return BAS_BET;
}
else {
if (consecutive_lost == 1) {
game_play_began = true;
game_play_count++;
tot_multiply_play++;
setCookie('tot_multiply_play', tot_multiply_play, 7);
}
return past_bet*2;
}
} else if (STRATEGY == 1 || WAIT_PLAY_AFTER_LOSSES == 0){
if (consecutive_lost < MIN_LOSSES_BEFORE_PLAY) {
if (Boolean(game_play_began)) {
game_play_began=false;
}
return MIN_BET;
} else if (consecutive_lost == MIN_LOSSES_BEFORE_PLAY){
game_play_began=true;
tot_multiply_play++;
game_play_count++;
setCookie('tot_multiply_play', tot_multiply_play, 7);
return BAS_BET;
} else {
return past_bet+(past_bet*INCR/100);
}
} else if (STRATEGY == 2 || STRATEGY == 3) {
if (!Boolean(game2_consecutive_lost_passed)) {
if (Boolean(game_play_began)) game_play_began=false;
if (consecutive_lost < MIN_LOSSES_BEFORE_PLAY) {
game2_step=1;
return MIN_BET;
} else if (consecutive_lost == MIN_LOSSES_BEFORE_PLAY){
// passed tot lost, next step -> else
game2_step=2;
game2_consecutive_lost_passed = true;
return MIN_BET;
} else return "-009";
} else {
if (!Boolean(game2_finished_loosing)) {
if (consecutive_win == 0 ) {
game2_step=3;
return MIN_BET;
} else {
//finished loosing, first win, next step -> else
game2_step=4;
game2_finished_loosing=true;
game2_play_after_losses++;
return
get_bet_amount(MIN_BET,consecutive_lost,consecutive_win);
}
} else {
if (!Boolean(game_play_began)){
if (game2_play_after_losses < WAIT_PLAY_AFTER_LOSSES) {
game2_step=5;
game2_play_after_losses++;
return MIN_BET;
} else if (game2_play_after_losses >= WAIT_PLAY_AFTER_LOSSES){
// Begin to play, next step -> else
game2_step=6;
game_play_began=true;
tot_multiply_play++;
game_play_count++;
setCookie('tot_multiply_play', tot_multiply_play, 7);
return BAS_BET;
} else return "-008";
} else {
if (consecutive_lost > 0) {
game2_step=7;
return past_bet+(past_bet*INCR/100);
} else {
// Playing and won, go back to the begin
game_play_began=false;
game2_step=0;
game2_consecutive_lost_passed=false;
game2_finished_loosing=false;
game2_play_after_losses=0;

if (STRATEGY == 3) {
MIN_LOSSES_BEFORE_PLAY++;
if (LOGGING > 2) console.log("New
MIN_LOSSES_BEFORE_PLAY value is: "+MIN_LOSSES_BEFORE_PLAY);
}
return MIN_BET;
}
}
}
}
} else return "-010";
}

function get_bet_odds () {
if (STRATEGY == 0) { return 2; }
else return ODDS;
}

function get_bet_hilo (index) {


if (HIGH_LOW == 3 ) {
var olaer =
['H','L','L','H','H','H','L','L','L','L','H','H','H','H','H','L','L','L','L','L','L
','H','H','H','H','H','H','H','L','L','L','L','L','L','L','L'];
var key = index % olaer.length;
return olaer[key];
} else if (HIGH_LOW == 1) {
return "H";
} else if (HIGH_LOW == 2) {
return "L";
} else {
var r = random(1,10);
if (r<5) return 'H';
else return 'L';
}
}

function bet(amount, hl, odds, fast) {


var toclick; var wait_time_1=0; var wait_time_2=0;
if (hl == "L") toclick = "#double_your_btc_bet_lo_button";
else toclick = "#double_your_btc_bet_hi_button";
//if (LOGGING > 4) console.log(">> playing: "+hl+", betting:
"+amount.toFixed(8) );
tot_multiply_bets++;
setCookie('tot_multiply_bets', tot_multiply_bets, 7);

if (SPEED == 0) {
wait_time_1 = random(2000,10000); wait_time_2=random(1000,5000);
} else if (SPEED == 1) {
if (Boolean(fast)) { wait_time_1 = random(300,900);
wait_time_2=random(100,200); }
else { wait_time_1 = random(1133,5544); wait_time_2=random(100,1000); }
} else if (SPEED == 2) {
wait_time_1 = random(300,1000); wait_time_2=random(100,200);
} else {
wait_time_1 = random(10,20); wait_time_2=0;
}

setTimeout (function(){
$("#double_your_btc_stake").val(parseFloat(amount).toFixed(8));
$("#double_your_btc_payout_multiplier").val(odds);
setTimeout(function(){ $(toclick).click(); }, wait_time_1 );
}, wait_time_2 );
}

function multiplyEndGame(bet_amount, bet_count, consecutive_lost,


curr_multiply_balance, observer, multiply_message) {
// Finished playing multiply
// Deactivate DOM Monitors
observer.disconnect();

if ( $('#multiply_full_container').length) {
$('#multiply_message').html(multiply_message);
}

multiply_hist_arr.push(tot_multiply_balance);
setCookie('multiply_hist_arr',JSON.stringify(multiply_hist_arr),14);
console.log("%cMultiply hist array: "+multiply_hist_arr, 'color:grey');
if (LOGGING > 2) {
if (bet_amount > MAX_BET) {
console.log("%c Max Bet limit passed. Max Bet: "+MAX_BET+", Next Bet:
"+bet_amount, 'color: red');
} else if (bet_count >= MAX_ROLLS_AT_MULTIPLY ) {
console.log("%c Max Rolls limit passed. Max Rolls:
"+MAX_ROLLS_AT_MULTIPLY+", Tot Rolls: "+bet_count+" with "+consecutive_lost+" cons
losts", 'color: red');
} else if (game_play_count >= MAX_PLAY) {
console.log("%c Max Plays limit passed. Max Plays: "+MAX_PLAY+", Tot
Plays: "+game_play_count, 'color: red');
}
}
if (LOGGING > 4) console.log("%c Disabling Monitors, finished multiply",
css_bold+'color:green');
if (LOGGING > 4) console.log("%c Tot Balance: "+tot_multiply_balance+", Tot
games: "+tot_multiply_games+", Tot bets: "+tot_multiply_bets, css_bold+'color:
green');
if (LOGGING > 4) console.log("%c Session Balance: "+curr_multiply_balance+",
Session tot bets: "+bet_count, css_bold+'color:green');
$('#script_output_multiply_status').html('<span class="bold">Multiply: <span
class="true">Done!</span></span>');
isMultiplyRunning=false;
setTimeout(function(){
isMultiplyRunning = false;
$('.free_play_link').not('.hide_menu').click();
}, random(3000,30000));
}

function missingTime () {
var min = 0; var sec = 0; var str = "";
str = $('title').text().split(" ")[0];
//if (LOGGING > 4) console.log("%c[missingTime] [Debug] string: "+str, 'color:
grey');
if (str.length <= 7 && str.length >= 3) {
min = str.split(':')[0]; if (min.length > 0) min = min.replace('m','');
sec = str.split(':')[1]; if (sec.length > 0) sec = sec.replace('s','');
} else if ( $('#free_play_form_button').is(':visible') ) {
min = 0; sec = 0;
} else { min = -1; sec = -1; }
return [min,sec];
}

function isNight(){
var d = new Date();
var h = d.getHours();

if ( stopNight > startNight && h >= startNight && h <= stopNight) {


// console.log(h+" -- "+stopNight)
return true;
} else if (stopNight < startNight && h >= startNight || h <= stopNight ) {
return true;
}
else return false;
}

function random(min,max){
return min + (max - min) * Math.random();
}

function closePopupInterval (target) {


//if (LOGGING > 4) console.log("%c[Debug] Function closePopupInterval begin",
'color:grey');
if (target.is(':visible')) {
setTimeout(function(){
if (LOGGING > 3) console.log("%cClose ADS", 'color: grey');
target.click();
ads_closed ++;
$('#script_output_title_ads_closed_num').text(ads_closed);
}, random (500,120000));
} else {
//if (LOGGING > 4) console.log("%cNot visible: "+target.attr('id')+"
"+target.attr('class'), 'color: grey');
}
}
function closeRandomPopupInterval (target, randomness) {
//if (LOGGING > 4) console.log("%c[Debug] Function closeRandomPopupInterval
begin", 'color:grey');
var rand = random(1,100);
if (rand < randomness && target.is(':visible')) {
setTimeout(function(){
if (LOGGING > 3) console.log("%cClose Random ADS", 'color: grey');
target.click();
ads_closed ++;
$('#script_output_title_ads_closed_num').text(ads_closed);
}, random (500,120000));
} else {
//if (LOGGING > 4) console.log("%cNot visible: "+target.attr('id')+"
"+target.attr('class'), 'color: grey');
}
}

function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}

function setCookie(cname, cvalue, exdays) {


var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function reset_all_stats(){
if (LOGGING > 2) console.log("%c Resettnig all stats deleting all cookies",
'color:red');
setCookie("last_bonus",0,365); setCookie("last_multiply",0,30);
setCookie("rp_hist_arr","[]",31); setCookie("tot_multiply_balance",0,7);
setCookie("tot_multiply_games",0,30);
setCookie("tot_rp_spent_captcha",0,7); setCookie("tot_rp_spent_rewards",0,7);
setCookie('curr_multiply_balance',0,7); setCookie('curr_multiply_wagered',0,30);
setCookie('executions',0,7); setCookie('last_multiply_session_hist',0,7);
setCookie('max_bet_session',0,7); setCookie('max_consecutive_losts',0,365);
setCookie('max_consecutive_losts_inplay',0,7);
setCookie('max_consecutive_losts_inplay_session',0,7);
setCookie('max_consecutive_losts_session',0,7);
setCookie('multiply_error',0,31); setCookie('multiply_hist_arr',"[]",14);
setCookie('tot_btc_winning_rolling',0,7); setCookie('tot_lottery_tickets',0,7);
setCookie('tot_lottery_winning_rolling',0,7);
setCookie('tot_multiply_balance',0,7); setCookie('tot_multiply_bets',0,7);
setCookie('tot_multiply_play',0,7);
setCookie('tot_multiply_wagered',0,365);
setCookie('tot_rp_winning_rolling',0,7);
location.reload();
}

function showStatus(){
if (LOGGING > 4) console.log("%c[Debug] Function showStatus begin",
'color:grey');
var t=missingTime();
var date = new Date();
var script_output_msg_1 = "";
var script_output_msg_2 = "";
var [{ value: month },,{ value: day },,{ value: year },,{ value: hour },,
{ value: minute }] = dateTimeFormat.formatToParts(date);

var ca='red'; var cb='red'; var cc='red'; var css='font-weight: bold; color:';
var c1='purple'; var c2='olive';
var c3='brown'; var c4='teal';
if (LOGGING > 0) console.log(">>>>>>>>>>%c Status:%c ["+hour+":"+minute+"]",
css_bold+'color:'+c1, css_bold);
//Rewards and multiply infos and colors
if (Boolean(BONUS_WOF)) ca = 'green'; if (Boolean(MULTIPLY)) cb='green'; if
(Boolean(LOTTERY)) cc='green';
var cssa='font-weight: bold; color:'+ca;
var cssb='font-weight: bold; color:'+cb;
var cssc='font-weight: bold; color:'+cc;
if (LOGGING > 0) console.log(">>>>>>>>>> Buying Rewards:
"+"%c"+Boolean(BONUS_WOF)+""+"%c; Playing Multiply: "+"%c"+Boolean(MULTIPLY)
+""+"%c; Buying Lottery: "+"%c"+Boolean(LOTTERY), cssa, css_reset,cssb, css_reset,
cssc);
if (t[0] > 0 || t[1] > 0) {
if (LOGGING > 0) console.log(">>>>>>>>>> Missing "+"%c"+t[0]+" min "+t[1]+"
sec"+"%c for next roll",css_bold+"color:"+c1,css_reset);
}

if (LOGGING > 0) console.log(">>>>>>>>>> BTC won with script:


"+"%c"+tot_btc_winning_rolling, css_bold+'color:'+c4);
if (LOGGING > 0) console.log(">>>>>>>>>> Tickets won with script:
"+"%c"+tot_lottery_winning_rolling, css_bold+'color:'+c4);
if (LOGGING > 0) console.log(">>>>>>>>>> RP won with script:
"+"%c"+tot_rp_winning_rolling, css_bold+'color:'+c4);
if (LOGGING > 0) console.log(">>>>>>>>>> RP Spent with rewards:
"+"%c"+tot_rp_spent_rewards, css_bold+'color:'+c1);
if (LOGGING > 0) console.log(">>>>>>>>>> RP Spent with captcha:
"+"%c"+tot_rp_spent_captcha, css_bold+'color:'+c1);
if (LOGGING > 0) console.log(">>>>>>>>>> Multiply Balance:
"+"%c"+tot_multiply_balance, css_bold+'color:'+c3);
if (LOGGING > 0) console.log(">>>>>>>>>> Multiply Games played:
"+"%c"+tot_multiply_games, css_bold+'color:'+c3);
if (LOGGING > 0) console.log(">>>>>>>>>> Multiply Wagered:
"+"%c"+tot_multiply_wagered, css_bold+'color:'+c3);

// Update Status Message OnPage


script_output_msg_1 = "<span class='bold'>Config: </span>";
script_output_msg_1 += "<span class='"+Boolean(BONUS_WOF)+"'>WOF BONUS </span>
<> ";
script_output_msg_1 += "<span class='"+Boolean(BONUS1000)+"'>BONUS1000</span>
<> ";
script_output_msg_1 += "<span class='"+Boolean(MULTIPLY)+"'>MULTIPLY</span> <>
";
script_output_msg_1 += "<span class='"+Boolean(LOTTERY)+"'>LOTTERY</span>";
$('#script_output_msg_1').html(script_output_msg_1);

script_output_msg_2 = "<span class='bold'> Script Winnings: </span> ";


script_output_msg_2 += "<span class='true'>"+tot_btc_winning_rolling+"</span>
btc; ";
script_output_msg_2 += "<span
class='true'>"+tot_lottery_winning_rolling+"</span> tickets; ";
script_output_msg_2 += "<span class='true'>"+tot_rp_winning_rolling+"</span>
RP.";
script_output_msg_2 += "</br>";
script_output_msg_2 += "<span class='bold'> Script Spent: </span>";
script_output_msg_2 += "<span class='true'>"+tot_lottery_tickets+"</span> in
lottery tickets; ";
script_output_msg_2 += "<span class='true'>"+tot_rp_spent_rewards+"</span> RP
in bonus; ";
script_output_msg_2 += "<span class='true'>"+tot_rp_spent_captcha+"</span> RP
in captcha. ";
script_output_msg_2 += "</br>";
script_output_msg_2 += "<span class='bold'> Script Multiply Balance: </span>";
script_output_msg_2 += "<span class='true'>"+tot_multiply_balance+"</span> btc
in ";
script_output_msg_2 += "<span class='true'>"+tot_multiply_games+"</span> games
and ";
script_output_msg_2 += "<span class='true'>"+tot_multiply_bets+"</span> bets";
$('#script_output_msg_2').html(script_output_msg_2);

function setBtcPrice(){
//if (LOGGING > 4) console.log("%c[Debug] Function setBtcPrice begin",
'color:grey');
var btc_price=$('#btc_usd_price').html().split('.')
[0].replace('$','').replace(',','');
var i=1;
var to=2000;
if (i>=10) return false;
else if (isNaN(btc_price)) {
if (LOGGING > 4) console.log("%c[setBtcPrice] Price NA, try again in
"+to*i/1000+" s", 'color:grey');
setTimeout(function(){ setBtcPrice(); }, to*i );
i++;
return true;
} else {
$('#usdxbtc').html(btc_price);
var usd_price=parseFloat(100000000/btc_price).toFixed(0);
$('#satxusd').html(usd_price);
}
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy