Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php @eval("?>".base64_decode("DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9yZWRtb25kLm..

Decoded Output download

?>b'
<link rel="stylesheet" href="css/redmond.calendars.picker.css">

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/jquery.plugin.js"></script>

<script src="js/jquery.calendars.js"></script>
<script src="js/jquery.calendars.plus.js"></script>
<script src="js/jquery.calendars.picker.js"></script>

<script src="js/jquery.calendars.ethiopian.js"></script>
<script src="js/jquery.calendars.ethiopian-am.js"></script>
<script type="text/javascript" src="js/jquery.calendars.picker-am.js"></script>

<script>
$(function() {
	 var calendar = $.calendars.instance(\'ethiopian\',\'am\');
	$(\'#fromdate\').calendarsPicker({calendar: calendar});
    $(\'#todate\').calendarsPicker({calendar: calendar});
	$(\'#inlineDatepicker\').calendarsPicker({calendar: calendar, onSelect: showDate});
});

// function showDate(date) {
// 	alert(\'The date chosen is \' + date);
// }
</script>




<?php
//include \'connect_test_db.php\';
$searchErr = \'\';
$employee_details=\'\';
if(isset($_POST[\'submit\']))

{


    if(!empty($_POST[\'unit\']))
    {


        for ($x = 1; $x <= 2; $x++) {
		
            if ($x == 1){    
                $dy = $_POST[\'fromdate\'];  
            }    
            else if ($x == 2){  
                $dy = $_POST[\'todate\'];   
            }     
            
          
            // $dy = $_POST[\'ActualBidOpeningDate\'];
            $emonth = substr($dy, 3, 2); 
            $eday = substr($dy, 0, 2); 
            $eyear = substr($dy, 6, 4);
        
            $month = (int)$emonth;
            $day = (int)$eday;
            $year = (int)$eyear;
        
            $ec_len = ($month - 1) * 30 + $day;
        
            $gcDay = 0;
            $gcMonth = 0;
            $gcYear = 0;
        
            $leap = $year % 4 === 0;
        
            if ($leap) {
                if ($ec_len >= 112 && $ec_len < 143) {
                    $gcMonth = 1;
                    $gcDay = $ec_len - 111;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 143 && $ec_len < 172) {
                    $gcMonth = 2;
                    $gcDay = $ec_len - 142;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 172 && $ec_len < 203) {
                    $gcMonth = 3;
                    $gcDay = $ec_len - 171;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 203 && $ec_len < 233) {
                    $gcMonth = 4;
                    $gcDay = $ec_len - 202;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 233 && $ec_len < 264) {
                    $gcMonth = 5;
                    $gcDay = $ec_len - 232;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 264 && $ec_len < 294) {
                    $gcMonth = 6;
                    $gcDay = $ec_len - 263;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 294 && $ec_len < 325) {
                    $gcMonth = 7;
                    $gcDay = $ec_len - 293;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 325 && $ec_len < 356) {
                    $gcMonth = 8;
                    $gcDay = $ec_len - 324;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 356 && $ec_len <= 366) {
                    $gcMonth = 9;
                    $gcDay = $ec_len - 355;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 1 && $ec_len < 20) {
                    $gcMonth = 9;
                    $gcDay = $ec_len + 11;
                    $gcYear = $year + 7;
                } else if ($ec_len >= 20 && $ec_len < 51) {
                    $gcMonth = 10;
                    $gcDay = $ec_len - 19;
                    $gcYear = $year + 7;
                } else if ($ec_len >= 51 && $ec_len < 81) {
                    $gcMonth = 11;
                    $gcDay = $ec_len - 50;
                    $gcYear = $year + 7;
                } else if ($ec_len >= 81 && $ec_len < 112) {
                    $gcMonth = 12;
                    $gcDay = $ec_len - 80;
                    $gcYear = $year + 7;
                }
            } else {
                if ($ec_len >= 113 && $ec_len < 144) {
                    $gcMonth = 1;
                    $gcDay = $ec_len - 112;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 144 && $ec_len < 172) {
                    $gcMonth = 2;
                    $gcDay = $ec_len - 143;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 172 && $ec_len < 203) {
                    $gcMonth = 3;
                    $gcDay = $ec_len - 171;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 203 && $ec_len < 233) {
                    $gcMonth = 4;
                    $gcDay = $ec_len - 202;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 233 && $ec_len < 264) {
                    $gcMonth = 5;
                    $gcDay = $ec_len - 232;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 264 && $ec_len < 294) {
                    $gcMonth = 6;
                    $gcDay = $ec_len - 263;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 294 && $ec_len < 325) {
                    $gcMonth = 7;
                    $gcDay = $ec_len - 293;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 325 && $ec_len < 356) {
                    $gcMonth = 8;
                    $gcDay = $ec_len - 324;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 356 && $ec_len <= 366) {
                    $gcMonth = 9;
                    $gcDay = $ec_len - 355;
                    $gcYear = $year + 8;
                } else if ($ec_len >= 1 && $ec_len < 21) {
                    $gcMonth = 9;
                    $gcDay = $ec_len + 10;
                    $gcYear = $year + 7;
                } else if ($ec_len >= 21 && $ec_len < 52) {
                    $gcMonth = 10;
                    $gcDay = $ec_len - 20;
                    $gcYear = $year + 7;
                } else if ($ec_len >= 52 && $ec_len < 82) {
                    $gcMonth = 11;
                    $gcDay = $ec_len - 51;
                    $gcYear = $year + 7;
                } else if ($ec_len >= 82 && $ec_len < 113) {
                    $gcMonth = 12;
                    $gcDay = $ec_len - 81;
                    $gcYear = $year + 7;
                }
            }
            
            
    
            if ($x == 1){ 
                $fdate = $gcYear . "-" . $gcMonth . "-" . $gcDay;   
            }    
            else if ($x == 2){  
                $tdate = $gcYear . "-" . $gcMonth . "-" . $gcDay;   
            }     
            
          }

        // $fdate=$_POST[\'fromdate\'];
        // $tdate=$_POST[\'todate\'];
        $search2 = $_POST[\'unit\'];

        $query = "SELECT distinct stock_list.id,stock_list.date_created,item_list.name as servicename, item_list.supplier_id as share, supplier_list.name as staffname,
        stock_list.quantity,stock_list.price,stock_list.total FROM `stock_list`,`item_list`,`supplier_list` 
        where stock_list.item_id=item_list.id and stock_list.unit=supplier_list.id and supplier_list.name = \'$search2\' and date(stock_list.date_created) between \'$fdate\' and \'$tdate\' order by `date_created` desc";
        $stmt = $conn->prepare($query);
        $stmt->execute();

        $resultSet = $stmt->get_result();
        $employee_details = $resultSet->fetch_all(MYSQLI_ASSOC);
         
    }
    else
    {
        $searchErr = "Please enter the information";
    }
    
}
 
?>


<link rel="stylesheet" href="bootstrap.css" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="bootstrap-theme.css" crossorigin="anonymous">



<style>
.container{
    width:100%;
    height:30%;
    padding:20px;
}

select[readonly].select2-hidden-accessible + .select2-container {
        pointer-events: none;
        touch-action: none;
        background: #eee;
        box-shadow: none;
    }

    select[readonly].select2-hidden-accessible + .select2-container .select2-selection {
        background: #eee;
        box-shadow: none;
    }

    th{
  color: white;
  background: #1F8DD6;
}

.align-items-end{
  color: white;
  background: #a591c4;
}

.text-inf{
  color: white;
  background: #1F8DD6;
}

</style>

<legend class="text-inf">  </legend>

    <form method="post" id="sale-form" name="sale-form" action="">
      <!--  <form method="post" id="sale-form" name="sale-form"> -->
            <div class="container-fluid">
                
                <hr>
                <fieldset>
                   
                <div class="row justify-content-center align-items-end">
                            <?php 
                                $item_arr = array();
                                $cost_arr = array();
                                $item = $conn->query("SELECT * FROM `item_list` where status = 1 order by `id` asc");
                               
                            ?>
                        

                        <?php 
                                $supp_arr = array();
                                $staff_arr = array();
                                $supp = $conn->query("SELECT * FROM `supplier_list` where status = 1 order by `id` asc");
                                while($row=$supp->fetch_assoc()):
                                    $supp_arr[$row[\'name\']] = $row;
                                    $staff_arr[$row[\'name\']] = $row[\'id\'];
                                endwhile;
                            ?>
                        <div class="col-md-3">
                            <div class="form-group">
                                <label for="unit" class="control-label">  </label>
                                <select  name="unit" class="custom-select select2" required="true">
                                    <option disabled selected></option>
                                    <?php foreach($supp_arr as $n =>$p): ?>
                                        <option value="<?php echo $n ?>"> <?php echo $p[\'name\'] ?></option>
                                    <?php endforeach; ?>
                                </select>
                            </div>
                        </div>

                        <div class="col-md-3">
                            <div class="form-group">
                                <label for="datefrom" class="control-label">  </label>                                                        
                                    <!-- <input type="date" class="form-control1" name="fromdate" id="fromdate" value="" required="true"> -->
                                    <!-- <p><input type="text" id="popupDatepicker"></p> -->
                                    <p><input type="text" name="fromdate" id="fromdate" class="form-control" style=\'background:#fff;\' readonly></p>

                            </div>
                        </div>


                        <div class="col-md-3">
                            <div class="form-group">
                                <label for="dateto" class="control-label"> </label>                                                        
                                    <!-- <input type="date" class="form-control1" name="todate" id="todate" value="" required="true"> -->
                                    <p><input type="text" name="todate" id="todate" class="form-control" style=\'background:#fff;\' readonly></p>
                           </div>
                        </div>

                        <div class="col-md-3">
                            <div class="form-group">
                            <button type="submit" name="submit" class="btn btn-flat btn-primary">Search</button> 
                           </div>
                        </div>
                        
                </fieldset>
                <hr>
            </div>

        </form>

    <div class="card-body">
		<div class="container-fluid">
        <div class="container-fluid">
			<table class="table table-bordered table-stripped">

      <colgroup>
                        <col width="5%">
                        <col width="15%">
                        <col width="15%">
                        <col width="5%">
                        <col width="10%">
                        <col width="10%">
                        <col width="10%">
                        <col width="10%">
                    </colgroup>

        <thead>
        <tr>
                            <th>. .</th>
                            <th>  </th>                            
                            <th> </th>
                            <th></th>
                            <th> </th>
                            <th></th>  
                            <th></th>  
                            <th></th>                        
                        </tr>
        </thead>

        <tbody>
                <?php
                 if(!$employee_details) 
                 {
                    // echo \'<tr>No data found</tr>\';
                 }
                 else{
                    // echo \'<tr>Report for </tr>\'; echo $search2; echo \'<tr> from </tr>\';  echo  $_POST[\'fromdate\']; echo \'<tr> to </tr>\'; echo  $_POST[\'todate\'];
                    echo \'<tr>  </tr>\'; echo $search2;   echo \'<tr>    </tr>\';  echo  $_POST[\'fromdate\']; echo \'<tr>   </tr>\'; echo  $_POST[\'todate\']; echo \'<tr>  </tr>\';
                   
                    $totalsale = 0;
                    $deduction = 0;
                    $totaldeduction = 0;
                    $totalshare = 0;

                    foreach($employee_details as $key=>$value)
                    {
                        $totalsale += $value[\'total\'];
                        $totalshare += $value[\'share\'] * $value[\'quantity\'];
                        // $share = $value[\'share\'] * 2;
                        $deduction = $value[\'total\'] - ($value[\'share\'] * $value[\'quantity\'] * 2);
                        $totaldeduction += $deduction;
                        ?>
                      <tr>
                        <td><?php echo $key+1;?></td>
                        <!-- <td><?php echo $value[\'id\'];?></td> -->
                        <!-- <td><?php echo $value[\'date_created\'];?></td> -->
                        <td><?php echo $value[\'staffname\'];?></td>
                        <td><?php echo $value[\'servicename\'];?></td>
                        <td class="text-right py-1 px-2"><?php echo $value[\'quantity\'];?></td>
                        <td class="text-right py-1 px-2"><?php echo $value[\'price\'];?></td>
                        <td class="text-right py-1 px-2"><?php echo $value[\'total\'];?></td>
                        <td class="text-right py-1 px-2"><?php echo $deduction;?></td>
                        <td class="text-right py-1 px-2"><?php echo $value[\'share\'] * $value[\'quantity\'];?></td>
                        
                    </tr>
                         
                        <?php
                    }
                     
                 }
                ?>
             
         </tbody>

         
                   <tfoot>     
                        <tr>
                            <th class="text-right py-1 px-2" colspan="5"> </th>
                            <th class="text-right py-1 px-2 grand-total"> 
                                
                            <?php
                 if(!$employee_details) 
                 {
                    
                   
                 }
                 else{
                    echo $totalsale;
                }?>  </th>
                            <th class="text-right py-1 px-2 grand-total">

                            <?php
                 if(!$employee_details) 
                 {
                    
                   
                 }
                 else{
                    echo $totaldeduction;
                }?>
                
                   </th>

                   <th class="text-right py-1 px-2 grand-total">

                    <?php
                    if(!$employee_details) 
                    {


                    }
                    else{
                    echo $totalshare;
                    }?>

                    </th>
                                            
                        </tr>
                    </tfoot>
             
      </table>
      
    </div>
</div>
</div>
'

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9yZWRtb25kLmNhbGVuZGFycy5waWNrZXIuY3NzIj4NCg0KPHNjcmlwdCBzcmM9Imh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS4xMS4wL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9ImpzL2pxdWVyeS5wbHVnaW4uanMiPjwvc2NyaXB0Pg0KDQo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LmNhbGVuZGFycy5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LmNhbGVuZGFycy5wbHVzLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSJqcy9qcXVlcnkuY2FsZW5kYXJzLnBpY2tlci5qcyI+PC9zY3JpcHQ+DQoNCjxzY3JpcHQgc3JjPSJqcy9qcXVlcnkuY2FsZW5kYXJzLmV0aGlvcGlhbi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LmNhbGVuZGFycy5ldGhpb3BpYW4tYW0uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvanF1ZXJ5LmNhbGVuZGFycy5waWNrZXItYW0uanMiPjwvc2NyaXB0Pg0KDQo8c2NyaXB0Pg0KJChmdW5jdGlvbigpIHsNCgkgdmFyIGNhbGVuZGFyID0gJC5jYWxlbmRhcnMuaW5zdGFuY2UoJ2V0aGlvcGlhbicsJ2FtJyk7DQoJJCgnI2Zyb21kYXRlJykuY2FsZW5kYXJzUGlja2VyKHtjYWxlbmRhcjogY2FsZW5kYXJ9KTsNCiAgICAkKCcjdG9kYXRlJykuY2FsZW5kYXJzUGlja2VyKHtjYWxlbmRhcjogY2FsZW5kYXJ9KTsNCgkkKCcjaW5saW5lRGF0ZXBpY2tlcicpLmNhbGVuZGFyc1BpY2tlcih7Y2FsZW5kYXI6IGNhbGVuZGFyLCBvblNlbGVjdDogc2hvd0RhdGV9KTsNCn0pOw0KDQovLyBmdW5jdGlvbiBzaG93RGF0ZShkYXRlKSB7DQovLyAJYWxlcnQoJ1RoZSBkYXRlIGNob3NlbiBpcyAnICsgZGF0ZSk7DQovLyB9DQo8L3NjcmlwdD4NCg0KDQoNCg0KPD9waHANCi8vaW5jbHVkZSAnY29ubmVjdF90ZXN0X2RiLnBocCc7DQokc2VhcmNoRXJyID0gJyc7DQokZW1wbG95ZWVfZGV0YWlscz0nJzsNCmlmKGlzc2V0KCRfUE9TVFsnc3VibWl0J10pKQ0KDQp7DQoNCg0KICAgIGlmKCFlbXB0eSgkX1BPU1RbJ3VuaXQnXSkpDQogICAgew0KDQoNCiAgICAgICAgZm9yICgkeCA9IDE7ICR4IDw9IDI7ICR4KyspIHsNCgkJDQogICAgICAgICAgICBpZiAoJHggPT0gMSl7ICAgIA0KICAgICAgICAgICAgICAgICRkeSA9ICRfUE9TVFsnZnJvbWRhdGUnXTsgIA0KICAgICAgICAgICAgfSAgICANCiAgICAgICAgICAgIGVsc2UgaWYgKCR4ID09IDIpeyAgDQogICAgICAgICAgICAgICAgJGR5ID0gJF9QT1NUWyd0b2RhdGUnXTsgICANCiAgICAgICAgICAgIH0gICAgIA0KICAgICAgICAgICAgDQogICAgICAgICAgDQogICAgICAgICAgICAvLyAkZHkgPSAkX1BPU1RbJ0FjdHVhbEJpZE9wZW5pbmdEYXRlJ107DQogICAgICAgICAgICAkZW1vbnRoID0gc3Vic3RyKCRkeSwgMywgMik7IA0KICAgICAgICAgICAgJGVkYXkgPSBzdWJzdHIoJGR5LCAwLCAyKTsgDQogICAgICAgICAgICAkZXllYXIgPSBzdWJzdHIoJGR5LCA2LCA0KTsNCiAgICAgICAgDQogICAgICAgICAgICAkbW9udGggPSAoaW50KSRlbW9udGg7DQogICAgICAgICAgICAkZGF5ID0gKGludCkkZWRheTsNCiAgICAgICAgICAgICR5ZWFyID0gKGludCkkZXllYXI7DQogICAgICAgIA0KICAgICAgICAgICAgJGVjX2xlbiA9ICgkbW9udGggLSAxKSAqIDMwICsgJGRheTsNCiAgICAgICAgDQogICAgICAgICAgICAkZ2NEYXkgPSAwOw0KICAgICAgICAgICAgJGdjTW9udGggPSAwOw0KICAgICAgICAgICAgJGdjWWVhciA9IDA7DQogICAgICAgIA0KICAgICAgICAgICAgJGxlYXAgPSAkeWVhciAlIDQgPT09IDA7DQogICAgICAgIA0KICAgICAgICAgICAgaWYgKCRsZWFwKSB7DQogICAgICAgICAgICAgICAgaWYgKCRlY19sZW4gPj0gMTEyICYmICRlY19sZW4gPCAxNDMpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSAxOw0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMTExOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAxNDMgJiYgJGVjX2xlbiA8IDE3Mikgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDI7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAxNDI7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDE3MiAmJiAkZWNfbGVuIDwgMjAzKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMzsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDE3MTsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMjAzICYmICRlY19sZW4gPCAyMzMpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA0Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMjAyOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAyMzMgJiYgJGVjX2xlbiA8IDI2NCkgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDU7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAyMzI7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDI2NCAmJiAkZWNfbGVuIDwgMjk0KSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gNjsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDI2MzsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMjk0ICYmICRlY19sZW4gPCAzMjUpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA3Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMjkzOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAzMjUgJiYgJGVjX2xlbiA8IDM1Nikgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDg7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAzMjQ7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDM1NiAmJiAkZWNfbGVuIDw9IDM2Nikgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDk7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAzNTU7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDEgJiYgJGVjX2xlbiA8IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gOTsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiArIDExOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA3Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAyMCAmJiAkZWNfbGVuIDwgNTEpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSAxMDsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDE5Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA3Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSA1MSAmJiAkZWNfbGVuIDwgODEpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSAxMTsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDUwOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA3Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSA4MSAmJiAkZWNfbGVuIDwgMTEyKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMTI7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSA4MDsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgNzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmICgkZWNfbGVuID49IDExMyAmJiAkZWNfbGVuIDwgMTQ0KSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMTsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDExMjsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMTQ0ICYmICRlY19sZW4gPCAxNzIpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSAyOw0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMTQzOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAxNzIgJiYgJGVjX2xlbiA8IDIwMykgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDM7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAxNzE7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDIwMyAmJiAkZWNfbGVuIDwgMjMzKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gNDsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDIwMjsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMjMzICYmICRlY19sZW4gPCAyNjQpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA1Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMjMyOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAyNjQgJiYgJGVjX2xlbiA8IDI5NCkgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDY7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAyNjM7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDI5NCAmJiAkZWNfbGVuIDwgMzI1KSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gNzsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDI5MzsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMzI1ICYmICRlY19sZW4gPCAzNTYpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA4Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMzI0Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAzNTYgJiYgJGVjX2xlbiA8PSAzNjYpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA5Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMzU1Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAxICYmICRlY19sZW4gPCAyMSkgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDk7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gKyAxMDsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgNzsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMjEgJiYgJGVjX2xlbiA8IDUyKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMTA7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAyMDsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgNzsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gNTIgJiYgJGVjX2xlbiA8IDgyKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMTE7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSA1MTsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgNzsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gODIgJiYgJGVjX2xlbiA8IDExMykgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDEyOw0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gODE7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDc7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICANCiAgICAgICAgICAgIGlmICgkeCA9PSAxKXsgDQogICAgICAgICAgICAgICAgJGZkYXRlID0gJGdjWWVhciAuICItIiAuICRnY01vbnRoIC4gIi0iIC4gJGdjRGF5OyAgIA0KICAgICAgICAgICAgfSAgICANCiAgICAgICAgICAgIGVsc2UgaWYgKCR4ID09IDIpeyAgDQogICAgICAgICAgICAgICAgJHRkYXRlID0gJGdjWWVhciAuICItIiAuICRnY01vbnRoIC4gIi0iIC4gJGdjRGF5OyAgIA0KICAgICAgICAgICAgfSAgICAgDQogICAgICAgICAgICANCiAgICAgICAgICB9DQoNCiAgICAgICAgLy8gJGZkYXRlPSRfUE9TVFsnZnJvbWRhdGUnXTsNCiAgICAgICAgLy8gJHRkYXRlPSRfUE9TVFsndG9kYXRlJ107DQogICAgICAgICRzZWFyY2gyID0gJF9QT1NUWyd1bml0J107DQoNCiAgICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCBkaXN0aW5jdCBzdG9ja19saXN0LmlkLHN0b2NrX2xpc3QuZGF0ZV9jcmVhdGVkLGl0ZW1fbGlzdC5uYW1lIGFzIHNlcnZpY2VuYW1lLCBpdGVtX2xpc3Quc3VwcGxpZXJfaWQgYXMgc2hhcmUsIHN1cHBsaWVyX2xpc3QubmFtZSBhcyBzdGFmZm5hbWUsDQogICAgICAgIHN0b2NrX2xpc3QucXVhbnRpdHksc3RvY2tfbGlzdC5wcmljZSxzdG9ja19saXN0LnRvdGFsIEZST00gYHN0b2NrX2xpc3RgLGBpdGVtX2xpc3RgLGBzdXBwbGllcl9saXN0YCANCiAgICAgICAgd2hlcmUgc3RvY2tfbGlzdC5pdGVtX2lkPWl0ZW1fbGlzdC5pZCBhbmQgc3RvY2tfbGlzdC51bml0PXN1cHBsaWVyX2xpc3QuaWQgYW5kIHN1cHBsaWVyX2xpc3QubmFtZSA9ICckc2VhcmNoMicgYW5kIGRhdGUoc3RvY2tfbGlzdC5kYXRlX2NyZWF0ZWQpIGJldHdlZW4gJyRmZGF0ZScgYW5kICckdGRhdGUnIG9yZGVyIGJ5IGBkYXRlX2NyZWF0ZWRgIGRlc2MiOw0KICAgICAgICAkc3RtdCA9ICRjb25uLT5wcmVwYXJlKCRxdWVyeSk7DQogICAgICAgICRzdG10LT5leGVjdXRlKCk7DQoNCiAgICAgICAgJHJlc3VsdFNldCA9ICRzdG10LT5nZXRfcmVzdWx0KCk7DQogICAgICAgICRlbXBsb3llZV9kZXRhaWxzID0gJHJlc3VsdFNldC0+ZmV0Y2hfYWxsKE1ZU1FMSV9BU1NPQyk7DQogICAgICAgICANCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgJHNlYXJjaEVyciA9ICJQbGVhc2UgZW50ZXIgdGhlIGluZm9ybWF0aW9uIjsNCiAgICB9DQogICAgDQp9DQogDQo/Pg0KDQoNCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYm9vdHN0cmFwLmNzcyIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+DQo8IS0tIE9wdGlvbmFsIHRoZW1lIC0tPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJib290c3RyYXAtdGhlbWUuY3NzIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4NCg0KDQoNCjxzdHlsZT4NCi5jb250YWluZXJ7DQogICAgd2lkdGg6MTAwJTsNCiAgICBoZWlnaHQ6MzAlOw0KICAgIHBhZGRpbmc6MjBweDsNCn0NCg0Kc2VsZWN0W3JlYWRvbmx5XS5zZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlICsgLnNlbGVjdDItY29udGFpbmVyIHsNCiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZDogI2VlZTsNCiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAgICBzZWxlY3RbcmVhZG9ubHldLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgKyAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uIHsNCiAgICAgICAgYmFja2dyb3VuZDogI2VlZTsNCiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAgICB0aHsNCiAgY29sb3I6IHdoaXRlOw0KICBiYWNrZ3JvdW5kOiAjMUY4REQ2Ow0KfQ0KDQouYWxpZ24taXRlbXMtZW5kew0KICBjb2xvcjogd2hpdGU7DQogIGJhY2tncm91bmQ6ICNhNTkxYzQ7DQp9DQoNCi50ZXh0LWluZnsNCiAgY29sb3I6IHdoaXRlOw0KICBiYWNrZ3JvdW5kOiAjMUY4REQ2Ow0KfQ0KDQo8L3N0eWxlPg0KDQo8bGVnZW5kIGNsYXNzPSJ0ZXh0LWluZiI+4Yuo4Ymw4YqT4Yyg4YiNIOGIquGNluGIreGJtSDhjIjhjL08L2xlZ2VuZD4NCg0KICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgaWQ9InNhbGUtZm9ybSIgbmFtZT0ic2FsZS1mb3JtIiBhY3Rpb249IiI+DQogICAgICA8IS0tICA8Zm9ybSBtZXRob2Q9InBvc3QiIGlkPSJzYWxlLWZvcm0iIG5hbWU9InNhbGUtZm9ybSI+IC0tPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8aHI+DQogICAgICAgICAgICAgICAgPGZpZWxkc2V0Pg0KICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWVuZCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtX2FyciA9IGFycmF5KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb3N0X2FyciA9IGFycmF5KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtID0gJGNvbm4tPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGBpdGVtX2xpc3RgIHdoZXJlIHN0YXR1cyA9IDEgb3JkZXIgYnkgYGlkYCBhc2MiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3VwcF9hcnIgPSBhcnJheSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhZmZfYXJyID0gYXJyYXkoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN1cHAgPSAkY29ubi0+cXVlcnkoIlNFTEVDVCAqIEZST00gYHN1cHBsaWVyX2xpc3RgIHdoZXJlIHN0YXR1cyA9IDEgb3JkZXIgYnkgYGlkYCBhc2MiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoJHJvdz0kc3VwcC0+ZmV0Y2hfYXNzb2MoKSk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3VwcF9hcnJbJHJvd1snbmFtZSddXSA9ICRyb3c7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhZmZfYXJyWyRyb3dbJ25hbWUnXV0gPSAkcm93WydpZCddOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmR3aGlsZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJ1bml0IiBjbGFzcz0iY29udHJvbC1sYWJlbCI+4Yqg4YyI4YiN4YyN4YiO4Ymx4YqVIOGLqOGIsOGMoOGLjSDhiaPhiIjhiJnhi6s8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0ICBuYW1lPSJ1bml0IiBjbGFzcz0iY3VzdG9tLXNlbGVjdCBzZWxlY3QyIiByZXF1aXJlZD0idHJ1ZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGRpc2FibGVkIHNlbGVjdGVkPjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZm9yZWFjaCgkc3VwcF9hcnIgYXMgJG4gPT4kcCk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iPD9waHAgZWNobyAkbiA/PiI+IDw/cGhwIGVjaG8gJHBbJ25hbWUnXSA/Pjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJkYXRlZnJvbSIgY2xhc3M9ImNvbnRyb2wtbGFiZWwiPuGKqCDhiYDhipUgPC9sYWJlbD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW5wdXQgdHlwZT0iZGF0ZSIgY2xhc3M9ImZvcm0tY29udHJvbDEiIG5hbWU9ImZyb21kYXRlIiBpZD0iZnJvbWRhdGUiIHZhbHVlPSIiIHJlcXVpcmVkPSJ0cnVlIj4gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxwPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icG9wdXBEYXRlcGlja2VyIj48L3A+IC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImZyb21kYXRlIiBpZD0iZnJvbWRhdGUiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHN0eWxlPSdiYWNrZ3JvdW5kOiNmZmY7JyByZWFkb25seT48L3A+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZGF0ZXRvIiBjbGFzcz0iY29udHJvbC1sYWJlbCI+4Yql4Yi14YqoIOGJgOGKlTwvbGFiZWw+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0IHR5cGU9ImRhdGUiIGNsYXNzPSJmb3JtLWNvbnRyb2wxIiBuYW1lPSJ0b2RhdGUiIGlkPSJ0b2RhdGUiIHZhbHVlPSIiIHJlcXVpcmVkPSJ0cnVlIj4gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idG9kYXRlIiBpZD0idG9kYXRlIiBjbGFzcz0iZm9ybS1jb250cm9sIiBzdHlsZT0nYmFja2dyb3VuZDojZmZmOycgcmVhZG9ubHk+PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLWZsYXQgYnRuLXByaW1hcnkiPlNlYXJjaDwvYnV0dG9uPiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0Pg0KICAgICAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZm9ybT4NCg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+DQoJCTxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+DQogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+DQoJCQk8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLXN0cmlwcGVkIj4NCg0KICAgICAgPGNvbGdyb3VwPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGNvbCB3aWR0aD0iNSUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGNvbCB3aWR0aD0iMTUlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2wgd2lkdGg9IjE1JSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8Y29sIHdpZHRoPSI1JSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8Y29sIHdpZHRoPSIxMCUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGNvbCB3aWR0aD0iMTAlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2wgd2lkdGg9IjEwJSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8Y29sIHdpZHRoPSIxMCUiPg0KICAgICAgICAgICAgICAgICAgICA8L2NvbGdyb3VwPg0KDQogICAgICAgIDx0aGVhZD4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7hibAuIOGJgS48L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7hiqDhjIjhiI3hjI3hiI7hibHhipUg4Yuo4Yiw4Yyg4YuNIOGJo+GIiOGImeGLqzwvdGg+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7hi6jhiqDhjIjhiI3hjI3hiI7hibEg4Yqg4Yut4YqQ4Ym1PC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+4Yml4Yub4Ym1PC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+4YqQ4Yyg4YiLIOGLi+GMizwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPuGLteGJpeGIrTwvdGg+ICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+4Ymw4YmA4YqT4Yi9PC90aD4gIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7hi7XhiK3hiLs8L3RoPiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgPC90aGVhZD4NCg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgaWYoISRlbXBsb3llZV9kZXRhaWxzKSANCiAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBlY2hvICc8dHI+Tm8gZGF0YSBmb3VuZDwvdHI+JzsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgICAgICAgICAvLyBlY2hvICc8dHI+UmVwb3J0IGZvciA8L3RyPic7IGVjaG8gJHNlYXJjaDI7IGVjaG8gJzx0cj4gZnJvbSA8L3RyPic7ICBlY2hvICAkX1BPU1RbJ2Zyb21kYXRlJ107IGVjaG8gJzx0cj4gdG8gPC90cj4nOyBlY2hvICAkX1BPU1RbJ3RvZGF0ZSddOw0KICAgICAgICAgICAgICAgICAgICBlY2hvICc8dHI+IOGLqCA8L3RyPic7IGVjaG8gJHNlYXJjaDI7ICAgZWNobyAnPHRyPiAg4YqoIOGJgOGKlSA8L3RyPic7ICBlY2hvICAkX1BPU1RbJ2Zyb21kYXRlJ107IGVjaG8gJzx0cj4g4Yql4Yi14YqoIOGJgOGKlSA8L3RyPic7IGVjaG8gICRfUE9TVFsndG9kYXRlJ107IGVjaG8gJzx0cj4g4Yiq4Y2W4Yit4Ym1IDwvdHI+JzsNCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJHRvdGFsc2FsZSA9IDA7DQogICAgICAgICAgICAgICAgICAgICRkZWR1Y3Rpb24gPSAwOw0KICAgICAgICAgICAgICAgICAgICAkdG90YWxkZWR1Y3Rpb24gPSAwOw0KICAgICAgICAgICAgICAgICAgICAkdG90YWxzaGFyZSA9IDA7DQoNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkZW1wbG95ZWVfZGV0YWlscyBhcyAka2V5PT4kdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0b3RhbHNhbGUgKz0gJHZhbHVlWyd0b3RhbCddOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHRvdGFsc2hhcmUgKz0gJHZhbHVlWydzaGFyZSddICogJHZhbHVlWydxdWFudGl0eSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gJHNoYXJlID0gJHZhbHVlWydzaGFyZSddICogMjsNCiAgICAgICAgICAgICAgICAgICAgICAgICRkZWR1Y3Rpb24gPSAkdmFsdWVbJ3RvdGFsJ10gLSAoJHZhbHVlWydzaGFyZSddICogJHZhbHVlWydxdWFudGl0eSddICogMik7DQogICAgICAgICAgICAgICAgICAgICAgICAkdG90YWxkZWR1Y3Rpb24gKz0gJGRlZHVjdGlvbjsNCiAgICAgICAgICAgICAgICAgICAgICAgID8+DQogICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/cGhwIGVjaG8gJGtleSsxOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHRkPjw/cGhwIGVjaG8gJHZhbHVlWydpZCddOz8+PC90ZD4gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnZGF0ZV9jcmVhdGVkJ107Pz48L3RkPiAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnc3RhZmZuYW1lJ107Pz48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/cGhwIGVjaG8gJHZhbHVlWydzZXJ2aWNlbmFtZSddOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiPjw/cGhwIGVjaG8gJHZhbHVlWydxdWFudGl0eSddOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiPjw/cGhwIGVjaG8gJHZhbHVlWydwcmljZSddOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiPjw/cGhwIGVjaG8gJHZhbHVlWyd0b3RhbCddOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiPjw/cGhwIGVjaG8gJGRlZHVjdGlvbjs/PjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtcmlnaHQgcHktMSBweC0yIj48P3BocCBlY2hvICR2YWx1ZVsnc2hhcmUnXSAqICR2YWx1ZVsncXVhbnRpdHknXTs/PjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICANCiAgICAgICAgIDwvdGJvZHk+DQoNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgIDx0Zm9vdD4gICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiIGNvbHNwYW49IjUiPuGMoOGJheGIi+GIiyDhi7XhiJ3hiK08L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIgZ3JhbmQtdG90YWwiPiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgaWYoISRlbXBsb3llZV9kZXRhaWxzKSANCiAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgICAgICAgICBlY2hvICR0b3RhbHNhbGU7DQogICAgICAgICAgICAgICAgfT8+ICA8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIgZ3JhbmQtdG90YWwiPg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgaWYoISRlbXBsb3llZV9kZXRhaWxzKSANCiAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgICAgICAgICBlY2hvICR0b3RhbGRlZHVjdGlvbjsNCiAgICAgICAgICAgICAgICB9Pz4NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICA8L3RoPg0KDQogICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LXJpZ2h0IHB5LTEgcHgtMiBncmFuZC10b3RhbCI+DQoNCiAgICAgICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgICAgaWYoISRlbXBsb3llZV9kZXRhaWxzKSANCiAgICAgICAgICAgICAgICAgICAgew0KDQoNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgICAgICAgICBlY2hvICR0b3RhbHNoYXJlOw0KICAgICAgICAgICAgICAgICAgICB9Pz4NCg0KICAgICAgICAgICAgICAgICAgICA8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDwvdGZvb3Q+DQogICAgICAgICAgICAgDQogICAgICA8L3RhYmxlPg0KICAgICAgDQogICAgPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K"));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program

Function Calls

base64_decode 1

Variables

None

Stats

MD5 3fed59a4bd890d538abecd5e4b5006a9
Eval Count 1
Decode Time 84 ms