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('CiBuYW1lc3BhY2UgQXBwXEh0dHBcQ29udHJvbGxlcnM7IHVzZSBBcHBcTW9kZWxz..
Decoded Output download
namespace App\Http\Controllers; use App\Models\RubricGrades; use App\Models\PartGrades; use App\Models\CriteriaGrades; use App\Models\Classes; use App\Models\ClassesAsign; use App\Models\classEx; use App\Models\ExperimentGrades; use App\Models\ExperimentReport; use App\Models\HomePage; use App\Models\Notifications; use App\Models\ScheduleAuth; use App\Models\SmartlabApps; use App\Models\UpdatesTable; use App\Models\Users; use App\Models\weekDays; use App\Models\rubrics; use App\Models\rubric_parts; use App\Models\rubric_criterias; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; use Yajra\DataTables\DataTables; use Illuminate\Support\Str; use PhpParser\Node\Expr\FuncCall; use Image; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Hash; use function PHPUnit\Framework\isEmpty; use Illuminate\Validation\Rule; use League\Csv\Reader; use League\Csv\Statement; use Carbon\Carbon; use PDF; use Illuminate\Support\Facades\Response; class AdminController extends Controller { public function downloadPDF(Request $request) { $content = $request->input("\x63\x6f\x6e\164\x65\x6e\164"); $styles = $request->input("\163\164\x79\x6c\145\163"); $pdfContent = $styles . $content; $pdf = PDF::loadHTML($pdfContent); return $pdf->download("\x64\157\167\x6e\154\157\141\144\x65\x64\x2e\x70\144\x66"); } public function downloadCsv() { $filePath = public_path("\x63\163\x76\57\x62\165\x6c\153\x2d\x72\145\x67\151\x73\x74\x65\x72\55\146\x6f\162\155\141\164\x2e\143\x73\166"); if (file_exists($filePath)) { return Response::download($filePath, "\x62\x75\154\x6b\x2d\162\145\x67\151\x73\164\145\162\x2d\146\157\x72\155\x61\x74\56\x63\x73\166", array("\103\157\x6e\x74\x65\156\164\x2d\x54\x79\x70\x65" => "\164\145\170\x74\57\x63\x73\x76")); } else { return redirect()->back()->withErrors(array("\143\x73\x76\137\146\151\x6c\x65" => "\106\x69\154\145\x20\156\x6f\x74\x20\x46\x6f\x75\156\x64")); } } public function getDashboard() { if (Session::get("\x61\x64\x6d\x69\x6e") == "\x61\x64\x6d\x69\x6e" || Session::get("\141\x64\155\151\156") == "\x6c\157\x77\137\141\x64\x6d\151\x6e") { return view("\163\x79\163\164\145\x6d\160\x61\147\145\163\56\144\145\x76\x69\x63\x65\163"); } else { $currentDay = strtolower(Carbon::now("\101\163\151\x61\57\x4d\x61\x6e\151\x6c\x61")->format("\x6c")); $dayMapping = array("\x6d\x6f\x6e\x64\x61\x79" => "\x4d", "\x74\165\145\x73\144\x61\x79" => "\124", "\167\145\x64\156\145\x73\x64\141\171" => "\x57", "\x74\150\165\x72\163\144\141\171" => "\x54\150", "\x66\162\x69\x64\141\x79" => "\x46", "\x73\x61\164\x75\162\x64\141\x79" => "\123\x61\164", "\x73\x75\156\x64\x61\171" => "\123"); $shortDay = $dayMapping[$currentDay]; $currentHour = Carbon::now("\101\x73\151\141\x2f\x4d\141\156\x69\x6c\x61")->format("\x48\72\151\72\x73"); $ongoingData = DB::table("\x63\x6c\141\x73\163\145\163\137\x61\163\x69\147\156\x73")->select("\x63\154\141\163\163\x65\x73\x5f\141\163\151\147\156\163\56\x2a", "\143\154\x61\x73\163\x65\x73\x2e\x2a")->join("\143\154\141\163\163\x65\x73", "\x63\x6c\141\163\x73\x65\163\137\x61\163\151\147\156\x73\56\143\x6c\x61\x73\163\137\x69\144", "\75", "\x63\154\141\163\163\x65\163\x2e\151\x64")->where("\x63\154\141\x73\163\x65\x73\137\141\x73\x69\x67\156\x73\x2e\165\163\145\x72\137\x69\144", Session::get("\x75\163\x65\162\156\141\x6d\x65"))->where("\x63\154\141\x73\163\145\163\x2e" . $shortDay, "\x74\162\x75\x65")->where("\143\x6c\141\x73\163\145\x73\56\163\164\x61\162\x74", "\x3c\x3d", $currentHour)->where("\x63\154\141\163\163\145\x73\x2e\145\x6e\x64", "\76\x3d", $currentHour)->get(); $ClassesData = DB::table("\143\x6c\x61\x73\x73\x65\163\x5f\141\163\151\x67\x6e\x73")->select("\x63\154\x61\x73\163\145\x73\137\x61\163\151\x67\156\x73\56\52", "\x63\x6c\141\x73\163\145\163\x2e\52")->join("\143\x6c\141\163\163\x65\163", "\143\154\x61\163\x73\x65\x73\137\141\163\x69\147\156\x73\56\143\x6c\141\163\163\x5f\x69\x64", "\75", "\x63\154\141\163\163\x65\x73\x2e\151\144")->where("\x63\154\x61\163\x73\145\163\137\x61\x73\151\x67\156\163\56\x75\163\x65\162\137\x69\x64", Session::get("\x75\163\x65\x72\x6e\141\x6d\145"))->get(); $studentRowCount = array(); foreach ($ClassesData as $rowData) { $studentCount = ClassesAsign::join("\x75\x73\145\162\163", "\165\x73\x65\162\163\x2e\151\x64", "\x3d", "\143\x6c\141\163\x73\x65\163\137\x61\163\x69\147\x6e\x73\x2e\x75\x73\145\162\x5f\151\x64")->where("\x63\154\141\163\x73\x65\163\137\x61\x73\151\147\156\x73\56\x63\x6c\x61\x73\x73\137\x69\144", $rowData->class_id)->where("\x75\x73\x65\x72\163\x2e\162\157\154\145", "\163\164\x75\x64\145\156\x74")->groupBy("\143\154\141\x73\163\x65\x73\x5f\141\163\151\x67\x6e\163\x2e\143\x6c\141\x73\x73\137\x69\144")->select("\143\x6c\141\x73\163\145\x73\137\141\x73\x69\x67\x6e\163\x2e\x63\x6c\x61\x73\163\137\151\x64", DB::raw("\x43\117\125\x4e\x54\x28\x2a\51\x20\x41\x53\40\x72\157\x77\137\x63\x6f\165\x6e\x74"))->first(); if ($studentCount) { $studentRowCount[] = $studentCount->row_count; } else { $studentRowCount[] = 0; } } return view("\x73\x79\163\x74\145\x6d\160\141\147\145\163\x2e\144\x61\163\150\x62\157\141\162\144", array("\x43\154\141\163\163\145\163\x44\x61\164\x61" => $ClassesData, "\157\x6e\x67\x6f\151\x6e\x67\x44\141\x74\141" => $ongoingData, "\x73\x74\x75\x64\145\x6e\x74\x43\157\165\156\164" => $studentRowCount)); } } public function studentList($class_id) { $className = Classes::find($class_id)->classname; $classData = ClassesAsign::join("\165\163\145\x72\x73", "\x75\x73\x65\x72\x73\56\x69\144", "\75", "\x63\154\x61\163\163\x65\163\137\141\163\151\x67\156\x73\x2e\165\x73\145\x72\137\x69\x64")->where("\x63\x6c\141\163\163\x65\x73\137\141\163\x69\x67\156\x73\x2e\x63\x6c\141\x73\163\x5f\151\144", $class_id)->where("\165\x73\145\162\163\56\x72\157\x6c\145", "\x3d", "\163\x74\x75\144\x65\x6e\x74")->select("\143\154\141\163\x73\145\x73\137\141\163\x69\147\x6e\163\x2e\52", "\165\x73\145\162\x73\56\x2a", "\143\x6c\141\163\163\x65\163\x5f\141\x73\x69\x67\156\163\56\x63\x72\x65\141\x74\145\x64\137\x62\x79\x20\141\x73\40\145\x6e\x72\x6f\154\154\145\x64\137\142\171", "\143\x6c\141\x73\x73\x65\x73\137\141\x73\x69\147\x6e\163\56\x75\160\x64\141\164\x65\144\x5f\141\x74\x20\x61\163\40\144\141\x74\145")->get(); $experimentData = classEx::where("\x63\154\x61\163\x73\x5f\x69\x64", $class_id)->whereNull("\163\164\x61\x74\x75\163")->get(); return view("\163\171\163\164\x65\155\x70\141\147\145\x73\x2e\x73\x74\165\144\x65\156\x74\x2d\154\151\163\164", array("\x64\x61\164\141" => $classData, "\x63\154\x61\163\x73\137\156\141\x6d\x65" => $className, "\145\x78\104\141\x74\141" => $experimentData)); } public function activityList($class_id) { $className = DB::table("\x63\x6c\141\163\163\145\x73")->where("\151\144", $class_id)->first(); $hasRubric = DB::table("\143\x6c\141\x73\x73\145\x73")->select("\x72\165\x62\x72\151\143\x5f\141\163\x73\151\147\156\145\x64")->where("\151\144", $class_id)->whereNotNull("\162\165\x62\162\x69\x63\137\x61\x73\x73\x69\147\x6e\145\144")->first(); if ($hasRubric) { $classData = ClassEx::join("\143\x6c\141\x73\x73\x65\163", "\x63\x6c\x61\x73\x73\145\163\x2e\151\x64", "\75", "\143\x6c\x61\163\x73\137\145\x78\145\x73\x2e\x63\154\x61\x73\163\x5f\x69\x64")->join("\162\x75\x62\162\x69\143\x5f\x67\162\x61\144\145\x73", "\143\x6c\141\163\163\137\x65\x78\x65\x73\x2e\x69\144", "\x3d", "\162\x75\x62\x72\151\x63\x5f\x67\x72\x61\144\x65\163\x2e\x61\143\164\137\151\144")->where("\143\x6c\x61\x73\163\x5f\x65\x78\145\163\56\143\154\x61\163\x73\137\x69\144", $class_id)->where("\x72\165\x62\x72\151\143\137\x67\x72\141\144\x65\x73\56\x75\x5f\x69\x64", Session::get("\x75\163\145\x72\156\141\155\145"))->select("\x63\x6c\141\163\163\137\x65\x78\x65\163\x2e\x2a", "\x63\154\141\163\163\145\x73\x2e\x2a", "\x72\165\142\162\x69\x63\137\x67\162\x61\144\x65\x73\56\52", "\x72\165\142\162\151\x63\137\147\x72\x61\144\x65\163\x2e\165\160\x64\141\164\145\x64\x5f\x61\164\x20\141\163\40\144\141\x74\x65\x5f\x67\x72\141\x64\145\x64")->get(); return view("\x73\171\x73\x74\145\x6d\160\x61\x67\x65\163\56\141\x63\x74\x69\166\x69\164\x79\55\x6c\x69\163\x74", array("\x64\x61\x74\x61" => $classData, "\143\x6c\141\x73\x73\116\141\155\x65" => $className)); } else { $standardGrade = DB::table("\143\x6c\141\163\x73\x5f\145\170\145\x73")->join("\145\170\160\x65\x72\151\155\145\x6e\164\x5f\162\x65\x70\157\162\x74\x73", "\x63\154\x61\x73\163\137\x65\x78\145\x73\x2e\151\144", "\75", "\x65\170\x70\145\x72\151\x6d\x65\156\164\137\x72\145\160\x6f\162\x74\x73\x2e\x45\x78\160\x65\162\151\x6d\145\x6e\164\137\151\144")->where("\143\x6c\x61\x73\x73\137\x65\170\x65\x73\x2e\x63\154\x61\x73\x73\x5f\151\144", $class_id)->where("\145\x78\x70\145\162\x69\x6d\x65\156\164\137\x72\145\x70\x6f\x72\x74\x73\x2e\x75\163\145\162\x5f\x69\x64", Session::get("\x75\163\145\x72\x6e\141\x6d\x65"))->where("\145\170\x70\x65\x72\x69\155\145\156\x74\137\162\x65\x70\157\x72\164\163\56\164\x6f\x74\x61\x6c\137\x73\143\157\x72\x65", "\74\76", "\x4e\x2f\101")->select("\143\x6c\x61\x73\x73\x5f\145\170\145\x73\56\52", "\145\170\160\x65\162\x69\x6d\x65\156\164\x5f\x72\145\x70\157\x72\x74\163\x2e\x2a")->get(); return view("\163\x79\x73\164\x65\x6d\x70\x61\x67\145\163\56\x61\x63\x74\151\x76\151\x74\171\x2d\x6c\x69\163\164", array("\x73\164\x61\x6e\144\x61\162\x64\x44\x61\x74\x61" => $standardGrade, "\x63\x6c\141\x73\163\116\141\155\x65" => $className)); } } public function enrolledList($class_id) { $classData = DB::table("\x63\x6c\141\x73\x73\x65\163\137\141\163\151\x67\156\x73")->join("\165\163\145\162\163", "\143\154\141\x73\163\145\x73\137\141\x73\151\147\x6e\x73\56\x75\163\x65\x72\137\151\x64", "\75", "\x75\163\x65\x72\163\56\x69\144")->where("\143\154\x61\163\x73\x65\163\x5f\141\163\x69\147\156\163\x2e\143\x6c\x61\x73\x73\x5f\x69\x64", $class_id)->select("\165\163\145\162\x73\x2e\156\141\155\x65", "\165\163\x65\x72\x73\x2e\x72\x6f\x6c\145", "\x75\163\145\x72\x73\56\x75\163\145\x72\x6e\141\x6d\145", "\143\x6c\x61\x73\x73\x65\163\x5f\x61\x73\151\x67\156\163\56\x2a")->get(); return view("\163\171\x73\x74\x65\155\160\141\x67\x65\163\x2e\x65\156\162\157\x6c\x6c\145\x64\55\154\x69\x73\x74", array("\143\154\x61\163\163\104\x61\x74\141" => $classData)); } public function insertnewUser(Request $request) { $validated = Validator::make($request->all(), array("\156\141\155\x65" => "\x72\145\161\x75\x69\162\x65\x64", "\x72\157\154\x65" => "\x72\x65\x71\x75\151\x72\145\x64", "\x65\155\x61\x69\154" => array("\x72\145\161\165\151\x72\x65\x64", "\x65\155\141\151\154", Rule::unique("\165\x73\145\162\163", "\x75\163\x65\x72\x5f\x65\155\141\151\154"))), array("\x6e\x61\x6d\x65\56\162\x65\161\165\151\162\145\144" => "\124\x68\x65\40\x4e\x61\x6d\x65\x20\x66\x69\x65\x6c\144\40\151\163\40\162\x65\161\x75\x69\x72\145\x64", "\x72\x6f\x6c\x65\56\162\145\161\x75\151\162\145\x64" => "\124\150\x65\40\x52\157\154\145\40\146\151\x65\154\x64\40\151\163\x20\162\x65\x71\x75\151\162\x65\144", "\145\x6d\x61\151\x6c\x2e\162\x65\x71\x75\x69\x72\x65\x64" => "\124\150\145\40\x45\155\141\151\x6c\x20\146\x69\145\154\144\40\151\x73\40\162\145\x71\165\151\x72\x65\144")); if ($validated->fails()) { return response()->json(array("\x65\x72\x72\x6f\162\x73" => $validated->errors()->first())); } else { $NewUser = new Users(); $NewUser->username = $request->email; $NewUser->name = $request->name; $NewUser->role = $request->role; $NewUser->user_email = $request->email; $NewUser->password = bcrypt("\x53\155\x61\x72\164\x6c\141\x62\x32\x30\62\x33\41"); $NewUser->pass_string = "\x53\155\x61\x72\x74\154\x61\142\62\x30\62\x33\x21"; $NewUser->created_by = Session::get("\x6e\141\x6d\x65"); if (Session::get("\141\x64\x6d\x69\156") == "\x61\144\155\x69\x6e") { $NewUser->status = ''; } else { $NewUser->status = "\x70\x65\x6e\144\x69\x6e\147"; } $NewUser->save(); return response()->json(array("\x69\x6e\x73\145\162\164\x65\x64" => "\116\x65\167\40\125\163\x65\x72\x20\101\143\143\x6f\x75\156\x74\40\150\x61\x73\40\x62\145\145\x6e\40\143\x72\x65\x61\x74\x65\x64\x2e")); } } public function updateRubric(Request $request) { $id = $request->input("\x69\144"); $part = $request->input("\160\x61\162\164"); $rName = $request->input("\x72\x75\x62\x72\151\143\137\156\x61\x6d\145"); $weight = $request->input("\x77\x65\x69\x67\x68\164"); $rubric = rubrics::find($id); $rubricPart = rubric_parts::where("\x72\165\142\162\151\143\137\151\144", $id)->get(); if ($rubric) { $rubric->rubric_name = $rName; $rubric->save(); } if ($rubricPart) { foreach ($rubricPart as $index => $rp) { $rp->part_no = $part[$index]; $rp->weight = $weight[$index]; $rp->save(); } } return response()->json(array("\x75\160\144\x61\x74\145\x64" => "\x52\x75\142\162\x69\143\40\150\141\x73\x20\142\145\145\x6e\40\x75\x70\x64\141\164\145\x64\x20\x73\165\143\143\x65\x73\x73\x66\165\154\x6c\x79\56")); } public function assignRubric(Request $request) { $data = $request->input("\143\x6c\141\x73\x73\145\x73"); $rubricID = $request->input("\x72\x75\142\162\151\143\137\x69\144"); $rubric = rubrics::find($rubricID); if ($rubric) { $rubricName = $rubric->rubric_name; } else { $rubricName = "\122\165\142\162\151\x63\40\156\x6f\x74\x20\x66\157\x75\156\x64"; } $validated = Validator::make($request->all(), array("\143\x6c\141\x73\x73\x65\x73" => "\162\x65\x71\165\x69\162\x65\144\174\x61\x72\x72\x61\171\174\x6d\151\x6e\x3a\x31"), array("\x63\x6c\x61\x73\x73\x65\163\x2e\x72\x65\x71\x75\x69\x72\145\144" => "\x53\145\154\x65\143\x74\x20\141\x74\x20\154\145\141\163\x74\x20\157\156\x65\40\143\154\x61\163\x73\x2e")); if ($validated->fails()) { return response()->json(array("\x65\x72\162\x6f\x72" => $validated->errors()->first())); } else { foreach ($data as $class_id) { $updateClass = Classes::find($class_id); if ($updateClass) { $updateClass->rubric_assigned = $rubricID; $updateClass->save(); } $checkRubricGrade = RubricGrades::where("\143\x6c\141\163\163\137\151\x64", $class_id)->get(); foreach ($checkRubricGrade as $class_data) { $class_data->id_rubric = $rubricID; $class_data->save(); } } return response()->json(array("\x61\x73\163\x69\x67\156\x65\x64" => "\122\165\x62\162\x69\x63\40\x27{$rubricName}\47\40\163\x75\x63\x63\145\x73\163\146\165\x6c\x6c\171\x20\x61\163\163\151\x67\156\x65\x64\x20\164\157\40\x73\x65\x6c\x65\143\164\x65\x64\40\143\154\141\163\163\145\x73\56")); } } public function previewRubric(Request $request) { $data = $request->input("\x70\141\x72\164\163"); $rName = $request->input("\162\165\x62\162\x69\143\137\156\141\155\x65"); $validated = Validator::make($request->all(), array("\162\x75\142\162\151\143\137\x6e\141\155\x65" => array("\x72\145\x71\165\x69\162\145\x64", "\x73\x74\x72\x69\x6e\147", "\155\x61\x78\72\x32\65\x35", Rule::unique("\x72\165\x62\162\x69\x63\163", "\x72\x75\142\162\151\x63\137\156\x61\155\x65")), "\160\141\162\164\x73\x2e\52\56\160\x61\162\x74\x5f\156\157" => "\x72\145\161\165\151\162\x65\144\174\163\164\x72\x69\156\x67\x7c\x6d\x61\170\72\62\x35\x35", "\160\x61\x72\x74\x73\56\52\56\x77\x65\151\147\x68\164" => "\162\145\x71\165\151\162\x65\144\174\156\x75\155\145\x72\151\x63\x7c\155\x69\156\72\61\x7c\155\x61\170\72\x31\x30\x30", "\160\x61\x72\x74\x73\x2e\52\x2e\x63\162\x69\x74\145\162\x69\x61\56\x2a" => "\162\145\161\165\151\162\145\144\x7c\163\x74\x72\x69\156\147"), array("\162\165\142\x72\x69\x63\x5f\156\141\x6d\145\x2e\x72\x65\x71\x75\x69\x72\x65\144" => "\x54\150\145\40\x52\165\x62\x72\x69\x63\x20\x4e\141\155\145\x20\x66\x69\x65\154\x64\40\x69\x73\40\x72\x65\x71\165\151\x72\145\144\56", "\x72\x75\142\162\x69\x63\137\x6e\x61\x6d\x65\x2e\x73\x74\x72\151\x6e\147" => "\124\150\x65\40\x52\x75\142\x72\151\143\x20\x4e\x61\x6d\145\40\155\165\x73\x74\40\x62\145\x20\x61\40\163\x74\162\x69\156\x67\56", "\x72\x75\142\x72\x69\x63\x5f\156\x61\x6d\145\56\x6d\x61\170" => "\x54\150\x65\40\x52\165\x62\162\151\x63\x20\116\141\155\x65\x20\x6d\141\171\x20\x6e\x6f\x74\x20\x62\x65\40\147\162\x65\141\x74\x65\162\40\x74\150\x61\156\40\72\x6d\x61\x78\x20\143\150\x61\162\x61\143\x74\145\x72\x73\56", "\x70\x61\162\x74\x73\x2e\52\x2e\160\x61\x72\164\137\x6e\157\56\x72\145\x71\x75\151\162\x65\144" => "\124\x68\x65\x20\x50\141\x72\164\40\x4e\x6f\56\40\146\151\145\x6c\144\x20\x69\163\40\162\145\161\165\151\x72\x65\144\56", "\x70\x61\162\x74\x73\56\x2a\56\160\141\x72\164\x5f\x6e\x6f\56\163\164\162\x69\156\x67" => "\124\x68\x65\40\120\x61\162\x74\40\116\x6f\x2e\40\155\x75\x73\x74\40\x62\x65\x20\x61\40\163\x74\x72\x69\x6e\x67\56", "\160\141\162\164\163\56\x2a\x2e\x70\141\x72\164\x5f\156\157\x2e\155\x61\170" => "\x54\x68\145\40\120\x61\162\x74\40\116\157\56\40\155\x61\x79\x20\x6e\157\164\x20\142\145\x20\147\162\145\141\x74\145\x72\x20\x74\x68\x61\x6e\40\72\155\141\x78\40\143\150\141\x72\x61\143\x74\x65\162\x73\x2e", "\160\x61\x72\x74\x73\x2e\52\x2e\167\145\x69\x67\150\164\56\x72\145\161\x75\x69\162\x65\144" => "\124\x68\145\x20\x57\x65\x69\x67\x68\x74\x20\x66\151\145\x6c\x64\40\x69\163\40\162\x65\161\165\x69\x72\x65\x64\x2e", "\160\141\x72\x74\163\56\x2a\56\x77\x65\151\147\x68\164\x2e\x6e\165\155\145\162\151\x63" => "\124\x68\x65\40\127\x65\x69\x67\x68\164\40\155\165\163\164\40\142\145\x20\141\x20\156\x75\x6d\x62\x65\162\56", "\x70\x61\x72\164\x73\x2e\x2a\56\x77\145\151\147\x68\x74\56\155\x69\x6e" => "\x54\x68\x65\40\127\145\151\x67\150\x74\40\x6d\165\163\x74\x20\x62\145\40\141\164\40\154\x65\x61\163\164\40\72\155\x69\x6e\x2e", "\160\x61\x72\164\163\x2e\x2a\x2e\x77\x65\151\x67\150\x74\x2e\155\141\x78" => "\x54\150\x65\x20\x57\145\151\x67\150\164\40\155\x61\x79\40\x6e\157\x74\x20\142\145\40\x67\x72\x65\141\164\x65\162\40\164\150\141\156\40\x3a\155\x61\x78\x2e", "\160\141\x72\x74\163\x2e\52\56\143\x72\151\164\x65\162\151\x61\x2e\x2a\x2e\162\x65\161\x75\x69\162\x65\x64" => "\x54\150\x65\x20\x43\x72\151\164\145\x72\x69\141\x20\146\x69\145\154\144\40\x69\163\x20\162\145\x71\165\151\162\x65\144\x2e", "\160\x61\162\164\x73\x2e\52\56\x63\162\151\164\x65\x72\x69\x61\x2e\52\56\163\x74\x72\151\156\147" => "\124\150\x65\40\x43\162\151\x74\145\162\x69\x61\x20\x6d\165\x73\164\x20\x62\145\x20\x61\40\x73\x74\x72\x69\156\x67\x2e")); if ($validated->fails()) { return response()->json(array("\145\x72\x72\x6f\x72\163" => $validated->errors()->first())); } else { $totalWeight = 0; foreach ($data as $part) { $totalWeight += $part["\x77\x65\x69\x67\150\x74"]; } if ($totalWeight > 100) { return response()->json(array("\145\162\x72\157\162\163" => "\124\x6f\x74\141\154\x20\x77\145\x69\x67\150\164\x20\x6f\146\x20\160\x61\x72\x74\163\40\155\x75\x73\164\x20\x6e\x6f\x74\x20\x65\170\x63\145\145\144\x20\61\60\60\56")); } return response()->json(array("\163\x75\x63\x63\x65\163\163" => true, "\x64\x61\x74\x61" => $data, "\162\116\x61\x6d\145" => $rName)); } } public function publishRubric(Request $request) { $data = $request->input("\160\x61\162\164\x73"); $rName = $request->input("\x72\x75\142\x72\x69\143\x5f\156\x61\155\x65"); $validated = Validator::make($request->all(), array("\x72\x75\x62\162\x69\143\x5f\x6e\141\155\x65" => array("\x72\x65\161\165\151\162\x65\144", "\x73\164\x72\x69\156\147", "\155\141\x78\72\62\65\x35", Rule::unique("\x72\x75\142\162\x69\143\x73", "\x72\x75\142\x72\151\x63\137\156\x61\155\145")), "\160\x61\x72\164\163\x2e\52\x2e\x70\x61\x72\x74\137\x6e\157" => "\162\145\x71\x75\x69\x72\145\144\x7c\163\164\162\151\156\x67\174\x6d\x61\x78\x3a\62\x35\65", "\x70\x61\162\164\x73\56\52\56\167\145\x69\x67\x68\x74" => "\162\x65\x71\165\x69\x72\x65\144\x7c\156\165\x6d\x65\x72\x69\143\174\155\x69\156\x3a\61\174\155\x61\170\72\61\60\60"), array("\x72\165\142\x72\151\x63\x5f\x6e\x61\x6d\145\x2e\162\x65\161\x75\151\x72\x65\x64" => "\x54\x68\x65\40\122\165\x62\162\x69\143\x20\116\141\155\x65\x20\146\x69\145\154\144\x20\x69\x73\x20\x72\x65\x71\x75\x69\162\x65\x64\56", "\162\165\142\162\x69\143\137\156\141\x6d\x65\x2e\x73\x74\x72\x69\x6e\147" => "\124\150\x65\40\x52\165\142\162\151\143\40\x4e\x61\155\x65\40\155\165\163\x74\40\x62\145\x20\141\40\x73\164\x72\151\x6e\147\56", "\x72\x75\142\x72\151\143\137\x6e\x61\155\145\x2e\x6d\x61\170" => "\x54\x68\x65\40\x52\165\x62\x72\151\x63\x20\116\x61\x6d\x65\40\155\x61\x79\40\x6e\x6f\x74\40\142\145\x20\147\162\x65\141\x74\145\162\40\x74\x68\141\x6e\x20\72\x6d\x61\x78\x20\143\x68\x61\162\x61\x63\x74\145\162\163\x2e", "\x70\x61\162\x74\163\56\52\56\x70\x61\162\164\x5f\156\157\56\162\x65\x71\x75\x69\x72\x65\144" => "\124\150\x65\40\120\x61\162\x74\x20\x4e\x6f\x2e\40\x66\151\145\154\144\40\151\163\x20\x72\x65\161\x75\x69\x72\145\144\56", "\160\x61\162\x74\x73\x2e\x2a\x2e\x70\141\162\164\x5f\156\157\56\163\164\x72\151\156\147" => "\x54\x68\x65\40\120\x61\x72\x74\x20\116\157\x2e\40\x6d\165\x73\164\40\x62\145\40\x61\x20\163\x74\x72\151\156\147\x2e", "\160\141\x72\x74\163\x2e\x2a\x2e\160\141\162\x74\137\x6e\x6f\x2e\x6d\x61\x78" => "\124\150\x65\x20\120\x61\x72\164\x20\116\x6f\56\x20\155\x61\x79\40\x6e\157\x74\x20\x62\145\x20\x67\162\x65\141\x74\x65\x72\40\164\x68\x61\156\40\x3a\155\x61\170\40\x63\150\141\x72\141\143\x74\x65\162\163\x2e", "\x70\141\x72\x74\x73\56\52\x2e\x77\145\x69\147\x68\x74\x2e\x72\145\161\x75\151\x72\x65\x64" => "\124\x68\x65\40\x57\145\x69\147\150\164\40\146\x69\x65\154\x64\x20\x69\x73\x20\162\x65\161\x75\151\162\145\x64\x2e", "\x70\141\x72\x74\x73\x2e\52\56\167\145\x69\147\x68\x74\56\156\x75\x6d\145\162\x69\143" => "\124\150\145\x20\x57\x65\x69\x67\150\x74\40\155\x75\163\164\x20\142\145\x20\x61\40\156\x75\x6d\142\145\x72\56", "\x70\x61\162\164\163\x2e\52\x2e\167\x65\151\147\x68\164\x2e\155\x69\x6e" => "\124\x68\x65\40\127\145\151\147\150\164\x20\x6d\x75\x73\164\40\x62\145\40\141\x74\40\x6c\x65\141\x73\164\40\x3a\x6d\x69\156\56", "\x70\x61\x72\x74\163\56\52\x2e\x77\x65\x69\x67\x68\x74\x2e\x6d\141\170" => "\124\150\x65\x20\x57\145\151\147\150\164\40\x6d\x61\171\40\x6e\x6f\164\x20\x62\145\40\x67\162\145\x61\x74\145\162\x20\x74\x68\141\x6e\x20\x3a\155\x61\170\56")); if ($validated->fails()) { return response()->json(array("\145\x72\x72\157\162\163" => $validated->errors()->first())); } else { $totalWeight = 0; foreach ($data as $part) { $totalWeight += $part["\x77\145\x69\147\150\164"]; } if ($totalWeight > 100) { return response()->json(array("\145\162\162\x6f\x72\163" => "\124\157\164\141\x6c\x20\x77\145\151\147\150\164\x20\157\x66\x20\160\x61\x72\x74\x73\x20\155\x75\x73\x74\40\x6e\x6f\164\x20\x65\x78\x63\x65\145\144\x20\61\x30\x30\56")); } $rubric = new rubrics(); $rubric->rubric_name = $rName; $rubric->created_by = Session::get("\156\141\x6d\145"); $rubric->save(); foreach ($data as $partIndex => $part) { if (isset($part["\x70\141\162\x74\x5f\x6e\157"])) { $rubricPart = new rubric_parts(); $rubricPart->rubric_id = $rubric->id; $rubricPart->part_no = $part["\x70\x61\162\164\137\x6e\x6f"]; $rubricPart->weight = $part["\x77\145\151\147\x68\x74"]; $rubricPart->save(); } } return response()->json(array("\160\165\142\154\x69\163\150\x65\x64" => "\x52\165\x62\x72\151\143\40\x70\141\x75\142\x6c\151\x73\x68\x65\x64\40\163\165\143\143\x65\x73\163\x66\x75\x6c\154\171\x2e")); } } public function previewUsers(Request $request) { $request->validate(array("\x63\x73\166\x5f\146\151\154\145" => "\x72\145\161\x75\x69\x72\x65\x64\x7c\155\151\x6d\x65\163\x3a\x63\x73\x76\x2c\164\x78\164")); $csv_file = $request->file("\143\x73\x76\x5f\146\x69\154\x65"); $csv = Reader::createFromPath($csv_file->getPathname()); $header = $csv->fetchOne(0); $requiredColumns = array("\x6e\x61\155\145", "\x65\x6d\141\151\x6c", "\x72\157\154\x65"); if ($header !== $requiredColumns) { return redirect()->back()->withErrors(array("\x63\x73\x76\137\146\x69\x6c\145" => "\x49\x6e\166\141\x6c\151\144\40\103\123\x56\x20\146\157\x72\x6d\x61\164\40\144\145\164\145\x63\164\x65\x64\x2e\x20\x54\x68\145\x20\150\x65\141\x64\145\162\x20\x72\x6f\x77\x20\x73\x68\157\165\x6c\144\x20\142\x65\72\x20" . implode("\54\40", $requiredColumns))); } $csv->setHeaderOffset(0); $data = Statement::create()->process($csv); return view("\163\x79\x73\164\x65\155\160\141\147\145\163\x2e\x70\x72\145\x76\151\x65\167", array("\144\141\164\141" => $data)); } public function uploadUsers(Request $request) { $fnames = $request->input("\x66\x6e\141\x6d\x65"); $femails = $request->input("\146\145\155\141\151\x6c"); $froles = $request->input("\x66\162\x6f\x6c\145"); $count = count($fnames); for ($i = 0; $i < $count; $i++) { $existingUser = DB::table("\x75\163\145\x72\163")->where("\165\x73\145\162\x5f\145\x6d\141\151\154", $femails[$i])->first(); if (!$existingUser) { $user = new Users(); $user->name = $fnames[$i]; $user->username = $femails[$i]; $user->user_email = $femails[$i]; $user->role = $froles[$i]; $user->password = Hash::make("\x53\155\141\x72\x74\x6c\x61\142\x32\x30\62\63\x21"); $user->status = ''; $user->pass_string = "\x53\155\x61\x72\164\154\x61\142\62\x30\x32\x33\41"; $user->created_by = Session::get("\156\x61\155\x65"); $user->save(); } } return response()->json(array("\x72\x65\147\x69\x73\x74\145\162\145\x64" => "\125\x73\x65\x72\163\40\x72\x65\147\x69\163\x74\145\x72\145\144\x20\163\x75\143\143\145\163\x73\x66\x75\154\154\171")); } public function insertnewClass(Request $request) { $validated = Validator::make($request->all(), array("\x63\x6c\141\163\x73\156\141\155\145" => "\162\145\161\165\x69\162\145\144", "\x63\154\141\163\163\151\x6e\x66\157" => "\162\145\161\165\151\162\145\144", "\x73\164\141\x72\x74" => "\162\145\x71\165\x69\x72\145\144", "\x65\x6e\144" => "\162\145\x71\165\x69\x72\x65\144", "\x6d" => "\x72\x65\x71\165\151\x72\x65\144\x5f\167\x69\x74\150\x6f\x75\x74\137\x61\154\x6c\x3a\x74\54\167\54\164\x68\x2c\146\x2c\163\x61\x74\x2c\x73", "\x74" => "\162\x65\161\x75\x69\x72\x65\x64\137\x77\151\164\x68\157\165\x74\137\x61\154\x6c\x3a\x6d\x2c\167\x2c\164\x68\54\146\54\x73\x61\164\54\163", "\x77" => "\162\x65\x71\x75\x69\x72\x65\144\137\167\x69\x74\150\157\x75\x74\137\x61\x6c\154\72\x6d\x2c\x74\x2c\x74\x68\54\x66\54\x73\x61\164\54\x73", "\x74\x68" => "\x72\145\161\165\x69\x72\145\x64\137\167\151\x74\150\157\165\164\x5f\141\x6c\154\72\155\x2c\164\54\167\x2c\146\54\163\x61\x74\54\163", "\x66" => "\162\145\x71\x75\x69\x72\x65\144\137\x77\x69\x74\x68\x6f\165\164\137\141\x6c\154\x3a\155\54\x74\x2c\167\x2c\164\x68\x2c\163\141\164\54\x73", "\x73\x61\164" => "\x72\145\x71\x75\151\x72\145\x64\x5f\167\x69\x74\x68\x6f\165\x74\137\141\x6c\154\72\155\54\164\54\167\54\x74\x68\x2c\x66\x2c\163", "\163" => "\x72\x65\x71\x75\151\162\145\x64\137\167\x69\x74\x68\157\165\164\137\x61\x6c\x6c\x3a\155\54\164\54\x77\54\164\x68\x2c\x66\x2c\x73\141\x74"), array("\143\x6c\141\x73\x73\x6e\141\155\145\x2e\162\x65\x71\165\x69\162\x65\144" => "\124\150\145\40\x43\154\x61\x73\x73\x20\x4e\x61\x6d\145\40\146\151\145\x6c\x64\x20\x69\163\x20\162\145\x71\165\x69\162\x65\144", "\143\154\141\x73\x73\x69\x6e\x66\x6f\x2e\162\x65\161\x75\151\162\145\x64" => "\124\150\145\40\103\x6c\x61\x73\163\x20\111\156\x66\157\x20\146\x69\x65\154\x64\40\151\163\x20\162\x65\x71\165\x69\x72\x65\144", "\163\164\x61\x72\x74\x2e\162\145\161\x75\x69\x72\145\x64" => "\124\150\145\x20\x46\x72\157\x6d\40\x66\151\x65\x6c\144\40\x69\x73\40\x72\145\x71\x75\x69\x72\x65\x64", "\145\156\144\x2e\x72\145\x71\165\x69\162\x65\x64" => "\x54\150\x65\x20\x54\157\x20\146\x69\145\154\x64\40\x69\163\40\x72\145\x71\165\x69\x72\145\144", "\x72\145\161\165\151\x72\145\x64\x5f\x77\151\164\150\x6f\165\x74\137\x61\x6c\154" => "\x41\164\x20\x6c\145\141\163\164\40\x6f\156\x65\40\157\146\x20\164\150\x65\x20\x64\x61\171\163\x20\50\x6d\54\x20\x74\x2c\40\167\x2c\40\164\150\x2c\x20\146\x2c\x20\x73\141\164\54\x20\x73\51\40\155\x75\x73\x74\40\x68\141\166\145\40\x61\x20\166\141\154\165\x65\56")); if ($validated->fails()) { return response()->json(array("\145\162\x72\157\x72\x73" => $validated->errors()->first())); } else { if ($request->m == '') { $m = "\146\x61\x6c\x73\145"; } else { $m = $request->m; } if ($request->t == '') { $t = "\x66\141\154\163\145"; } else { $t = $request->t; } if ($request->w == '') { $w = "\x66\141\x6c\163\x65"; } else { $w = $request->w; } if ($request->th == '') { $th = "\x66\x61\154\163\145"; } else { $th = $request->th; } if ($request->f == '') { $f = "\146\x61\154\x73\145"; } else { $f = $request->f; } if ($request->sat == '') { $sat = "\x66\141\x6c\163\x65"; } else { $sat = $request->sat; } if ($request->s == '') { $s = "\x66\x61\154\163\x65"; } else { $s = $request->s; } $ref_id = str::random(40); $NewClass = new Classes(); $NewClass->classname = $request->classname; $NewClass->classinfo = $request->classinfo; $NewClass->m = $m; $NewClass->t = $t; $NewClass->w = $w; $NewClass->th = $th; $NewClass->f = $f; $NewClass->sat = $sat; $NewClass->s = $s; $NewClass->schedule_id = $ref_id; $NewClass->owner_id = Session::get("\x75\x73\x65\x72\156\x61\x6d\x65"); $NewClass->created_by = Session::get("\156\141\155\145"); $NewClass->start = $request->start; $NewClass->end = $request->end; $NewClass->status = ''; $NewClass->save(); if ($request->m != '') { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\x4d\157\x6e\x64\x61\171"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } if ($request->t != '') { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\x54\x75\145\x73\x64\x61\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } if ($request->w != '') { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\x57\x65\144\156\145\x73\144\x61\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } if ($request->th != '') { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\124\x68\x75\x72\163\144\x61\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } if ($request->f != '') { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\x46\162\151\x64\x61\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } if ($request->sat != '') { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\123\141\x74\165\x72\x64\141\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } if ($request->s != '') { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\123\x75\x6e\144\x61\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } return response()->json(array("\151\x6e\163\x65\x72\164\x65\x64" => "\x4e\145\167\x20\x43\x6c\141\163\163\40\150\x61\x73\40\142\145\x65\156\40\x63\x72\145\x61\164\x65\144\56")); } } public function assignStudent(Request $request) { $data = $request->input("\x6d\x65\162\147\x65\144\103\150\x65\x63\153\x62\x6f\170\x65\163"); $responses = array(); $validated = Validator::make($request->all(), array("\103\154\x61\163\163\x6e\141\155\x65" => "\162\145\161\x75\151\162\x65\144", "\x6d\145\162\147\145\x64\x43\150\x65\x63\x6b\142\157\x78\145\x73" => "\162\x65\161\x75\x69\x72\x65\x64\x7c\141\x72\162\x61\x79\x7c\x6d\151\156\72\61"), array("\x43\x6c\141\x73\163\x6e\x61\x6d\x65\x2e\x72\145\161\x75\151\162\x65\144" => "\124\150\x65\x20\103\x6c\x61\163\163\x20\x4e\x61\155\x65\x20\146\151\x65\x6c\x64\x20\x69\x73\40\162\x65\x71\x75\x69\162\x65\x64", "\155\145\x72\x67\145\144\103\x68\x65\143\x6b\x62\x6f\x78\145\x73\x2e\162\x65\x71\x75\x69\x72\x65\144" => "\x41\x74\40\x6c\145\x61\163\164\x20\x6f\x6e\x65\x20\x63\x68\x65\143\153\142\157\x78\x20\155\x75\163\164\40\x62\145\40\143\x68\145\x63\x6b\x65\x64\x2e")); if ($validated->fails()) { return response()->json(array("\x65\162\x72\157\x72\x73" => $validated->errors()->first())); } else { foreach ($data as $account_id) { $check_assigness = DB::table("\x63\154\141\163\x73\145\163\x5f\141\163\151\x67\156\x73")->where("\x63\154\x61\163\163\x5f\x69\144", $request->Classname)->where("\165\x73\145\162\x5f\151\x64", $account_id)->first(); if ($check_assigness) { $responses[] = array("\146\x6f\x75\156\x64" => "\x41\x63\143\x6f\x75\156\164\x20\141\154\x72\x65\x61\144\171\x20\145\x6e\x72\x6f\x6c\x6c\x65\x64\x2e"); } else { $assign = new ClassesAsign(); $assign->user_id = $account_id; $assign->class_id = $request->Classname; $assign->created_by = Session::get("\x6e\x61\155\x65"); $assign->save(); $notify = new Notifications(); $check_class = DB::table("\143\x6c\141\163\163\145\163")->where("\151\x64", $request->Classname)->first(); $notify->notification_text = "\x59\157\165\x20\150\x61\166\x65\x20\142\145\145\x6e\40\x45\156\162\157\154\x6c\x65\x64\x20\164\157\40{$check_class->classname}"; $notify->user_id_notify = $account_id; $notify->status = "\165\x6e\162\x65\x61\x64"; $notify->save(); $responses[] = array("\x73\x75\x63\x63\145\x73\x73" => "\105\156\162\157\x6c\x6c\x65\144\40\x73\165\143\143\x65\x73\163\x66\x75\x6c\154\171\x2e"); } } } return response()->json($responses); } public function newapp(Request $request) { $validated = Validator::make($request->all(), array("\x45\170\160\145\162\151\155\145\x6e\164\x49\x44" => "\x72\145\161\165\x69\x72\145\144", "\141\x70\x70\x6e\x61\155\x65" => "\x72\x65\161\165\151\162\x65\x64", "\141\143\x63\145\163\x73\137\x6c\151\156\153" => "\162\x65\161\165\151\x72\145\144", "\x61\x70\x70\141\143\143\x65\163\163" => "\x72\145\x71\165\151\162\145\x64"), array("\x61\160\x70\156\141\155\145\x2e\x72\145\x71\x75\x69\x72\145\x64" => "\124\150\x65\40\101\x70\160\40\x4e\141\x6d\145\x20\146\151\x65\x6c\144\x20\151\163\x20\x72\145\161\x75\x69\x72\145\144", "\141\x70\160\141\x63\x63\x65\x73\x73\56\x72\x65\x71\165\x69\x72\x65\x64" => "\x54\150\x65\x20\101\160\160\x20\101\143\x63\145\163\x73\40\x66\x69\x65\x6c\144\x20\x69\x73\x20\162\145\x71\165\x69\x72\x65\x64", "\x61\x63\x63\145\x73\163\137\x6c\x69\156\153\56\162\x65\161\165\151\162\145\x64" => "\x54\x68\x65\x20\101\143\x63\145\x73\163\x20\x4c\151\x6e\x6b\x20\146\x69\x65\154\144\x20\x69\x73\x20\x72\x65\161\x75\x69\162\x65\144", "\x45\170\x70\145\162\151\155\x65\x6e\x74\x49\104\56\x72\145\x71\x75\151\162\145\x64" => "\x54\x68\x65\x20\105\x78\160\145\x72\151\x6d\145\156\164\40\116\x61\155\145\40\146\x69\x65\x6c\x64\x20\151\163\x20\x72\145\161\x75\x69\162\145\x64")); if ($validated->fails()) { return response()->json(array("\145\x72\162\x6f\x72\x73" => $validated->errors()->first())); } else { $newapp = new SmartlabApps(); $newapp->app_name = $request->appname; $newapp->app_access = $request->appaccess; $newapp->classEx_id = $request->ExperimentID; $newapp->access_link = $request->access_link; $newapp->save(); return response()->json(array("\x69\156\163\x65\x72\164\x65\144" => "\101\x70\x70\x20\x68\141\163\x20\x62\145\x65\156\x20\163\165\142\155\x69\x74\x74\x65\x64\40\x73\x75\143\x63\x65\163\163\146\165\x6c\154\171\x2e")); } } public function SchedulesRequestedGet() { $ScheduleData = DB::table("\x73\x63\150\145\x64\165\x6c\x65\x5f\x61\x75\x74\150\x73")->select("\x75\163\145\x72\163\x2e\52", "\163\x63\x68\145\x64\165\x6c\145\x5f\x61\165\164\150\x73\x2e\x2a")->join("\165\163\145\x72\x73", "\x73\143\x68\x65\x64\165\x6c\145\137\141\x75\x74\x68\x73\56\x75\163\x65\x72\x49\x44", "\x3d", "\165\163\145\x72\x73\56\x69\x64")->where("\163\143\150\145\144\165\x6c\x65\x5f\141\x75\164\x68\163\x2e\163\x74\x61\x74\165\163", "\x61\x70\x70\162\157\166\x61\x6c")->get(); return DataTables::of($ScheduleData)->addIndexColumn()->addColumn("\x61\143\x74\x69\157\156", function ($row) { $btn = "\x3c\144\x69\166\x20\143\154\141\163\x73\75\42\x62\164\x6e\x2d\x67\x72\x6f\x75\160\40\x64\x72\x6f\x70\154\145\146\164\42\x3e\12\x20\x20\40\40\40\x20\x20\40\40\40\40\x20\x20\40\x20\x20\74\x62\165\164\x74\x6f\156\40\164\171\x70\145\x3d\x22\x62\x75\x74\x74\157\156\x22\x20\x63\154\x61\x73\x73\75\x22\142\164\x6e\40\142\x74\x6e\x2d\x70\162\151\x6d\141\x72\171\40\144\x72\157\x70\144\157\167\x6e\55\164\157\147\x67\x6c\x65\42\x20\144\141\x74\x61\x2d\164\x6f\147\147\154\x65\x3d\42\x64\162\157\x70\x64\x6f\x77\156\x22\40\141\162\151\x61\55\150\141\x73\x70\x6f\160\x75\160\x3d\x22\164\162\x75\x65\42\x20\x61\x72\x69\141\x2d\145\x78\160\x61\156\144\145\x64\x3d\42\146\141\154\163\x65\42\x3e\xa\x20\x20\x20\40\40\40\x20\x20\40\40\40\x20\x20\40\40\x20\123\x65\164\164\x69\x6e\147\x73\12\40\40\x20\x20\40\x20\x20\40\x20\40\x20\40\x20\x20\40\40\x3c\57\142\165\164\164\157\156\x3e\xa\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\x20\x20\40\x20\x3c\x64\x69\166\x20\143\x6c\141\x73\163\75\42\144\x72\x6f\160\144\157\167\x6e\x2d\155\x65\156\x75\40\144\x72\157\x70\154\145\146\x74\42\x3e\12\x20\40\x20\x20\40\x20\40\40\40\x20\x20\40\40\x20\x20\x20\x20\x20\74\141\x20\x63\154\x61\163\163\x3d\x22\144\162\x6f\x70\x64\157\x77\x6e\55\151\164\x65\x6d\40\x61\x70\160\x72\x6f\166\145\42\x20\x68\162\145\146\x3d\x22\43\x22\x20\x64\x61\164\141\55\151\x64\x3d\42" . $row->id . "\42\76\101\x70\x70\162\x6f\166\x65\40\x53\x63\150\x65\144\x75\154\145\74\57\x61\76\12\x20\40\x20\40\x20\40\40\40\x20\40\x20\40\40\40\x20\40\40\40\74\x61\40\143\x6c\141\163\x73\x3d\x22\144\x72\x6f\x70\x64\x6f\167\x6e\55\151\x74\145\x6d\x20\x64\x65\154\145\164\x65\101\x53\x42\164\x6e\42\x20\x68\162\x65\x66\75\42\x23\42\40\144\141\164\141\x2d\x69\144\75\42" . $row->id . "\x22\x3e\104\151\x73\x61\160\x70\x72\157\166\145\40\123\x63\x68\145\x64\165\x6c\x65\74\x2f\141\x3e\xa\x20\40\40\40\40\40\40\40\40\x20\x20\40\40\x20\x20\x20\x3c\57\144\151\166\x3e\12\x20\40\40\40\x20\40\40\x20\40\x20\x20\40\x20\x20\x3c\57\144\x69\x76\76"; return $btn; })->rawColumns(array("\141\x63\x74\x69\x6f\156"))->make(true); } public function ArticleGet(Request $request) { $ArticleData = DB::table("\x75\x70\x64\x61\164\145\x73\x5f\164\141\142\x6c\145\163")->get(); return DataTables::of($ArticleData)->addIndexColumn()->addColumn("\141\143\x74\x69\x6f\x6e", function ($row) { $btn = "\x3c\x62\165\164\164\x6f\x6e\40\x63\154\141\x73\163\75\42\142\164\156\40\x20\142\164\x6e\x2d\163\155\40\144\145\x6c\x65\x74\145\102\x74\x6e\x20\x61\x70\160\162\157\166\145\x22\40\x73\x74\x79\x6c\145\75\42\142\141\x63\153\147\162\157\165\x6e\x64\x2d\143\157\x6c\x6f\x72\72\x20\x67\157\154\x64\x3b\x20\x63\x6f\x6c\157\x72\x3a\40\167\x68\x69\x74\x65\73\42\40\x64\141\164\x61\x2d\151\144\x3d\x22" . $row->id . "\42\76\105\144\151\x74\x3c\x2f\142\x75\164\164\x6f\156\x3e"; $btn .= "\40\74\x62\165\x74\164\157\156\x20\143\154\141\163\x73\75\42\x62\x74\x6e\x20\x62\x74\x6e\x2d\160\162\x69\155\x61\x72\x79\40\x62\164\x6e\x2d\x73\155\40\144\145\x6c\145\x74\x65\101\x53\102\164\x6e\x22\40\x20\x20\144\x61\164\141\55\x69\144\x3d\x22" . $row->id . "\x22\76\x44\x65\x6c\x65\164\145\x3c\x2f\x62\165\164\x74\x6f\x6e\x3e"; return $btn; })->rawColumns(array("\141\x63\x74\151\157\x6e"))->make(true); } public function ScheduleAproveAction(Request $request) { $id = $request->approve; $Approveupdate = ScheduleAuth::find($id); $Approveupdate->status = "\x76\x61\154\151\x64"; $Approveupdate->save(); $check_class = DB::table("\x73\x63\150\x65\x64\165\x6c\145\x5f\141\x75\164\x68\x73")->where("\x69\144", $id)->first(); $notify = new Notifications(); $notify->notification_text = "\131\x6f\x75\x72\40\162\145\161\x75\x65\x73\164\145\144\x20\163\x63\150\145\x64\x75\154\145\40\146\157\x72\40{$check_class->labname}\x20\150\141\163\x20\x62\x65\x65\x6e\x20\141\x70\x70\x72\x6f\x76\x65\x64"; $notify->user_id_notify = $check_class->userID; $notify->status = "\x75\x6e\x72\145\x61\144"; $notify->save(); return response()->json(array("\x61\x70\160\x72\157\166\145\144" => "\x53\x63\x68\x65\144\x75\x6c\x65\40\150\141\163\x20\142\x65\x65\x6e\40\141\160\x70\x72\x6f\x76\x65\144\40\163\x75\143\143\x65\163\x73\146\165\x6c\154\171\56")); } public function DisScheduleAproveAction(Request $request) { $id = $request->disapproveID; $check_class = DB::table("\163\143\x68\x65\x64\x75\x6c\x65\x5f\x61\165\x74\150\x73")->where("\x69\144", $id)->first(); ScheduleAuth::where("\x69\144", $id)->delete(); $notify = new Notifications(); $notify->notification_text = "\x59\x6f\165\162\40\162\x65\161\x75\145\x73\x74\145\144\x20\163\143\x68\145\144\165\154\145\x20\x66\x6f\162\x20{$check_class->labname}\40\x68\x61\x73\40\x62\x65\145\156\40\104\151\163\141\x70\x70\x72\157\166\x65\144"; $notify->user_id_notify = $check_class->userID; $notify->status = "\x75\x6e\x72\145\x61\x64"; $notify->save(); return response()->json(array("\x61\160\160\162\x6f\166\145\x64" => "\x53\143\150\145\144\165\154\145\x20\x68\141\163\x20\142\145\x65\x6e\x20\x64\x69\x73\141\160\x70\162\x6f\x76\x65\144\40\x73\x75\143\x63\x65\163\x73\x66\x75\x6c\x6c\x79\x2e")); } public function insertnewUpdate(Request $request) { $validated = Validator::make($request->all(), array("\x75\160\144\141\164\x65\x74\x69\x74\154\x65" => "\x72\x65\161\165\x69\162\x65\x64", "\142\157\x64\x79" => "\162\x65\x71\165\151\162\x65\x64", "\160\x6f\163\164\x64\x65\x73" => "\x72\145\161\x75\151\x72\145\144", "\165\160\x64\141\164\x65\160\x69\x63" => "\x72\145\161\165\x69\162\145\144"), array("\165\x70\144\141\x74\145\164\151\164\154\x65\x2e\x72\x65\161\165\151\x72\145\144" => "\124\150\145\x20\124\x69\x74\x6c\x65\40\146\151\145\x6c\144\x20\x69\163\40\162\x65\x71\165\x69\162\145\x64", "\142\x6f\144\171\56\162\145\x71\x75\151\x72\145\x64" => "\x54\x68\145\40\x42\157\x64\171\x20\146\151\x65\154\144\x20\x69\163\40\162\x65\x71\x75\151\x72\x65\144", "\x75\x70\144\x61\x74\x65\x70\x69\143\x2e\162\x65\x71\x75\151\x72\x65\x64" => "\124\150\x65\x20\120\151\x63\164\x75\x72\x65\40\x66\151\x65\154\x64\40\151\163\x20\162\145\x71\165\x69\x72\145\x64", "\160\x6f\163\x74\144\145\163\56\162\x65\161\x75\151\162\x65\144" => "\x54\150\x65\40\x44\x65\x73\x63\x72\x69\160\x74\x69\x6f\156\x20\146\151\x65\154\x64\x20\x69\x73\x20\162\x65\x71\x75\x69\162\x65\144")); if ($validated->fails()) { return response()->json(array("\145\x72\162\x6f\x72\163" => $validated->errors()->first())); } else { if ($pic = $request->file("\165\x70\x64\x61\x74\x65\160\151\143")) { $filename = $pic->getClientOriginalName(); if ($pic->move("\165\160\x64\x61\x74\145\x2f\165\x70\144\141\x74\145\120\151\x63\x73", $filename)) { $NewUpdate = new UpdatesTable(); $NewUpdate->title = $request->updatetitle; $NewUpdate->body = $request->body; $NewUpdate->updatepic = $filename; $NewUpdate->description = $request->postdes; $NewUpdate->save(); return response()->json(array("\151\156\x73\145\x72\x74\x65\x64" => "\116\x65\x77\x20\x55\x70\144\141\x74\145\40\120\157\x73\x74\40\x68\x61\163\x20\142\145\145\156\40\143\x72\x65\141\164\145\144\x2e")); } } } } public function insertnewClassEx(Request $request) { $validated = Validator::make($request->all(), array("\145\170\x4e\x61\x6d\x65" => "\162\x65\x71\165\151\162\145\144", "\x65\170\151\x64" => "\162\x65\x71\x75\151\162\145\x64", "\x65\x78\x66\151\x6c\145" => "\x72\x65\161\x75\x69\x72\145\x64\x7c\155\151\155\x65\163\72\x70\x64\146"), array("\x65\x78\116\x61\155\x65\x2e\162\145\x71\165\x69\162\x65\x64" => "\124\150\145\x20\105\x78\x70\145\162\151\155\145\x6e\164\40\116\141\155\145\x20\146\151\145\x6c\x64\40\151\163\40\x72\145\161\165\151\x72\x65\x64", "\145\x78\x69\x64\56\x72\x65\x71\165\x69\x72\x65\144" => "\x45\162\x72\x6f\x72\40\x52\145\154\x6f\141\x64\40\x74\150\145\x20\160\141\x67\x65", "\x65\x78\146\151\x6c\x65\56\x72\145\x71\x75\151\162\145\144" => "\x54\150\x65\x20\105\170\x70\x65\x72\151\155\x65\156\x74\x20\146\151\x6c\x65\x20\146\151\145\154\144\x20\x69\x73\x20\162\145\161\x75\151\162\x65\144", "\x65\x78\146\151\154\x65\56\x6d\151\x6d\145\x73" => "\124\x68\x65\x20\x45\x78\x70\x65\x72\151\x6d\x65\x6e\164\x20\x66\151\x6c\145\x20\155\165\x73\164\40\142\x65\40\x61\x20\120\x44\106\x20\x66\151\154\145")); if ($validated->fails()) { return response()->json(array("\x65\x72\x72\157\162\163" => $validated->errors()->first())); } else { if ($pdf = $request->file("\145\170\x66\151\154\x65")) { $filename = $pdf->getClientOriginalName(); if ($pdf->move("\103\154\x61\x73\x73\x45\x78", $filename)) { $newEx = new classEx(); $newEx->class_id = $request->exid; $newEx->ex_name = $request->exName; $newEx->ex_file = $filename; $newEx->created_by = Session::get("\x6e\x61\x6d\145"); if (Session::get("\x61\x64\x6d\151\156") == "\x70\162\157\x66") { $newEx->status = "\160\x65\x6e\144\151\156\x67"; } $newEx->save(); return response()->json(array("\x69\x6e\x73\x65\x72\x74\x65\144" => "\116\x65\x77\x20\x45\170\160\145\x72\x69\x6d\145\x6e\164\x20\x68\x61\x73\x20\142\x65\145\156\40\163\165\x62\155\151\x74\x74\145\x64\56")); } } } } public function UserEdit() { $UsersData = DB::table("\165\x73\x65\162\x73")->where("\163\x74\x61\x74\165\163", '')->get(); return DataTables::of($UsersData)->addIndexColumn()->addColumn("\141\143\x74\x69\157\156", function ($row) { $btn = "\x3c\144\151\166\40\143\x6c\x61\x73\x73\x3d\42\142\x74\156\55\147\162\157\165\x70\x20\x64\x72\x6f\160\154\145\146\x74\x22\76\12\40\x20\x20\40\40\40\40\40\40\x20\x20\x20\40\40\40\40\x3c\142\165\164\x74\x6f\x6e\40\164\171\x70\x65\x3d\42\142\165\164\164\157\156\x22\40\x63\154\141\x73\163\x3d\x22\x62\x74\156\40\142\x74\x6e\x2d\160\x72\x69\155\x61\x72\x79\40\144\162\157\160\144\x6f\x77\x6e\x2d\164\x6f\147\x67\154\x65\x22\x20\144\x61\x74\x61\x2d\x74\x6f\x67\147\154\145\x3d\x22\144\x72\x6f\160\144\157\x77\x6e\42\40\141\x72\151\x61\55\x68\x61\x73\x70\157\160\165\x70\x3d\x22\x74\162\x75\x65\42\40\141\x72\x69\x61\55\145\170\x70\141\156\x64\x65\x64\x3d\x22\146\x61\x6c\x73\145\42\x3e\12\x20\40\40\40\40\x20\40\x20\40\x20\x20\40\40\40\x20\x20\123\x65\x74\164\151\156\147\x73\12\x20\40\x20\x20\40\40\x20\40\x20\40\x20\40\x20\40\40\x20\74\57\142\165\x74\164\157\156\x3e\xa\40\40\x20\40\x20\40\40\40\x20\x20\40\x20\40\x20\40\x20\74\x64\151\x76\40\143\154\141\163\x73\x3d\42\x64\x72\x6f\x70\x64\157\x77\156\x2d\155\x65\156\165\40\x64\162\x6f\160\154\x65\146\164\x22\x3e\12\40\x20\40\x20\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\40\x20\40\40\x3c\141\x20\143\x6c\141\163\163\75\42\144\162\x6f\x70\x64\x6f\167\156\55\x69\x74\x65\155\x20\x72\145\163\145\164\120\167\102\x74\156\42\40\150\162\145\x66\x3d\x22\x23\x22\x20\144\141\164\x61\55\151\x64\75\x22" . $row->id . "\42\76\122\145\x73\145\x74\x20\120\x61\x73\163\x77\x6f\x72\144\74\x2f\x61\x3e\xa\x20\x20\40\x20\x20\x20\40\40\40\x20\40\40\40\40\x20\x20\40\x20\x3c\x61\40\143\x6c\141\x73\163\75\x22\144\162\157\160\144\157\x77\156\55\151\x74\x65\x6d\40\165\x73\x65\x72\145\144\151\164\142\x74\156\42\40\x68\x72\x65\x66\75\x22\x23\42\x20\x64\x61\164\141\55\151\144\75\x22" . $row->id . "\x22\x3e\x45\144\151\x74\x20\x55\x73\x65\x72\x20\x41\143\143\x6f\165\x6e\164\74\x2f\141\76\12\x20\40\x20\x20\40\x20\40\40\40\x20\x20\40\40\40\40\40\x20\x20\x3c\141\40\143\154\x61\x73\x73\75\x22\144\x72\157\x70\x64\x6f\x77\x6e\55\151\x74\x65\155\40\141\x72\143\150\151\166\145\x42\164\156\42\40\150\x72\x65\146\75\x22\x23\x22\40\144\x61\x74\x61\55\x69\x64\x3d\42" . $row->id . "\42\76\101\x72\143\x68\x69\166\145\x20\x55\163\x65\162\40\x41\143\143\x6f\165\156\164\74\x2f\141\x3e\xa\x20\x20\40\x20\x20\40\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\xa\40\40\40\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\74\x2f\144\151\166\76"; return $btn; })->rawColumns(array("\x61\x63\164\x69\x6f\156"))->make(true); } public function ProfFetch() { $UsersData = DB::table("\165\x73\145\162\x73")->where("\x73\164\x61\x74\165\x73", '')->where("\x72\x6f\154\145", "\x70\162\157\x66")->get(); return DataTables::of($UsersData)->addIndexColumn()->addColumn("\163\x65\154\145\x63\x74", function ($row) { $btn = "\74\x69\156\160\x75\x74\x20\x74\x79\x70\x65\x20\75\x20\42\x63\150\x65\x63\x6b\142\157\170\x22\x20\144\141\x74\141\55\x69\144\40\75\x20\42" . $row->id . "\x22\40\143\x6c\x61\163\x73\x20\x3d\40\x22\x63\150\x65\143\153\142\x6f\x78\x22\x20\156\141\x6d\x65\x3d\42\x61\x63\143\x6f\165\156\164\x45\156\x72\x6f\154\154\x5b\x5d\42\40\166\x61\x6c\x75\145\40\x3d\x20\42" . $row->id . "\x22\x3e"; return $btn; })->rawColumns(array("\x73\x65\154\145\143\x74"))->make(true); } public function StudentFetch() { $UsersData = DB::table("\165\x73\x65\162\163")->where("\163\x74\141\164\x75\x73", '')->where("\x72\157\154\145", "\x73\164\165\144\145\156\164")->get(); return DataTables::of($UsersData)->addIndexColumn()->addColumn("\x73\145\154\145\143\x74", function ($row) { $btn = "\74\x69\156\x70\165\x74\x20\x74\x79\x70\145\x20\75\40\42\143\x68\145\x63\153\142\x6f\170\42\40\144\141\164\141\x2d\x69\144\x20\75\x20\x22" . $row->id . "\42\x20\x63\x6c\x61\x73\163\40\75\x20\42\x63\150\145\x63\x6b\142\x6f\170\42\40\x6e\x61\x6d\x65\75\x22\x61\x63\x63\157\x75\x6e\x74\x45\x6e\x72\x6f\x6c\x6c\133\135\x22\40\x76\141\x6c\x75\145\x20\x3d\40\42" . $row->id . "\x22\x3e"; return $btn; })->rawColumns(array("\x73\x65\154\x65\x63\164"))->make(true); } public function ExperimentPending() { $ExperimentData = DB::table("\x63\x6c\141\163\163\x5f\x65\170\145\x73")->join("\x63\x6c\x61\x73\x73\145\x73", "\x63\154\141\163\163\137\x65\170\145\x73\56\143\154\x61\163\x73\137\151\144", "\x3d", "\x63\x6c\x61\x73\163\145\x73\x2e\x69\144")->whereNotNull("\x63\154\x61\x73\163\137\x65\170\x65\x73\x2e\x73\164\x61\x74\x75\163")->select("\x63\154\x61\x73\163\145\x73\56\143\154\x61\x73\163\x6e\x61\155\145", "\x63\x6c\141\x73\163\137\x65\x78\145\163\56\x2a")->get(); return DataTables::of($ExperimentData)->addIndexColumn()->addColumn("\x66\151\x6c\x65", function ($row) { $file = "\x3c\x61\x20\150\x72\x65\x66\x3d\x22\57\105\170\160\x65\162\151\x6d\x65\156\164\x52\x65\x70\x6f\162\164\57" . $row->ex_file . "\x22\76" . $row->ex_file . "\74\x2f\x61\76"; return $file; })->addColumn("\x61\143\x74\x69\157\156", function ($row) { $btn = "\x3c\x64\151\x76\x20\143\x6c\141\x73\x73\x3d\42\142\x74\156\55\147\162\157\165\160\x20\x64\x72\157\x70\x6c\x65\x66\164\42\x3e\xa\x20\40\x20\40\x20\x20\x20\40\40\x20\40\x20\x20\x20\40\x20\74\x62\165\164\164\x6f\x6e\x20\164\x79\160\x65\75\x22\x62\165\x74\x74\x6f\156\x22\x20\x63\x6c\x61\x73\163\75\42\x62\x74\156\40\142\164\156\55\160\162\151\x6d\x61\x72\171\x20\144\162\157\x70\144\157\167\156\x2d\x74\157\147\147\x6c\145\42\40\144\141\164\x61\55\164\x6f\147\147\x6c\145\x3d\x22\x64\x72\157\160\144\x6f\167\x6e\42\40\141\x72\151\x61\55\150\141\163\x70\x6f\160\165\160\x3d\42\164\162\165\x65\x22\40\x61\x72\x69\141\55\x65\170\160\x61\156\x64\x65\144\75\x22\x66\x61\x6c\163\145\x22\76\xa\x20\40\x20\40\x20\x20\40\40\x20\40\40\x20\40\40\40\x20\x53\145\164\x74\151\x6e\147\163\xa\40\x20\x20\40\x20\x20\40\x20\40\x20\40\40\x20\x20\x20\40\74\57\x62\165\x74\164\157\156\76\12\x20\x20\x20\x20\x20\40\x20\x20\40\x20\40\x20\x20\40\40\40\74\144\x69\x76\40\143\x6c\141\163\x73\75\x22\144\162\x6f\160\144\x6f\167\156\55\x6d\x65\156\x75\x20\144\x72\157\160\x6c\145\146\x74\42\76\xa\40\x20\x20\x20\x20\40\40\x20\x20\40\x20\x20\40\x20\x20\x20\40\x20\x3c\141\x20\x63\x6c\141\163\163\x3d\42\144\x72\x6f\160\144\157\167\x6e\x2d\x69\x74\145\155\x20\141\x63\164\151\x76\x61\164\145\x42\164\x6e\x22\x20\x68\162\x65\x66\75\x22\43\42\x20\144\x61\164\141\55\151\144\x3d\42" . $row->id . "\x22\x3e\101\143\x74\x69\166\141\x74\145\x20\x45\170\x70\x65\x72\x69\155\x65\156\164\x3c\57\141\x3e\xa\40\40\x20\x20\40\40\x20\40\x20\x20\x20\x20\x20\x20\40\40\x20\40\x3c\141\x20\143\154\x61\163\x73\75\x22\144\x72\x6f\160\144\157\x77\156\x2d\x69\164\145\x6d\40\x64\x65\154\x65\164\145\102\164\156\x22\40\x68\162\x65\146\x3d\x22\x23\x22\x20\144\141\x74\141\55\x69\x64\75\x22" . $row->id . "\x22\76\104\x69\x73\155\x69\163\163\40\105\170\160\145\x72\151\x6d\145\156\164\x3c\57\x61\76\xa\x20\40\40\40\40\40\40\40\x20\x20\40\x20\x20\40\x20\x20\74\x2f\x64\x69\166\x3e\xa\40\40\x20\x20\x20\x20\40\40\40\40\40\x20\40\40\x3c\57\x64\151\166\76"; return $btn; })->rawColumns(array("\146\151\x6c\145", "\141\143\x74\x69\157\156"))->make(true); } public function UserPending() { $UsersData = DB::table("\x75\x73\x65\162\163")->where("\x73\164\x61\x74\x75\163", "\x70\145\x6e\x64\151\156\x67")->get(); return DataTables::of($UsersData)->addIndexColumn()->addColumn("\141\x63\164\x69\157\156", function ($row) { $btn = "\74\x64\x69\166\x20\143\x6c\141\163\163\75\42\142\164\x6e\x2d\x67\162\x6f\165\160\40\144\162\x6f\160\154\x65\x66\164\42\76\xa\40\x20\x20\x20\x20\40\40\x20\40\x20\x20\40\40\40\40\40\74\x62\x75\164\164\x6f\156\x20\x74\171\160\x65\x3d\42\x62\x75\x74\164\x6f\x6e\42\40\143\x6c\x61\x73\163\75\42\x62\164\x6e\x20\x62\164\156\55\x70\x72\151\155\x61\162\x79\40\144\162\x6f\x70\144\x6f\167\x6e\x2d\x74\157\147\x67\x6c\145\x22\x20\144\x61\x74\141\55\164\x6f\x67\147\x6c\145\75\42\144\162\157\x70\x64\x6f\x77\x6e\42\x20\x61\x72\151\141\55\150\141\163\x70\157\160\x75\x70\x3d\x22\164\162\165\x65\x22\40\141\162\x69\x61\x2d\145\x78\160\x61\x6e\x64\145\144\75\42\x66\141\x6c\x73\145\42\x3e\12\x20\x20\x20\x20\x20\40\x20\x20\x20\40\x20\x20\x20\x20\40\40\123\145\x74\164\151\x6e\147\x73\12\40\x20\x20\40\40\40\x20\x20\x20\40\x20\40\x20\x20\40\40\74\x2f\x62\x75\164\x74\157\156\76\12\x20\40\40\x20\x20\40\x20\x20\40\x20\x20\x20\x20\x20\40\x20\x3c\x64\151\x76\40\143\x6c\x61\x73\163\x3d\42\x64\x72\x6f\x70\144\157\167\x6e\x2d\155\x65\x6e\165\40\x64\x72\157\x70\x6c\145\x66\164\42\x3e\xa\x20\x20\x20\x20\40\40\40\x20\40\40\x20\40\x20\40\40\40\40\x20\74\x61\40\143\154\x61\x73\x73\x3d\x22\x64\162\157\x70\144\x6f\x77\156\55\x69\x74\x65\x6d\x20\x61\143\164\151\x76\x61\164\x65\102\164\x6e\x22\x20\150\162\x65\x66\75\42\43\42\x20\144\x61\x74\x61\x2d\x69\x64\x3d\42" . $row->id . "\42\76\x41\143\x74\151\x76\141\164\x65\x20\x41\x63\x63\x6f\x75\x6e\x74\x3c\x2f\x61\x3e\xa\x20\40\40\x20\x20\x20\40\40\40\x20\40\40\40\x20\40\40\40\x20\74\x61\x20\x63\x6c\x61\163\x73\x3d\42\x64\x72\157\160\144\x6f\167\156\x2d\151\164\x65\155\x20\x64\x65\x6c\145\164\145\x42\x74\x6e\x22\x20\x68\x72\x65\x66\x3d\x22\x23\x22\40\x64\x61\x74\x61\55\151\x64\75\42" . $row->id . "\x22\x3e\104\x69\x73\155\x69\163\163\x20\x41\143\x63\157\x75\156\164\x3c\57\x61\x3e\12\x20\x20\40\40\40\x20\x20\40\x20\x20\40\x20\40\40\40\x20\x3c\57\x64\151\166\x3e\12\40\x20\40\x20\40\x20\40\40\40\40\x20\40\40\x20\74\x2f\x64\151\x76\76"; return $btn; })->rawColumns(array("\141\143\x74\x69\157\156"))->make(true); } public function RubricArchiveList() { $archiveData = DB::table("\x72\x75\x62\x72\151\143\x73")->where("\163\x74\141\164\165\x73", "\141\x72\x63\150\x69\166\145")->get(); return DataTables::of($archiveData)->addIndexColumn()->addColumn("\x61\143\164\x69\157\156", function ($row) { $btn = "\74\x64\151\166\x20\143\x6c\141\x73\163\x3d\42\142\164\x6e\x2d\x67\x72\x6f\x75\160\x20\x64\x72\157\x70\x6c\145\146\164\x22\x3e\12\x20\40\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\40\x20\40\74\142\165\164\x74\x6f\x6e\40\164\x79\160\145\75\x22\142\165\x74\164\157\x6e\42\x20\143\154\x61\163\x73\x3d\x22\142\164\156\40\142\164\x6e\55\x70\x72\x69\155\x61\162\171\x20\x64\x72\157\x70\x64\157\x77\x6e\55\x74\157\x67\x67\x6c\145\x22\40\x64\x61\164\x61\x2d\x74\x6f\x67\x67\x6c\145\75\42\x64\x72\x6f\x70\144\x6f\167\x6e\42\40\x61\162\151\x61\55\x68\x61\163\160\157\160\x75\160\75\x22\x74\162\x75\x65\x22\x20\x61\162\x69\141\55\145\x78\x70\x61\156\144\x65\x64\x3d\x22\x66\141\154\x73\145\42\76\xa\40\x20\x20\x20\40\x20\40\40\40\x20\40\x20\x20\x20\x20\x20\x53\145\164\x74\151\x6e\x67\163\xa\x20\x20\40\40\40\40\x20\40\x20\40\40\x20\40\40\40\x20\74\x2f\x62\x75\x74\164\157\156\76\xa\40\40\40\x20\40\x20\x20\x20\x20\x20\40\x20\x20\40\40\40\x3c\x64\151\166\x20\143\x6c\141\163\x73\75\42\144\162\157\x70\144\x6f\167\x6e\x2d\155\145\156\x75\40\144\162\x6f\160\154\145\146\x74\42\x3e\xa\x20\40\40\40\x20\x20\40\40\40\40\40\x20\40\40\x20\40\x20\40\74\141\x20\143\x6c\x61\163\163\x3d\x22\x64\x72\157\x70\x64\x6f\167\156\55\x69\164\145\x6d\x20\162\x65\x73\x74\x6f\x72\145\102\x74\x6e\42\x20\x68\x72\x65\x66\75\x22\43\42\x20\144\x61\x74\141\55\x69\x64\x3d\x22" . $row->id . "\x22\x3e\122\x65\163\164\x6f\x72\145\40\122\165\142\162\151\143\x3c\57\x61\x3e\12\x20\x20\x20\x20\40\x20\x20\40\40\40\x20\40\40\40\x20\x20\x3c\x2f\144\151\166\76\12\x20\40\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\76"; return $btn; })->rawColumns(array("\141\x63\x74\x69\157\156"))->make(true); } public function UserArchive() { $UsersData = DB::table("\165\x73\x65\x72\x73")->where("\163\x74\141\x74\165\163", "\x61\x72\x63\x68\151\166\x65")->get(); return DataTables::of($UsersData)->addIndexColumn()->addColumn("\x61\143\164\x69\x6f\156", function ($row) { $btn = "\74\x64\151\166\x20\x63\154\x61\x73\163\x3d\x22\142\164\156\x2d\x67\162\x6f\165\160\x20\144\162\x6f\160\x6c\x65\146\x74\x22\x3e\12\40\x20\x20\40\40\x20\40\x20\40\40\40\40\40\x20\x20\40\74\x62\x75\164\x74\x6f\156\40\x74\171\160\x65\75\x22\142\165\x74\x74\157\156\x22\x20\143\x6c\141\163\163\x3d\x22\x62\x74\156\x20\x62\x74\156\x2d\x70\x72\151\155\x61\x72\x79\40\144\162\157\160\x64\x6f\167\156\x2d\x74\157\x67\x67\154\145\42\40\144\x61\x74\141\55\164\157\x67\x67\x6c\x65\75\42\144\x72\157\160\x64\157\x77\156\x22\40\141\x72\x69\141\x2d\x68\141\x73\x70\x6f\160\x75\x70\x3d\42\x74\162\165\145\x22\40\x61\x72\x69\x61\55\x65\170\160\141\156\x64\x65\x64\x3d\x22\146\x61\x6c\163\x65\42\76\xa\40\40\40\x20\x20\40\40\x20\40\x20\x20\x20\x20\40\40\x20\123\145\x74\164\151\x6e\x67\x73\12\x20\x20\x20\x20\x20\40\40\40\40\x20\x20\x20\x20\x20\40\x20\74\x2f\142\165\164\x74\x6f\x6e\x3e\12\x20\40\40\40\x20\40\40\40\x20\40\40\x20\40\40\40\x20\x3c\x64\x69\x76\40\x63\154\141\x73\x73\x3d\x22\x64\162\157\x70\144\157\x77\156\x2d\155\145\x6e\x75\40\144\x72\x6f\x70\x6c\x65\x66\164\42\x3e\xa\x20\40\x20\40\x20\40\40\x20\40\x20\x20\x20\x20\x20\40\40\x20\40\x3c\141\x20\x63\x6c\x61\163\x73\x3d\42\x64\x72\157\x70\144\157\167\x6e\55\x69\x74\145\x6d\x20\x72\145\163\164\157\x72\145\x42\x74\x6e\42\x20\150\162\x65\146\75\x22\43\42\x20\144\x61\164\x61\55\x69\144\x3d\42" . $row->id . "\x22\76\x52\x65\x73\164\x6f\162\x65\x20\101\x63\143\x6f\165\156\164\x3c\57\x61\76\xa\x20\40\40\40\40\40\x20\40\x20\40\40\40\x20\40\x20\x20\x20\40\74\141\x20\x63\154\x61\163\x73\75\x22\x64\162\x6f\160\144\x6f\x77\156\55\151\x74\x65\155\x20\x64\145\154\145\164\x65\102\164\156\x22\40\x68\x72\x65\146\75\42\43\x22\40\144\141\x74\141\x2d\x69\x64\75\x22" . $row->id . "\42\76\104\x65\154\145\164\x65\x20\x41\x63\x63\x6f\x75\156\x74\74\57\x61\76\xa\x20\40\40\x20\40\x20\40\x20\40\40\x20\40\40\40\x20\x20\x3c\x2f\x64\x69\x76\x3e\12\x20\x20\40\x20\x20\40\40\x20\x20\x20\x20\40\x20\x20\x3c\x2f\144\x69\x76\76"; return $btn; })->rawColumns(array("\141\x63\164\x69\157\156"))->make(true); } public function ClassArchiveList() { $ClassesData = DB::table("\143\x6c\x61\x73\163\145\163")->where("\x73\x74\x61\x74\x75\x73", "\141\162\143\x68\x69\166\x65")->get(); return DataTables::of($ClassesData)->addIndexColumn()->addColumn("\x61\143\164\151\x6f\x6e", function ($row) { $btn = "\74\x64\151\166\x20\143\x6c\x61\163\x73\x3d\x22\x62\x74\156\55\x67\162\x6f\x75\160\40\x64\162\157\160\154\145\146\x74\42\76\12\40\40\40\x20\40\x20\40\x20\x20\40\40\x20\40\x20\40\40\x3c\142\165\x74\164\x6f\x6e\x20\x74\171\x70\x65\x3d\x22\x62\165\164\x74\x6f\x6e\x22\40\x63\154\141\x73\163\75\42\142\164\156\40\142\x74\156\x2d\x70\162\151\155\141\x72\171\40\144\x72\x6f\160\x64\x6f\167\156\55\x74\x6f\x67\147\x6c\145\x22\40\x64\x61\x74\x61\55\164\157\x67\147\x6c\x65\75\x22\x64\x72\157\x70\x64\x6f\167\156\42\40\141\162\151\x61\55\150\141\163\x70\x6f\x70\165\x70\75\42\164\162\165\145\42\x20\x61\162\151\141\55\145\x78\x70\x61\x6e\144\x65\144\75\x22\146\x61\154\163\x65\x22\x3e\12\x20\40\x20\x20\40\x20\x20\40\x20\40\x20\40\x20\40\40\40\123\x65\164\x74\x69\156\147\x73\xa\40\x20\40\x20\x20\40\x20\40\x20\40\x20\x20\40\40\x20\40\x3c\57\142\165\164\164\157\x6e\76\12\40\x20\40\x20\x20\x20\x20\40\x20\x20\40\x20\x20\x20\40\x20\x3c\x64\x69\x76\40\143\154\x61\163\163\75\42\144\162\157\160\144\x6f\x77\x6e\55\155\x65\x6e\x75\x20\x64\x72\x6f\160\154\145\146\x74\x22\76\12\40\x20\40\40\x20\x20\40\x20\40\40\40\40\x20\x20\x20\40\40\40\74\x61\x20\143\x6c\x61\163\163\x3d\42\x64\x72\x6f\160\144\x6f\x77\x6e\x2d\151\x74\145\155\40\162\145\163\164\x6f\162\x65\x42\164\x6e\x22\x20\150\162\145\x66\75\42\43\x22\40\144\141\x74\x61\55\151\144\x3d\42" . $row->id . "\x22\x3e\x52\145\163\x74\x6f\162\145\x20\103\154\141\163\x73\x3c\x2f\141\76\12\x20\x20\x20\40\x20\x20\x20\40\40\x20\x20\x20\40\40\x20\x20\40\x20\x3c\141\x20\x63\154\x61\163\163\75\x22\x64\162\157\x70\144\x6f\x77\x6e\x2d\151\x74\x65\x6d\x20\144\x65\x6c\x65\164\x65\102\164\156\42\40\x68\x72\x65\146\75\x22\43\42\40\x64\141\164\141\55\151\x64\x3d\42" . $row->id . "\x22\76\104\x65\154\x65\164\145\x20\103\154\x61\x73\x73\74\57\141\76\xa\x20\x20\x20\x20\40\40\40\40\40\x20\40\x20\x20\40\40\x20\x3c\x2f\144\151\166\x3e\12\x20\x20\40\x20\x20\40\40\40\x20\x20\40\40\40\40\x3c\57\144\x69\x76\76"; return $btn; })->addColumn("\x73\x63\x68\x65\144\x75\x6c\x65", function ($row) { $d1 = $row->m === "\x74\162\165\x65"; $d2 = $row->t === "\x74\162\165\x65"; $d3 = $row->w === "\164\x72\165\145"; $d4 = $row->th === "\x74\x72\165\x65"; $d5 = $row->f === "\164\162\x75\x65"; $d6 = $row->sat === "\x74\x72\165\x65"; $d7 = $row->s === "\164\x72\165\x65"; $start = date("\x68\72\x69\x41", strtotime($row->start)); $end = date("\x68\x3a\x69\101", strtotime($row->end)); $schedule = ''; if ($d1) { $schedule .= "\x4d\40"; } if ($d2) { $schedule .= "\x54\x20"; } if ($d3) { $schedule .= "\127\x20"; } if ($d4) { $schedule .= "\x54\x48\x20"; } if ($d5) { $schedule .= "\106\40"; } if ($d6) { $schedule .= "\123\141\x74\x20"; } if ($d7) { $schedule .= "\123\40"; } return $schedule . $start . "\40\x2d\40" . $end; })->rawColumns(array("\141\x63\164\x69\x6f\x6e"))->make(true); } public function UserAccountDeleteAction(Request $request) { $id = $request->UserID; Users::where("\151\x64", $id)->delete(); return response()->json(array("\x61\160\160\162\x6f\x76\145\x64" => "\101\x63\x63\x6f\165\156\x74\x20\x68\x61\163\40\142\x65\145\x6e\x20\144\145\x6c\x65\x74\145\x64\x20\x73\165\143\143\145\x73\163\146\165\x6c\154\x79\56")); } public function RubricArchive(Request $request) { try { $id = $request->UserID; $user = rubrics::findOrFail($id); $user->status = "\141\162\x63\x68\x69\166\x65"; $user->updated_by = Session::get("\x6e\141\155\145"); $user->save(); return response()->json(array("\141\162\x63\x68\x69\x76\145\144" => "\122\x75\142\162\151\x63\x20\150\x61\x73\x20\142\x65\145\x6e\40\141\162\143\150\151\x76\145\x64\40\163\165\x63\143\x65\163\163\146\165\154\x6c\171\56")); } catch (ModelNotFoundException $exception) { return response()->json(array("\145\x72\162\157\162" => "\x52\165\x62\x72\151\x63\40\156\157\164\x20\146\x6f\165\x6e\144\x2e")); } } public function UserAccountArchive(Request $request) { try { $id = $request->UserID; $user = Users::findOrFail($id); $user->status = "\141\162\x63\150\151\166\145"; $user->updated_by = Session::get("\156\x61\155\145"); $user->save(); return response()->json(array("\x61\x72\143\x68\x69\x76\x65\x64" => "\101\x63\143\x6f\165\x6e\x74\x20\x68\x61\x73\x20\x62\x65\145\x6e\x20\x61\x72\143\x68\151\166\145\x64\x20\163\165\143\x63\145\x73\x73\x66\165\154\x6c\x79\56")); } catch (ModelNotFoundException $exception) { return response()->json(array("\145\162\x72\157\x72" => "\125\x73\x65\x72\x20\156\x6f\x74\x20\146\157\165\156\144\56")); } } public function ClassArchive(Request $request) { try { $id = $request->UserID; $user = Classes::findOrFail($id); $user->status = "\x61\x72\143\150\x69\166\145"; $user->updated_by = Session::get("\156\141\x6d\x65"); $user->save(); return response()->json(array("\141\162\x63\150\x69\166\145\x64" => "\x43\x6c\x61\x73\x73\40\x68\141\163\40\142\x65\145\156\x20\141\162\143\x68\151\x76\x65\x64\x20\x73\x75\143\143\145\163\x73\x66\165\x6c\154\x79\x2e")); } catch (ModelNotFoundException $exception) { return response()->json(array("\145\x72\162\x6f\x72" => "\103\x6c\141\x73\163\x20\156\x6f\164\x20\146\157\165\156\x64\x2e")); } } public function UnenrollAccount(Request $request) { try { $id = $request->UserID; $data = DB::table("\143\154\141\x73\163\x65\x73\x5f\x61\163\x69\x67\156\163")->select("\143\154\141\163\x73\137\x69\144", "\165\x73\145\x72\137\151\x64")->where("\151\x64", $id)->first(); $class_id = $data->class_id; $user_id = $data->user_id; $experiment = ExperimentReport::where("\x75\163\x65\162\137\x69\x64", $user_id)->where("\x63\154\141\163\x73\x5f\151\144", $class_id)->delete(); $user = ClassesAsign::where("\151\144", $id)->delete(); return response()->json(array("\x75\x6e\145\x6e\162\x6f\x6c\154\145\144" => "\101\x63\x63\x6f\x75\156\164\40\150\141\163\x20\142\x65\145\x6e\40\x75\156\145\x6e\162\x6f\x6c\x6c\145\x64\x20\163\x75\143\143\145\163\x73\146\165\x6c\154\171\x2e")); } catch (ModelNotFoundException $exception) { return response()->json(array("\x65\x72\x72\x6f\162" => "\x43\x6c\x61\x73\163\40\156\x6f\x74\x20\x66\157\x75\156\144\56")); } } public function UnenrollClass(Request $request) { try { $id = $request->classID; $class = ClassesAsign::where("\143\x6c\x61\x73\x73\x5f\x69\x64", $id)->delete(); $experiment = ExperimentReport::where("\143\x6c\141\x73\x73\137\x69\144", $id)->delete(); return response()->json(array("\165\x6e\x65\156\x72\x6f\154\154\x65\144" => "\x41\154\x6c\x20\x41\143\143\x6f\x75\156\x74\163\40\x53\x75\x63\143\145\x73\163\146\165\154\x6c\x79\40\x55\156\145\x6e\x72\157\154\154\145\144\56")); } catch (ModelNotFoundException $exception) { return response()->json(array("\x65\x72\162\x6f\162" => "\103\x6c\141\x73\x73\40\x6e\157\x74\40\x66\x6f\x75\x6e\x64\x2e")); } } public function ExperimentActivation(Request $request) { try { $id = $request->UserID; $user = classEx::findOrFail($id); $user->status = null; $user->updated_by = Session::get("\156\141\x6d\x65"); $user->save(); return response()->json(array("\x72\145\x73\x74\x6f\162\x65\144" => "\105\x78\x70\x65\162\x69\155\145\156\164\40\150\x61\163\x20\x62\x65\x65\x6e\x20\x61\x63\164\151\x76\x61\x74\145\x64\x20\163\165\143\143\x65\x73\x73\146\165\x6c\154\x79\x2e")); } catch (ModelNotFoundException $exception) { return response()->json(array("\145\162\162\157\162" => "\x45\170\160\x65\162\151\155\x65\156\x74\40\x6e\157\x74\x20\x66\x6f\x75\156\x64\x2e")); } } public function AccountActivation(Request $request) { try { $id = $request->UserID; $user = Users::findOrFail($id); $user->status = ''; $user->updated_by = Session::get("\x6e\x61\155\x65"); $user->save(); return response()->json(array("\x72\x65\163\x74\x6f\x72\145\144" => "\x41\x63\x63\x6f\x75\156\164\40\150\x61\x73\x20\x62\x65\x65\156\40\141\x63\164\x69\166\141\164\145\144\40\163\x75\143\x63\145\163\163\x66\x75\x6c\x6c\171\x2e")); } catch (ModelNotFoundException $exception) { return response()->json(array("\x65\x72\x72\x6f\x72" => "\x55\163\145\162\40\156\x6f\x74\40\146\157\x75\156\x64\56")); } } public function RubricRestoration(Request $request) { try { $id = $request->UserID; $user = rubrics::findOrFail($id); $user->status = null; $user->updated_by = Session::get("\x6e\x61\x6d\145"); $user->save(); return response()->json(array("\x72\x65\x73\x74\157\162\145\144" => "\122\165\x62\x72\x69\143\x20\150\x61\163\x20\142\145\x65\156\40\162\145\163\164\157\x72\145\x64\40\x73\x75\143\143\145\163\163\x66\x75\x6c\x6c\x79\x2e")); } catch (ModelNotFoundException $exception) { return response()->json(array("\145\162\162\157\162" => "\125\163\x65\x72\x20\x6e\157\x74\40\x66\157\x75\x6e\x64\x2e")); } } public function AccountRestoration(Request $request) { try { $id = $request->UserID; $user = Users::findOrFail($id); $user->status = ''; $user->updated_by = Session::get("\156\x61\155\x65"); $user->save(); return response()->json(array("\x72\x65\x73\x74\x6f\x72\145\144" => "\x41\143\143\x6f\165\156\164\x20\x68\141\x73\x20\x62\x65\145\156\40\x72\145\x73\x74\157\x72\x65\x64\40\163\x75\x63\143\x65\163\163\146\165\154\154\x79\x2e")); } catch (ModelNotFoundException $exception) { return response()->json(array("\145\x72\162\157\x72" => "\x55\x73\145\x72\40\x6e\x6f\x74\x20\x66\157\165\x6e\144\56")); } } public function ClassRestoration(Request $request) { try { $id = $request->UserID; $user = Classes::findOrFail($id); $user->status = ''; $user->updated_by = Session::get("\x6e\x61\155\x65"); $user->save(); return response()->json(array("\162\145\x73\164\x6f\162\145\x64" => "\x41\143\143\157\165\x6e\x74\40\x68\x61\x73\x20\142\x65\145\156\x20\x72\x65\x73\164\157\162\145\x64\40\x73\x75\143\143\x65\x73\x73\146\165\x6c\x6c\x79\x2e")); } catch (ModelNotFoundException $exception) { return response()->json(array("\145\x72\x72\x6f\162" => "\125\x73\145\x72\40\156\157\x74\40\x66\157\165\156\x64\56")); } } public function UserPasswordReset(Request $request) { try { $id = $request->UserID; $user = Users::findOrFail($id); $user->password = Hash::make("\x53\x6d\x61\162\164\x6c\x61\x62\x32\60\62\63\x21"); $user->pass_string = "\123\155\x61\162\164\154\x61\142\62\x30\x32\63\x21"; $user->save(); return response()->json(array("\x72\145\x73\x65\164\x74\145\144" => "\x50\x61\163\x73\x77\157\162\x64\40\162\x65\x73\145\164\x20\x73\165\x63\x63\x65\x73\x73\146\x75\x6c\x6c\x79\x21")); } catch (ModelNotFoundException $exception) { return response()->json(array("\145\x72\x72\157\x72" => "\x55\163\145\x72\x20\156\157\164\x20\x66\x6f\x75\x6e\144\56")); } } public function UserEditbtnFetch(Request $request) { $data = Users::find($request->Uupdatebutton); return response()->json(array("\x55\x73\145\x72\x44\x61\x74\141" => $data)); } public function EditUserAccount(Request $request) { $validated = Validator::make($request->all(), array("\165\x73\145\x72\x6e\141\x6d\145" => "\x72\145\x71\x75\x69\162\x65\x64", "\156\x61\x6d\145" => "\162\145\161\x75\151\x72\x65\x64", "\x72\157\x6c\x65" => "\x72\x65\161\165\x69\x72\x65\x64", "\165\x73\145\162\x49\104" => "\162\x65\x71\165\x69\x72\145\144", "\145\x6d\x61\151\154" => "\x72\x65\x71\165\151\162\145\x64"), array("\x75\163\x65\x72\x6e\141\155\x65\56\x72\x65\x71\x75\x69\162\x65\144" => "\x54\150\145\x20\x55\x73\x65\162\x6e\141\155\x65\x20\146\x69\145\x6c\x64\x20\151\163\x20\x72\145\161\165\x69\162\145\x64", "\x6e\x61\155\x65\56\x72\145\x71\x75\151\162\x65\x64" => "\124\150\x65\x20\116\141\155\145\x20\x66\x69\145\154\144\40\151\163\x20\162\145\x71\x75\x69\x72\x65\144", "\162\x6f\x6c\145\x2e\x72\x65\x71\x75\151\x72\x65\x64" => "\x54\150\x65\x20\x52\x6f\154\145\40\x66\x69\145\x6c\x64\40\x69\163\x20\x72\x65\x71\165\x69\x72\x65\144", "\x65\155\x61\x69\x6c\56\x72\145\x71\x75\x69\162\145\x64" => "\124\150\145\x20\105\155\141\151\x6c\40\146\x69\x65\x6c\144\x20\151\x73\x20\162\145\161\x75\x69\x72\x65\144", "\165\163\x65\x72\111\104\56\x72\145\x71\x75\x69\x72\x65\x64" => "\x54\x68\145\x72\145\40\167\x61\x73\x20\156\157\x20\x61\x63\143\157\165\156\x74\x20\x68\151\147\150\154\x69\147\x68\164\145\144\54\x20\x50\x6c\x65\141\x73\145\x20\x72\x65\143\x6c\x69\143\153\x20\164\x68\x65\40\x45\x64\x69\164\40\142\165\164\x74\x6f\x6e")); if ($validated->fails()) { return response()->json(array("\145\162\x72\157\x72\163" => $validated->errors()->first())); } else { $editUser = Users::find($request->userID); $editUser->username = $request->username; $editUser->name = $request->name; $editUser->role = $request->role; $editUser->user_email = $request->email; $editUser->save(); return response()->json(array("\x55\x73\145\x72\x45\x64\151\x74\145\144" => "\x55\163\145\162\40\101\143\143\157\x75\156\x74\40\x68\x61\x73\40\142\x65\145\156\40\165\x70\x64\141\x74\145\144\56")); } } public function getClass() { $data = DB::table("\x63\154\x61\163\x73\145\163")->whereNull("\162\x75\x62\162\151\143\x5f\x61\x73\163\x69\147\156\145\144")->get(); return view("\x73\171\x73\164\x65\155\x70\x61\147\145\x73\56\x72\x75\x62\162\151\x63\55\142\157\x6f\153", array("\143\154\141\x73\163\x44\141\x74\141" => $data)); } public function displayRubric($rubric_id, $class_id, $act_id, $user_id) { $checkIfGrade = DB::table("\x72\165\142\162\151\143\x5f\x67\x72\x61\x64\145\163")->where("\151\x64\x5f\x72\x75\x62\x72\151\x63", $rubric_id)->where("\x75\137\x69\x64", $user_id)->where("\x63\x6c\x61\163\x73\137\151\x64", $class_id)->where("\141\143\x74\x5f\x69\144", $act_id)->where("\164\157\164\x61\154\x5f\x73\143\x6f\162\145", "\41\75", "\116\x2f\101")->first(); $activityData = DB::table("\x63\x6c\x61\x73\163\137\145\170\x65\x73")->where("\143\154\141\163\x73\x5f\151\144", $class_id)->where("\151\x64", $act_id)->first(); $rubricData = DB::table("\162\x75\142\162\151\x63\x73")->where("\151\x64", $rubric_id)->get(); $partData = DB::table("\162\165\142\162\151\x63\137\160\141\x72\x74\163")->where("\x72\x75\x62\162\151\143\137\151\144", $rubric_id)->get(); $criteriaData = DB::table("\162\x75\x62\x72\151\x63\x5f\143\x72\151\164\x65\162\151\x61\163")->where("\x72\x75\142\x72\151\143\137\x69\144", $rubric_id)->get(); $classData = Classes::find($class_id); $userData = Users::find($user_id); $checkUserIDClass = ClassesAsign::where("\143\x6c\141\163\163\x5f\x69\144", $class_id)->where("\x75\163\x65\162\137\151\x64", $user_id)->first(); if ($checkIfGrade) { return redirect("\x2f\x70\162\x65\166\151\x65\x77\55\147\x72\141\144\145\x2f" . $rubric_id . "\x2f" . $class_id . "\57" . $act_id . "\57" . $user_id); } else { if (!$classData) { return redirect("\x2f\144\x61\163\150\142\x6f\x61\x72\x64"); } else { if (!$checkUserIDClass) { return redirect("\x2f\144\x61\x73\150\142\x6f\141\x72\144"); } else { if (!$rubricData->isEmpty()) { return view("\163\171\x73\164\x65\x6d\x70\x61\x67\145\x73\x2e\x72\165\x62\x72\x69\143\x2d\147\162\x61\x64\x65", array("\x64\141\x74\x61" => $rubricData, "\x72\x75\142\x72\x69\143\137\x69\x64" => $rubric_id, "\x70\x61\x72\164\104\x61\164\141" => $partData, "\143\x72\151\164\145\x72\x69\x61\104\x61\164\141" => $criteriaData, "\x66\165\154\x6c\x6e\x61\x6d\x65" => $userData->name, "\x73\164\165\144\x65\x6e\164\111\104" => $userData->id, "\x63\154\x61\163\163\156\141\x6d\x65" => $classData->classname, "\x61\143\164\151\x76\151\164\171\x4e\141\x6d\145" => $activityData->ex_name)); } else { return redirect("\x2f\x64\141\x73\x68\x62\157\141\162\x64"); } } } } } public function displayRubricDB($id) { $rubricData = DB::table("\x72\165\x62\x72\151\x63\163")->where("\151\x64", $id)->get(); $partData = DB::table("\162\165\x62\x72\x69\143\x5f\x70\x61\162\164\x73")->where("\162\165\x62\162\x69\143\x5f\151\x64", $id)->get(); $criteriaData = DB::table("\162\x75\x62\x72\x69\x63\x5f\143\162\151\164\145\162\x69\x61\163")->where("\x72\165\142\162\x69\x63\137\x69\144", $id)->get(); if (!$rubricData->isEmpty()) { return view("\x73\x79\163\x74\x65\x6d\x70\x61\x67\x65\x73\56\x72\165\x62\162\151\143\x2d\x70\162\145\166\x69\145\167", array("\x64\x61\x74\141" => $rubricData, "\160\141\x72\x74\104\x61\164\x61" => $partData, "\x63\162\151\x74\145\x72\151\x61\x44\x61\164\141" => $criteriaData)); } else { return redirect("\x2f\144\141\x73\150\142\157\141\162\x64"); } } public function editRubricDB($id) { $rubricData = DB::table("\x72\x75\x62\x72\x69\x63\x73")->where("\151\144", $id)->get(); $partData = DB::table("\x72\165\x62\x72\151\x63\137\x70\x61\x72\164\163")->where("\162\165\x62\x72\151\x63\x5f\x69\144", $id)->get(); $criteriaData = DB::table("\x72\x75\x62\162\151\x63\x5f\x63\162\151\164\145\x72\x69\141\x73")->where("\162\x75\142\162\151\x63\x5f\151\144", $id)->get(); if (!$rubricData->isEmpty()) { return view("\x73\171\163\x74\x65\x6d\x70\141\147\x65\x73\x2e\145\144\151\164\x2d\x72\x75\142\x72\151\x63", array("\x64\x61\164\x61" => $rubricData, "\x70\x61\x72\x74\104\141\x74\x61" => $partData, "\x63\x72\151\164\x65\x72\x69\x61\x44\x61\x74\x61" => $criteriaData, "\151\144" => $id)); } else { return redirect("\57\x64\x61\163\x68\x62\x6f\x61\x72\144"); } } public function publishGrade(Request $request) { $totalPart = $request->input("\x70\x74\x74\157\x74\x61\154"); $score = $request->input("\146\x69\156\141\x6c\137\x73\143\x6f\162\145"); $feedback = $request->input("\146\145\x65\x64\x62\141\143\x6b\137"); $u_id = $request->input("\163\164\165\x64\145\x6e\164\x5f\151\x64"); $r_id = $request->input("\x72\x75\x62\162\x69\143\x5f\151\x64"); $class_id = $request->input("\x63\154\141\163\x73\x5f\151\144"); $act_id = $request->input("\x61\x63\164\x5f\x69\144"); $act_name = $request->input("\141\143\164\151\166\151\x74\171\x5f\x6e\141\x6d\145"); $check_weight = $request->input("\167\x65\x69\x67\x68\x74\x43\x68\x65\143\x6b"); $validated = Validator::make($request->all(), array("\x70\164\164\x6f\x74\x61\154\56\52" => "\162\x65\x71\x75\151\x72\x65\x64"), array("\x70\x74\164\x6f\x74\141\154\x2e\52\x2e\x72\145\161\165\x69\162\x65\144" => "\x54\x68\145\40\x43\162\x69\x74\x65\x72\151\141\40\x66\x69\x65\x6c\144\40\151\x73\40\x72\x65\161\165\151\x72\145\x64\56")); $checkIfGrade = DB::table("\x72\165\142\162\x69\x63\x5f\x67\x72\141\144\145\163")->where("\x69\144\x5f\162\165\x62\x72\151\x63", $r_id)->where("\165\137\x69\144", $u_id)->where("\143\154\141\163\x73\x5f\x69\144", $class_id)->where("\141\143\164\137\151\x64", $act_id)->where("\x74\157\x74\x61\154\137\163\x63\157\x72\x65", "\x21\75", "\x4e\57\x41")->first(); if ($validated->fails()) { return response()->json(array("\x65\162\162\157\x72\163" => $validated->errors()->first())); } else { if ($checkIfGrade) { return redirect("\x2f\x70\162\x65\166\151\145\167\55\147\x72\x61\x64\x65\x2f" . $r_id . "\x2f" . $class_id . "\x2f" . $act_id . "\57" . $u_id); } else { $conditions = array("\165\x5f\x69\144" => $u_id, "\x69\x64\137\162\165\x62\x72\x69\143" => $r_id, "\143\154\x61\x73\163\137\x69\144" => $class_id, "\141\143\164\x5f\x69\x64" => $act_id); RubricGrades::where($conditions)->update(array("\164\x6f\x74\141\154\x5f\163\x63\x6f\162\x65" => $score, "\162\x61\x6e\x6b" => '', "\x66\x65\x65\144\x62\x61\143\153" => $feedback, "\x61\143\164\x5f\156\x61\155\x65" => $act_name, "\143\x72\145\x61\x74\145\x64\137\142\171" => Session::get("\156\x61\155\x65"))); foreach ($totalPart as $tpindex => $tp) { $savePart = new PartGrades(); $savePart->u_id = $u_id; $savePart->id_rubric = $r_id; $savePart->id_part = $tpindex; $savePart->act_id = $act_id; $savePart->total_pts = $tp; $savePart->avg_pts = null; $savePart->weighted_avg = null; $savePart->save(); } return response()->json(array("\x73\x75\x63\143\x65\x73\x73" => "\107\162\x61\x64\x65\x20\157\146\x20\123\x74\165\x64\x65\156\164\x20\160\x75\142\x6c\x69\163\x68\145\x64\x20\x73\165\143\x63\x65\163\x73\146\165\154\x6c\171\x2e")); } } } public function gradePreview($rubric_id, $class_id, $act_id, $user_id) { $rubricData = RubricGrades::join("\162\x75\x62\x72\x69\143\x73", "\162\165\x62\162\x69\143\137\147\162\x61\144\x65\163\56\151\144\x5f\162\x75\x62\x72\151\143", "\75", "\x72\x75\142\162\x69\143\x73\x2e\151\x64")->where("\x72\x75\142\x72\151\143\163\56\x69\x64", $rubric_id)->where("\x72\165\142\x72\151\143\137\x67\162\141\x64\x65\x73\56\165\x5f\x69\144", $user_id)->where("\x61\x63\x74\137\x69\144", $act_id)->get(); $partData = PartGrades::join("\x72\165\x62\x72\151\x63\137\160\x61\x72\164\163", function ($join) { $join->on("\160\141\x72\x74\137\x67\x72\x61\144\145\x73\56\x69\144\x5f\x72\165\x62\162\x69\x63", "\x3d", "\162\165\x62\x72\151\x63\137\160\x61\x72\164\x73\x2e\162\x75\142\162\x69\143\137\x69\x64")->on("\160\141\162\164\x5f\147\162\x61\144\145\x73\x2e\x69\144\137\x70\x61\x72\x74", "\75", "\162\165\142\x72\x69\143\137\160\x61\162\x74\x73\x2e\x69\x64"); })->where("\x72\x75\x62\162\151\143\137\x70\141\x72\x74\x73\x2e\162\x75\x62\162\x69\x63\137\x69\x64", $rubric_id)->where("\160\141\162\164\137\147\x72\141\x64\145\x73\56\165\137\151\144", $user_id)->where("\x61\143\x74\137\151\x64", $act_id)->get(); $criteriaData = DB::table("\162\165\x62\162\x69\x63\x5f\x63\162\x69\164\x65\162\151\x61\163")->where("\x72\x75\x62\x72\x69\x63\x5f\151\x64", $rubric_id)->get(); $scoreData = DB::table("\x63\162\151\164\x65\162\151\x61\137\x67\x72\x61\144\145\163")->where("\151\144\137\x72\x75\x62\162\x69\x63", $rubric_id)->where("\x75\x5f\151\144", $user_id)->where("\x61\x63\164\x5f\151\x64", $act_id)->get(); $classData = Classes::find($class_id); $userData = Users::find($user_id); $checkUserIDClass = ClassesAsign::where("\143\154\x61\163\x73\x5f\151\x64", $class_id)->where("\165\163\145\x72\137\151\x64", $user_id)->first(); if (!$classData) { return redirect("\57\144\x61\x73\150\x62\x6f\141\x72\144"); } else { if (!$checkUserIDClass) { return redirect("\x2f\144\x61\163\x68\x62\157\141\x72\x64"); } else { if (!$rubricData->isEmpty()) { return view("\x73\171\x73\164\145\155\x70\x61\x67\145\x73\x2e\x67\162\x61\x64\145\55\160\x72\x65\x76\x69\145\167", array("\144\141\x74\141" => $rubricData, "\162\x75\x62\162\151\x63\137\151\x64" => $rubric_id, "\x70\141\162\x74\x44\141\164\x61" => $partData, "\x63\162\151\164\145\x72\x69\141\104\141\164\141" => $criteriaData, "\163\143\157\x72\145\104\x61\164\141" => $scoreData, "\146\x75\154\154\x6e\141\155\145" => $userData->name, "\x73\x74\x75\x64\145\156\x74\x49\104" => $userData->id, "\143\154\x61\163\x73\x6e\x61\155\145" => $classData->classname)); } else { return redirect("\x2f\144\141\163\150\142\157\141\162\144"); } } } } public function ClassEditFetch() { if (Session::get("\141\144\x6d\151\156") == "\141\144\155\151\x6e" || Session::get("\x61\144\155\151\156") == "\154\x6f\x77\137\141\144\155\x69\156") { $ClassData = DB::table("\x63\154\141\x73\x73\x65\163")->where("\163\164\141\x74\x75\x73", '')->get(); } elseif (Session::get("\141\x64\155\151\156") == "\160\x72\157\x66") { $ClassData = DB::table("\143\154\141\x73\x73\145\x73")->where("\x6f\x77\156\145\x72\137\151\x64", Session::get("\165\163\x65\x72\156\141\x6d\145"))->where("\163\x74\x61\x74\x75\x73", '')->get(); } return DataTables::of($ClassData)->addIndexColumn()->addColumn("\x53\143\150\145\x64\165\154\145", function ($row) { $class_time = DB::table("\x77\x65\x65\153\x5f\144\x61\x79\x73")->where("\x63\154\141\163\x73\137\151\x64", $row->schedule_id)->get(); $dataPassed = array(); $currentS = ''; $currentE = ''; foreach ($class_time as $timeData) { $timeS = date("\x68\72\x69\x41", strtotime($timeData->start)); $timeE = date("\150\x3a\x69\101", strtotime($timeData->end)); $currentS = $timeS; $currentE = $timeE; $day = $timeData->day; switch ($day) { case "\x4d\157\x6e\144\141\171": $dayString = "\x4d"; break; case "\124\x75\145\x73\x64\141\x79": $dayString = "\x54"; break; case "\x57\x65\x64\156\x65\163\144\x61\x79": $dayString = "\x57"; break; case "\x54\150\x75\x72\163\x64\141\x79": $dayString = "\124\110"; break; case "\x46\162\151\x64\x61\171": $dayString = "\106"; break; case "\x53\x61\164\165\162\x64\x61\171": $dayString = "\123\x61\164"; break; case "\x53\165\x6e\x64\141\x79": $dayString = "\x53"; break; } $dataPassed[] = '' . $dayString; } $dataPassed[] = "\x20" . $currentS . "\40\55\40" . $currentE . "\40"; if ($dataPassed) { return $dataPassed; } })->addColumn("\162\165\x62\162\x69\x63", function ($row) { $rubricName = DB::table("\162\x75\142\162\151\143\x73")->where("\x69\x64", $row->rubric_assigned)->value("\x72\x75\x62\162\151\x63\x5f\156\141\x6d\x65"); return "\x3c\x74\x64\76\x20{$rubricName}\40\x3c\x2f\164\144\76"; })->addColumn("\141\143\x74\151\x6f\156", function ($row) { if (Session::get("\x61\144\155\x69\x6e") == "\141\x64\x6d\x69\156" || Session::get("\x61\144\x6d\x69\156") == "\x6c\x6f\167\137\x61\144\x6d\151\156") { $btn = "\x3c\144\151\166\40\x63\154\141\163\163\x3d\x22\x62\164\x6e\x2d\147\162\x6f\x75\160\40\144\x72\157\160\154\x65\146\x74\42\x3e\xa\40\40\x20\x20\x20\x20\x20\40\40\x20\x20\x20\x20\x20\x20\40\x3c\x62\x75\x74\164\x6f\156\x20\164\x79\x70\x65\x3d\42\142\165\164\164\x6f\x6e\x22\40\x63\154\141\x73\163\x3d\x22\142\164\x6e\x20\142\164\x6e\x2d\160\x72\x69\155\141\x72\x79\x20\144\162\x6f\x70\x64\x6f\167\x6e\x2d\164\157\147\147\154\x65\42\40\144\141\x74\x61\x2d\164\157\x67\x67\x6c\x65\75\42\144\x72\x6f\160\x64\x6f\167\x6e\x22\40\x61\x72\151\141\x2d\150\141\x73\160\157\160\165\160\75\42\x74\162\165\x65\42\40\141\x72\151\x61\55\x65\170\x70\x61\156\x64\x65\144\x3d\x22\146\x61\154\163\145\x22\76\12\40\40\x20\40\40\40\40\40\x20\40\x20\x20\40\40\40\40\x53\x65\164\x74\x69\x6e\x67\163\xa\x20\40\x20\x20\x20\x20\x20\40\40\x20\40\40\40\x20\x20\x20\x3c\57\x62\x75\164\x74\x6f\156\x3e\12\x20\x20\x20\x20\x20\40\x20\x20\40\40\40\40\40\x20\40\40\74\144\151\166\40\143\x6c\141\x73\163\x3d\42\x64\x72\x6f\160\144\x6f\167\x6e\55\x6d\145\156\165\x20\144\x72\x6f\160\x6c\x65\x66\x74\x22\76\xa\x20\x20\x20\x20\x20\40\40\40\x20\x20\40\40\x20\40\40\x20\x20\40\x3c\x61\40\x63\x6c\x61\163\x73\75\42\144\x72\157\x70\x64\x6f\167\x6e\55\x69\164\145\155\40\103\154\x61\x73\x73\105\144\151\x74\x42\164\x6e\42\x20\x64\141\164\x61\55\151\x64\x3d\x22" . $row->id . "\42\x20\150\162\x65\x66\75\42\43\42\76\x45\x64\x69\164\x20\103\154\x61\163\163\40\123\x63\x68\x65\x64\165\154\x65\x3c\x2f\141\x3e\12\40\x20\x20\40\x20\x20\40\x20\40\x20\x20\x20\40\x20\40\x20\x20\40\x3c\141\x20\x63\154\x61\163\163\75\42\144\162\x6f\160\x64\x6f\x77\156\x2d\x69\164\145\155\40\x41\144\144\x4e\145\167\105\x78\x70\145\162\x69\x6d\x65\156\164\42\40\x68\x72\x65\146\x3d\42\43\42\x20\x64\x61\x74\x61\x2d\x69\144\x3d\x22" . $row->id . "\x22\76\125\160\154\x6f\141\x64\x20\116\x65\x77\40\105\170\160\x65\x72\151\155\x65\x6e\x74\x3c\x2f\x61\x3e\xa\x20\x20\x20\40\x20\40\40\x20\40\40\40\40\40\40\40\x20\x20\x20\74\x61\40\143\154\x61\163\163\75\x22\144\x72\157\x70\x64\157\167\156\x2d\x69\164\145\x6d\x22\x20\150\x72\x65\146\x3d\x22\57\145\156\x72\157\154\154\145\144\55\x6c\151\x73\x74\x2f" . $row->id . "\42\40\x64\x61\164\141\x2d\151\144\x3d\42" . $row->id . "\x22\x20\164\x61\162\147\x65\164\40\75\40\42\137\x62\x6c\141\x6e\x6b\42\40\x3e\126\151\145\167\x20\x41\x63\143\x6f\165\x6e\164\x73\x20\105\x6e\162\157\154\154\145\x64\74\x2f\x61\x3e\12\x20\40\40\x20\40\40\x20\x20\x20\40\x20\40\x20\40\40\x20\40\40\74\141\40\x63\x6c\x61\x73\163\x3d\42\x64\x72\157\x70\144\157\167\x6e\x2d\x69\x74\145\155\x20\x76\151\x65\x77\105\x78\x70\145\162\x69\x6d\145\156\164\163\x22\40\150\162\145\x66\75\42\43\x22\x20\144\141\x74\x61\55\151\144\75\x22" . $row->id . "\42\76\x56\x69\145\x77\x20\x43\154\x61\163\163\40\105\x78\x70\x65\x72\151\155\145\156\164\163\x3c\57\x61\x3e\12\x20\x20\40\40\40\40\x20\40\x20\40\x20\x20\x20\x20\40\x20\40\x20\x3c\x61\x20\143\154\x61\x73\163\75\x22\144\x72\157\160\144\x6f\167\156\x2d\x69\x74\145\x6d\x20\x72\x65\155\157\x76\x65\x52\x75\142\162\x69\x63\x22\x20\150\162\145\x66\75\x22\43\42\x20\x64\x61\x74\x61\55\151\x64\x3d\42" . $row->id . "\x22\76\122\145\x6d\157\x76\145\x20\122\x75\x62\x72\151\143\x3c\57\x61\x3e\12\x20\x20\x20\x20\x20\40\x20\40\x20\40\x20\40\40\x20\40\x20\40\40\x3c\x61\x20\143\x6c\x61\x73\x73\75\42\x64\162\157\x70\x64\157\167\x6e\55\151\x74\145\155\x20\x61\x72\x63\150\x69\166\x65\102\x74\x6e\x22\x20\150\x72\145\146\x3d\42\x23\42\x20\x64\141\164\141\x2d\151\144\75\x22" . $row->id . "\x22\x3e\101\x72\143\150\x69\x76\145\x20\x43\x6c\x61\163\163\74\57\x61\76\xa\x20\40\40\40\40\40\x20\x20\40\40\40\40\40\x20\40\x20\x20\x20\74\141\40\143\154\x61\x73\163\x3d\x22\x64\162\x6f\x70\x64\x6f\x77\156\x2d\x69\164\145\x6d\40\155\x61\163\163\125\x6e\x65\x6e\x72\x6f\154\154\102\164\156\42\40\x68\162\145\x66\x3d\x22\x23\42\40\144\x61\x74\141\x2d\151\x64\75\42" . $row->id . "\42\x3e\115\x61\163\x73\x20\x55\156\145\x6e\x72\x6f\154\154\155\x65\x6e\x74\74\57\141\x3e\12\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\40\x20\x20\40\40\40\74\57\144\151\166\x3e\12\x20\40\40\40\40\40\x20\x20\40\40\x20\x20\x20\40\x3c\57\x64\151\166\76"; } else { $btn = "\x3c\x64\x69\x76\40\x63\154\x61\163\163\75\x22\x62\164\156\55\x67\x72\x6f\165\160\x20\x64\x72\157\x70\154\x65\x66\164\42\x3e\12\x20\40\x20\x20\40\40\40\40\40\40\40\x20\x20\x20\40\40\x3c\142\165\x74\x74\x6f\x6e\40\164\171\160\145\x3d\x22\x62\165\x74\164\157\156\x22\x20\143\x6c\x61\x73\x73\x3d\x22\142\164\156\40\x62\x74\156\55\x70\x72\151\x6d\x61\162\x79\x20\x64\x72\157\160\x64\157\x77\x6e\55\x74\x6f\147\147\154\145\x22\40\x64\141\x74\x61\55\164\157\147\147\x6c\145\75\42\144\162\157\x70\144\x6f\167\156\42\x20\141\162\x69\141\55\150\x61\163\x70\157\160\x75\160\x3d\x22\164\162\x75\145\42\40\x61\x72\151\x61\55\x65\170\160\x61\156\x64\x65\x64\x3d\42\146\x61\x6c\x73\145\42\76\12\40\40\x20\x20\40\x20\40\x20\40\40\x20\x20\40\x20\40\x20\x53\145\x74\x74\x69\x6e\x67\163\xa\x20\40\x20\x20\x20\40\40\x20\40\x20\x20\40\x20\40\x20\40\x3c\x2f\x62\165\x74\x74\157\156\76\12\40\40\x20\40\x20\40\40\40\x20\40\x20\x20\40\x20\40\40\74\x64\x69\x76\x20\143\x6c\141\x73\163\75\42\x64\162\x6f\160\x64\x6f\167\156\55\155\145\156\x75\40\x64\162\x6f\160\x6c\145\146\164\42\76\xa\40\40\40\40\40\x20\x20\x20\40\40\40\x20\40\x20\x20\x20\x20\x20\x3c\x61\x20\x63\x6c\x61\x73\163\x3d\x22\144\162\x6f\160\144\157\x77\156\x2d\x69\164\145\x6d\40\103\154\x61\x73\x73\x45\x64\151\x74\x42\x74\156\x22\x20\x64\141\x74\x61\55\x69\x64\x3d\x22" . $row->id . "\42\40\150\x72\x65\146\x3d\x22\43\x22\x3e\105\x64\151\x74\40\x43\154\141\x73\163\40\123\143\x68\x65\144\x75\x6c\145\74\x2f\x61\76\12\40\40\x20\x20\x20\x20\x20\x20\40\40\40\x20\40\x20\x20\40\x20\40\74\x61\x20\143\x6c\x61\163\x73\75\x22\x64\x72\x6f\x70\x64\x6f\x77\x6e\55\x69\164\x65\155\x20\101\x64\144\x4e\145\167\105\170\x70\145\x72\x69\155\145\x6e\x74\42\x20\x68\162\145\x66\75\x22\43\42\40\x64\x61\164\141\x2d\x69\x64\75\42" . $row->id . "\x22\x3e\125\x70\154\x6f\x61\144\40\x4e\x65\167\40\x4d\157\144\165\154\x65\74\57\x61\x3e\xa\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\40\x20\x20\x20\40\x20\40\x20\74\141\x20\x63\154\141\163\163\x3d\x22\x64\162\x6f\160\x64\157\x77\x6e\55\x69\164\x65\155\40\x63\162\x65\141\164\145\116\x65\167\x45\x78\x70\145\162\x69\155\145\x6e\x74\42\x20\x68\162\145\x66\x3d\42\x23\x22\x20\x64\141\164\141\x2d\x69\x64\x3d\x22" . $row->id . "\42\x3e\103\162\145\x61\x74\x65\x20\116\x65\x77\x20\x4d\157\x64\165\x6c\x65\x3c\x2f\x61\x3e\12\x20\40\40\x20\40\40\40\40\x20\x20\40\x20\x20\40\x20\40\x20\40\74\141\x20\143\x6c\141\163\163\75\42\144\162\x6f\160\x64\157\x77\x6e\55\x69\x74\145\x6d\x20\166\151\145\x77\105\170\160\x65\x72\151\x6d\145\x6e\164\x73\42\40\x68\x72\145\146\x3d\x22\x23\x22\40\144\x61\164\141\55\x69\x64\x3d\42" . $row->id . "\x22\x3e\x56\x69\145\x77\40\x43\x6c\141\163\x73\40\x45\170\x70\145\162\151\x6d\x65\x6e\164\163\x3c\x2f\141\76\12\x20\x20\40\40\40\x20\x20\40\40\x20\40\40\x20\x20\x20\x20\74\x2f\144\x69\166\76\xa\40\40\40\x20\x20\x20\x20\40\x20\x20\x20\x20\40\x20\74\57\x64\151\166\76"; } return $btn; })->rawColumns(array("\x61\x63\x74\151\157\x6e", "\x72\165\x62\x72\x69\143", "\123\143\150\145\144\165\154\145"))->make(true); } public function RubricBookFetch() { $RubricBook = DB::table("\x72\x75\x62\162\151\x63\x73")->whereNull("\163\164\x61\x74\165\x73")->get(); return DataTables::of($RubricBook)->addIndexColumn()->addColumn("\x61\143\164\x69\x6f\156", function ($row) { $btn = "\x3c\144\151\166\40\143\154\x61\163\163\x3d\x22\142\164\x6e\x2d\147\162\157\165\x70\40\x64\162\x6f\160\154\145\146\164\x22\76\xa\11\x9\x9\11\x9\11\74\142\x75\164\164\x6f\156\40\x74\171\x70\145\75\42\142\x75\x74\x74\x6f\x6e\x22\40\143\x6c\x61\x73\163\x3d\42\142\x74\x6e\40\142\164\x6e\x2d\x70\x72\151\155\x61\162\171\40\x64\x72\157\160\144\157\167\x6e\x2d\164\157\147\x67\x6c\x65\x22\40\144\141\164\141\55\164\x6f\x67\x67\154\145\x3d\42\x64\162\157\x70\144\x6f\167\156\42\40\141\162\x69\141\x2d\150\141\x73\x70\157\160\165\x70\75\42\164\162\x75\145\42\x20\x61\x72\x69\141\55\145\170\160\x61\156\144\x65\x64\x3d\42\146\x61\x6c\163\145\42\x3e\xa\11\x9\x9\11\11\x9\11\x53\x65\x74\164\x69\x6e\x67\163\12\11\11\11\11\11\x9\x3c\x2f\142\165\164\x74\x6f\x6e\x3e\xa\x9\11\x9\x9\x9\x9\74\144\x69\x76\x20\x63\154\141\x73\163\75\x22\144\162\x6f\x70\x64\157\167\x6e\x2d\x6d\x65\x6e\165\x20\x64\162\x6f\x70\x6c\145\x66\x74\42\76\xa\11\x9\x9\x9\x9\x9\x9\x3c\x61\x20\x63\154\x61\x73\163\x3d\42\x64\x72\x6f\160\x64\x6f\x77\x6e\55\151\164\145\155\x20\162\165\142\x72\151\x63\x41\x73\x73\x69\147\156\103\x6c\151\143\153\42\40\x64\x61\x74\x61\x2d\151\144\x3d\42" . $row->id . "\x22\40\x68\162\x65\146\x3d\42\x23\x22\40\x64\141\x74\141\55\164\157\x67\147\154\145\75\x22\x6d\157\x64\x61\x6c\x22\40\x64\x61\x74\x61\x2d\x74\x61\162\147\145\164\75\x22\x23\141\x73\x73\151\147\x6e\x52\x75\x62\x72\x69\143\115\x6f\144\141\154\x22\x3e\101\x73\163\151\x67\x6e\x20\x52\x75\142\162\x69\x63\x20\164\157\x20\x43\x6c\x61\163\x73\x3c\57\141\76\xa\11\11\11\11\x9\x9\x9\x3c\141\x20\x63\154\141\163\x73\x3d\42\x64\162\x6f\160\144\157\x77\156\55\151\164\145\155\42\40\150\x72\x65\x66\75\42\57\x72\x75\142\162\x69\x63\x2d\160\162\145\x76\151\145\167\x2f" . $row->id . "\42\40\x74\x61\162\147\x65\164\x3d\42\x5f\142\x6c\141\x6e\153\42\76\x50\x72\x65\x76\x69\145\167\40\122\x75\142\162\151\143\74\57\141\x3e\xa\11\x9\11\x9\11\x9\x9\x3c\x61\40\x63\154\141\163\x73\x3d\x22\x64\x72\x6f\160\144\x6f\x77\156\x2d\x69\x74\145\155\42\x20\150\162\145\146\x3d\42\x2f\145\x64\151\164\x2d\162\165\x62\x72\x69\143\x2f" . $row->id . "\42\x20\164\141\x72\x67\145\x74\75\x22\137\x62\x6c\141\156\x6b\x22\76\x45\x64\x69\164\40\122\x75\x62\162\x69\143\74\x2f\141\76\xa\x9\x9\x9\x9\x9\x9\11\74\141\x20\143\x6c\x61\163\163\x3d\42\144\162\x6f\160\x64\x6f\x77\156\55\151\164\145\x6d\x20\x72\165\x62\x72\151\143\101\x72\143\150\x69\x76\145\x22\x20\x64\x61\x74\x61\x2d\x69\x64\75\42" . $row->id . "\x22\x20\40\x68\x72\x65\x66\75\x22\x23\x22\x3e\x41\162\143\150\151\166\x65\40\122\165\142\162\151\x63\74\57\x61\76\xa\11\11\11\11\x9\11\x3c\x2f\144\x69\166\x3e\xa\11\x9\x9\11\x9\x3c\x2f\x64\x69\166\x3e"; return $btn; })->rawColumns(array("\x61\143\164\x69\157\x6e"))->make(true); } public function ClassAccountDeleteAction(Request $request) { $id = $request->UserID; Classes::where("\151\144", $id)->delete(); return response()->json(array("\x61\160\x70\162\157\166\x65\144" => "\103\154\141\x73\x73\x20\150\x61\163\40\x62\145\145\x6e\40\144\x65\154\x65\x74\x65\144\40\163\x75\143\x63\145\163\163\x66\x75\x6c\x6c\x79\x2e")); } public function UnassignRubric(Request $request) { $id = $request->UserID; $result = Classes::where("\x69\x64", $id)->update(array("\x72\165\142\162\151\143\x5f\x61\163\163\151\147\156\x65\x64" => null)); if ($result) { return response()->json(array("\x75\x6e\x61\163\x73\151\x67\x6e\x65\x64" => "\122\165\142\x72\x69\143\x20\150\141\x73\x20\142\x65\145\x6e\x20\162\145\x6d\157\166\145\144\x20\163\165\143\143\x65\x73\163\146\x75\154\154\x79\56")); } } public function ClassEditbtnFetch(Request $request) { $data = Classes::find($request->Cupdatebutton); $week_days = DB::table("\x77\145\145\153\137\x64\x61\171\163")->where("\x63\x6c\x61\163\163\x5f\x69\144", $data->schedule_id)->get(); return response()->json(array("\103\154\x61\x73\x73\x44\x61\x74\x61" => $data, "\127\145\x65\x6b\104\141\171\x73\x5f\x64\141\x74\x61" => $week_days)); } public function fetchClass() { $data = DB::table("\143\x6c\141\x73\x73\145\163")->get(); return response()->json(array("\x63\x6c\141\x73\163\x44\x61\x74\x61" => $data)); } public function EditClassData(Request $request) { $validated = Validator::make($request->all(), array("\143\154\x61\x73\163\156\x61\x6d\145" => "\162\x65\161\x75\x69\x72\145\144", "\143\x6c\141\x73\163\151\x6e\146\x6f" => "\162\145\161\x75\151\162\x65\x64", "\143\154\x61\x73\163\111\x44" => "\x72\x65\161\x75\x69\162\x65\x64"), array("\x63\x6c\141\163\163\156\141\x6d\145\x2e\x72\x65\161\165\x69\x72\145\144" => "\x54\150\145\40\103\154\141\x73\x73\x20\x4e\141\155\x65\x20\146\151\x65\x6c\x64\40\151\163\x20\x72\x65\161\165\151\162\145\x64", "\x63\x6c\141\x73\x73\151\156\146\157\56\162\x65\161\165\x69\162\145\x64" => "\124\x68\x65\x20\x43\154\141\x73\163\x20\111\156\x66\157\40\146\151\x65\154\144\x20\151\163\x20\x72\145\161\x75\x69\162\145\144", "\x70\151\143\x2e\x72\x65\x71\165\x69\162\x65\x64" => "\x54\x68\145\x20\x50\x69\x63\x74\165\162\145\40\146\151\x65\154\144\40\x69\x73\40\162\145\x71\x75\151\x72\x65\x64", "\160\x69\143\56\x6d\x69\155\x65\x73" => "\x54\x68\145\x20\103\x6c\x61\x73\163\x20\x50\x69\x63\164\x75\162\x65\x20\x6d\165\x73\x74\40\142\x65\40\141\x20\x66\x69\154\x65\x20\x6f\146\40\x74\x79\x70\x65\72\40\x6a\x70\145\147\x2c\40\147\x69\x66\x2c\x20\x70\156\x67\x2c\x20\x4a\120\105\x47\x2c\x20\x47\111\x46\x2c\40\120\x4e\107\56")); if ($validated->fails()) { return response()->json(array("\145\162\162\157\162\x73" => $validated->errors()->first())); } else { if ($request->m == '') { $day_check = DB::table("\167\145\x65\x6b\137\x64\141\171\163")->where("\x63\x6c\x61\x73\163\x5f\x69\x64", $request->classID)->where("\x64\x61\171", "\115\x6f\x6e\x64\x61\x79")->first(); if ($day_check) { DB::table("\x77\145\x65\153\x5f\x64\x61\x79\x73")->where("\143\x6c\141\x73\x73\x5f\151\x64", $request->classID)->where("\x64\141\x79", "\x4d\x6f\x6e\144\141\x79")->delete(); } $m = "\146\141\154\163\x65"; } else { $m = $request->m; } if ($request->t == '') { $day_check = DB::table("\167\145\x65\153\137\x64\141\171\163")->where("\x63\x6c\x61\x73\163\x5f\151\144", $request->classID)->where("\x64\141\171", "\x54\165\145\163\144\x61\x79")->first(); if ($day_check) { DB::table("\167\145\x65\x6b\137\x64\x61\x79\x73")->where("\143\x6c\141\x73\x73\137\x69\x64", $request->classID)->where("\x64\x61\171", "\x54\165\145\x73\x64\141\171")->delete(); } $t = "\x66\x61\154\x73\145"; } else { $t = $request->t; } if ($request->w == '') { $day_check = DB::table("\x77\145\145\153\x5f\x64\141\x79\163")->where("\x63\154\x61\x73\x73\137\151\x64", $request->classID)->where("\x64\x61\x79", "\x57\145\x64\x6e\x65\x73\x64\141\x79")->first(); if ($day_check) { DB::table("\x77\145\145\x6b\137\144\141\171\x73")->where("\143\154\x61\x73\x73\137\151\x64", $request->classID)->where("\x64\x61\x79", "\127\x65\144\156\145\x73\144\141\x79")->delete(); } $w = "\146\141\x6c\163\x65"; } else { $w = $request->w; } if ($request->th == '') { $day_check = DB::table("\167\x65\145\x6b\x5f\x64\x61\171\163")->where("\x63\154\141\163\x73\x5f\151\x64", $request->classID)->where("\x64\141\x79", "\124\x68\x75\x72\x73\x64\141\171")->first(); if ($day_check) { DB::table("\167\x65\145\153\x5f\144\x61\x79\x73")->where("\143\x6c\141\163\163\137\151\144", $request->classID)->where("\x64\x61\x79", "\124\x68\x75\162\x73\144\x61\x79")->delete(); } $th = "\146\x61\x6c\x73\145"; } else { $th = $request->th; } if ($request->f == '') { $day_check = DB::table("\167\x65\x65\153\137\144\x61\x79\163")->where("\x63\x6c\x61\x73\163\137\x69\144", $request->classID)->where("\144\141\171", "\106\x72\x69\144\x61\x79")->first(); if ($day_check) { DB::table("\167\x65\145\x6b\x5f\144\x61\x79\163")->where("\x63\x6c\141\163\163\137\x69\x64", $request->classID)->where("\144\141\171", "\106\x72\x69\144\x61\171")->delete(); } $f = "\146\141\154\163\145"; } else { $f = $request->f; } if ($request->sat == '') { $day_check = DB::table("\167\x65\x65\153\137\x64\141\x79\163")->where("\143\x6c\x61\x73\x73\x5f\151\144", $request->classID)->where("\x64\141\x79", "\123\141\164\165\162\x64\x61\x79")->first(); if ($day_check) { DB::table("\x77\145\x65\153\137\144\141\x79\x73")->where("\143\154\141\x73\163\137\151\x64", $request->classID)->where("\x64\141\171", "\123\x61\164\x75\x72\144\141\x79")->delete(); } $sat = "\146\x61\x6c\x73\x65"; } else { $sat = $request->sat; } if ($request->s == '') { $day_check = DB::table("\x77\145\x65\x6b\137\x64\141\x79\163")->where("\143\x6c\x61\163\x73\137\151\144", $request->classID)->where("\x64\141\171", "\x53\165\156\x64\x61\x79")->first(); if ($day_check) { DB::table("\167\145\145\153\137\144\141\x79\x73")->where("\143\154\x61\x73\163\137\151\x64", $request->classID)->where("\x64\x61\171", "\x53\165\x6e\x64\x61\x79")->delete(); } $s = "\x66\x61\x6c\163\x65"; } else { $s = $request->s; } $ref_id = $request->classID; $class_id_fetch = DB::table("\x63\x6c\141\163\x73\145\163")->where("\x73\x63\150\x65\144\165\x6c\x65\x5f\151\x64", $request->classID)->first(); $editClass = Classes::find($class_id_fetch->id); $editClass->classname = $request->classname; $editClass->classinfo = $request->classinfo; $editClass->updated_by = Session::get("\x6e\141\155\x65"); $editClass->m = $m; $editClass->t = $t; $editClass->w = $w; $editClass->th = $th; $editClass->f = $f; $editClass->sat = $sat; $editClass->s = $s; $editClass->start = $request->start; $editClass->end = $request->end; $editClass->save(); if ($request->m != '') { $day_check = DB::table("\167\145\145\x6b\137\144\x61\171\x73")->where("\x63\154\141\x73\163\x5f\151\x64", $request->classID)->where("\144\x61\x79", "\x4d\x6f\156\144\141\171")->first(); if (!$day_check) { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\115\157\156\144\x61\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } } if ($request->t != '') { $day_check = DB::table("\167\x65\145\153\x5f\x64\x61\171\163")->where("\x63\154\141\163\x73\137\151\x64", $request->classID)->where("\x64\141\171", "\x54\165\145\x73\x64\x61\x79")->first(); if (!$day_check) { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\x54\x75\x65\163\x64\141\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } } if ($request->w != '') { $day_check = DB::table("\x77\x65\145\153\137\144\141\171\x73")->where("\x63\x6c\141\x73\163\x5f\151\144", $request->classID)->where("\x64\141\x79", "\127\145\x64\156\145\163\144\x61\171")->first(); if (!$day_check) { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\127\x65\144\156\145\163\x64\141\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } } if ($request->th != '') { $day_check = DB::table("\167\x65\x65\153\x5f\x64\141\171\163")->where("\143\154\x61\x73\163\x5f\151\144", $request->classID)->where("\144\141\171", "\124\150\x75\162\x73\144\x61\171")->first(); if (!$day_check) { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\x54\x68\x75\162\163\144\x61\171"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } } if ($request->f != '') { $day_check = DB::table("\167\x65\x65\x6b\137\144\141\x79\x73")->where("\x63\x6c\141\x73\163\137\151\144", $request->classID)->where("\x64\x61\x79", "\106\x72\151\x64\x61\171")->first(); if (!$day_check) { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\106\162\x69\x64\141\x79"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } } if ($request->sat != '') { $day_check = DB::table("\x77\x65\145\153\137\144\141\171\x73")->where("\x63\154\141\x73\x73\x5f\151\x64", $request->classID)->where("\x64\x61\x79", "\123\141\x74\x75\x72\x64\x61\171")->first(); if (!$day_check) { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\x53\x61\x74\x75\x72\144\141\171"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } } if ($request->s != '') { $day_check = DB::table("\167\x65\x65\153\x5f\144\x61\171\x73")->where("\143\x6c\141\163\163\137\x69\144", $request->classID)->where("\x64\141\x79", "\123\165\156\x64\141\171")->first(); if (!$day_check) { $NewSchedule = new weekDays(); $NewSchedule->class_id = $ref_id; $NewSchedule->day = "\123\x75\x6e\144\141\171"; $NewSchedule->start = $request->start; $NewSchedule->end = $request->end; $NewSchedule->save(); } } $all_day_check = DB::table("\167\145\x65\153\x5f\144\x61\x79\163")->where("\x63\x6c\141\x73\163\137\x69\x64", $request->classID)->get(); foreach ($all_day_check as $data) { $updateTime = weekDays::find($data->id); $updateTime->start = $request->start; $updateTime->end = $request->end; $updateTime->save(); } return response()->json(array("\x69\156\x73\145\162\x74\x65\144" => "\x43\154\x61\163\163\x20\x44\x61\x74\x61\x20\150\141\163\x20\142\145\145\x6e\x20\165\160\x64\141\164\145\144\x2e")); } } public function store(Request $request) { $file = $request->upload; $fileName = $file->getClientOriginalName(); $New_name = time() . $fileName; $dir = "\163\164\x6f\162\141\147\x65\x2f\x48\x6f\x6d\x65\120\141\147\x65\120\x69\143\164\x75\x72\x65\163\x2f"; $file->move($dir, $New_name); $url = asset("\x73\164\157\x72\141\147\x65\57\x48\157\x6d\145\x50\x61\x67\145\x50\x69\143\x74\165\162\x65\163\x2f" . $New_name); $CkeditorFuncNum = $request->input("\x43\113\x45\144\x69\x74\x6f\162\x46\x75\x6e\143\x4e\x75\155"); $status = "\x3c\x73\x63\162\151\x70\x74\x3e\167\x69\156\144\157\167\x2e\x70\x61\162\x65\156\x74\x2e\x43\113\105\104\111\x54\117\122\x2e\x74\157\x6f\x6c\x73\56\143\141\154\x6c\x46\x75\x6e\143\164\151\157\156\x28\x27{$CkeditorFuncNum}\47\54\40\x27{$url}\47\x2c\40\x27\106\x69\x6c\145\x20\150\x61\163\40\x62\x65\145\x6e\x20\x75\x70\x6c\157\x61\x64\x65\144\x2e\47\x29\74\57\163\x63\x72\151\160\x74\x3e"; echo $status; } public function HomePageUpdate(Request $request) { $validated = Validator::make($request->all(), array("\x48\157\155\x65\x45\x64\x69\164\157\x72" => "\162\145\x71\x75\151\162\145\144"), array("\110\157\155\145\x45\144\x69\x74\x6f\162\x2e\x72\145\161\165\151\162\x65\x64" => "\124\150\145\40\105\x64\x69\164\x6f\x72\40\146\151\x65\x6c\144\x20\x69\163\40\162\x65\x71\x75\x69\162\x65\x64")); if ($validated->fails()) { return redirect()->back()->withErrors(array("\145\x6d\x70\x74\x79\x5f\145\x72\162\x6f\x72" => $validated->errors()->first())); } else { $HomeEdit = HomePage::find("\x31"); $HomeEdit->HomeContent = $request->HomeEditor; $HomeEdit->save(); return redirect()->back()->with(array("\x73\165\x63\x63\145\x73\x73" => "\x54\x68\x65\40\110\157\155\145\40\120\141\x67\x65\x20\x68\x61\163\40\142\145\x65\156\x20\165\x70\144\141\x74\145\144\x2e")); } } public function insertnewClassExWithEditor(Request $request) { $validated = Validator::make($request->all(), array("\x65\x78\x4e\141\x6d\145\105\x64\151\164\157\162" => "\x72\145\x71\165\x69\162\145\x64", "\x65\x78\x69\144\x45\144\x69\x74\x6f\x72" => "\162\145\x71\165\x69\162\x65\144", "\x45\x78\105\144\x69\x74\x6f\x72" => "\162\145\161\x75\151\x72\145\x64"), array("\145\x78\x4e\x61\x6d\145\x45\x64\x69\164\x6f\162\x2e\162\145\161\x75\x69\162\145\x64" => "\x54\x68\145\40\105\170\160\145\162\x69\155\145\x6e\164\x20\116\141\x6d\145\x20\x66\x69\145\154\144\40\151\163\x20\162\145\161\x75\151\x72\145\144", "\145\x78\151\144\x45\144\151\x74\157\x72\x2e\x72\145\x71\x75\x69\x72\x65\144" => "\105\162\x72\157\162\x20\x52\x65\154\157\x61\144\40\164\150\145\40\160\x61\x67\x65", "\x45\170\105\144\151\x74\x6f\162\56\x72\x65\x71\x75\x69\x72\x65\x64" => "\124\x68\x65\x20\105\170\x70\x65\162\x69\x6d\x65\x6e\164\140\163\40\105\x64\151\164\157\x72\x20\146\151\145\154\144\40\x69\163\x20\x72\145\161\x75\151\162\145\x64")); if ($validated->fails()) { return response()->json(array("\x65\x72\162\157\x72\x73" => $validated->errors()->first())); } else { $newEx = new classEx(); $newEx->class_id = $request->exidEditor; $newEx->ex_name = $request->exNameEditor; $newEx->ExCreated = $request->ExEditor; $newEx->save(); return response()->json(array("\x69\156\163\x65\162\x74\x65\x64" => "\116\145\167\40\x45\x78\160\145\162\151\x6d\x65\156\x74\x20\x68\141\x73\40\142\145\145\x6e\40\163\x75\x62\x6d\x69\x74\x74\x65\144\56")); } } public function ViewExperiment(Request $request) { $apps_check = DB::table("\x73\x6d\141\162\164\154\141\142\137\141\160\160\x73")->where("\143\154\141\163\163\x45\170\137\x69\x64", $request->ID)->get(); if ($apps_check->isNotEmpty()) { $data = DB::table("\x63\154\141\x73\x73\x5f\x65\x78\145\163")->select("\143\x6c\141\163\163\137\x65\x78\x65\x73\x2e\x2a", "\163\155\x61\162\164\154\141\142\x5f\141\160\160\x73\56\52", "\143\154\141\x73\x73\x5f\145\170\145\163\56\x69\144\40\x61\x73\40\x6c\x69\x6e\153\116\141\x6d\145")->join("\163\155\141\162\x74\154\x61\x62\x5f\141\x70\160\x73", "\143\154\141\x73\x73\137\x65\x78\145\163\56\151\144", "\x3d", "\163\x6d\141\x72\164\154\141\x62\x5f\141\x70\x70\x73\56\143\x6c\x61\x73\163\105\x78\x5f\151\144")->where("\143\x6c\x61\x73\163\x5f\x65\x78\145\163\x2e\x63\154\x61\x73\163\x5f\x69\144", $request->ID)->get(); $data_score = DB::table("\x65\170\160\x65\162\x69\x6d\x65\156\164\x5f\162\145\160\157\162\x74\163")->where("\105\170\160\145\162\x69\x6d\x65\x6e\164\x5f\x69\144", $request->ID)->where("\165\x73\x65\x72\137\x69\x64", Session::get("\165\163\145\x72\x6e\141\x6d\x65"))->first(); return response()->json(array("\x44\141\x74\x61\x45\130" => $data, "\x44\x61\164\141\137\163\143\x6f\162\145" => $data_score)); } else { $data = DB::table("\143\154\141\163\163\137\145\x78\x65\x73")->select("\143\x6c\141\x73\x73\x5f\145\x78\145\x73\56\52", "\x73\155\x61\162\164\x6c\x61\x62\x5f\x61\x70\x70\163\x2e\52", "\x63\x6c\x61\x73\163\137\x65\x78\x65\163\x2e\x69\x64\x20\x61\163\x20\x6c\x69\156\153\116\141\x6d\x65")->join("\163\x6d\141\x72\x74\154\x61\x62\x5f\141\160\x70\163", "\143\x6c\x61\x73\x73\137\x65\x78\145\x73\56\151\x64", "\75", "\163\155\x61\x72\x74\x6c\141\142\x5f\141\160\160\163\56\x63\154\141\x73\163\105\170\137\x69\x64")->where("\143\154\x61\163\163\137\x65\170\x65\x73\56\x63\x6c\141\x73\163\x5f\x69\144", $request->ID)->get(); $data_score = DB::table("\145\170\160\x65\x72\x69\x6d\145\156\x74\x5f\x72\x65\x70\157\162\x74\163")->where("\x45\170\160\145\x72\151\155\x65\156\164\137\151\144", $request->ID)->where("\165\163\x65\162\137\151\144", Session::get("\x75\x73\145\162\156\x61\x6d\x65"))->first(); return response()->json(array("\104\141\164\141\105\x58" => $data, "\104\x61\164\141\x5f\163\x63\x6f\162\145" => $data_score)); } } public function AppsFetch(Request $request) { $data = DB::table("\x63\x6c\x61\x73\x73\x5f\x65\170\145\x73")->select("\x63\154\x61\163\163\137\x65\x78\x65\x73\x2e\52", "\163\155\x61\162\x74\x6c\141\x62\x5f\x61\160\160\x73\56\x2a", "\143\x6c\141\163\x73\x5f\145\170\x65\163\56\x69\x64\40\x61\x73\40\x6c\151\x6e\x6b\116\141\155\x65")->leftJoin("\163\155\x61\162\164\154\141\x62\x5f\x61\x70\160\163", "\x63\x6c\141\x73\163\x5f\x65\170\145\163\x2e\x69\144", "\75", "\x73\x6d\141\162\x74\154\x61\x62\x5f\x61\x70\160\x73\x2e\x63\154\141\x73\163\x45\170\137\x69\144")->where("\x63\154\x61\x73\x73\137\x65\170\145\x73\56\x69\x64", $request->ID)->get(); return DataTables::of($data)->addIndexColumn()->addColumn("\105\170\x70\145\162\151\x6d\x65\156\164\116\x61\155\145", function ($row) { if (!empty($row->ex_file)) { $btn = "\x3c\x61\x20\164\141\162\147\145\x74\75\x22\137\x62\x6c\141\156\153\42\x20\150\x72\x65\x66\x3d\x22\103\154\x61\163\163\x45\x78\57" . $row->ex_file . "\x22\76" . $row->ex_name . "\x3c\57\x61\x3e"; return $btn; } else { if (!empty($row->ExCreated)) { $btn = "\x3c\x61\40\164\141\x72\x67\145\164\75\42\x5f\x62\x6c\141\x6e\153\x22\40\x68\x72\x65\x66\x3d\42\145\x78\x70\x65\x72\151\155\145\156\x74\57" . $row->linkName . "\42\x3e" . $row->ex_name . "\74\57\x61\x3e"; return $btn; } } })->addColumn("\101\x70\x70", function ($row) { if ($row->app_name == "\x44\151\x67\151\x74\141\x6c\40\x43\x69\162\x63\x75\x69\x74") { $btn = "\74\x61\40\x74\141\162\x67\x65\x74\75\42\137\142\154\x61\x6e\153\42\40\x68\162\145\x66\x3d\x22\57\163\151\x6d\x75\154\141\x74\x6f\x72\x3f\141\x70\x70\x3d\x44\x43\42\x20\x63\154\141\163\163\x3d\x22\x62\164\156\x20\142\x74\156\55\x64\141\156\x67\x65\162\x22\x3e" . $row->app_name . "\74\x2f\141\x3e"; return $btn; } if ($row->app_name == "\x44\151\147\x69\x74\x61\x6c\40\x41\x72\144\x75\x69\156\x6f") { $btn = "\x3c\x61\40\164\141\162\x67\145\x74\75\42\x5f\142\154\141\156\x6b\x22\40\150\x72\145\x66\x3d\x22\57\x73\151\155\165\154\141\x74\157\162\x3f\x61\160\160\x3d\104\x41\x22\40\143\154\141\163\x73\75\x22\142\164\156\x20\142\164\x6e\x2d\x64\x61\x6e\x67\x65\162\x22\x3e" . $row->app_name . "\x3c\x2f\x61\x3e"; return $btn; } })->rawColumns(array("\x41\160\160", "\105\170\160\145\x72\151\x6d\145\x6e\164\x4e\141\x6d\145"))->make(true); } public function insertnewExperimentReport(Request $request) { $classID = $request->class_id; $validated = Validator::make($request->all(), array("\105\170\x70\145\162\151\x6d\145\x6e\x74\x49\x44" => "\162\x65\x71\x75\151\x72\145\144", "\122\145\160\157\162\x74\106\x69\x6c\x65" => "\162\145\161\165\x69\162\145\144", "\x52\x65\x70\x6f\x72\x74\x46\151\154\145" => "\162\145\x71\x75\x69\x72\x65\x64\x7c\x6d\x69\155\145\163\72\x70\144\146"), array("\x45\170\160\x65\x72\x69\155\x65\x6e\x74\x49\104\x2e\162\145\161\165\x69\x72\145\x64" => "\124\x68\145\x20\x45\x78\x70\145\x72\151\155\145\156\x74\x20\x4e\x61\155\x65\40\146\151\x65\154\144\40\x69\x73\x20\x72\145\x71\x75\151\162\145\144", "\145\170\151\144\x2e\162\145\x71\x75\x69\162\145\144" => "\105\162\162\157\x72\40\x52\145\154\157\141\144\40\164\x68\x65\40\x70\x61\147\145", "\122\145\x70\x6f\x72\164\x46\151\154\x65\56\x72\x65\161\165\151\x72\x65\144" => "\124\150\145\x20\105\x78\x70\x65\x72\x69\x6d\145\x6e\164\40\x52\x65\x70\157\162\164\x20\x66\x69\154\x65\40\x66\x69\145\154\144\40\x69\x73\40\162\x65\161\165\151\x72\145\144", "\122\145\x70\x6f\x72\164\106\x69\x6c\145\56\x6d\x69\x6d\x65\163" => "\124\x68\x65\x20\x45\x78\x70\145\162\151\x6d\145\156\x74\x20\122\x65\160\x6f\x72\164\x20\146\x69\x6c\145\x20\x6d\165\163\164\40\142\145\40\x61\x20\120\104\106\40\146\151\154\145")); if ($validated->fails()) { return response()->json(array("\145\x72\162\157\x72\x73" => $validated->errors()->first())); } else { $check_if_labReport_submitted = DB::table("\145\x78\160\x65\x72\151\x6d\x65\x6e\x74\x5f\x72\145\x70\x6f\x72\164\163")->where("\x45\170\160\x65\x72\x69\155\x65\156\x74\x5f\151\144", $request->ExperimentID)->where("\165\163\x65\x72\x5f\151\x64", Session::get("\165\x73\x65\162\156\141\155\x65"))->first(); if ($check_if_labReport_submitted) { if ($pdf = $request->file("\122\x65\x70\157\x72\x74\x46\x69\x6c\x65")) { $filename = $pdf->getClientOriginalName(); if ($pdf->move("\105\x78\x70\x65\x72\x69\x6d\145\x6e\164\x52\145\160\157\162\164", $filename)) { DB::table("\x65\x78\x70\145\x72\x69\155\x65\156\164\x5f\162\145\x70\157\162\x74\x73")->where("\105\170\160\x65\x72\151\155\x65\156\164\137\x69\x64", $request->ExperimentID)->where("\x75\163\145\x72\137\151\x64", Session::get("\x75\x73\145\x72\x6e\141\x6d\145"))->update(array("\x52\145\x70\x6f\x72\164\x5f\x66\x69\154\x65" => $filename)); return response()->json(array("\x69\156\163\x65\162\x74\145\144" => "\114\141\142\40\x52\x65\x70\x6f\162\164\x20\x68\x61\x73\40\142\x65\x65\156\x20\165\x70\x64\141\164\145\144\x2e")); } } } else { if ($pdf = $request->file("\122\x65\160\157\162\x74\106\151\x6c\145")) { $filename = $pdf->getClientOriginalName(); if ($pdf->move("\x45\x78\160\145\162\x69\x6d\145\x6e\x74\x52\145\160\x6f\x72\164", $filename)) { $check = DB::table("\143\x6c\141\163\163\145\163")->select("\162\165\x62\x72\x69\x63\137\x61\163\163\151\x67\x6e\x65\x64")->where("\x69\144", $classID)->get(); $newEx = new ExperimentReport(); $newEx->Experiment_id = $request->ExperimentID; $newEx->Report_file = $filename; $newEx->user_id = Session::get("\165\x73\x65\x72\156\x61\x6d\x65"); $newEx->class_id = $classID; $newEx->save(); $act_name = DB::table("\x63\x6c\141\163\x73\137\145\x78\145\x73")->select("\x65\170\x5f\156\x61\155\145")->where("\x69\x64", $request->ExperimentID)->get(); $saveGrade = new RubricGrades(); $saveGrade->u_id = Session::get("\165\x73\145\x72\x6e\141\155\x65"); $saveGrade->total_score = "\x4e\x2f\101"; $saveGrade->rank = "\116\x2f\101"; $saveGrade->id_rubric = $check[0]->rubric_assigned; $saveGrade->feedback = "\x4e\x2f\101"; $saveGrade->class_id = $classID; $saveGrade->act_id = $request->ExperimentID; $saveGrade->act_name = $act_name[0]->ex_name; $saveGrade->report_file = $filename; $saveGrade->created_by = "\116\x2f\101"; $saveGrade->save(); return response()->json(array("\151\156\x73\x65\162\x74\145\144" => "\116\x65\167\40\114\x61\x62\x20\x52\x65\x70\157\162\x74\x20\x68\x61\x73\40\x62\x65\145\x6e\40\x73\x75\142\155\151\x74\164\145\144\x2e")); } } } } } public function ReportsSubmitted(Request $request) { $classID = Classes::find(classEx::find($request->ID)->class_id)->id; $check = DB::table("\143\154\141\x73\x73\x65\x73")->select("\x72\x75\x62\162\x69\x63\137\141\x73\x73\151\147\x6e\x65\x64")->where("\x69\144", $classID)->get(); $hasRubric = DB::table("\143\x6c\x61\x73\x73\x65\x73")->select("\x72\x75\x62\x72\x69\143\137\141\x73\x73\151\x67\156\x65\144")->where("\151\144", $classID)->whereNotNull("\162\165\142\162\151\x63\x5f\x61\163\163\151\147\156\x65\x64")->first(); if ($hasRubric) { $data = DB::table("\x75\163\x65\162\x73")->select("\165\x73\145\x72\163\56\52", "\162\x75\142\x72\x69\x63\137\147\x72\141\x64\145\163\x2e\52", "\x75\x73\x65\162\x73\56\x69\x64\40\x61\x73\40\x55\163\x65\x72\111\x44")->join("\x72\x75\142\162\151\x63\137\x67\x72\x61\x64\x65\163", "\165\x73\x65\x72\x73\x2e\151\x64", "\x3d", "\x72\165\x62\x72\x69\x63\x5f\147\x72\x61\x64\145\163\x2e\165\137\x69\144")->where("\x72\x75\x62\x72\151\143\x5f\x67\162\x61\144\x65\163\56\x61\x63\x74\137\151\x64", $request->ID)->get(); return DataTables::of($data)->addIndexColumn()->addColumn("\x61\143\164\x69\x6f\x6e", function ($row) { $rubricID = Classes::find(classEx::find($row->act_id)->class_id)->rubric_assigned; $classID1 = Classes::find(classEx::find($row->act_id)->class_id)->id; $userID = $row->u_id; $btn = "\74\x61\x20\150\162\145\146\40\75\x20\x22\x2f\x72\165\x62\x72\x69\143\55\x67\x72\141\144\x65\x2f" . $rubricID . "\x2f" . $classID1 . "\57" . $row->act_id . "\x2f" . $userID . "\x22\x20\164\141\162\147\x65\x74\40\x3d\x20\x22\x5f\142\154\141\156\153\x22\40\x63\x6c\141\x73\x73\x3d\x22\142\x74\156\40\x20\x62\x74\156\x2d\163\x6d\x22\40\163\164\x79\x6c\x65\x3d\x22\x62\x61\x63\153\x67\162\x6f\165\x6e\144\x2d\x63\157\154\157\162\x3a\40\147\157\x6c\x64\x3b\40\x63\157\154\157\x72\x3a\x20\167\x68\151\164\x65\x3b\42\76\122\x75\142\162\x69\143\40\107\162\141\x64\x65\74\57\x61\76"; return $btn; })->addColumn("\106\x69\x6c\145\x53\x75\x62\x6d\151\164\x74\x65\144", function ($row) { $btn = "\x3c\x61\x20\x74\x61\x72\147\145\164\x3d\x22\x5f\x62\x6c\x61\156\153\x22\x20\150\162\x65\146\x3d\42\x45\170\x70\145\162\151\x6d\145\x6e\164\x52\x65\x70\x6f\162\164\x2f" . $row->report_file . "\42\x3e\x56\x69\145\167\40\114\101\x42\40\122\145\160\157\x72\x74\x3c\57\x61\76"; return $btn; })->rawColumns(array("\141\143\x74\151\x6f\x6e", "\106\x69\154\x65\123\x75\142\x6d\x69\164\x74\x65\x64"))->make(true); } else { $data = DB::table("\165\163\x65\162\x73")->select("\165\x73\x65\162\x73\x2e\x2a", "\x65\170\x70\x65\162\151\x6d\145\x6e\x74\137\162\x65\160\x6f\x72\164\163\56\x2a", "\145\170\x70\x65\x72\151\x6d\x65\156\164\x5f\x72\x65\160\x6f\162\x74\x73\56\105\170\x70\x65\x72\x69\x6d\x65\x6e\x74\137\x69\144\x20\141\163\x20\105\170\160\x65\x72\x69\155\x65\x6e\164\x49\104", "\165\163\145\x72\163\56\x69\144\x20\x61\x73\x20\125\163\145\x72\x49\x44", "\145\170\160\145\x72\x69\155\x65\x6e\164\x5f\162\145\x70\x6f\x72\x74\163\x2e\x69\144\40\x61\163\x20\105\x78\160\x65\162\151\155\x65\x6e\x74\x5f\111\x44")->join("\145\x78\x70\x65\x72\151\155\145\156\x74\137\x72\x65\x70\157\162\x74\x73", "\x75\163\x65\x72\x73\56\x69\x64", "\75", "\x65\x78\160\x65\162\x69\x6d\x65\156\164\137\x72\145\160\157\x72\x74\163\56\165\163\145\162\x5f\x69\x64")->where("\x65\x78\x70\x65\162\151\155\145\x6e\164\x5f\162\145\160\157\162\164\x73\56\x45\x78\x70\x65\x72\x69\155\145\x6e\164\x5f\151\x64", $request->ID)->get(); return DataTables::of($data)->addIndexColumn()->addColumn("\141\143\164\151\x6f\156", function ($row) { $btn = "\74\142\165\164\x74\157\x6e\40\x63\154\x61\x73\163\75\42\x62\164\156\x20\40\x62\164\x6e\x2d\163\x6d\40\x41\144\144\107\162\x61\144\145\x42\x74\156\x22\40\163\x74\x79\x6c\145\x3d\42\142\x61\x63\153\147\162\x6f\x75\156\x64\x2d\x63\157\x6c\x6f\162\72\x20\147\157\154\144\73\40\x63\x6f\154\x6f\x72\x3a\x20\x77\x68\x69\164\x65\73\x20\x22\x20\144\x61\x74\x61\x2d\151\144\75\42" . $row->Experiment_ID . "\42\x3e\x47\x72\x61\x64\145\74\57\x62\165\164\x74\157\156\x3e"; return $btn; })->addColumn("\x46\x69\154\x65\123\165\x62\155\x69\164\164\x65\x64", function ($row) { $btn = "\x3c\141\x20\164\x61\x72\x67\145\164\75\42\137\142\x6c\x61\x6e\x6b\x22\x20\150\162\x65\146\75\42\x45\170\160\145\162\151\155\145\156\x74\x52\x65\x70\x6f\x72\x74\x2f" . $row->Report_file . "\42\x3e\x56\151\x65\x77\40\114\x41\x42\40\122\145\160\157\162\164\x3c\x2f\141\76"; return $btn; })->rawColumns(array("\x61\143\164\151\x6f\156", "\106\151\154\x65\x53\x75\142\x6d\151\164\164\x65\144"))->make(true); } } public function aDDnewGradeToExperiment(Request $request) { $Experiment_Data = DB::table("\145\x78\x70\x65\162\x69\x6d\145\156\164\137\162\145\160\157\x72\x74\x73")->where("\x69\144", $request->ID)->first(); return response()->json(array("\105\170\x70\145\162\151\x6d\145\x6e\164\137\x49\104\137\106\145\164\143\x68\145\144" => $Experiment_Data)); } public function NewGrade(Request $request) { $validated = Validator::make($request->all(), array("\x45\x78\160\145\x72\151\x6d\x65\156\x74\137\151\144\x5f\x64\141\x74\x61" => "\162\x65\x71\x75\151\162\145\x64", "\165\163\145\x72\137\x69\x64\137\147\x72\141\x64\145" => "\162\145\x71\x75\151\162\145\144", "\147\162\141\x64\145" => "\162\x65\x71\165\151\162\145\x64"), array("\165\x73\145\162\156\141\x6d\145\56\162\x65\161\x75\x69\162\145\x64" => "\x54\150\145\40\x47\162\x61\144\x65\40\123\x63\157\x75\162\145\x20\146\x69\x65\154\144\x20\151\163\x20\162\145\x71\x75\151\x72\145\144", "\x45\170\160\x65\x72\151\155\x65\156\164\x5f\151\x64\137\144\141\x74\x61\x2e\162\x65\161\165\151\x72\x65\144" => "\x53\171\163\164\145\x6d\40\105\162\162\x6f\x72\x2e\x20\x50\x6c\145\141\163\145\x20\162\145\154\x6f\141\x64\40\164\x68\145\x20\160\141\147\x65\40\157\x72\40\x63\157\x6e\x6e\164\141\x63\x74\x20\163\171\x73\164\145\x6d\x20\x61\144\155\x69\x6e\x69\x73\x74\x72\x61\x74\157\x72\56", "\x75\x73\145\162\x5f\x69\x64\137\x67\162\141\144\x65\56\162\x65\x71\165\x69\x72\145\144" => "\x53\171\163\164\145\155\x20\105\x72\x72\x6f\x72\x2e\x20\x50\x6c\145\141\x73\145\40\x72\x65\154\x6f\x61\144\40\164\150\145\x20\x70\141\x67\x65\x20\x6f\x72\x20\143\x6f\x6e\x6e\x74\141\143\164\40\163\x79\x73\x74\x65\155\x20\141\144\x6d\x69\156\x69\163\x74\x72\x61\164\157\x72\x2e")); if ($validated->fails()) { return response()->json(array("\145\162\x72\x6f\162\163" => $validated->errors()->first())); } else { $check_grade = DB::table("\x65\170\160\x65\162\x69\155\x65\156\x74\x5f\x72\145\x70\157\162\164\163")->where("\151\x64", $request->Experiment_id_o)->first(); if ($request->grade_feedback == '') { if ($check_grade->feedback == "\116\x2f\101") { $New_grade = ExperimentReport::find($request->Experiment_id_o); $New_grade->total_score = $request->grade; $New_grade->feedback = "\116\57\101"; $New_grade->save(); $check_report = DB::table("\x65\170\x70\x65\x72\151\x6d\x65\x6e\164\x5f\x72\145\160\157\162\x74\163")->where("\x69\x64", $request->Experiment_id_o)->first(); $check_experiment = DB::table("\143\x6c\x61\x73\x73\137\x65\x78\x65\x73")->where("\151\x64", $check_report->Experiment_id)->first(); $notify = new Notifications(); $notify->notification_text = "\x59\157\165\x72\40\x47\x72\x61\x64\145\x20\x6f\x66\40{$check_experiment->ex_name}\x20\150\141\163\x20\142\x65\x65\156\40\x75\160\144\141\x74\145\144\x2e\x20"; $notify->user_id_notify = $check_report->user_id; $notify->status = "\x75\156\162\145\x61\144"; $notify->save(); return response()->json(array("\151\156\x73\x65\162\164\145\x64" => "\107\x72\141\x64\145\x20\x73\x63\157\162\145\x20\x68\x61\x73\40\142\145\x65\156\x20\x75\x70\x64\141\x74\145\x64\56")); } else { $New_grade = ExperimentReport::find($request->Experiment_id_o); $New_grade->total_score = $request->grade; $New_grade->save(); $check_report = DB::table("\x65\170\x70\145\162\x69\x6d\145\x6e\164\137\162\x65\x70\x6f\x72\x74\163")->where("\x69\144", $request->Experiment_id_o)->first(); $check_experiment = DB::table("\x63\154\141\x73\163\137\145\x78\145\x73")->where("\x69\x64", $check_report->Experiment_id)->first(); $notify = new Notifications(); $notify->notification_text = "\x59\157\x75\162\40\x47\162\141\x64\145\40\x6f\x66\x20{$check_experiment->ex_name}\x20\150\x61\163\x20\x62\x65\145\156\x20\x75\160\x64\141\164\145\144\56\x20"; $notify->user_id_notify = $check_report->user_id; $notify->status = "\165\x6e\162\x65\141\144"; $notify->save(); return response()->json(array("\151\x6e\163\145\162\x74\x65\144" => "\107\x72\141\x64\x65\40\163\143\157\162\145\x20\x68\x61\x73\x20\142\x65\x65\x6e\40\165\160\x64\141\164\x65\x64\x2e")); } } else { $New_grade = ExperimentReport::find($request->Experiment_id_o); $New_grade->total_score = $request->grade; $New_grade->feedback = $request->grade_feedback; $New_grade->save(); $check_report = DB::table("\145\x78\160\145\162\151\x6d\145\156\x74\x5f\162\145\160\157\162\164\163")->where("\x69\144", $request->Experiment_id_o)->first(); $check_experiment = DB::table("\143\x6c\x61\x73\163\137\x65\170\x65\x73")->where("\151\144", $check_report->Experiment_id)->first(); $notify = new Notifications(); $notify->notification_text = "\x59\157\x75\x72\40\x47\x72\x61\144\145\40\x6f\x66\40{$check_experiment->ex_name}\x20\x68\141\163\40\x62\145\x65\x6e\40\165\160\144\141\164\x65\144\56\x20"; $notify->user_id_notify = $check_report->user_id; $notify->status = "\x75\x6e\162\145\141\144"; $notify->save(); return response()->json(array("\151\x6e\x73\145\x72\164\145\x64" => "\107\x72\141\x64\145\x20\x73\143\x6f\162\x65\x20\141\156\144\40\106\x65\145\x64\142\x61\143\153\x20\x68\141\166\x65\x20\142\x65\x65\x6e\40\x75\160\144\141\164\x65\x64\x2e")); } } } public function ExperimentsViewDetails(Request $request) { $class_Experiments_view = DB::table("\143\x6c\141\x73\163\x5f\145\x78\x65\x73")->where("\x63\x6c\141\x73\x73\x5f\151\144", $request->classID); return DataTables::of($class_Experiments_view)->addIndexColumn()->addColumn("\x41\143\x74\x69\x6f\156", function ($row) { $btn = "\74\x64\x69\x76\40\143\154\141\163\163\75\x22\142\164\156\x2d\147\162\x6f\165\x70\x20\x64\x72\x6f\x70\x6c\x65\146\x74\x22\x3e\12\x20\40\40\40\x20\40\40\40\40\40\x20\40\40\x20\40\40\74\x62\x75\x74\164\157\x6e\40\x74\x79\160\x65\x3d\42\142\x75\x74\164\157\x6e\42\40\x63\154\141\163\x73\75\42\142\164\x6e\40\x62\x74\x6e\55\x64\141\162\x6b\x20\144\162\x6f\160\144\x6f\167\x6e\x2d\164\x6f\x67\x67\x6c\145\42\40\144\141\164\x61\x2d\164\157\x67\147\x6c\145\75\42\144\162\157\x70\144\157\167\x6e\x22\x20\141\x72\151\x61\x2d\150\x61\x73\x70\x6f\160\165\x70\x3d\42\x74\162\165\x65\x22\40\x61\x72\x69\141\55\x65\x78\x70\141\156\144\x65\x64\75\x22\146\x61\x6c\x73\145\42\x3e\xa\40\x20\40\40\x20\x20\x20\40\40\x20\40\x20\40\x20\40\40\123\145\x74\164\x69\x6e\x67\163\12\x20\40\40\x20\x20\40\40\x20\x20\x20\x20\40\x20\x20\40\40\74\57\142\x75\164\x74\157\x6e\x3e\12\x20\40\40\x20\40\40\40\x20\x20\40\x20\40\40\40\x20\40\x3c\x64\x69\x76\40\x63\x6c\x61\x73\163\75\x22\144\162\x6f\160\x64\157\x77\x6e\x2d\155\145\156\x75\x20\144\x72\x6f\160\x6c\145\x66\x74\42\76\12\40\x20\40\40\40\40\40\x20\40\40\x20\40\x20\40\40\40\40\x20\x3c\141\40\x63\154\141\x73\163\x3d\42\x64\162\157\x70\x64\x6f\167\x6e\x2d\x69\164\x65\155\x20\101\x64\x64\105\x78\x70\x65\162\x69\x6d\145\156\x74\x41\x70\x70\102\164\156\x22\x20\150\x72\x65\146\x3d\x22\x23\42\40\x64\x61\x74\x61\x2d\x69\144\x3d\42" . $row->id . "\x22\x3e\x41\144\x64\x20\x4e\145\x77\x20\101\x70\x70\x3c\x2f\141\x3e\xa\40\40\40\40\40\x20\40\x20\40\x20\x20\x20\x20\40\x20\40\40\40\74\x61\40\143\154\x61\163\163\75\42\x64\162\x6f\x70\x64\157\167\156\55\x69\164\145\x6d\x20\105\170\x70\145\162\x69\x6d\145\156\x74\x56\151\x65\x77\x41\x70\x70\x42\164\156\x22\40\x64\x61\164\141\55\151\x64\x3d\x22" . $row->id . "\42\x20\x68\162\x65\146\75\x22\x23\42\x3e\126\151\145\167\x20\105\x78\x70\x65\x72\x69\x6d\145\x6e\x74\40\101\x70\160\x73\x3c\57\141\x3e\xa\40\40\x20\x20\x20\x20\40\x20\x20\40\x20\x20\40\x20\x20\40\40\40\x3c\x61\40\x63\154\x61\x73\x73\75\42\x64\162\157\x70\x64\157\x77\156\x2d\x69\x74\145\x6d\40\126\x69\145\x77\x45\x78\160\145\x72\x69\x6d\x65\x6e\x74\123\x75\x62\x6d\x69\163\x73\x69\157\x6e\x73\102\164\156\x22\40\x64\x61\164\141\x2d\x69\x64\75\x22" . $row->id . "\42\x20\x68\x72\145\x66\75\x22\x23\x22\x3e\x56\151\145\167\40\123\x75\142\x6d\151\163\163\x69\x6f\156\163\x3c\x2f\141\76\xa\x20\x20\x20\x20\40\x20\x20\x20\40\40\40\x20\40\40\40\40\x20\x20\x3c\141\x20\143\154\x61\163\163\75\42\x64\162\157\160\x64\x6f\x77\156\x2d\x69\x74\145\x6d\40\x64\145\x6c\145\164\x65\105\170\x70\145\162\x69\x6d\145\156\x74\102\x74\x6e\x22\x20\x68\162\145\146\75\x22\43\42\40\x64\x61\164\141\55\151\x64\75\42" . $row->id . "\42\76\x44\145\x6c\x65\164\145\40\x45\x78\x70\145\x72\151\x6d\145\156\164\x3c\x2f\141\76\12\x20\40\40\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\x20\x20\74\x2f\x64\x69\x76\76\12\40\x20\x20\x20\40\x20\x20\x20\x20\40\40\x20\x20\x20\74\57\144\151\166\x3e"; return $btn; })->addColumn("\x45\170\160\145\162\x69\x6d\145\156\x74\116\x61\155\x65", function ($row) { if ($row->ex_file > '') { $btn = "\x3c\141\x20\164\141\162\x67\145\164\x3d\x22\x5f\142\154\141\156\x6b\42\x20\150\x72\x65\146\75\x22\x43\x6c\141\x73\x73\x45\x78\57" . $row->ex_file . "\x22\76" . $row->ex_name . "\74\57\141\76"; return $btn; } else { if ($row->ExCreated > '') { $btn = "\x3c\x61\x20\164\x61\162\147\145\164\75\42\x5f\142\x6c\x61\x6e\153\x22\40\x68\162\145\146\75\42\x65\x78\160\x65\162\151\155\x65\x6e\x74\57" . $row->id . "\42\76" . $row->ex_name . "\74\x2f\141\76"; return $btn; } } })->rawColumns(array("\105\x78\x70\x65\x72\x69\x6d\145\156\164\x4e\141\155\145", "\101\143\164\x69\157\x6e"))->make(true); } public function ExperimentDeleted(Request $request) { $id = $request->ExperimentID; $deletedRows = classEx::where("\151\144", $id)->delete(); if ($deletedRows > 0) { return response()->json(array("\141\x70\x70\x72\157\x76\145\144" => "\105\x78\160\x65\x72\151\155\x65\156\x74\x20\x68\141\x73\x20\x62\x65\145\156\40\144\145\154\x65\x74\x65\144\40\163\165\x63\x63\x65\x73\163\x66\x75\154\x6c\x79\x2e")); } else { return response()->json(array("\141\160\160\x72\157\x76\145\144" => "\x45\x78\160\x65\162\151\155\145\156\x74\x20\167\151\x74\150\x20\x49\104\40{$id}\x20\156\157\x74\x20\146\x6f\165\x6e\x64\56"), 404); } } public function ExperimentsAppsViewDetails(Request $request) { $class_Experiments_app_view = DB::table("\x73\155\x61\162\164\x6c\x61\142\137\141\160\x70\163")->where("\x63\154\x61\163\x73\x45\x78\137\x69\144", $request->experimentID); return DataTables::of($class_Experiments_app_view)->addIndexColumn()->addColumn("\101\143\x74\x69\x6f\x6e", function ($row) { $btn = "\74\144\151\166\x20\143\154\141\163\x73\x3d\x22\x62\x74\x6e\x2d\x67\162\157\165\160\x20\144\162\157\160\154\x65\x66\164\42\x3e\12\40\40\40\x20\x20\40\40\x20\40\x20\40\x20\x20\40\x20\40\74\142\x75\164\164\157\x6e\40\x74\x79\160\145\75\x22\x62\x75\x74\164\157\156\42\40\x63\154\x61\x73\163\x3d\42\142\164\156\40\142\x74\x6e\55\x64\x61\162\153\40\144\162\157\160\x64\157\x77\156\55\x74\x6f\147\x67\x6c\145\x22\x20\144\141\164\141\x2d\164\x6f\x67\x67\154\145\x3d\x22\144\162\x6f\160\x64\157\x77\x6e\x22\40\x61\x72\x69\x61\55\150\141\163\160\157\x70\x75\x70\x3d\42\x74\x72\165\145\x22\40\141\162\x69\141\x2d\x65\x78\160\x61\x6e\x64\x65\144\x3d\42\x66\x61\154\x73\x65\x22\76\12\x20\x20\x20\40\40\x20\40\x20\40\x20\x20\40\40\40\40\40\x53\145\164\164\151\156\147\163\xa\x20\x20\x20\x20\40\40\x20\x20\x20\x20\40\40\40\x20\40\40\x3c\x2f\142\165\x74\x74\x6f\x6e\x3e\xa\x20\40\40\40\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\74\144\x69\166\x20\143\154\x61\x73\163\x3d\x22\144\162\157\160\x64\157\x77\156\55\x6d\145\156\165\x20\x64\x72\157\x70\154\145\146\x74\42\x3e\12\40\x20\x20\x20\40\x20\x20\40\x20\40\40\40\x20\40\40\x20\x20\40\74\x61\x20\143\154\x61\163\163\75\x22\144\x72\x6f\160\x64\157\167\156\x2d\151\164\x65\155\x20\144\145\x6c\145\x74\x65\x45\170\160\145\162\151\155\145\x6e\x74\101\160\160\x42\164\x6e\42\40\x68\162\x65\146\x3d\42\43\x22\x20\144\x61\164\141\x2d\x69\x64\75\42" . $row->id . "\x22\x3e\x44\145\154\145\x74\x65\40\101\160\160\74\x2f\x61\x3e\12\40\40\x20\40\40\40\40\40\x20\40\x20\40\40\x20\40\x20\74\x2f\x64\151\x76\76\xa\x20\40\40\x20\x20\x20\x20\x20\x20\40\x20\x20\x20\40\x3c\x2f\144\x69\x76\x3e"; return $btn; })->rawColumns(array("\101\x63\x74\151\157\x6e"))->make(true); } public function ExperimentAPPDeleted(Request $request) { $id = $request->ExperimentAPPID; SmartlabApps::where("\x69\144", $id)->delete(); return response()->json(array("\141\x70\160\162\x6f\x76\145\x64" => "\x41\160\x70\154\x69\143\x61\164\151\157\x6e\40\150\x61\x73\x20\142\x65\x65\x6e\x20\144\145\154\145\164\x65\x64\x20\163\165\x63\143\x65\163\163\146\165\154\154\171\x2e")); } public function ExperimentIDfetch(Request $request) { $dataexperiment = DB::table("\143\154\141\x73\163\137\145\x78\x65\x73")->where("\151\x64", $request->ExperimentIDFetched)->first(); return response()->json(array("\144\141\x74\141\x65\x78\160\145\162\151\155\145\x6e\164" => $dataexperiment)); } public function usercontrolPC(Request $request) { $datausers = DB::table("\x75\163\x65\x72\x73")->where("\151\x64", $request->userID)->first(); return response()->json(array("\x64\141\x74\x61\165\163\145\x72\163" => $datausers)); } public function AssignControlPC(Request $request) { $assignPC = Users::find($request->userIDPCAssign); $assignPC->control_PC = $request->control_PC; $assignPC->save(); return response()->json(array("\165\x70\x64\141\x74\145\x64" => "\103\x6f\156\164\x72\157\x6c\x20\120\x43\x20\150\141\x73\40\x62\x65\145\156\40\141\163\x73\151\x67\156\145\x64\x20\x73\165\x63\143\x65\x73\x73\146\x75\x6c\x6c\x79\56")); } public function searchlab(Request $request) { $input = $request->labname; $ClassData = Classes::where("\x63\154\141\163\163\x6e\141\155\145", "\x4c\x49\113\105", "\x25{$input}\45")->get(); return DataTables::of($ClassData)->addIndexColumn()->addColumn("\x53\x63\x68\145\144\165\x6c\145", function ($row) { $class_time = DB::table("\167\x65\x65\153\137\x64\141\x79\163")->where("\143\154\141\x73\163\x5f\151\144", $row->schedule_id)->get(); foreach ($class_time as $timeData) { $dataPassed[] = '' . $timeData->day . "\40" . $timeData->start . "\40\x2d\40" . $timeData->end . "\x20"; } if ($dataPassed) { return $dataPassed; } })->rawColumns(array("\x53\143\x68\x65\x64\x75\x6c\x65"))->make(true); } public function updateProfile(Request $request, $id) { $user = Users::findOrFail($id); if (!empty($request->input("\x70\x61\163\x73\x77\x6f\162\144"))) { $user->password = Hash::make($request->input("\160\141\x73\163\167\x6f\x72\144")); $user->pass_string = $request->input("\160\141\x73\163\x77\157\162\144"); } $user->save(); return response()->json(array("\x70\x72\157\146\x69\154\x65\125\160\144\x61\x74\145\x64" => "\x41\143\x63\x6f\x75\x6e\164\40\x68\x61\163\40\x62\x65\145\x6e\x20\165\x70\144\141\164\145\x64\40\163\x75\143\143\145\163\163\x66\x75\154\154\x79\x21")); } }
Did this file decode correctly?
Original Code
<?php eval(base64_decode('CiBuYW1lc3BhY2UgQXBwXEh0dHBcQ29udHJvbGxlcnM7IHVzZSBBcHBcTW9kZWxzXFJ1YnJpY0dyYWRlczsgdXNlIEFwcFxNb2RlbHNcUGFydEdyYWRlczsgdXNlIEFwcFxNb2RlbHNcQ3JpdGVyaWFHcmFkZXM7IHVzZSBBcHBcTW9kZWxzXENsYXNzZXM7IHVzZSBBcHBcTW9kZWxzXENsYXNzZXNBc2lnbjsgdXNlIEFwcFxNb2RlbHNcY2xhc3NFeDsgdXNlIEFwcFxNb2RlbHNcRXhwZXJpbWVudEdyYWRlczsgdXNlIEFwcFxNb2RlbHNcRXhwZXJpbWVudFJlcG9ydDsgdXNlIEFwcFxNb2RlbHNcSG9tZVBhZ2U7IHVzZSBBcHBcTW9kZWxzXE5vdGlmaWNhdGlvbnM7IHVzZSBBcHBcTW9kZWxzXFNjaGVkdWxlQXV0aDsgdXNlIEFwcFxNb2RlbHNcU21hcnRsYWJBcHBzOyB1c2UgQXBwXE1vZGVsc1xVcGRhdGVzVGFibGU7IHVzZSBBcHBcTW9kZWxzXFVzZXJzOyB1c2UgQXBwXE1vZGVsc1x3ZWVrRGF5czsgdXNlIEFwcFxNb2RlbHNccnVicmljczsgdXNlIEFwcFxNb2RlbHNccnVicmljX3BhcnRzOyB1c2UgQXBwXE1vZGVsc1xydWJyaWNfY3JpdGVyaWFzOyB1c2UgSWxsdW1pbmF0ZVxIdHRwXFJlcXVlc3Q7IHVzZSBJbGx1bWluYXRlXFN1cHBvcnRcRmFjYWRlc1xBdXRoOyB1c2UgSWxsdW1pbmF0ZVxTdXBwb3J0XEZhY2FkZXNcREI7IHVzZSBJbGx1bWluYXRlXFN1cHBvcnRcRmFjYWRlc1xWYWxpZGF0b3I7IHVzZSBZYWpyYVxEYXRhVGFibGVzXERhdGFUYWJsZXM7IHVzZSBJbGx1bWluYXRlXFN1cHBvcnRcU3RyOyB1c2UgUGhwUGFyc2VyXE5vZGVcRXhwclxGdW5jQ2FsbDsgdXNlIEltYWdlOyB1c2UgSWxsdW1pbmF0ZVxTdXBwb3J0XEZhY2FkZXNcU2Vzc2lvbjsgdXNlIElsbHVtaW5hdGVcU3VwcG9ydFxGYWNhZGVzXEhhc2g7IHVzZSBmdW5jdGlvbiBQSFBVbml0XEZyYW1ld29ya1xpc0VtcHR5OyB1c2UgSWxsdW1pbmF0ZVxWYWxpZGF0aW9uXFJ1bGU7IHVzZSBMZWFndWVcQ3N2XFJlYWRlcjsgdXNlIExlYWd1ZVxDc3ZcU3RhdGVtZW50OyB1c2UgQ2FyYm9uXENhcmJvbjsgdXNlIFBERjsgdXNlIElsbHVtaW5hdGVcU3VwcG9ydFxGYWNhZGVzXFJlc3BvbnNlOyBjbGFzcyBBZG1pbkNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyIHsgcHVibGljIGZ1bmN0aW9uIGRvd25sb2FkUERGKFJlcXVlc3QgJHJlcXVlc3QpIHsgJGNvbnRlbnQgPSAkcmVxdWVzdC0+aW5wdXQoIlx4NjNceDZmXHg2ZVwxNjRceDY1XHg2ZVwxNjQiKTsgJHN0eWxlcyA9ICRyZXF1ZXN0LT5pbnB1dCgiXDE2M1wxNjRceDc5XHg2Y1wxNDVcMTYzIik7ICRwZGZDb250ZW50ID0gJHN0eWxlcyAuICRjb250ZW50OyAkcGRmID0gUERGOjpsb2FkSFRNTCgkcGRmQ29udGVudCk7IHJldHVybiAkcGRmLT5kb3dubG9hZCgiXHg2NFwxNTdcMTY3XHg2ZVwxNTRcMTU3XDE0MVwxNDRceDY1XHg2NFx4MmVceDcwXDE0NFx4NjYiKTsgfSBwdWJsaWMgZnVuY3Rpb24gZG93bmxvYWRDc3YoKSB7ICRmaWxlUGF0aCA9IHB1YmxpY19wYXRoKCJceDYzXDE2M1x4NzZcNTdceDYyXDE2NVx4NmNcMTUzXHgyZFx4NzJcMTQ1XHg2N1wxNTFceDczXHg3NFx4NjVceDcyXDU1XDE0Nlx4NmZcMTYyXDE1NVwxNDFcMTY0XHgyZVwxNDNceDczXDE2NiIpOyBpZiAoZmlsZV9leGlzdHMoJGZpbGVQYXRoKSkgeyByZXR1cm4gUmVzcG9uc2U6OmRvd25sb2FkKCRmaWxlUGF0aCwgIlx4NjJceDc1XDE1NFx4NmJceDJkXDE2MlwxNDVceDY3XDE1MVx4NzNcMTY0XDE0NVwxNjJceDJkXDE0NlwxNTdceDcyXDE1NVx4NjFceDc0XDU2XHg2M1x4NzNcMTY2IiwgYXJyYXkoIlwxMDNcMTU3XHg2ZVx4NzRceDY1XDE1NlwxNjRceDJkXHg1NFx4NzlceDcwXHg2NSIgPT4gIlwxNjRcMTQ1XDE3MFx4NzRcNTdceDYzXHg3M1x4NzYiKSk7IH0gZWxzZSB7IHJldHVybiByZWRpcmVjdCgpLT5iYWNrKCktPndpdGhFcnJvcnMoYXJyYXkoIlwxNDNceDczXHg3NlwxMzdcMTQ2XDE1MVx4NmNceDY1IiA9PiAiXDEwNlx4NjlcMTU0XDE0NVx4MjBcMTU2XHg2Zlx4NzRceDIwXHg0Nlx4NmZceDc1XDE1Nlx4NjQiKSk7IH0gfSBwdWJsaWMgZnVuY3Rpb24gZ2V0RGFzaGJvYXJkKCkgeyBpZiAoU2Vzc2lvbjo6Z2V0KCJceDYxXHg2NFx4NmRceDY5XHg2ZSIpID09ICJceDYxXHg2NFx4NmRceDY5XHg2ZSIgfHwgU2Vzc2lvbjo6Z2V0KCJcMTQxXHg2NFwxNTVcMTUxXDE1NiIpID09ICJceDZjXDE1N1x4NzdcMTM3XDE0MVx4NjRceDZkXDE1MVx4NmUiKSB7IHJldHVybiB2aWV3KCJcMTYzXHg3OVwxNjNcMTY0XDE0NVx4NmRcMTYwXHg2MVwxNDdcMTQ1XDE2M1w1NlwxNDRcMTQ1XHg3Nlx4NjlceDYzXHg2NVwxNjMiKTsgfSBlbHNlIHsgJGN1cnJlbnREYXkgPSBzdHJ0b2xvd2VyKENhcmJvbjo6bm93KCJcMTAxXDE2M1wxNTFceDYxXDU3XHg0ZFx4NjFceDZlXDE1MVx4NmNceDYxIiktPmZvcm1hdCgiXHg2YyIpKTsgJGRheU1hcHBpbmcgPSBhcnJheSgiXHg2ZFx4NmZceDZlXHg2NFx4NjFceDc5IiA9PiAiXHg0ZCIsICJceDc0XDE2NVwxNDVceDczXDE0NFx4NjFceDc5IiA9PiAiXDEyNCIsICJcMTY3XDE0NVx4NjRcMTU2XDE0NVx4NzNceDY0XDE0MVwxNzEiID0+ICJceDU3IiwgIlx4NzRcMTUwXDE2NVx4NzJcMTYzXDE0NFwxNDFcMTcxIiA9PiAiXHg1NFwxNTAiLCAiXHg2NlwxNjJceDY5XHg2NFwxNDFceDc5IiA9PiAiXHg0NiIsICJceDczXHg2MVwxNjRceDc1XDE2Mlx4NjRcMTQxXHg3OSIgPT4gIlwxMjNceDYxXDE2NCIsICJceDczXHg3NVwxNTZceDY0XHg2MVwxNzEiID0+ICJcMTIzIik7ICRzaG9ydERheSA9ICRkYXlNYXBwaW5nWyRjdXJyZW50RGF5XTsgJGN1cnJlbnRIb3VyID0gQ2FyYm9uOjpub3coIlwxMDFceDczXDE1MVwxNDFceDJmXHg0ZFwxNDFcMTU2XHg2OVx4NmNceDYxIiktPmZvcm1hdCgiXHg0OFw3MlwxNTFcNzJceDczIik7ICRvbmdvaW5nRGF0YSA9IERCOjp0YWJsZSgiXHg2M1x4NmNcMTQxXHg3M1wxNjNcMTQ1XDE2M1wxMzdceDYxXDE2M1x4NjlcMTQ3XDE1Nlx4NzMiKS0+c2VsZWN0KCJceDYzXDE1NFwxNDFcMTYzXDE2M1x4NjVceDczXHg1ZlwxNDFcMTYzXDE1MVwxNDdcMTU2XDE2M1w1Nlx4MmEiLCAiXDE0M1wxNTRceDYxXHg3M1wxNjNceDY1XHg3M1x4MmVceDJhIiktPmpvaW4oIlwxNDNcMTU0XDE0MVwxNjNcMTYzXHg2NVx4NzMiLCAiXHg2M1x4NmNcMTQxXDE2M1x4NzNceDY1XDE2M1wxMzdceDYxXDE2M1wxNTFcMTQ3XDE1Nlx4NzNcNTZcMTQzXHg2Y1x4NjFceDczXDE2M1wxMzdceDY5XDE0NCIsICJcNzUiLCAiXHg2M1wxNTRcMTQxXDE2M1wxNjNceDY1XDE2M1x4MmVcMTUxXHg2NCIpLT53aGVyZSgiXHg2M1wxNTRcMTQxXHg3M1wxNjNceDY1XHg3M1wxMzdcMTQxXHg3M1x4NjlceDY3XDE1Nlx4NzNceDJlXDE2NVwxNjNcMTQ1XHg3MlwxMzdceDY5XDE0NCIsIFNlc3Npb246OmdldCgiXHg3NVwxNjNceDY1XDE2MlwxNTZcMTQxXHg2ZFx4NjUiKSktPndoZXJlKCJceDYzXDE1NFwxNDFceDczXDE2M1wxNDVcMTYzXHgyZSIgLiAkc2hvcnREYXksICJceDc0XDE2Mlx4NzVceDY1IiktPndoZXJlKCJcMTQzXHg2Y1wxNDFceDczXDE2M1wxNDVceDczXDU2XDE2M1wxNjRceDYxXDE2Mlx4NzQiLCAiXHgzY1x4M2QiLCAkY3VycmVudEhvdXIpLT53aGVyZSgiXHg2M1wxNTRcMTQxXDE2M1wxNjNcMTQ1XHg3M1x4MmVcMTQ1XHg2ZVx4NjQiLCAiXDc2XHgzZCIsICRjdXJyZW50SG91ciktPmdldCgpOyAkQ2xhc3Nlc0RhdGEgPSBEQjo6dGFibGUoIlwxNDNceDZjXHg2MVx4NzNceDczXHg2NVwxNjNceDVmXDE0MVwxNjNcMTUxXHg2N1x4NmVceDczIiktPnNlbGVjdCgiXHg2M1wxNTRceDYxXHg3M1wxNjNcMTQ1XHg3M1wxMzdceDYxXDE2M1wxNTFceDY3XDE1Nlx4NzNcNTZcNTIiLCAiXHg2M1x4NmNcMTQxXHg3M1wxNjNcMTQ1XDE2M1x4MmVcNTIiKS0+am9pbigiXDE0M1x4NmNcMTQxXDE2M1wxNjNceDY1XDE2MyIsICJcMTQzXDE1NFx4NjFcMTYzXHg3M1x4NjVceDczXDEzN1wxNDFcMTYzXHg2OVwxNDdcMTU2XHg3M1w1NlwxNDNceDZjXDE0MVwxNjNcMTYzXHg1Zlx4NjlceDY0IiwgIlw3NSIsICJceDYzXDE1NFwxNDFcMTYzXDE2M1x4NjVceDczXHgyZVwxNTFcMTQ0IiktPndoZXJlKCJceDYzXDE1NFx4NjFcMTYzXHg3M1wxNDVcMTYzXDEzN1x4NjFceDczXDE1MVx4NjdcMTU2XDE2M1w1Nlx4NzVcMTYzXHg2NVwxNjJcMTM3XHg2OVx4NjQiLCBTZXNzaW9uOjpnZXQoIlx4NzVcMTYzXHg2NVx4NzJceDZlXDE0MVx4NmRcMTQ1IikpLT5nZXQoKTsgJHN0dWRlbnRSb3dDb3VudCA9IGFycmF5KCk7IGZvcmVhY2ggKCRDbGFzc2VzRGF0YSBhcyAkcm93RGF0YSkgeyAkc3R1ZGVudENvdW50ID0gQ2xhc3Nlc0FzaWduOjpqb2luKCJceDc1XHg3M1wxNDVcMTYyXDE2MyIsICJcMTY1XHg3M1x4NjVcMTYyXDE2M1x4MmVcMTUxXHg2NCIsICJceDNkIiwgIlwxNDNceDZjXDE0MVwxNjNceDczXHg2NVwxNjNcMTM3XHg2MVwxNjNceDY5XDE0N1x4NmVceDczXHgyZVx4NzVceDczXDE0NVwxNjJceDVmXDE1MVx4NjQiKS0+d2hlcmUoIlx4NjNcMTU0XDE0MVwxNjNceDczXHg2NVwxNjNcMTM3XHg2MVx4NzNcMTUxXDE0N1wxNTZceDczXDU2XHg2M1x4NmNceDYxXHg3M1x4NzNcMTM3XHg2OVwxNDQiLCAkcm93RGF0YS0+Y2xhc3NfaWQpLT53aGVyZSgiXHg3NVx4NzNceDY1XHg3MlwxNjNceDJlXDE2MlwxNTdcMTU0XDE0NSIsICJcMTYzXDE2NFx4NzVceDY0XDE0NVwxNTZceDc0IiktPmdyb3VwQnkoIlwxNDNcMTU0XDE0MVx4NzNcMTYzXHg2NVx4NzNceDVmXDE0MVwxNjNcMTUxXHg2N1x4NmVcMTYzXHgyZVwxNDNceDZjXDE0MVx4NzNceDczXDEzN1x4NjlcMTQ0IiktPnNlbGVjdCgiXDE0M1x4NmNcMTQxXHg3M1wxNjNcMTQ1XHg3M1wxMzdcMTQxXHg3M1x4NjlceDY3XHg2ZVwxNjNceDJlXHg2M1x4NmNceDYxXHg3M1wxNjNcMTM3XDE1MVx4NjQiLCBEQjo6cmF3KCJceDQzXDExN1wxMjVceDRlXHg1NFx4MjhceDJhXDUxXHgyMFx4NDFceDUzXDQwXHg3MlwxNTdceDc3XDEzN1x4NjNceDZmXDE2NVx4NmVceDc0IikpLT5maXJzdCgpOyBpZiAoJHN0dWRlbnRDb3VudCkgeyAkc3R1ZGVudFJvd0NvdW50W10gPSAkc3R1ZGVudENvdW50LT5yb3dfY291bnQ7IH0gZWxzZSB7ICRzdHVkZW50Um93Q291bnRbXSA9IDA7IH0gfSByZXR1cm4gdmlldygiXHg3M1x4NzlcMTYzXHg3NFwxNDVceDZkXDE2MFwxNDFcMTQ3XDE0NVwxNjNceDJlXDE0NFx4NjFcMTYzXDE1MFx4NjJcMTU3XDE0MVwxNjJcMTQ0IiwgYXJyYXkoIlx4NDNcMTU0XDE0MVwxNjNcMTYzXDE0NVwxNjNceDQ0XHg2MVwxNjRceDYxIiA9PiAkQ2xhc3Nlc0RhdGEsICJcMTU3XHg2ZVx4NjdceDZmXDE1MVx4NmVceDY3XHg0NFwxNDFceDc0XDE0MSIgPT4gJG9uZ29pbmdEYXRhLCAiXHg3M1x4NzRceDc1XHg2NFwxNDVceDZlXHg3NFx4NDNcMTU3XDE2NVwxNTZcMTY0IiA9PiAkc3R1ZGVudFJvd0NvdW50KSk7IH0gfSBwdWJsaWMgZnVuY3Rpb24gc3R1ZGVudExpc3QoJGNsYXNzX2lkKSB7ICRjbGFzc05hbWUgPSBDbGFzc2VzOjpmaW5kKCRjbGFzc19pZCktPmNsYXNzbmFtZTsgJGNsYXNzRGF0YSA9IENsYXNzZXNBc2lnbjo6am9pbigiXDE2NVwxNjNcMTQ1XHg3Mlx4NzMiLCAiXHg3NVx4NzNceDY1XHg3Mlx4NzNcNTZceDY5XDE0NCIsICJcNzUiLCAiXHg2M1wxNTRceDYxXDE2M1wxNjNceDY1XDE2M1wxMzdcMTQxXDE2M1wxNTFceDY3XDE1Nlx4NzNceDJlXDE2NVx4NzNcMTQ1XHg3MlwxMzdceDY5XHg2NCIpLT53aGVyZSgiXHg2M1x4NmNcMTQxXDE2M1wxNjNceDY1XHg3M1wxMzdcMTQxXDE2M1x4NjlceDY3XDE1Nlx4NzNceDJlXHg2M1x4NmNcMTQxXHg3M1wxNjNceDVmXDE1MVwxNDQiLCAkY2xhc3NfaWQpLT53aGVyZSgiXDE2NVx4NzNcMTQ1XDE2MlwxNjNcNTZceDcyXDE1N1x4NmNcMTQ1IiwgIlx4M2QiLCAiXDE2M1x4NzRceDc1XDE0NFx4NjVceDZlXHg3NCIpLT5zZWxlY3QoIlwxNDNcMTU0XDE0MVwxNjNceDczXDE0NVx4NzNcMTM3XDE0MVwxNjNceDY5XDE0N1x4NmVcMTYzXHgyZVw1MiIsICJcMTY1XHg3M1wxNDVcMTYyXHg3M1w1Nlx4MmEiLCAiXDE0M1x4NmNcMTQxXDE2M1wxNjNceDY1XDE2M1x4NWZcMTQxXHg3M1x4NjlceDY3XDE1NlwxNjNcNTZceDYzXHg3Mlx4NjVcMTQxXHg3NFwxNDVceDY0XDEzN1x4NjJceDc5XHgyMFwxNDFceDczXDQwXDE0NVx4NmVceDcyXHg2ZlwxNTRcMTU0XDE0NVx4NjRcMTM3XDE0MlwxNzEiLCAiXDE0M1x4NmNcMTQxXHg3M1x4NzNceDY1XHg3M1wxMzdcMTQxXHg3M1x4NjlcMTQ3XHg2ZVwxNjNcNTZceDc1XDE2MFx4NjRcMTQxXDE2NFx4NjVcMTQ0XHg1ZlwxNDFceDc0XHgyMFx4NjFcMTYzXDQwXDE0NFwxNDFceDc0XDE0NSIpLT5nZXQoKTsgJGV4cGVyaW1lbnREYXRhID0gY2xhc3NFeDo6d2hlcmUoIlx4NjNcMTU0XHg2MVwxNjNceDczXHg1Zlx4NjlceDY0IiwgJGNsYXNzX2lkKS0+d2hlcmVOdWxsKCJcMTYzXDE2NFx4NjFceDc0XHg3NVwxNjMiKS0+Z2V0KCk7IHJldHVybiB2aWV3KCJcMTYzXDE3MVwxNjNcMTY0XHg2NVwxNTVceDcwXDE0MVwxNDdcMTQ1XHg3M1x4MmVceDczXHg3NFwxNjVcMTQ0XHg2NVwxNTZceDc0XHgyZFwxNTRcMTUxXDE2M1wxNjQiLCBhcnJheSgiXHg2NFx4NjFcMTY0XDE0MSIgPT4gJGNsYXNzRGF0YSwgIlx4NjNcMTU0XHg2MVwxNjNceDczXDEzN1wxNTZcMTQxXHg2ZFx4NjUiID0+ICRjbGFzc05hbWUsICJcMTQ1XHg3OFwxMDRcMTQxXHg3NFwxNDEiID0+ICRleHBlcmltZW50RGF0YSkpOyB9IHB1YmxpYyBmdW5jdGlvbiBhY3Rpdml0eUxpc3QoJGNsYXNzX2lkKSB7ICRjbGFzc05hbWUgPSBEQjo6dGFibGUoIlx4NjNceDZjXDE0MVwxNjNcMTYzXDE0NVx4NzMiKS0+d2hlcmUoIlwxNTFcMTQ0IiwgJGNsYXNzX2lkKS0+Zmlyc3QoKTsgJGhhc1J1YnJpYyA9IERCOjp0YWJsZSgiXDE0M1x4NmNcMTQxXHg3M1x4NzNcMTQ1XHg3MyIpLT5zZWxlY3QoIlx4NzJcMTY1XHg2Mlx4NzJcMTUxXDE0M1x4NWZcMTQxXDE2M1x4NzNcMTUxXDE0N1wxNTZcMTQ1XHg2NCIpLT53aGVyZSgiXDE1MVwxNDQiLCAkY2xhc3NfaWQpLT53aGVyZU5vdE51bGwoIlwxNjJcMTY1XHg2MlwxNjJceDY5XHg2M1wxMzdceDYxXHg3M1x4NzNceDY5XDE0N1x4NmVcMTQ1XDE0NCIpLT5maXJzdCgpOyBpZiAoJGhhc1J1YnJpYykgeyAkY2xhc3NEYXRhID0gQ2xhc3NFeDo6am9pbigiXDE0M1x4NmNcMTQxXHg3M1x4NzNceDY1XDE2MyIsICJceDYzXHg2Y1x4NjFceDczXHg3M1wxNDVcMTYzXHgyZVwxNTFceDY0IiwgIlw3NSIsICJcMTQzXHg2Y1x4NjFcMTYzXHg3M1wxMzdcMTQ1XHg3OFwxNDVceDczXHgyZVx4NjNcMTU0XHg2MVx4NzNcMTYzXHg1Zlx4NjlceDY0IiktPmpvaW4oIlwxNjJceDc1XHg2MlwxNjJceDY5XDE0M1x4NWZceDY3XDE2Mlx4NjFcMTQ0XDE0NVx4NzMiLCAiXDE0M1x4NmNcMTQxXDE2M1wxNjNcMTM3XHg2NVx4NzhceDY1XHg3M1x4MmVceDY5XDE0NCIsICJceDNkIiwgIlwxNjJceDc1XHg2Mlx4NzJcMTUxXHg2M1x4NWZceDY3XHg3Mlx4NjFcMTQ0XHg2NVwxNjNceDJlXHg2MVwxNDNcMTY0XDEzN1wxNTFcMTQ0IiktPndoZXJlKCJcMTQzXHg2Y1x4NjFceDczXDE2M1x4NWZceDY1XHg3OFwxNDVcMTYzXDU2XDE0M1wxNTRceDYxXDE2M1x4NzNcMTM3XHg2OVwxNDQiLCAkY2xhc3NfaWQpLT53aGVyZSgiXHg3MlwxNjVceDYyXHg3MlwxNTFcMTQzXDEzN1x4NjdceDcyXDE0MVwxNDRceDY1XHg3M1w1Nlx4NzVceDVmXHg2OVx4NjQiLCBTZXNzaW9uOjpnZXQoIlx4NzVcMTYzXDE0NVx4NzJcMTU2XDE0MVwxNTVcMTQ1IikpLT5zZWxlY3QoIlx4NjNceDZjXDE0MVwxNjNcMTYzXDEzN1x4NjVceDc4XHg2NVwxNjNceDJlXHgyYSIsICJceDYzXDE1NFwxNDFcMTYzXDE2M1wxNDVceDczXHgyZVx4MmEiLCAiXHg3MlwxNjVcMTQyXDE2Mlx4NjlceDYzXDEzN1x4NjdcMTYyXHg2MVwxNDRceDY1XHg3M1w1Nlw1MiIsICJceDcyXDE2NVwxNDJcMTYyXDE1MVx4NjNcMTM3XDE0N1x4NzJceDYxXDE0NFx4NjVcMTYzXHgyZVwxNjVcMTYwXHg2NFwxNDFcMTY0XDE0NVx4NjRceDVmXHg2MVwxNjRceDIwXDE0MVwxNjNcNDBcMTQ0XDE0MVx4NzRceDY1XHg1Zlx4NjdceDcyXDE0MVx4NjRcMTQ1XHg2NCIpLT5nZXQoKTsgcmV0dXJuIHZpZXcoIlx4NzNcMTcxXHg3M1x4NzRcMTQ1XHg2ZFwxNjBceDYxXHg2N1x4NjVcMTYzXDU2XDE0MVx4NjNceDc0XHg2OVwxNjZceDY5XDE2NFx4NzlcNTVceDZjXHg2OVwxNjNceDc0IiwgYXJyYXkoIlx4NjRceDYxXHg3NFx4NjEiID0+ICRjbGFzc0RhdGEsICJcMTQzXHg2Y1wxNDFceDczXHg3M1wxMTZcMTQxXDE1NVx4NjUiID0+ICRjbGFzc05hbWUpKTsgfSBlbHNlIHsgJHN0YW5kYXJkR3JhZGUgPSBEQjo6dGFibGUoIlwxNDNceDZjXDE0MVwxNjNceDczXHg1ZlwxNDVcMTcwXDE0NVx4NzMiKS0+am9pbigiXDE0NVwxNzBcMTYwXHg2NVx4NzJcMTUxXDE1NVwxNDVceDZlXDE2NFx4NWZcMTYyXHg2NVx4NzBcMTU3XDE2Mlx4NzRceDczIiwgIlx4NjNcMTU0XHg2MVx4NzNcMTYzXDEzN1x4NjVceDc4XDE0NVx4NzNceDJlXDE1MVwxNDQiLCAiXDc1IiwgIlx4NjVcMTcwXHg3MFwxNDVceDcyXDE1MVx4NmRceDY1XDE1NlwxNjRcMTM3XHg3MlwxNDVcMTYwXHg2ZlwxNjJceDc0XHg3M1x4MmVceDQ1XHg3OFwxNjBceDY1XDE2MlwxNTFceDZkXDE0NVx4NmVcMTY0XDEzN1wxNTFcMTQ0IiktPndoZXJlKCJcMTQzXHg2Y1x4NjFceDczXHg3M1wxMzdceDY1XDE3MFx4NjVceDczXHgyZVx4NjNcMTU0XHg2MVx4NzNceDczXHg1ZlwxNTFcMTQ0IiwgJGNsYXNzX2lkKS0+d2hlcmUoIlwxNDVceDc4XHg3MFwxNDVcMTYyXHg2OVx4NmRceDY1XDE1NlwxNjRcMTM3XHg3MlwxNDVceDcwXHg2Zlx4NzJceDc0XHg3M1x4MmVceDc1XDE2M1wxNDVcMTYyXHg1Zlx4NjlceDY0IiwgU2Vzc2lvbjo6Z2V0KCJceDc1XDE2M1wxNDVceDcyXHg2ZVwxNDFceDZkXHg2NSIpKS0+d2hlcmUoIlwxNDVcMTcwXHg3MFx4NjVceDcyXHg2OVwxNTVcMTQ1XDE1Nlx4NzRcMTM3XDE2Mlx4NjVceDcwXDE1N1x4NzJcMTY0XDE2M1w1NlwxNjRceDZmXHg3NFx4NjFceDZjXDEzN1x4NzNcMTQzXDE1N1x4NzJceDY1IiwgIlw3NFw3NiIsICJceDRlXHgyZlwxMDEiKS0+c2VsZWN0KCJcMTQzXHg2Y1x4NjFceDczXHg3M1x4NWZcMTQ1XDE3MFwxNDVceDczXDU2XDUyIiwgIlwxNDVcMTcwXDE2MFx4NjVcMTYyXHg2OVx4NmRceDY1XDE1NlwxNjRceDVmXHg3MlwxNDVceDcwXDE1N1x4NzJceDc0XDE2M1x4MmVceDJhIiktPmdldCgpOyByZXR1cm4gdmlldygiXDE2M1x4NzlceDczXDE2NFx4NjVceDZkXHg3MFx4NjFceDY3XDE0NVwxNjNcNTZceDYxXHg2M1x4NzRcMTUxXHg3NlwxNTFceDc0XDE3MVx4MmRceDZjXHg2OVwxNjNcMTY0IiwgYXJyYXkoIlx4NzNcMTY0XHg2MVx4NmVcMTQ0XHg2MVwxNjJceDY0XHg0NFx4NjFceDc0XHg2MSIgPT4gJHN0YW5kYXJkR3JhZGUsICJceDYzXHg2Y1wxNDFceDczXDE2M1wxMTZcMTQxXDE1NVx4NjUiID0+ICRjbGFzc05hbWUpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBlbnJvbGxlZExpc3QoJGNsYXNzX2lkKSB7ICRjbGFzc0RhdGEgPSBEQjo6dGFibGUoIlx4NjNceDZjXDE0MVx4NzNceDczXHg2NVwxNjNcMTM3XDE0MVwxNjNcMTUxXHg2N1wxNTZceDczIiktPmpvaW4oIlwxNjVcMTYzXDE0NVwxNjJcMTYzIiwgIlwxNDNcMTU0XDE0MVx4NzNcMTYzXDE0NVx4NzNcMTM3XDE0MVx4NzNcMTUxXDE0N1x4NmVceDczXDU2XHg3NVwxNjNceDY1XHg3MlwxMzdcMTUxXHg2NCIsICJcNzUiLCAiXHg3NVwxNjNceDY1XHg3MlwxNjNcNTZceDY5XDE0NCIpLT53aGVyZSgiXDE0M1wxNTRceDYxXDE2M1x4NzNceDY1XDE2M1x4NWZcMTQxXDE2M1x4NjlcMTQ3XDE1NlwxNjNceDJlXDE0M1x4NmNceDYxXHg3M1x4NzNceDVmXHg2OVx4NjQiLCAkY2xhc3NfaWQpLT5zZWxlY3QoIlwxNjVcMTYzXDE0NVwxNjJceDczXHgyZVwxNTZcMTQxXDE1NVx4NjUiLCAiXDE2NVwxNjNceDY1XHg3Mlx4NzNceDJlXHg3Mlx4NmZceDZjXDE0NSIsICJceDc1XDE2M1wxNDVceDcyXHg3M1w1Nlx4NzVcMTYzXDE0NVx4NzJceDZlXDE0MVx4NmRcMTQ1IiwgIlwxNDNceDZjXHg2MVx4NzNceDczXHg2NVwxNjNceDVmXHg2MVx4NzNcMTUxXHg2N1wxNTZcMTYzXDU2XHgyYSIpLT5nZXQoKTsgcmV0dXJuIHZpZXcoIlwxNjNcMTcxXHg3M1x4NzRceDY1XDE1NVwxNjBcMTQxXHg2N1x4NjVcMTYzXHgyZVx4NjVcMTU2XDE2MlwxNTdceDZjXHg2Y1wxNDVceDY0XDU1XDE1NFx4NjlceDczXHg3NCIsIGFycmF5KCJcMTQzXDE1NFx4NjFcMTYzXDE2M1wxMDRceDYxXHg3NFwxNDEiID0+ICRjbGFzc0RhdGEpKTsgfSBwdWJsaWMgZnVuY3Rpb24gaW5zZXJ0bmV3VXNlcihSZXF1ZXN0ICRyZXF1ZXN0KSB7ICR2YWxpZGF0ZWQgPSBWYWxpZGF0b3I6Om1ha2UoJHJlcXVlc3QtPmFsbCgpLCBhcnJheSgiXDE1NlwxNDFcMTU1XHg2NSIgPT4gIlx4NzJcMTQ1XDE2MVx4NzVceDY5XDE2Mlx4NjVceDY0IiwgIlx4NzJcMTU3XDE1NFx4NjUiID0+ICJceDcyXHg2NVx4NzFceDc1XDE1MVx4NzJcMTQ1XHg2NCIsICJceDY1XDE1NVx4NjFceDY5XDE1NCIgPT4gYXJyYXkoIlx4NzJcMTQ1XDE2MVwxNjVcMTUxXHg3Mlx4NjVceDY0IiwgIlx4NjVcMTU1XDE0MVwxNTFcMTU0IiwgUnVsZTo6dW5pcXVlKCJcMTY1XHg3M1wxNDVcMTYyXDE2MyIsICJceDc1XDE2M1x4NjVceDcyXHg1Zlx4NjVcMTU1XDE0MVwxNTFcMTU0IikpKSwgYXJyYXkoIlx4NmVceDYxXHg2ZFx4NjVcNTZcMTYyXHg2NVwxNjFcMTY1XDE1MVwxNjJcMTQ1XDE0NCIgPT4gIlwxMjRceDY4XHg2NVw0MFx4NGVceDYxXHg2ZFx4NjVceDIwXHg2Nlx4NjlceDY1XHg2Y1wxNDRcNDBcMTUxXDE2M1w0MFwxNjJceDY1XDE2MVx4NzVceDY5XHg3MlwxNDVceDY0IiwgIlx4NzJceDZmXHg2Y1x4NjVcNTZcMTYyXDE0NVwxNjFceDc1XDE1MVwxNjJcMTQ1XHg2NCIgPT4gIlwxMjRcMTUwXHg2NVw0MFx4NTJcMTU3XDE1NFwxNDVcNDBcMTQ2XDE1MVx4NjVcMTU0XHg2NFw0MFwxNTFcMTYzXHgyMFwxNjJceDY1XHg3MVx4NzVcMTUxXDE2Mlx4NjVcMTQ0IiwgIlwxNDVceDZkXHg2MVwxNTFceDZjXHgyZVwxNjJceDY1XHg3MVx4NzVceDY5XHg3Mlx4NjVceDY0IiA9PiAiXDEyNFwxNTBcMTQ1XDQwXHg0NVwxNTVcMTQxXDE1MVx4NmNceDIwXDE0Nlx4NjlcMTQ1XDE1NFwxNDRcNDBcMTUxXHg3M1w0MFwxNjJcMTQ1XHg3MVwxNjVcMTUxXHg3Mlx4NjVcMTQ0IikpOyBpZiAoJHZhbGlkYXRlZC0+ZmFpbHMoKSkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2NVx4NzJceDcyXHg2ZlwxNjJceDczIiA9PiAkdmFsaWRhdGVkLT5lcnJvcnMoKS0+Zmlyc3QoKSkpOyB9IGVsc2UgeyAkTmV3VXNlciA9IG5ldyBVc2VycygpOyAkTmV3VXNlci0+dXNlcm5hbWUgPSAkcmVxdWVzdC0+ZW1haWw7ICROZXdVc2VyLT5uYW1lID0gJHJlcXVlc3QtPm5hbWU7ICROZXdVc2VyLT5yb2xlID0gJHJlcXVlc3QtPnJvbGU7ICROZXdVc2VyLT51c2VyX2VtYWlsID0gJHJlcXVlc3QtPmVtYWlsOyAkTmV3VXNlci0+cGFzc3dvcmQgPSBiY3J5cHQoIlx4NTNcMTU1XHg2MVx4NzJcMTY0XHg2Y1wxNDFceDYyXHgzMlx4MzBcNjJceDMzXDQxIik7ICROZXdVc2VyLT5wYXNzX3N0cmluZyA9ICJceDUzXDE1NVx4NjFceDcyXHg3NFwxNTRceDYxXDE0Mlw2Mlx4MzBcNjJceDMzXHgyMSI7ICROZXdVc2VyLT5jcmVhdGVkX2J5ID0gU2Vzc2lvbjo6Z2V0KCJceDZlXDE0MVx4NmRceDY1Iik7IGlmIChTZXNzaW9uOjpnZXQoIlwxNDFceDY0XHg2ZFx4NjlcMTU2IikgPT0gIlx4NjFcMTQ0XDE1NVx4NjlceDZlIikgeyAkTmV3VXNlci0+c3RhdHVzID0gJyc7IH0gZWxzZSB7ICROZXdVc2VyLT5zdGF0dXMgPSAiXHg3MFx4NjVceDZlXDE0NFx4NjlceDZlXDE0NyI7IH0gJE5ld1VzZXItPnNhdmUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjlceDZlXHg3M1wxNDVcMTYyXDE2NFx4NjVceDY0IiA9PiAiXDExNlx4NjVcMTY3XDQwXDEyNVwxNjNceDY1XHg3Mlx4MjBcMTAxXDE0M1wxNDNceDZmXHg3NVwxNTZceDc0XDQwXDE1MFx4NjFceDczXDQwXHg2MlwxNDVcMTQ1XHg2ZVw0MFwxNDNceDcyXHg2NVx4NjFceDc0XHg2NVx4NjRceDJlIikpOyB9IH0gcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVJ1YnJpYyhSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRpZCA9ICRyZXF1ZXN0LT5pbnB1dCgiXHg2OVwxNDQiKTsgJHBhcnQgPSAkcmVxdWVzdC0+aW5wdXQoIlwxNjBceDYxXDE2MlwxNjQiKTsgJHJOYW1lID0gJHJlcXVlc3QtPmlucHV0KCJceDcyXHg3NVx4NjJceDcyXDE1MVwxNDNcMTM3XDE1Nlx4NjFceDZkXDE0NSIpOyAkd2VpZ2h0ID0gJHJlcXVlc3QtPmlucHV0KCJceDc3XHg2NVx4NjlceDY3XHg2OFwxNjQiKTsgJHJ1YnJpYyA9IHJ1YnJpY3M6OmZpbmQoJGlkKTsgJHJ1YnJpY1BhcnQgPSBydWJyaWNfcGFydHM6OndoZXJlKCJceDcyXDE2NVwxNDJcMTYyXDE1MVwxNDNcMTM3XDE1MVwxNDQiLCAkaWQpLT5nZXQoKTsgaWYgKCRydWJyaWMpIHsgJHJ1YnJpYy0+cnVicmljX25hbWUgPSAkck5hbWU7ICRydWJyaWMtPnNhdmUoKTsgfSBpZiAoJHJ1YnJpY1BhcnQpIHsgZm9yZWFjaCAoJHJ1YnJpY1BhcnQgYXMgJGluZGV4ID0+ICRycCkgeyAkcnAtPnBhcnRfbm8gPSAkcGFydFskaW5kZXhdOyAkcnAtPndlaWdodCA9ICR3ZWlnaHRbJGluZGV4XTsgJHJwLT5zYXZlKCk7IH0gfSByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg3NVwxNjBcMTQ0XHg2MVx4NzRcMTQ1XHg2NCIgPT4gIlx4NTJceDc1XDE0MlwxNjJceDY5XDE0M1w0MFwxNTBcMTQxXHg3M1x4MjBcMTQyXDE0NVwxNDVceDZlXDQwXHg3NVx4NzBceDY0XDE0MVwxNjRcMTQ1XHg2NFx4MjBceDczXDE2NVwxNDNcMTQzXHg2NVx4NzNceDczXHg2NlwxNjVcMTU0XHg2Y1x4NzlcNTYiKSk7IH0gcHVibGljIGZ1bmN0aW9uIGFzc2lnblJ1YnJpYyhSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRkYXRhID0gJHJlcXVlc3QtPmlucHV0KCJcMTQzXHg2Y1wxNDFceDczXHg3M1wxNDVceDczIik7ICRydWJyaWNJRCA9ICRyZXF1ZXN0LT5pbnB1dCgiXHg3Mlx4NzVcMTQyXDE2MlwxNTFcMTQzXDEzN1x4NjlcMTQ0Iik7ICRydWJyaWMgPSBydWJyaWNzOjpmaW5kKCRydWJyaWNJRCk7IGlmICgkcnVicmljKSB7ICRydWJyaWNOYW1lID0gJHJ1YnJpYy0+cnVicmljX25hbWU7IH0gZWxzZSB7ICRydWJyaWNOYW1lID0gIlwxMjJcMTY1XDE0MlwxNjJcMTUxXHg2M1w0MFwxNTZceDZmXHg3NFx4MjBceDY2XDE1N1x4NzVcMTU2XHg2NCI7IH0gJHZhbGlkYXRlZCA9IFZhbGlkYXRvcjo6bWFrZSgkcmVxdWVzdC0+YWxsKCksIGFycmF5KCJcMTQzXHg2Y1wxNDFceDczXHg3M1x4NjVceDczIiA9PiAiXDE2Mlx4NjVceDcxXDE2NVx4NjlcMTYyXHg2NVwxNDRcMTc0XHg2MVx4NzJceDcyXHg2MVwxNzFcMTc0XHg2ZFwxNTFceDZlXHgzYVx4MzEiKSwgYXJyYXkoIlx4NjNceDZjXHg2MVx4NzNceDczXHg2NVwxNjNceDJlXHg3Mlx4NjVceDcxXHg3NVx4NjlceDcyXDE0NVwxNDQiID0+ICJceDUzXDE0NVwxNTRceDY1XDE0M1x4NzRceDIwXDE0MVx4NzRceDIwXDE1NFwxNDVcMTQxXDE2M1x4NzRceDIwXDE1N1wxNTZceDY1XDQwXDE0M1wxNTRceDYxXDE2M1x4NzNceDJlIikpOyBpZiAoJHZhbGlkYXRlZC0+ZmFpbHMoKSkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2NVx4NzJcMTYyXHg2Zlx4NzIiID0+ICR2YWxpZGF0ZWQtPmVycm9ycygpLT5maXJzdCgpKSk7IH0gZWxzZSB7IGZvcmVhY2ggKCRkYXRhIGFzICRjbGFzc19pZCkgeyAkdXBkYXRlQ2xhc3MgPSBDbGFzc2VzOjpmaW5kKCRjbGFzc19pZCk7IGlmICgkdXBkYXRlQ2xhc3MpIHsgJHVwZGF0ZUNsYXNzLT5ydWJyaWNfYXNzaWduZWQgPSAkcnVicmljSUQ7ICR1cGRhdGVDbGFzcy0+c2F2ZSgpOyB9ICRjaGVja1J1YnJpY0dyYWRlID0gUnVicmljR3JhZGVzOjp3aGVyZSgiXDE0M1x4NmNcMTQxXDE2M1wxNjNcMTM3XDE1MVx4NjQiLCAkY2xhc3NfaWQpLT5nZXQoKTsgZm9yZWFjaCAoJGNoZWNrUnVicmljR3JhZGUgYXMgJGNsYXNzX2RhdGEpIHsgJGNsYXNzX2RhdGEtPmlkX3J1YnJpYyA9ICRydWJyaWNJRDsgJGNsYXNzX2RhdGEtPnNhdmUoKTsgfSB9IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDYxXHg3M1wxNjNceDY5XHg2N1wxNTZceDY1XHg2NCIgPT4gIlwxMjJcMTY1XHg2MlwxNjJceDY5XHg2M1w0MFx4Mjd7JHJ1YnJpY05hbWV9XDQ3XDQwXDE2M1x4NzVceDYzXHg2M1wxNDVceDczXDE2M1wxNDZcMTY1XHg2Y1x4NmNcMTcxXHgyMFx4NjFcMTYzXDE2M1wxNTFceDY3XDE1Nlx4NjVceDY0XHgyMFwxNjRcMTU3XDQwXHg3M1x4NjVceDZjXHg2NVwxNDNcMTY0XHg2NVx4NjRcNDBcMTQzXDE1NFwxNDFcMTYzXDE2M1wxNDVceDczXDU2IikpOyB9IH0gcHVibGljIGZ1bmN0aW9uIHByZXZpZXdSdWJyaWMoUmVxdWVzdCAkcmVxdWVzdCkgeyAkZGF0YSA9ICRyZXF1ZXN0LT5pbnB1dCgiXHg3MFwxNDFceDcyXDE2NFwxNjMiKTsgJHJOYW1lID0gJHJlcXVlc3QtPmlucHV0KCJcMTYyXDE2NVx4NjJcMTYyXHg2OVwxNDNcMTM3XDE1NlwxNDFcMTU1XHg2NSIpOyAkdmFsaWRhdGVkID0gVmFsaWRhdG9yOjptYWtlKCRyZXF1ZXN0LT5hbGwoKSwgYXJyYXkoIlwxNjJceDc1XDE0MlwxNjJcMTUxXDE0M1wxMzdceDZlXDE0MVwxNTVceDY1IiA9PiBhcnJheSgiXHg3MlwxNDVceDcxXDE2NVx4NjlcMTYyXDE0NVx4NjQiLCAiXHg3M1x4NzRceDcyXHg2OVx4NmVcMTQ3IiwgIlwxNTVceDYxXHg3OFw3Mlx4MzJcNjVceDM1IiwgUnVsZTo6dW5pcXVlKCJceDcyXDE2NVx4NjJcMTYyXHg2OVx4NjNcMTYzIiwgIlx4NzJceDc1XDE0MlwxNjJcMTUxXHg2M1wxMzdcMTU2XHg2MVwxNTVceDY1IikpLCAiXDE2MFwxNDFcMTYyXDE2NFx4NzNceDJlXDUyXDU2XDE2MFx4NjFcMTYyXHg3NFx4NWZcMTU2XDE1NyIgPT4gIlx4NzJcMTQ1XDE2MVwxNjVcMTUxXDE2Mlx4NjVcMTQ0XDE3NFwxNjNcMTY0XHg3Mlx4NjlcMTU2XHg2N1x4N2NceDZkXHg2MVwxNzBcNzJcNjJceDM1XHgzNSIsICJcMTYwXHg2MVx4NzJceDc0XHg3M1w1Nlw1Mlw1Nlx4NzdceDY1XDE1MVwxNDdceDY4XDE2NCIgPT4gIlwxNjJcMTQ1XHg3MVwxNjVcMTUxXDE2Mlx4NjVcMTQ0XDE3NFwxNTZceDc1XDE1NVwxNDVceDcyXDE1MVx4NjNceDdjXDE1NVx4NjlcMTU2XDcyXDYxXHg3Y1wxNTVceDYxXDE3MFw3Mlx4MzFceDMwXHgzMCIsICJcMTYwXHg2MVx4NzJceDc0XHg3M1x4MmVcNTJceDJlXHg2M1wxNjJceDY5XHg3NFwxNDVcMTYyXHg2OVx4NjFcNTZceDJhIiA9PiAiXDE2MlwxNDVcMTYxXDE2NVwxNTFcMTYyXDE0NVwxNDRceDdjXDE2M1x4NzRceDcyXHg2OVwxNTZcMTQ3IiksIGFycmF5KCJcMTYyXDE2NVwxNDJceDcyXHg2OVx4NjNceDVmXDE1NlwxNDFceDZkXDE0NVx4MmVceDcyXHg2NVx4NzFceDc1XHg2OVx4NzJceDY1XDE0NCIgPT4gIlx4NTRcMTUwXDE0NVw0MFx4NTJcMTY1XHg2Mlx4NzJceDY5XHg2M1x4MjBceDRlXDE0MVwxNTVcMTQ1XHgyMFx4NjZceDY5XHg2NVwxNTRceDY0XDQwXHg2OVx4NzNcNDBceDcyXHg2NVx4NzFcMTY1XDE1MVx4NzJcMTQ1XDE0NFw1NiIsICJceDcyXHg3NVwxNDJcMTYyXHg2OVx4NjNcMTM3XHg2ZVx4NjFceDZkXHg2NVx4MmVceDczXHg3NFx4NzJcMTUxXHg2ZVwxNDciID0+ICJcMTI0XDE1MFx4NjVcNDBceDUyXHg3NVwxNDJceDcyXDE1MVwxNDNceDIwXHg0ZVx4NjFceDZkXDE0NVw0MFwxNTVcMTY1XHg3M1x4NzRcNDBceDYyXDE0NVx4MjBceDYxXDQwXDE2M1x4NzRcMTYyXHg2OVwxNTZceDY3XDU2IiwgIlx4NzJceDc1XDE0Mlx4NzJceDY5XHg2M1x4NWZcMTU2XHg2MVx4NmRcMTQ1XDU2XHg2ZFx4NjFcMTcwIiA9PiAiXHg1NFwxNTBceDY1XDQwXHg1MlwxNjVceDYyXDE2MlwxNTFceDYzXHgyMFwxMTZcMTQxXDE1NVx4NjVceDIwXHg2ZFwxNDFcMTcxXHgyMFx4NmVceDZmXHg3NFx4MjBceDYyXHg2NVw0MFwxNDdcMTYyXHg2NVwxNDFceDc0XHg2NVwxNjJcNDBceDc0XDE1MFx4NjFcMTU2XDQwXDcyXHg2ZFx4NjFceDc4XHgyMFwxNDNcMTUwXHg2MVwxNjJceDYxXDE0M1x4NzRcMTQ1XHg3Mlx4NzNcNTYiLCAiXHg3MFx4NjFcMTYyXHg3NFx4NzNceDJlXDUyXHgyZVwxNjBceDYxXHg3MlwxNjRcMTM3XHg2ZVwxNTdcNTZceDcyXDE0NVx4NzFceDc1XDE1MVwxNjJceDY1XDE0NCIgPT4gIlwxMjRceDY4XHg2NVx4MjBceDUwXDE0MVx4NzJcMTY0XDQwXHg0ZVx4NmZcNTZcNDBcMTQ2XDE1MVwxNDVceDZjXDE0NFx4MjBceDY5XDE2M1w0MFwxNjJcMTQ1XDE2MVwxNjVcMTUxXHg3Mlx4NjVcMTQ0XDU2IiwgIlx4NzBceDYxXDE2Mlx4NzRceDczXDU2XHgyYVw1NlwxNjBcMTQxXHg3MlwxNjRceDVmXHg2ZVx4NmZcNTZcMTYzXDE2NFwxNjJceDY5XDE1Nlx4NjciID0+ICJcMTI0XHg2OFx4NjVcNDBcMTIwXHg2MVwxNjJceDc0XDQwXDExNlx4NmZceDJlXDQwXDE1NVx4NzVceDczXHg3NFw0MFx4NjJceDY1XHgyMFx4NjFcNDBcMTYzXHg3NFx4NzJceDY5XHg2ZVx4NjdcNTYiLCAiXDE2MFwxNDFcMTYyXDE2NFwxNjNcNTZceDJhXHgyZVx4NzBcMTQxXHg3MlwxNjRceDVmXDE1NlwxNTdceDJlXDE1NVx4NjFcMTcwIiA9PiAiXHg1NFx4NjhcMTQ1XDQwXDEyMFx4NjFcMTYyXHg3NFw0MFwxMTZcMTU3XDU2XDQwXDE1NVx4NjFceDc5XHgyMFx4NmVcMTU3XDE2NFx4MjBcMTQyXDE0NVx4MjBcMTQ3XDE2MlwxNDVcMTQxXHg3NFwxNDVceDcyXHgyMFx4NzRceDY4XHg2MVx4NmVcNDBcNzJcMTU1XDE0MVx4NzhcNDBcMTQzXDE1MFwxNDFceDcyXHg2MVwxNDNceDc0XHg2NVwxNjJceDczXHgyZSIsICJcMTYwXHg2MVx4NzJceDc0XHg3M1x4MmVcNTJceDJlXDE2N1wxNDVceDY5XHg2N1wxNTBcMTY0XDU2XHg3MlwxNDVcMTYxXHg3NVx4NjlcMTYyXHg2NVwxNDQiID0+ICJcMTI0XHg2OFwxNDVceDIwXHg1N1x4NjVceDY5XHg2N1x4NjhceDc0XHgyMFx4NjZcMTUxXDE0NVx4NmNceDY0XDQwXHg2OVwxNjNcNDBcMTYyXHg2NVwxNjFcMTY1XHg2OVx4NzJceDY1XHg2NFx4MmUiLCAiXDE2MFwxNDFceDcyXHg3NFwxNjNcNTZceDJhXDU2XHg3N1x4NjVcMTUxXDE0N1x4NjhcMTY0XHgyZVx4NmVcMTY1XDE1NVwxNDVcMTYyXDE1MVx4NjMiID0+ICJcMTI0XHg2OFx4NjVcNDBcMTI3XHg2NVx4NjlceDY3XHg2OFwxNjRcNDBcMTU1XDE2NVwxNjNcMTY0XDQwXDE0MlwxNDVceDIwXDE0MVx4MjBcMTU2XHg3NVx4NmRceDYyXHg2NVwxNjJcNTYiLCAiXHg3MFx4NjFceDcyXDE2NFx4NzNceDJlXHgyYVw1Nlx4NzdcMTQ1XDE1MVwxNDdceDY4XHg3NFw1NlwxNTVceDY5XHg2ZSIgPT4gIlx4NTRceDY4XHg2NVw0MFwxMjdcMTQ1XDE1MVx4NjdcMTUwXHg3NFw0MFx4NmRcMTY1XDE2M1x4NzRceDIwXHg2MlwxNDVcNDBcMTQxXDE2NFw0MFwxNTRceDY1XHg2MVwxNjNcMTY0XDQwXDcyXDE1NVx4NjlceDZlXHgyZSIsICJcMTYwXHg2MVx4NzJcMTY0XDE2M1x4MmVceDJhXHgyZVx4NzdceDY1XDE1MVx4NjdcMTUwXHg3NFx4MmVcMTU1XDE0MVx4NzgiID0+ICJceDU0XDE1MFx4NjVceDIwXHg1N1wxNDVcMTUxXHg2N1wxNTBcMTY0XDQwXDE1NVx4NjFceDc5XDQwXHg2ZVwxNTdceDc0XHgyMFwxNDJcMTQ1XDQwXHg2N1x4NzJceDY1XDE0MVwxNjRceDY1XDE2Mlw0MFwxNjRcMTUwXDE0MVwxNTZcNDBceDNhXDE1NVx4NjFceDc4XHgyZSIsICJcMTYwXDE0MVx4NzJceDc0XDE2M1x4MmVcNTJcNTZcMTQzXHg3MlwxNTFcMTY0XHg2NVwxNjJcMTUxXHg2MVx4MmVceDJhXHgyZVwxNjJceDY1XDE2MVx4NzVceDY5XDE2Mlx4NjVceDY0IiA9PiAiXHg1NFwxNTBceDY1XHgyMFx4NDNceDcyXDE1MVwxNjRcMTQ1XHg3Mlx4NjlcMTQxXHgyMFwxNDZceDY5XDE0NVwxNTRcMTQ0XDQwXHg2OVwxNjNceDIwXDE2MlwxNDVceDcxXDE2NVwxNTFcMTYyXHg2NVwxNDRceDJlIiwgIlwxNjBceDYxXDE2MlwxNjRceDczXHgyZVw1Mlw1Nlx4NjNcMTYyXDE1MVwxNjRceDY1XHg3Mlx4NjlceDYxXHgyZVw1Mlw1NlwxNjNceDc0XHg3MlwxNTFcMTU2XDE0NyIgPT4gIlwxMjRcMTUwXHg2NVw0MFx4NDNcMTYyXDE1MVx4NzRcMTQ1XDE2Mlx4NjlceDYxXHgyMFx4NmRcMTY1XHg3M1wxNjRceDIwXHg2MlwxNDVceDIwXHg2MVw0MFx4NzNceDc0XHg3Mlx4NjlcMTU2XHg2N1x4MmUiKSk7IGlmICgkdmFsaWRhdGVkLT5mYWlscygpKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQ1XHg3Mlx4NzJceDZmXHg3MlwxNjMiID0+ICR2YWxpZGF0ZWQtPmVycm9ycygpLT5maXJzdCgpKSk7IH0gZWxzZSB7ICR0b3RhbFdlaWdodCA9IDA7IGZvcmVhY2ggKCRkYXRhIGFzICRwYXJ0KSB7ICR0b3RhbFdlaWdodCArPSAkcGFydFsiXHg3N1x4NjVceDY5XHg2N1wxNTBceDc0Il07IH0gaWYgKCR0b3RhbFdlaWdodCA+IDEwMCkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0NVwxNjJceDcyXDE1N1wxNjJcMTYzIiA9PiAiXDEyNFx4NmZceDc0XDE0MVwxNTRceDIwXHg3N1wxNDVceDY5XHg2N1wxNTBcMTY0XHgyMFx4NmZcMTQ2XHgyMFwxNjBceDYxXHg3Mlx4NzRcMTYzXDQwXDE1NVx4NzVceDczXDE2NFx4MjBceDZlXHg2Zlx4NzRceDIwXHg2NVwxNzBceDYzXDE0NVwxNDVcMTQ0XHgyMFw2MVw2MFw2MFw1NiIpKTsgfSByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE2M1x4NzVceDYzXHg2M1x4NjVcMTYzXDE2MyIgPT4gdHJ1ZSwgIlx4NjRceDYxXHg3NFx4NjEiID0+ICRkYXRhLCAiXDE2MlwxMTZceDYxXHg2ZFwxNDUiID0+ICRyTmFtZSkpOyB9IH0gcHVibGljIGZ1bmN0aW9uIHB1Ymxpc2hSdWJyaWMoUmVxdWVzdCAkcmVxdWVzdCkgeyAkZGF0YSA9ICRyZXF1ZXN0LT5pbnB1dCgiXDE2MFx4NjFcMTYyXDE2NFx4NzMiKTsgJHJOYW1lID0gJHJlcXVlc3QtPmlucHV0KCJceDcyXHg3NVwxNDJceDcyXHg2OVwxNDNceDVmXDE1Nlx4NjFcMTU1XHg2NSIpOyAkdmFsaWRhdGVkID0gVmFsaWRhdG9yOjptYWtlKCRyZXF1ZXN0LT5hbGwoKSwgYXJyYXkoIlx4NzJceDc1XHg2MlwxNjJceDY5XDE0M1x4NWZceDZlXDE0MVwxNTVceDY1IiA9PiBhcnJheSgiXHg3Mlx4NjVcMTYxXDE2NVwxNTFcMTYyXHg2NVwxNDQiLCAiXHg3M1wxNjRceDcyXHg2OVwxNTZcMTQ3IiwgIlwxNTVcMTQxXHg3OFw3Mlw2Mlw2NVx4MzUiLCBSdWxlOjp1bmlxdWUoIlx4NzJceDc1XDE0MlwxNjJceDY5XDE0M1x4NzMiLCAiXHg3Mlx4NzVcMTQyXHg3MlwxNTFceDYzXDEzN1wxNTZceDYxXDE1NVwxNDUiKSksICJcMTYwXHg2MVx4NzJcMTY0XDE2M1x4MmVcNTJceDJlXHg3MFx4NjFceDcyXHg3NFwxMzdceDZlXDE1NyIgPT4gIlwxNjJcMTQ1XHg3MVx4NzVceDY5XHg3MlwxNDVcMTQ0XHg3Y1wxNjNcMTY0XDE2MlwxNTFcMTU2XHg2N1wxNzRceDZkXHg2MVx4NzhceDNhXDYyXHgzNVw2NSIsICJceDcwXHg2MVwxNjJcMTY0XHg3M1w1Nlw1Mlw1NlwxNjdcMTQ1XHg2OVx4NjdceDY4XHg3NCIgPT4gIlwxNjJceDY1XHg3MVwxNjVceDY5XHg3Mlx4NjVcMTQ0XHg3Y1wxNTZcMTY1XHg2ZFx4NjVceDcyXHg2OVwxNDNcMTc0XDE1NVx4NjlcMTU2XHgzYVw2MVwxNzRcMTU1XHg2MVwxNzBcNzJcNjFcNjBcNjAiKSwgYXJyYXkoIlx4NzJcMTY1XDE0Mlx4NzJcMTUxXHg2M1x4NWZceDZlXHg2MVx4NmRcMTQ1XHgyZVwxNjJceDY1XDE2MVx4NzVcMTUxXHg3Mlx4NjVceDY0IiA9PiAiXHg1NFx4NjhceDY1XDQwXDEyMlwxNjVceDYyXDE2Mlx4NjlcMTQzXHgyMFwxMTZcMTQxXDE1NVx4NjVceDIwXDE0Nlx4NjlcMTQ1XDE1NFwxNDRceDIwXHg2OVx4NzNceDIwXHg3Mlx4NjVceDcxXHg3NVx4NjlcMTYyXHg2NVx4NjRcNTYiLCAiXDE2MlwxNjVcMTQyXDE2Mlx4NjlcMTQzXDEzN1wxNTZcMTQxXHg2ZFx4NjVceDJlXHg3M1x4NzRceDcyXHg2OVx4NmVcMTQ3IiA9PiAiXDEyNFwxNTBceDY1XDQwXHg1MlwxNjVcMTQyXDE2MlwxNTFcMTQzXDQwXHg0ZVx4NjFcMTU1XHg2NVw0MFwxNTVcMTY1XDE2M1x4NzRcNDBceDYyXDE0NVx4MjBcMTQxXDQwXHg3M1wxNjRceDcyXDE1MVx4NmVcMTQ3XDU2IiwgIlx4NzJceDc1XDE0Mlx4NzJcMTUxXDE0M1wxMzdceDZlXHg2MVwxNTVcMTQ1XHgyZVx4NmRceDYxXDE3MCIgPT4gIlx4NTRceDY4XHg2NVw0MFx4NTJcMTY1XHg2Mlx4NzJcMTUxXHg2M1x4MjBcMTE2XHg2MVx4NmRceDY1XDQwXDE1NVx4NjFceDc5XDQwXHg2ZVx4NmZceDc0XDQwXDE0MlwxNDVceDIwXDE0N1wxNjJceDY1XDE0MVx4NzRcMTQ1XDE2Mlw0MFx4NzRceDY4XDE0MVx4NmVceDIwXDcyXHg2ZFx4NjFceDc4XHgyMFwxNDNceDY4XHg2MVwxNjJceDYxXHg2M1x4NzRcMTQ1XDE2MlwxNjNceDJlIiwgIlx4NzBceDYxXDE2Mlx4NzRcMTYzXDU2XDUyXDU2XHg3MFx4NjFcMTYyXDE2NFx4NWZcMTU2XDE1N1w1NlwxNjJceDY1XHg3MVx4NzVceDY5XHg3Mlx4NjVcMTQ0IiA9PiAiXDEyNFwxNTBceDY1XDQwXDEyMFx4NjFcMTYyXHg3NFx4MjBceDRlXHg2Zlx4MmVcNDBceDY2XDE1MVwxNDVcMTU0XDE0NFw0MFwxNTFcMTYzXHgyMFx4NzJceDY1XDE2MVx4NzVceDY5XHg3MlwxNDVcMTQ0XDU2IiwgIlwxNjBceDYxXDE2Mlx4NzRceDczXHgyZVx4MmFceDJlXHg3MFwxNDFcMTYyXDE2NFx4NWZcMTU2XDE1N1w1NlwxNjNcMTY0XHg3MlwxNTFcMTU2XDE0NyIgPT4gIlx4NTRceDY4XHg2NVw0MFwxMjBceDYxXHg3Mlx4NzRceDIwXDExNlwxNTdceDJlXDQwXHg2ZFwxNjVceDczXDE2NFw0MFx4NjJcMTQ1XDQwXHg2MVx4MjBcMTYzXHg3NFx4NzJcMTUxXDE1NlwxNDdceDJlIiwgIlwxNjBcMTQxXHg3Mlx4NzRcMTYzXHgyZVx4MmFceDJlXDE2MFwxNDFcMTYyXHg3NFwxMzdceDZlXHg2Zlx4MmVceDZkXHg2MVx4NzgiID0+ICJcMTI0XDE1MFx4NjVceDIwXDEyMFx4NjFceDcyXDE2NFx4MjBcMTE2XHg2Zlw1Nlx4MjBcMTU1XHg2MVx4NzlcNDBceDZlXDE1N1x4NzRceDIwXHg2MlwxNDVceDIwXHg2N1wxNjJceDY1XDE0MVx4NzRceDY1XHg3Mlw0MFwxNjRceDY4XHg2MVwxNTZcNDBceDNhXDE1NVx4NjFcMTcwXDQwXHg2M1wxNTBcMTQxXHg3MlwxNDFcMTQzXHg3NFx4NjVcMTYyXDE2M1x4MmUiLCAiXHg3MFwxNDFceDcyXHg3NFx4NzNcNTZcNTJceDJlXHg3N1wxNDVceDY5XDE0N1x4NjhceDc0XHgyZVx4NzJcMTQ1XDE2MVx4NzVcMTUxXHg3Mlx4NjVceDY0IiA9PiAiXDEyNFx4NjhceDY1XDQwXHg1N1wxNDVceDY5XDE0N1wxNTBcMTY0XDQwXDE0Nlx4NjlceDY1XDE1NFx4NjRceDIwXHg2OVx4NzNceDIwXDE2Mlx4NjVcMTYxXHg3NVwxNTFcMTYyXDE0NVx4NjRceDJlIiwgIlx4NzBcMTQxXHg3Mlx4NzRceDczXHgyZVw1Mlw1NlwxNjdcMTQ1XHg2OVwxNDdceDY4XHg3NFw1NlwxNTZceDc1XHg2ZFwxNDVcMTYyXHg2OVwxNDMiID0+ICJcMTI0XDE1MFwxNDVceDIwXHg1N1x4NjVceDY5XHg2N1wxNTBceDc0XDQwXDE1NVx4NzVcMTYzXDE2NFx4MjBcMTQyXDE0NVx4MjBceDYxXDQwXDE1Nlx4NzVceDZkXDE0MlwxNDVceDcyXDU2IiwgIlx4NzBceDYxXDE2MlwxNjRcMTYzXHgyZVw1Mlx4MmVcMTY3XHg2NVwxNTFcMTQ3XHg2OFwxNjRceDJlXDE1NVx4NjlceDZlIiA9PiAiXDEyNFx4NjhceDY1XDQwXDEyN1wxNDVcMTUxXDE0N1wxNTBcMTY0XHgyMFx4NmRceDc1XHg3M1wxNjRcNDBceDYyXDE0NVw0MFwxNDFceDc0XDQwXHg2Y1x4NjVcMTQxXHg3M1wxNjRcNDBceDNhXHg2ZFx4NjlcMTU2XDU2IiwgIlx4NzBceDYxXHg3Mlx4NzRcMTYzXDU2XDUyXHgyZVx4NzdceDY1XHg2OVx4NjdceDY4XHg3NFx4MmVceDZkXDE0MVwxNzAiID0+ICJcMTI0XDE1MFx4NjVceDIwXHg1N1wxNDVcMTUxXDE0N1wxNTBcMTY0XDQwXHg2ZFx4NjFcMTcxXDQwXHg2ZVx4NmZcMTY0XHgyMFx4NjJcMTQ1XDQwXHg2N1wxNjJcMTQ1XHg2MVx4NzRcMTQ1XDE2Mlx4MjBceDc0XHg2OFwxNDFceDZlXHgyMFx4M2FcMTU1XHg2MVwxNzBcNTYiKSk7IGlmICgkdmFsaWRhdGVkLT5mYWlscygpKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQ1XHg3Mlx4NzJcMTU3XDE2MlwxNjMiID0+ICR2YWxpZGF0ZWQtPmVycm9ycygpLT5maXJzdCgpKSk7IH0gZWxzZSB7ICR0b3RhbFdlaWdodCA9IDA7IGZvcmVhY2ggKCRkYXRhIGFzICRwYXJ0KSB7ICR0b3RhbFdlaWdodCArPSAkcGFydFsiXHg3N1wxNDVceDY5XDE0N1wxNTBcMTY0Il07IH0gaWYgKCR0b3RhbFdlaWdodCA+IDEwMCkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0NVwxNjJcMTYyXHg2Zlx4NzJcMTYzIiA9PiAiXDEyNFwxNTdcMTY0XDE0MVx4NmNceDIwXHg3N1wxNDVcMTUxXDE0N1wxNTBcMTY0XHgyMFwxNTdceDY2XHgyMFwxNjBceDYxXHg3Mlx4NzRceDczXHgyMFwxNTVceDc1XHg3M1x4NzRcNDBceDZlXHg2ZlwxNjRceDIwXHg2NVx4NzhceDYzXHg2NVwxNDVcMTQ0XHgyMFw2MVx4MzBceDMwXDU2IikpOyB9ICRydWJyaWMgPSBuZXcgcnVicmljcygpOyAkcnVicmljLT5ydWJyaWNfbmFtZSA9ICRyTmFtZTsgJHJ1YnJpYy0+Y3JlYXRlZF9ieSA9IFNlc3Npb246OmdldCgiXDE1NlwxNDFceDZkXDE0NSIpOyAkcnVicmljLT5zYXZlKCk7IGZvcmVhY2ggKCRkYXRhIGFzICRwYXJ0SW5kZXggPT4gJHBhcnQpIHsgaWYgKGlzc2V0KCRwYXJ0WyJceDcwXDE0MVwxNjJceDc0XHg1Zlx4NmVcMTU3Il0pKSB7ICRydWJyaWNQYXJ0ID0gbmV3IHJ1YnJpY19wYXJ0cygpOyAkcnVicmljUGFydC0+cnVicmljX2lkID0gJHJ1YnJpYy0+aWQ7ICRydWJyaWNQYXJ0LT5wYXJ0X25vID0gJHBhcnRbIlx4NzBceDYxXDE2MlwxNjRcMTM3XHg2ZVx4NmYiXTsgJHJ1YnJpY1BhcnQtPndlaWdodCA9ICRwYXJ0WyJceDc3XDE0NVwxNTFcMTQ3XHg2OFx4NzQiXTsgJHJ1YnJpY1BhcnQtPnNhdmUoKTsgfSB9IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTYwXDE2NVwxNDJcMTU0XHg2OVwxNjNcMTUwXHg2NVx4NjQiID0+ICJceDUyXDE2NVx4NjJceDcyXDE1MVwxNDNcNDBceDcwXDE0MVx4NzVcMTQyXHg2Y1wxNTFceDczXHg2OFx4NjVceDY0XDQwXDE2M1wxNjVcMTQzXDE0M1x4NjVceDczXDE2M1x4NjZceDc1XHg2Y1wxNTRcMTcxXHgyZSIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBwcmV2aWV3VXNlcnMoUmVxdWVzdCAkcmVxdWVzdCkgeyAkcmVxdWVzdC0+dmFsaWRhdGUoYXJyYXkoIlx4NjNceDczXDE2Nlx4NWZcMTQ2XDE1MVwxNTRcMTQ1IiA9PiAiXHg3MlwxNDVcMTYxXHg3NVx4NjlceDcyXHg2NVx4NjRceDdjXDE1NVwxNTFceDZkXHg2NVwxNjNceDNhXHg2M1x4NzNceDc2XHgyY1wxNjRceDc4XDE2NCIpKTsgJGNzdl9maWxlID0gJHJlcXVlc3QtPmZpbGUoIlwxNDNceDczXHg3Nlx4NWZcMTQ2XHg2OVwxNTRceDY1Iik7ICRjc3YgPSBSZWFkZXI6OmNyZWF0ZUZyb21QYXRoKCRjc3ZfZmlsZS0+Z2V0UGF0aG5hbWUoKSk7ICRoZWFkZXIgPSAkY3N2LT5mZXRjaE9uZSgwKTsgJHJlcXVpcmVkQ29sdW1ucyA9IGFycmF5KCJceDZlXHg2MVwxNTVcMTQ1IiwgIlx4NjVceDZkXDE0MVwxNTFceDZjIiwgIlx4NzJcMTU3XDE1NFx4NjUiKTsgaWYgKCRoZWFkZXIgIT09ICRyZXF1aXJlZENvbHVtbnMpIHsgcmV0dXJuIHJlZGlyZWN0KCktPmJhY2soKS0+d2l0aEVycm9ycyhhcnJheSgiXHg2M1x4NzNceDc2XDEzN1wxNDZceDY5XHg2Y1wxNDUiID0+ICJceDQ5XHg2ZVwxNjZcMTQxXHg2Y1wxNTFcMTQ0XDQwXDEwM1wxMjNceDU2XHgyMFwxNDZcMTU3XHg3Mlx4NmRceDYxXDE2NFw0MFwxNDRcMTQ1XDE2NFwxNDVceDYzXDE2NFx4NjVceDY0XHgyZVx4MjBceDU0XHg2OFwxNDVceDIwXDE1MFx4NjVcMTQxXHg2NFwxNDVcMTYyXHgyMFx4NzJceDZmXHg3N1x4MjBceDczXHg2OFwxNTdcMTY1XHg2Y1wxNDRceDIwXDE0Mlx4NjVcNzJceDIwIiAuIGltcGxvZGUoIlw1NFw0MCIsICRyZXF1aXJlZENvbHVtbnMpKSk7IH0gJGNzdi0+c2V0SGVhZGVyT2Zmc2V0KDApOyAkZGF0YSA9IFN0YXRlbWVudDo6Y3JlYXRlKCktPnByb2Nlc3MoJGNzdik7IHJldHVybiB2aWV3KCJcMTYzXHg3OVx4NzNcMTY0XHg2NVwxNTVcMTYwXDE0MVwxNDdcMTQ1XDE2M1x4MmVceDcwXHg3MlwxNDVceDc2XDE1MVx4NjVcMTY3IiwgYXJyYXkoIlwxNDRcMTQxXDE2NFwxNDEiID0+ICRkYXRhKSk7IH0gcHVibGljIGZ1bmN0aW9uIHVwbG9hZFVzZXJzKFJlcXVlc3QgJHJlcXVlc3QpIHsgJGZuYW1lcyA9ICRyZXF1ZXN0LT5pbnB1dCgiXHg2Nlx4NmVcMTQxXHg2ZFx4NjUiKTsgJGZlbWFpbHMgPSAkcmVxdWVzdC0+aW5wdXQoIlwxNDZcMTQ1XDE1NVwxNDFcMTUxXHg2YyIpOyAkZnJvbGVzID0gJHJlcXVlc3QtPmlucHV0KCJceDY2XDE2Mlx4NmZceDZjXDE0NSIpOyAkY291bnQgPSBjb3VudCgkZm5hbWVzKTsgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7ICRleGlzdGluZ1VzZXIgPSBEQjo6dGFibGUoIlx4NzVcMTYzXDE0NVx4NzJcMTYzIiktPndoZXJlKCJcMTY1XHg3M1wxNDVcMTYyXHg1ZlwxNDVceDZkXDE0MVwxNTFcMTU0IiwgJGZlbWFpbHNbJGldKS0+Zmlyc3QoKTsgaWYgKCEkZXhpc3RpbmdVc2VyKSB7ICR1c2VyID0gbmV3IFVzZXJzKCk7ICR1c2VyLT5uYW1lID0gJGZuYW1lc1skaV07ICR1c2VyLT51c2VybmFtZSA9ICRmZW1haWxzWyRpXTsgJHVzZXItPnVzZXJfZW1haWwgPSAkZmVtYWlsc1skaV07ICR1c2VyLT5yb2xlID0gJGZyb2xlc1skaV07ICR1c2VyLT5wYXNzd29yZCA9IEhhc2g6Om1ha2UoIlx4NTNcMTU1XDE0MVx4NzJceDc0XHg2Y1x4NjFcMTQyXHgzMlx4MzBcNjJcNjNceDIxIik7ICR1c2VyLT5zdGF0dXMgPSAnJzsgJHVzZXItPnBhc3Nfc3RyaW5nID0gIlx4NTNcMTU1XHg2MVx4NzJcMTY0XDE1NFx4NjFcMTQyXDYyXHgzMFx4MzJceDMzXDQxIjsgJHVzZXItPmNyZWF0ZWRfYnkgPSBTZXNzaW9uOjpnZXQoIlwxNTZceDYxXDE1NVx4NjUiKTsgJHVzZXItPnNhdmUoKTsgfSB9IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDcyXHg2NVwxNDdceDY5XHg3M1x4NzRcMTQ1XDE2MlwxNDVceDY0IiA9PiAiXDEyNVx4NzNceDY1XHg3MlwxNjNcNDBceDcyXHg2NVwxNDdceDY5XDE2M1x4NzRcMTQ1XHg3MlwxNDVcMTQ0XHgyMFwxNjNceDc1XDE0M1wxNDNcMTQ1XDE2M1x4NzNceDY2XHg3NVwxNTRcMTU0XDE3MSIpKTsgfSBwdWJsaWMgZnVuY3Rpb24gaW5zZXJ0bmV3Q2xhc3MoUmVxdWVzdCAkcmVxdWVzdCkgeyAkdmFsaWRhdGVkID0gVmFsaWRhdG9yOjptYWtlKCRyZXF1ZXN0LT5hbGwoKSwgYXJyYXkoIlx4NjNceDZjXDE0MVwxNjNceDczXDE1NlwxNDFcMTU1XDE0NSIgPT4gIlwxNjJcMTQ1XDE2MVwxNjVceDY5XDE2MlwxNDVcMTQ0IiwgIlx4NjNcMTU0XDE0MVwxNjNcMTYzXDE1MVx4NmVceDY2XDE1NyIgPT4gIlwxNjJcMTQ1XDE2MVwxNjVcMTUxXDE2MlwxNDVcMTQ0IiwgIlx4NzNcMTY0XDE0MVx4NzJceDc0IiA9PiAiXDE2MlwxNDVceDcxXDE2NVx4NjlceDcyXDE0NVwxNDQiLCAiXHg2NVx4NmVcMTQ0IiA9PiAiXDE2MlwxNDVceDcxXDE2NVx4NjlceDcyXHg2NVwxNDQiLCAiXHg2ZCIgPT4gIlx4NzJceDY1XHg3MVwxNjVcMTUxXHg3Mlx4NjVcMTQ0XHg1ZlwxNjdceDY5XHg3NFwxNTBceDZmXHg3NVx4NzRcMTM3XHg2MVwxNTRceDZjXHgzYVx4NzRcNTRcMTY3XDU0XDE2NFx4NjhceDJjXDE0Nlx4MmNcMTYzXHg2MVx4NzRceDJjXHg3MyIsICJceDc0IiA9PiAiXDE2Mlx4NjVcMTYxXHg3NVx4NjlceDcyXHg2NVx4NjRcMTM3XHg3N1wxNTFcMTY0XHg2OFwxNTdcMTY1XHg3NFwxMzdceDYxXDE1NFx4NmNceDNhXHg2ZFx4MmNcMTY3XHgyY1wxNjRceDY4XDU0XDE0Nlw1NFx4NzNceDYxXDE2NFw1NFwxNjMiLCAiXHg3NyIgPT4gIlwxNjJceDY1XHg3MVx4NzVceDY5XHg3Mlx4NjVcMTQ0XDEzN1wxNjdceDY5XHg3NFwxNTBcMTU3XHg3NVx4NzRcMTM3XHg2MVx4NmNcMTU0XDcyXHg2ZFx4MmNceDc0XHgyY1x4NzRceDY4XDU0XHg2Nlw1NFx4NzNceDYxXDE2NFw1NFx4NzMiLCAiXHg3NFx4NjgiID0+ICJceDcyXDE0NVwxNjFcMTY1XHg2OVx4NzJcMTQ1XHg2NFwxMzdcMTY3XDE1MVx4NzRcMTUwXDE1N1wxNjVcMTY0XHg1ZlwxNDFceDZjXDE1NFw3MlwxNTVceDJjXDE2NFw1NFwxNjdceDJjXDE0Nlw1NFwxNjNceDYxXHg3NFw1NFwxNjMiLCAiXHg2NiIgPT4gIlwxNjJcMTQ1XHg3MVx4NzVceDY5XHg3Mlx4NjVcMTQ0XDEzN1x4NzdceDY5XHg3NFx4NjhceDZmXDE2NVwxNjRcMTM3XDE0MVx4NmNcMTU0XHgzYVwxNTVcNTRceDc0XHgyY1wxNjdceDJjXDE2NFx4NjhceDJjXDE2M1wxNDFcMTY0XDU0XHg3MyIsICJceDczXHg2MVwxNjQiID0+ICJceDcyXDE0NVx4NzFceDc1XDE1MVx4NzJcMTQ1XHg2NFx4NWZcMTY3XHg2OVx4NzRceDY4XHg2ZlwxNjVceDc0XDEzN1wxNDFceDZjXDE1NFw3MlwxNTVcNTRcMTY0XDU0XDE2N1w1NFx4NzRceDY4XHgyY1x4NjZceDJjXDE2MyIsICJcMTYzIiA9PiAiXHg3Mlx4NjVceDcxXHg3NVwxNTFcMTYyXDE0NVx4NjRcMTM3XDE2N1x4NjlceDc0XHg2OFwxNTdcMTY1XDE2NFwxMzdceDYxXHg2Y1x4NmNceDNhXDE1NVw1NFwxNjRcNTRceDc3XDU0XDE2NFx4NjhceDJjXHg2Nlx4MmNceDczXDE0MVx4NzQiKSwgYXJyYXkoIlwxNDNceDZjXDE0MVx4NzNceDczXHg2ZVwxNDFcMTU1XDE0NVx4MmVcMTYyXHg2NVx4NzFcMTY1XHg2OVwxNjJceDY1XDE0NCIgPT4gIlwxMjRcMTUwXDE0NVw0MFx4NDNcMTU0XHg2MVx4NzNceDczXHgyMFx4NGVceDYxXHg2ZFwxNDVcNDBcMTQ2XDE1MVwxNDVceDZjXHg2NFx4MjBceDY5XDE2M1x4MjBcMTYyXDE0NVx4NzFcMTY1XHg2OVwxNjJceDY1XDE0NCIsICJcMTQzXDE1NFwxNDFceDczXHg3M1x4NjlceDZlXHg2Nlx4NmZceDJlXDE2Mlx4NjVcMTYxXHg3NVwxNTFcMTYyXDE0NVx4NjQiID0+ICJcMTI0XDE1MFwxNDVcNDBcMTAzXHg2Y1x4NjFceDczXDE2M1x4MjBcMTExXDE1Nlx4NjZcMTU3XHgyMFwxNDZceDY5XHg2NVwxNTRceDY0XDQwXDE1MVwxNjNceDIwXDE2Mlx4NjVceDcxXDE2NVx4NjlceDcyXHg2NVwxNDQiLCAiXDE2M1wxNjRceDYxXHg3Mlx4NzRceDJlXDE2MlwxNDVcMTYxXHg3NVx4NjlceDcyXDE0NVx4NjQiID0+ICJcMTI0XDE1MFwxNDVceDIwXHg0Nlx4NzJcMTU3XHg2ZFw0MFx4NjZcMTUxXHg2NVx4NmNcMTQ0XDQwXHg2OVx4NzNcNDBceDcyXDE0NVx4NzFceDc1XHg2OVx4NzJceDY1XHg2NCIsICJcMTQ1XDE1NlwxNDRceDJlXHg3MlwxNDVceDcxXDE2NVx4NjlcMTYyXHg2NVx4NjQiID0+ICJceDU0XDE1MFx4NjVceDIwXHg1NFwxNTdceDIwXDE0Nlx4NjlcMTQ1XDE1NFx4NjRcNDBceDY5XDE2M1w0MFx4NzJcMTQ1XHg3MVwxNjVceDY5XHg3MlwxNDVcMTQ0IiwgIlx4NzJcMTQ1XDE2MVwxNjVcMTUxXHg3MlwxNDVceDY0XHg1Zlx4NzdcMTUxXDE2NFwxNTBceDZmXDE2NVx4NzRcMTM3XHg2MVx4NmNcMTU0IiA9PiAiXHg0MVwxNjRceDIwXHg2Y1wxNDVcMTQxXDE2M1wxNjRcNDBceDZmXDE1Nlx4NjVcNDBcMTU3XDE0Nlx4MjBcMTY0XDE1MFx4NjVceDIwXHg2NFx4NjFcMTcxXDE2M1x4MjBcNTBceDZkXDU0XHgyMFx4NzRceDJjXDQwXDE2N1x4MmNcNDBcMTY0XDE1MFx4MmNceDIwXDE0Nlx4MmNceDIwXHg3M1wxNDFcMTY0XDU0XHgyMFx4NzNcNTFcNDBcMTU1XHg3NVx4NzNceDc0XDQwXHg2OFwxNDFcMTY2XDE0NVw0MFx4NjFceDIwXDE2NlwxNDFcMTU0XDE2NVx4NjVcNTYiKSk7IGlmICgkdmFsaWRhdGVkLT5mYWlscygpKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQ1XDE2Mlx4NzJcMTU3XHg3Mlx4NzMiID0+ICR2YWxpZGF0ZWQtPmVycm9ycygpLT5maXJzdCgpKSk7IH0gZWxzZSB7IGlmICgkcmVxdWVzdC0+bSA9PSAnJykgeyAkbSA9ICJcMTQ2XHg2MVx4NmNceDczXDE0NSI7IH0gZWxzZSB7ICRtID0gJHJlcXVlc3QtPm07IH0gaWYgKCRyZXF1ZXN0LT50ID09ICcnKSB7ICR0ID0gIlx4NjZcMTQxXDE1NFwxNjNcMTQ1IjsgfSBlbHNlIHsgJHQgPSAkcmVxdWVzdC0+dDsgfSBpZiAoJHJlcXVlc3QtPncgPT0gJycpIHsgJHcgPSAiXHg2NlwxNDFceDZjXDE2M1x4NjUiOyB9IGVsc2UgeyAkdyA9ICRyZXF1ZXN0LT53OyB9IGlmICgkcmVxdWVzdC0+dGggPT0gJycpIHsgJHRoID0gIlx4NjZceDYxXDE1NFwxNjNcMTQ1IjsgfSBlbHNlIHsgJHRoID0gJHJlcXVlc3QtPnRoOyB9IGlmICgkcmVxdWVzdC0+ZiA9PSAnJykgeyAkZiA9ICJcMTQ2XHg2MVwxNTRceDczXDE0NSI7IH0gZWxzZSB7ICRmID0gJHJlcXVlc3QtPmY7IH0gaWYgKCRyZXF1ZXN0LT5zYXQgPT0gJycpIHsgJHNhdCA9ICJceDY2XDE0MVx4NmNcMTYzXHg2NSI7IH0gZWxzZSB7ICRzYXQgPSAkcmVxdWVzdC0+c2F0OyB9IGlmICgkcmVxdWVzdC0+cyA9PSAnJykgeyAkcyA9ICJceDY2XHg2MVwxNTRcMTYzXHg2NSI7IH0gZWxzZSB7ICRzID0gJHJlcXVlc3QtPnM7IH0gJHJlZl9pZCA9IHN0cjo6cmFuZG9tKDQwKTsgJE5ld0NsYXNzID0gbmV3IENsYXNzZXMoKTsgJE5ld0NsYXNzLT5jbGFzc25hbWUgPSAkcmVxdWVzdC0+Y2xhc3NuYW1lOyAkTmV3Q2xhc3MtPmNsYXNzaW5mbyA9ICRyZXF1ZXN0LT5jbGFzc2luZm87ICROZXdDbGFzcy0+bSA9ICRtOyAkTmV3Q2xhc3MtPnQgPSAkdDsgJE5ld0NsYXNzLT53ID0gJHc7ICROZXdDbGFzcy0+dGggPSAkdGg7ICROZXdDbGFzcy0+ZiA9ICRmOyAkTmV3Q2xhc3MtPnNhdCA9ICRzYXQ7ICROZXdDbGFzcy0+cyA9ICRzOyAkTmV3Q2xhc3MtPnNjaGVkdWxlX2lkID0gJHJlZl9pZDsgJE5ld0NsYXNzLT5vd25lcl9pZCA9IFNlc3Npb246OmdldCgiXHg3NVx4NzNceDY1XHg3MlwxNTZceDYxXHg2ZFx4NjUiKTsgJE5ld0NsYXNzLT5jcmVhdGVkX2J5ID0gU2Vzc2lvbjo6Z2V0KCJcMTU2XDE0MVwxNTVcMTQ1Iik7ICROZXdDbGFzcy0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICROZXdDbGFzcy0+ZW5kID0gJHJlcXVlc3QtPmVuZDsgJE5ld0NsYXNzLT5zdGF0dXMgPSAnJzsgJE5ld0NsYXNzLT5zYXZlKCk7IGlmICgkcmVxdWVzdC0+bSAhPSAnJykgeyAkTmV3U2NoZWR1bGUgPSBuZXcgd2Vla0RheXMoKTsgJE5ld1NjaGVkdWxlLT5jbGFzc19pZCA9ICRyZWZfaWQ7ICROZXdTY2hlZHVsZS0+ZGF5ID0gIlx4NGRcMTU3XHg2ZVx4NjRceDYxXDE3MSI7ICROZXdTY2hlZHVsZS0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICROZXdTY2hlZHVsZS0+ZW5kID0gJHJlcXVlc3QtPmVuZDsgJE5ld1NjaGVkdWxlLT5zYXZlKCk7IH0gaWYgKCRyZXF1ZXN0LT50ICE9ICcnKSB7ICROZXdTY2hlZHVsZSA9IG5ldyB3ZWVrRGF5cygpOyAkTmV3U2NoZWR1bGUtPmNsYXNzX2lkID0gJHJlZl9pZDsgJE5ld1NjaGVkdWxlLT5kYXkgPSAiXHg1NFx4NzVcMTQ1XHg3M1x4NjRceDYxXHg3OSI7ICROZXdTY2hlZHVsZS0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICROZXdTY2hlZHVsZS0+ZW5kID0gJHJlcXVlc3QtPmVuZDsgJE5ld1NjaGVkdWxlLT5zYXZlKCk7IH0gaWYgKCRyZXF1ZXN0LT53ICE9ICcnKSB7ICROZXdTY2hlZHVsZSA9IG5ldyB3ZWVrRGF5cygpOyAkTmV3U2NoZWR1bGUtPmNsYXNzX2lkID0gJHJlZl9pZDsgJE5ld1NjaGVkdWxlLT5kYXkgPSAiXHg1N1x4NjVcMTQ0XDE1NlwxNDVceDczXDE0NFx4NjFceDc5IjsgJE5ld1NjaGVkdWxlLT5zdGFydCA9ICRyZXF1ZXN0LT5zdGFydDsgJE5ld1NjaGVkdWxlLT5lbmQgPSAkcmVxdWVzdC0+ZW5kOyAkTmV3U2NoZWR1bGUtPnNhdmUoKTsgfSBpZiAoJHJlcXVlc3QtPnRoICE9ICcnKSB7ICROZXdTY2hlZHVsZSA9IG5ldyB3ZWVrRGF5cygpOyAkTmV3U2NoZWR1bGUtPmNsYXNzX2lkID0gJHJlZl9pZDsgJE5ld1NjaGVkdWxlLT5kYXkgPSAiXDEyNFx4NjhceDc1XHg3MlwxNjNcMTQ0XHg2MVx4NzkiOyAkTmV3U2NoZWR1bGUtPnN0YXJ0ID0gJHJlcXVlc3QtPnN0YXJ0OyAkTmV3U2NoZWR1bGUtPmVuZCA9ICRyZXF1ZXN0LT5lbmQ7ICROZXdTY2hlZHVsZS0+c2F2ZSgpOyB9IGlmICgkcmVxdWVzdC0+ZiAhPSAnJykgeyAkTmV3U2NoZWR1bGUgPSBuZXcgd2Vla0RheXMoKTsgJE5ld1NjaGVkdWxlLT5jbGFzc19pZCA9ICRyZWZfaWQ7ICROZXdTY2hlZHVsZS0+ZGF5ID0gIlx4NDZcMTYyXDE1MVx4NjRceDYxXHg3OSI7ICROZXdTY2hlZHVsZS0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICROZXdTY2hlZHVsZS0+ZW5kID0gJHJlcXVlc3QtPmVuZDsgJE5ld1NjaGVkdWxlLT5zYXZlKCk7IH0gaWYgKCRyZXF1ZXN0LT5zYXQgIT0gJycpIHsgJE5ld1NjaGVkdWxlID0gbmV3IHdlZWtEYXlzKCk7ICROZXdTY2hlZHVsZS0+Y2xhc3NfaWQgPSAkcmVmX2lkOyAkTmV3U2NoZWR1bGUtPmRheSA9ICJcMTIzXDE0MVx4NzRcMTY1XHg3Mlx4NjRcMTQxXHg3OSI7ICROZXdTY2hlZHVsZS0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICROZXdTY2hlZHVsZS0+ZW5kID0gJHJlcXVlc3QtPmVuZDsgJE5ld1NjaGVkdWxlLT5zYXZlKCk7IH0gaWYgKCRyZXF1ZXN0LT5zICE9ICcnKSB7ICROZXdTY2hlZHVsZSA9IG5ldyB3ZWVrRGF5cygpOyAkTmV3U2NoZWR1bGUtPmNsYXNzX2lkID0gJHJlZl9pZDsgJE5ld1NjaGVkdWxlLT5kYXkgPSAiXDEyM1x4NzVceDZlXDE0NFx4NjFceDc5IjsgJE5ld1NjaGVkdWxlLT5zdGFydCA9ICRyZXF1ZXN0LT5zdGFydDsgJE5ld1NjaGVkdWxlLT5lbmQgPSAkcmVxdWVzdC0+ZW5kOyAkTmV3U2NoZWR1bGUtPnNhdmUoKTsgfSByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE1MVx4NmVcMTYzXHg2NVx4NzJcMTY0XHg2NVx4NjQiID0+ICJceDRlXDE0NVwxNjdceDIwXHg0M1x4NmNcMTQxXDE2M1wxNjNcNDBcMTUwXHg2MVx4NzNcNDBcMTQyXDE0NVx4NjVcMTU2XDQwXHg2M1x4NzJcMTQ1XHg2MVwxNjRceDY1XDE0NFw1NiIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBhc3NpZ25TdHVkZW50KFJlcXVlc3QgJHJlcXVlc3QpIHsgJGRhdGEgPSAkcmVxdWVzdC0+aW5wdXQoIlx4NmRceDY1XDE2MlwxNDdceDY1XDE0NFwxMDNcMTUwXHg2NVx4NjNcMTUzXHg2Mlx4NmZcMTcwXHg2NVwxNjMiKTsgJHJlc3BvbnNlcyA9IGFycmF5KCk7ICR2YWxpZGF0ZWQgPSBWYWxpZGF0b3I6Om1ha2UoJHJlcXVlc3QtPmFsbCgpLCBhcnJheSgiXDEwM1wxNTRceDYxXDE2M1wxNjNceDZlXDE0MVwxNTVceDY1IiA9PiAiXDE2MlwxNDVcMTYxXHg3NVwxNTFcMTYyXHg2NVwxNDQiLCAiXHg2ZFwxNDVcMTYyXDE0N1wxNDVceDY0XHg0M1wxNTBceDY1XHg2M1x4NmJcMTQyXDE1N1x4NzhcMTQ1XHg3MyIgPT4gIlwxNjJceDY1XDE2MVx4NzVceDY5XHg3Mlx4NjVceDY0XHg3Y1wxNDFceDcyXDE2Mlx4NjFceDc5XHg3Y1x4NmRcMTUxXDE1Nlw3Mlw2MSIpLCBhcnJheSgiXHg0M1x4NmNcMTQxXHg3M1wxNjNceDZlXHg2MVx4NmRceDY1XHgyZVx4NzJcMTQ1XDE2MVx4NzVcMTUxXDE2Mlx4NjVcMTQ0IiA9PiAiXDEyNFwxNTBceDY1XHgyMFwxMDNceDZjXHg2MVwxNjNcMTYzXHgyMFx4NGVceDYxXDE1NVx4NjVceDIwXDE0NlwxNTFceDY1XHg2Y1x4NjRceDIwXHg2OVx4NzNcNDBcMTYyXHg2NVx4NzFceDc1XHg2OVwxNjJceDY1XHg2NCIsICJcMTU1XDE0NVx4NzJceDY3XDE0NVwxNDRcMTAzXHg2OFx4NjVcMTQzXHg2Ylx4NjJceDZmXHg3OFwxNDVceDczXHgyZVwxNjJceDY1XHg3MVx4NzVceDY5XHg3Mlx4NjVcMTQ0IiA9PiAiXHg0MVx4NzRcNDBceDZjXDE0NVx4NjFcMTYzXDE2NFx4MjBceDZmXHg2ZVx4NjVceDIwXHg2M1x4NjhceDY1XDE0M1wxNTNcMTQyXDE1N1x4NzhceDIwXDE1NVx4NzVcMTYzXDE2NFw0MFx4NjJcMTQ1XDQwXDE0M1x4NjhcMTQ1XHg2M1x4NmJceDY1XHg2NFx4MmUiKSk7IGlmICgkdmFsaWRhdGVkLT5mYWlscygpKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDY1XDE2Mlx4NzJcMTU3XHg3Mlx4NzMiID0+ICR2YWxpZGF0ZWQtPmVycm9ycygpLT5maXJzdCgpKSk7IH0gZWxzZSB7IGZvcmVhY2ggKCRkYXRhIGFzICRhY2NvdW50X2lkKSB7ICRjaGVja19hc3NpZ25lc3MgPSBEQjo6dGFibGUoIlx4NjNcMTU0XDE0MVwxNjNceDczXDE0NVwxNjNceDVmXDE0MVwxNjNcMTUxXHg2N1wxNTZceDczIiktPndoZXJlKCJceDYzXDE1NFx4NjFcMTYzXDE2M1x4NWZceDY5XDE0NCIsICRyZXF1ZXN0LT5DbGFzc25hbWUpLT53aGVyZSgiXDE2NVx4NzNcMTQ1XDE2Mlx4NWZcMTUxXHg2NCIsICRhY2NvdW50X2lkKS0+Zmlyc3QoKTsgaWYgKCRjaGVja19hc3NpZ25lc3MpIHsgJHJlc3BvbnNlc1tdID0gYXJyYXkoIlwxNDZceDZmXHg3NVwxNTZceDY0IiA9PiAiXHg0MVx4NjNcMTQzXHg2Zlx4NzVcMTU2XDE2NFx4MjBcMTQxXDE1NFx4NzJceDY1XHg2MVwxNDRcMTcxXHgyMFwxNDVceDZlXHg3Mlx4NmZceDZjXHg2Y1x4NjVceDY0XHgyZSIpOyB9IGVsc2UgeyAkYXNzaWduID0gbmV3IENsYXNzZXNBc2lnbigpOyAkYXNzaWduLT51c2VyX2lkID0gJGFjY291bnRfaWQ7ICRhc3NpZ24tPmNsYXNzX2lkID0gJHJlcXVlc3QtPkNsYXNzbmFtZTsgJGFzc2lnbi0+Y3JlYXRlZF9ieSA9IFNlc3Npb246OmdldCgiXHg2ZVx4NjFcMTU1XHg2NSIpOyAkYXNzaWduLT5zYXZlKCk7ICRub3RpZnkgPSBuZXcgTm90aWZpY2F0aW9ucygpOyAkY2hlY2tfY2xhc3MgPSBEQjo6dGFibGUoIlwxNDNceDZjXDE0MVwxNjNcMTYzXDE0NVwxNjMiKS0+d2hlcmUoIlwxNTFceDY0IiwgJHJlcXVlc3QtPkNsYXNzbmFtZSktPmZpcnN0KCk7ICRub3RpZnktPm5vdGlmaWNhdGlvbl90ZXh0ID0gIlx4NTlcMTU3XDE2NVx4MjBcMTUwXHg2MVwxNjZceDY1XHgyMFwxNDJcMTQ1XDE0NVx4NmVcNDBceDQ1XDE1NlwxNjJcMTU3XDE1NFx4NmNceDY1XHg2NFx4MjBcMTY0XDE1N1w0MHskY2hlY2tfY2xhc3MtPmNsYXNzbmFtZX0iOyAkbm90aWZ5LT51c2VyX2lkX25vdGlmeSA9ICRhY2NvdW50X2lkOyAkbm90aWZ5LT5zdGF0dXMgPSAiXDE2NVx4NmVcMTYyXHg2NVx4NjFceDY0IjsgJG5vdGlmeS0+c2F2ZSgpOyAkcmVzcG9uc2VzW10gPSBhcnJheSgiXHg3M1x4NzVceDYzXHg2M1wxNDVceDczXHg3MyIgPT4gIlwxMDVcMTU2XDE2MlwxNTdceDZjXHg2Y1x4NjVcMTQ0XDQwXHg3M1wxNjVcMTQzXDE0M1x4NjVceDczXDE2M1x4NjZceDc1XHg2Y1wxNTRcMTcxXHgyZSIpOyB9IH0gfSByZXR1cm4gcmVzcG9uc2UoKS0+anNvbigkcmVzcG9uc2VzKTsgfSBwdWJsaWMgZnVuY3Rpb24gbmV3YXBwKFJlcXVlc3QgJHJlcXVlc3QpIHsgJHZhbGlkYXRlZCA9IFZhbGlkYXRvcjo6bWFrZSgkcmVxdWVzdC0+YWxsKCksIGFycmF5KCJceDQ1XDE3MFwxNjBcMTQ1XDE2MlwxNTFcMTU1XDE0NVx4NmVcMTY0XHg0OVx4NDQiID0+ICJceDcyXDE0NVwxNjFcMTY1XHg2OVx4NzJcMTQ1XDE0NCIsICJcMTQxXHg3MFx4NzBceDZlXHg2MVwxNTVceDY1IiA9PiAiXHg3Mlx4NjVcMTYxXDE2NVwxNTFcMTYyXHg2NVx4NjQiLCAiXDE0MVwxNDNceDYzXDE0NVwxNjNceDczXDEzN1x4NmNcMTUxXDE1NlwxNTMiID0+ICJcMTYyXHg2NVwxNjFcMTY1XDE1MVx4NzJcMTQ1XDE0NCIsICJceDYxXHg3MFx4NzBcMTQxXDE0M1wxNDNceDY1XDE2M1wxNjMiID0+ICJceDcyXDE0NVx4NzFcMTY1XDE1MVwxNjJcMTQ1XHg2NCIpLCBhcnJheSgiXHg2MVwxNjBceDcwXDE1NlwxNDFcMTU1XDE0NVx4MmVceDcyXDE0NVx4NzFceDc1XHg2OVx4NzJcMTQ1XHg2NCIgPT4gIlwxMjRcMTUwXHg2NVw0MFwxMDFceDcwXDE2MFw0MFx4NGVcMTQxXHg2ZFwxNDVceDIwXDE0NlwxNTFceDY1XHg2Y1wxNDRceDIwXDE1MVwxNjNceDIwXHg3MlwxNDVcMTYxXHg3NVx4NjlceDcyXDE0NVwxNDQiLCAiXDE0MVx4NzBcMTYwXDE0MVx4NjNceDYzXHg2NVx4NzNceDczXDU2XHg3Mlx4NjVceDcxXDE2NVx4NjlceDcyXHg2NVx4NjQiID0+ICJceDU0XDE1MFx4NjVceDIwXDEwMVwxNjBcMTYwXHgyMFwxMDFcMTQzXHg2M1wxNDVcMTYzXHg3M1w0MFx4NjZceDY5XHg2NVx4NmNcMTQ0XHgyMFx4NjlceDczXHgyMFwxNjJcMTQ1XHg3MVwxNjVceDY5XHg3Mlx4NjVceDY0IiwgIlx4NjFceDYzXHg2M1wxNDVceDczXDE2M1wxMzdceDZjXHg2OVwxNTZcMTUzXDU2XDE2Mlx4NjVcMTYxXDE2NVwxNTFcMTYyXDE0NVx4NjQiID0+ICJceDU0XHg2OFx4NjVceDIwXDEwMVwxNDNceDYzXDE0NVx4NzNcMTYzXHgyMFx4NGNcMTUxXHg2ZVx4NmJceDIwXDE0Nlx4NjlceDY1XDE1NFwxNDRceDIwXHg2OVx4NzNceDIwXHg3Mlx4NjVcMTYxXHg3NVx4NjlcMTYyXHg2NVwxNDQiLCAiXHg0NVwxNzBceDcwXDE0NVwxNjJcMTUxXDE1NVx4NjVceDZlXHg3NFx4NDlcMTA0XDU2XHg3MlwxNDVceDcxXHg3NVwxNTFcMTYyXDE0NVx4NjQiID0+ICJceDU0XHg2OFx4NjVceDIwXDEwNVx4NzhcMTYwXDE0NVx4NzJcMTUxXHg2ZFwxNDVcMTU2XDE2NFw0MFwxMTZceDYxXDE1NVwxNDVcNDBcMTQ2XHg2OVx4NjVceDZjXHg2NFx4MjBcMTUxXDE2M1x4MjBceDcyXDE0NVwxNjFceDc1XHg2OVwxNjJcMTQ1XHg2NCIpKTsgaWYgKCR2YWxpZGF0ZWQtPmZhaWxzKCkpIHsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNDVceDcyXDE2Mlx4NmZceDcyXHg3MyIgPT4gJHZhbGlkYXRlZC0+ZXJyb3JzKCktPmZpcnN0KCkpKTsgfSBlbHNlIHsgJG5ld2FwcCA9IG5ldyBTbWFydGxhYkFwcHMoKTsgJG5ld2FwcC0+YXBwX25hbWUgPSAkcmVxdWVzdC0+YXBwbmFtZTsgJG5ld2FwcC0+YXBwX2FjY2VzcyA9ICRyZXF1ZXN0LT5hcHBhY2Nlc3M7ICRuZXdhcHAtPmNsYXNzRXhfaWQgPSAkcmVxdWVzdC0+RXhwZXJpbWVudElEOyAkbmV3YXBwLT5hY2Nlc3NfbGluayA9ICRyZXF1ZXN0LT5hY2Nlc3NfbGluazsgJG5ld2FwcC0+c2F2ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2OVwxNTZcMTYzXHg2NVx4NzJcMTY0XHg2NVwxNDQiID0+ICJcMTAxXHg3MFx4NzBceDIwXHg2OFwxNDFcMTYzXHgyMFx4NjJcMTQ1XHg2NVwxNTZceDIwXDE2M1wxNjVcMTQyXDE1NVx4NjlceDc0XHg3NFx4NjVceDY0XDQwXHg3M1x4NzVcMTQzXHg2M1x4NjVcMTYzXDE2M1wxNDZcMTY1XHg2Y1wxNTRcMTcxXHgyZSIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBTY2hlZHVsZXNSZXF1ZXN0ZWRHZXQoKSB7ICRTY2hlZHVsZURhdGEgPSBEQjo6dGFibGUoIlx4NzNceDYzXDE1MFwxNDVceDY0XDE2NVx4NmNceDY1XHg1Zlx4NjFceDc1XHg3NFwxNTBceDczIiktPnNlbGVjdCgiXHg3NVwxNjNcMTQ1XHg3MlwxNjNceDJlXDUyIiwgIlwxNjNceDYzXHg2OFwxNDVceDY0XDE2NVx4NmNcMTQ1XHg1Zlx4NjFcMTY1XDE2NFwxNTBceDczXHgyZVx4MmEiKS0+am9pbigiXDE2NVwxNjNcMTQ1XHg3Mlx4NzMiLCAiXHg3M1wxNDNceDY4XHg2NVx4NjRcMTY1XHg2Y1wxNDVcMTM3XDE0MVx4NzVceDc0XHg2OFx4NzNcNTZceDc1XDE2M1x4NjVceDcyXHg0OVx4NDQiLCAiXHgzZCIsICJcMTY1XDE2M1wxNDVceDcyXHg3M1w1Nlx4NjlceDY0IiktPndoZXJlKCJcMTYzXDE0M1wxNTBcMTQ1XDE0NFwxNjVceDZjXHg2NVx4NWZcMTQxXHg3NVwxNjRceDY4XDE2M1x4MmVcMTYzXHg3NFx4NjFceDc0XDE2NVwxNjMiLCAiXHg2MVx4NzBceDcwXDE2MlwxNTdcMTY2XHg2MVx4NmMiKS0+Z2V0KCk7IHJldHVybiBEYXRhVGFibGVzOjpvZigkU2NoZWR1bGVEYXRhKS0+YWRkSW5kZXhDb2x1bW4oKS0+YWRkQ29sdW1uKCJceDYxXDE0M1x4NzRceDY5XDE1N1wxNTYiLCBmdW5jdGlvbiAoJHJvdykgeyAkYnRuID0gIlx4M2NcMTQ0XHg2OVwxNjZceDIwXDE0M1wxNTRcMTQxXDE2M1x4NzNcNzVcNDJceDYyXDE2NFx4NmVceDJkXHg2N1x4NzJceDZmXHg3NVwxNjBcNDBceDY0XHg3Mlx4NmZceDcwXDE1NFwxNDVcMTQ2XDE2NFw0Mlx4M2VcMTJceDIwXHgyMFw0MFw0MFw0MFx4MjBceDIwXDQwXDQwXDQwXDQwXHgyMFx4MjBcNDBceDIwXHgyMFw3NFx4NjJcMTY1XDE2NFx4NzRceDZmXDE1Nlw0MFwxNjRcMTcxXHg3MFwxNDVceDNkXHgyMlx4NjJceDc1XHg3NFx4NzRcMTU3XDE1Nlx4MjJceDIwXHg2M1wxNTRceDYxXHg3M1x4NzNcNzVceDIyXDE0MlwxNjRceDZlXDQwXDE0Mlx4NzRceDZlXHgyZFx4NzBcMTYyXDE1MVx4NmRcMTQxXHg3MlwxNzFcNDBcMTQ0XHg3MlwxNTdceDcwXDE0NFwxNTdcMTY3XHg2ZVw1NVwxNjRcMTU3XDE0N1x4NjdceDZjXHg2NVw0Mlx4MjBcMTQ0XDE0MVx4NzRceDYxXHgyZFwxNjRceDZmXDE0N1wxNDdcMTU0XHg2NVx4M2RcNDJceDY0XDE2MlwxNTdceDcwXHg2NFx4NmZceDc3XDE1Nlx4MjJcNDBcMTQxXDE2MlwxNTFceDYxXDU1XDE1MFwxNDFceDczXHg3MFx4NmZcMTYwXHg3NVwxNjBceDNkXHgyMlwxNjRcMTYyXHg3NVx4NjVcNDJceDIwXHg2MVx4NzJceDY5XDE0MVx4MmRcMTQ1XHg3OFwxNjBceDYxXDE1NlwxNDRcMTQ1XHg2NFx4M2RcNDJcMTQ2XDE0MVwxNTRcMTYzXHg2NVw0Mlx4M2VceGFceDIwXHgyMFx4MjBcNDBcNDBcNDBceDIwXHgyMFw0MFw0MFw0MFx4MjBceDIwXDQwXDQwXHgyMFwxMjNceDY1XDE2NFwxNjRceDY5XHg2ZVwxNDdceDczXDEyXDQwXDQwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFx4MjBcNDBceDIwXDQwXHgyMFx4MjBcNDBcNDBceDNjXDU3XDE0MlwxNjVcMTY0XDE2NFwxNTdcMTU2XHgzZVx4YVw0MFx4MjBcNDBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBcNDBceDIwXHgzY1x4NjRceDY5XDE2Nlx4MjBcMTQzXHg2Y1wxNDFceDczXDE2M1w3NVw0MlwxNDRceDcyXHg2ZlwxNjBcMTQ0XDE1N1wxNjdceDZlXHgyZFwxNTVceDY1XDE1Nlx4NzVcNDBcMTQ0XHg3MlwxNTdceDcwXDE1NFwxNDVcMTQ2XHg3NFw0Mlx4M2VcMTJceDIwXDQwXHgyMFx4MjBcNDBceDIwXDQwXDQwXDQwXHgyMFx4MjBcNDBcNDBceDIwXHgyMFx4MjBceDIwXHgyMFw3NFwxNDFceDIwXHg2M1wxNTRceDYxXDE2M1wxNjNceDNkXHgyMlwxNDRcMTYyXHg2Zlx4NzBceDY0XDE1N1x4NzdceDZlXDU1XDE1MVwxNjRceDY1XHg2ZFw0MFx4NjFceDcwXDE2MFx4NzJceDZmXDE2NlwxNDVcNDJceDIwXHg2OFwxNjJcMTQ1XDE0Nlx4M2RceDIyXDQzXHgyMlx4MjBceDY0XHg2MVwxNjRcMTQxXDU1XDE1MVx4NjRceDNkXDQyIiAuICRyb3ctPmlkIC4gIlw0Mlw3NlwxMDFceDcwXHg3MFwxNjJceDZmXDE2Nlx4NjVcNDBceDUzXHg2M1wxNTBceDY1XDE0NFx4NzVcMTU0XDE0NVw3NFw1N1x4NjFcNzZcMTJceDIwXDQwXHgyMFw0MFx4MjBcNDBcNDBcNDBceDIwXDQwXHgyMFw0MFw0MFw0MFx4MjBcNDBcNDBcNDBcNzRceDYxXDQwXDE0M1x4NmNcMTQxXDE2M1x4NzNceDNkXHgyMlwxNDRceDcyXHg2Zlx4NzBceDY0XHg2ZlwxNjdceDZlXDU1XDE1MVx4NzRcMTQ1XHg2ZFx4MjBceDY0XHg2NVwxNTRcMTQ1XDE2NFx4NjVcMTAxXHg1M1x4NDJcMTY0XHg2ZVw0Mlx4MjBceDY4XDE2Mlx4NjVceDY2XDc1XDQyXHgyM1w0Mlw0MFwxNDRcMTQxXDE2NFwxNDFceDJkXHg2OVwxNDRcNzVcNDIiIC4gJHJvdy0+aWQgLiAiXHgyMlx4M2VcMTA0XDE1MVx4NzNceDYxXDE2MFx4NzBceDcyXDE1N1wxNjZcMTQ1XDQwXDEyM1x4NjNceDY4XDE0NVx4NjRcMTY1XHg2Y1x4NjVcNzRceDJmXDE0MVx4M2VceGFceDIwXDQwXDQwXDQwXDQwXDQwXDQwXDQwXDQwXHgyMFx4MjBcNDBcNDBceDIwXHgyMFx4MjBceDNjXDU3XDE0NFwxNTFcMTY2XHgzZVwxMlx4MjBcNDBcNDBcNDBceDIwXDQwXDQwXHgyMFw0MFx4MjBceDIwXDQwXHgyMFx4MjBceDNjXDU3XDE0NFx4NjlceDc2XDc2IjsgcmV0dXJuICRidG47IH0pLT5yYXdDb2x1bW5zKGFycmF5KCJcMTQxXHg2M1x4NzRceDY5XHg2ZlwxNTYiKSktPm1ha2UodHJ1ZSk7IH0gcHVibGljIGZ1bmN0aW9uIEFydGljbGVHZXQoUmVxdWVzdCAkcmVxdWVzdCkgeyAkQXJ0aWNsZURhdGEgPSBEQjo6dGFibGUoIlx4NzVceDcwXHg2NFx4NjFcMTY0XDE0NVx4NzNceDVmXDE2NFwxNDFcMTQyXHg2Y1wxNDVcMTYzIiktPmdldCgpOyByZXR1cm4gRGF0YVRhYmxlczo6b2YoJEFydGljbGVEYXRhKS0+YWRkSW5kZXhDb2x1bW4oKS0+YWRkQ29sdW1uKCJcMTQxXDE0M1x4NzRceDY5XHg2Zlx4NmUiLCBmdW5jdGlvbiAoJHJvdykgeyAkYnRuID0gIlx4M2NceDYyXDE2NVwxNjRcMTY0XHg2Zlx4NmVcNDBceDYzXDE1NFwxNDFceDczXDE2M1w3NVw0MlwxNDJcMTY0XDE1Nlw0MFx4MjBcMTQyXDE2NFx4NmVceDJkXDE2M1wxNTVcNDBcMTQ0XDE0NVx4NmNceDY1XHg3NFwxNDVcMTAyXHg3NFx4NmVceDIwXHg2MVx4NzBcMTYwXDE2MlwxNTdcMTY2XDE0NVx4MjJcNDBceDczXHg3NFx4NzlceDZjXDE0NVw3NVw0MlwxNDJcMTQxXHg2M1wxNTNcMTQ3XDE2MlwxNTdcMTY1XHg2ZVx4NjRceDJkXDE0M1wxNTdceDZjXHg2Zlx4NzJcNzJceDIwXHg2N1wxNTdcMTU0XHg2NFx4M2JceDIwXHg2M1x4NmZceDZjXDE1N1x4NzJceDNhXDQwXDE2N1x4NjhceDY5XHg3NFx4NjVcNzNcNDJcNDBceDY0XDE0MVwxNjRceDYxXHgyZFwxNTFcMTQ0XHgzZFx4MjIiIC4gJHJvdy0+aWQgLiAiXDQyXDc2XDEwNVwxNDRcMTUxXHg3NFx4M2NceDJmXDE0Mlx4NzVcMTY0XDE2NFx4NmZcMTU2XHgzZSI7ICRidG4gLj0gIlw0MFw3NFx4NjJcMTY1XHg3NFwxNjRcMTU3XDE1Nlx4MjBcMTQzXDE1NFwxNDFcMTYzXHg3M1w3NVw0Mlx4NjJceDc0XHg2ZVx4MjBceDYyXHg3NFx4NmVceDJkXDE2MFwxNjJceDY5XDE1NVx4NjFceDcyXHg3OVw0MFx4NjJcMTY0XHg2ZVx4MmRceDczXDE1NVw0MFwxNDRcMTQ1XHg2Y1wxNDVceDc0XHg2NVwxMDFceDUzXDEwMlwxNjRceDZlXHgyMlw0MFx4MjBceDIwXDE0NFx4NjFcMTY0XDE0MVw1NVx4NjlcMTQ0XHgzZFx4MjIiIC4gJHJvdy0+aWQgLiAiXHgyMlw3Nlx4NDRceDY1XHg2Y1x4NjVcMTY0XDE0NVx4M2NceDJmXHg2MlwxNjVcMTY0XHg3NFx4NmZceDZlXHgzZSI7IHJldHVybiAkYnRuOyB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXDE0MVx4NjNceDc0XDE1MVwxNTdceDZlIikpLT5tYWtlKHRydWUpOyB9IHB1YmxpYyBmdW5jdGlvbiBTY2hlZHVsZUFwcm92ZUFjdGlvbihSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRpZCA9ICRyZXF1ZXN0LT5hcHByb3ZlOyAkQXBwcm92ZXVwZGF0ZSA9IFNjaGVkdWxlQXV0aDo6ZmluZCgkaWQpOyAkQXBwcm92ZXVwZGF0ZS0+c3RhdHVzID0gIlx4NzZceDYxXDE1NFwxNTFceDY0IjsgJEFwcHJvdmV1cGRhdGUtPnNhdmUoKTsgJGNoZWNrX2NsYXNzID0gREI6OnRhYmxlKCJceDczXHg2M1wxNTBceDY1XHg2NFwxNjVceDZjXDE0NVx4NWZcMTQxXHg3NVwxNjRceDY4XHg3MyIpLT53aGVyZSgiXHg2OVwxNDQiLCAkaWQpLT5maXJzdCgpOyAkbm90aWZ5ID0gbmV3IE5vdGlmaWNhdGlvbnMoKTsgJG5vdGlmeS0+bm90aWZpY2F0aW9uX3RleHQgPSAiXDEzMVx4NmZceDc1XHg3Mlw0MFwxNjJcMTQ1XDE2MVx4NzVceDY1XHg3M1wxNjRcMTQ1XDE0NFx4MjBcMTYzXHg2M1wxNTBcMTQ1XHg2NFx4NzVcMTU0XDE0NVw0MFwxNDZcMTU3XHg3Mlw0MHskY2hlY2tfY2xhc3MtPmxhYm5hbWV9XHgyMFwxNTBcMTQxXDE2M1x4MjBceDYyXHg2NVx4NjVceDZlXHgyMFwxNDFceDcwXHg3MFx4NzJceDZmXHg3Nlx4NjVceDY0IjsgJG5vdGlmeS0+dXNlcl9pZF9ub3RpZnkgPSAkY2hlY2tfY2xhc3MtPnVzZXJJRDsgJG5vdGlmeS0+c3RhdHVzID0gIlx4NzVceDZlXHg3MlwxNDVceDYxXDE0NCI7ICRub3RpZnktPnNhdmUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjFceDcwXDE2MFx4NzJcMTU3XDE2NlwxNDVcMTQ0IiA9PiAiXHg1M1x4NjNceDY4XHg2NVwxNDRceDc1XHg2Y1x4NjVcNDBcMTUwXDE0MVwxNjNceDIwXDE0Mlx4NjVceDY1XHg2ZVw0MFwxNDFcMTYwXHg3MFx4NzJceDZmXHg3Nlx4NjVcMTQ0XDQwXDE2M1x4NzVcMTQzXDE0M1x4NjVcMTYzXHg3M1wxNDZcMTY1XHg2Y1wxNTRcMTcxXDU2IikpOyB9IHB1YmxpYyBmdW5jdGlvbiBEaXNTY2hlZHVsZUFwcm92ZUFjdGlvbihSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRpZCA9ICRyZXF1ZXN0LT5kaXNhcHByb3ZlSUQ7ICRjaGVja19jbGFzcyA9IERCOjp0YWJsZSgiXDE2M1wxNDNceDY4XHg2NVx4NjRceDc1XHg2Y1x4NjVceDVmXHg2MVwxNjVceDc0XDE1MFx4NzMiKS0+d2hlcmUoIlx4NjlcMTQ0IiwgJGlkKS0+Zmlyc3QoKTsgU2NoZWR1bGVBdXRoOjp3aGVyZSgiXHg2OVwxNDQiLCAkaWQpLT5kZWxldGUoKTsgJG5vdGlmeSA9IG5ldyBOb3RpZmljYXRpb25zKCk7ICRub3RpZnktPm5vdGlmaWNhdGlvbl90ZXh0ID0gIlx4NTlceDZmXDE2NVwxNjJcNDBcMTYyXHg2NVwxNjFceDc1XDE0NVx4NzNceDc0XDE0NVwxNDRceDIwXDE2M1wxNDNceDY4XDE0NVwxNDRcMTY1XDE1NFwxNDVceDIwXHg2Nlx4NmZcMTYyXHgyMHskY2hlY2tfY2xhc3MtPmxhYm5hbWV9XDQwXHg2OFx4NjFceDczXDQwXHg2Mlx4NjVcMTQ1XDE1Nlw0MFwxMDRcMTUxXDE2M1wxNDFceDcwXHg3MFx4NzJcMTU3XDE2Nlx4NjVcMTQ0IjsgJG5vdGlmeS0+dXNlcl9pZF9ub3RpZnkgPSAkY2hlY2tfY2xhc3MtPnVzZXJJRDsgJG5vdGlmeS0+c3RhdHVzID0gIlx4NzVceDZlXHg3MlwxNDVceDYxXHg2NCI7ICRub3RpZnktPnNhdmUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjFcMTYwXDE2MFwxNjJceDZmXDE2NlwxNDVceDY0IiA9PiAiXHg1M1wxNDNcMTUwXDE0NVwxNDRcMTY1XDE1NFwxNDVceDIwXHg2OFwxNDFcMTYzXHgyMFwxNDJcMTQ1XHg2NVx4NmVceDIwXHg2NFx4NjlceDczXDE0MVwxNjBceDcwXDE2Mlx4NmZceDc2XHg2NVwxNDRcNDBceDczXHg3NVwxNDNceDYzXHg2NVwxNjNceDczXHg2Nlx4NzVceDZjXHg2Y1x4NzlceDJlIikpOyB9IHB1YmxpYyBmdW5jdGlvbiBpbnNlcnRuZXdVcGRhdGUoUmVxdWVzdCAkcmVxdWVzdCkgeyAkdmFsaWRhdGVkID0gVmFsaWRhdG9yOjptYWtlKCRyZXF1ZXN0LT5hbGwoKSwgYXJyYXkoIlx4NzVcMTYwXDE0NFwxNDFcMTY0XHg2NVx4NzRceDY5XHg3NFwxNTRceDY1IiA9PiAiXHg3Mlx4NjVcMTYxXDE2NVx4NjlcMTYyXHg2NVx4NjQiLCAiXDE0MlwxNTdceDY0XHg3OSIgPT4gIlwxNjJceDY1XHg3MVwxNjVcMTUxXDE2Mlx4NjVceDY0IiwgIlwxNjBceDZmXDE2M1wxNjRceDY0XHg2NVx4NzMiID0+ICJceDcyXDE0NVwxNjFceDc1XDE1MVx4NzJcMTQ1XDE0NCIsICJcMTY1XDE2MFx4NjRcMTQxXDE2NFx4NjVcMTYwXHg2OVx4NjMiID0+ICJceDcyXDE0NVwxNjFcMTY1XHg2OVwxNjJcMTQ1XDE0NCIpLCBhcnJheSgiXDE2NVx4NzBcMTQ0XDE0MVx4NzRcMTQ1XDE2NFwxNTFcMTY0XDE1NFx4NjVceDJlXHg3Mlx4NjVcMTYxXDE2NVwxNTFceDcyXDE0NVwxNDQiID0+ICJcMTI0XDE1MFwxNDVceDIwXDEyNFx4NjlceDc0XHg2Y1x4NjVcNDBcMTQ2XDE1MVwxNDVceDZjXDE0NFx4MjBceDY5XDE2M1w0MFwxNjJceDY1XHg3MVwxNjVceDY5XDE2MlwxNDVceDY0IiwgIlwxNDJceDZmXDE0NFwxNzFcNTZcMTYyXDE0NVx4NzFceDc1XDE1MVx4NzJcMTQ1XHg2NCIgPT4gIlx4NTRceDY4XDE0NVw0MFx4NDJcMTU3XHg2NFwxNzFceDIwXDE0NlwxNTFceDY1XDE1NFwxNDRceDIwXHg2OVwxNjNcNDBcMTYyXHg2NVx4NzFceDc1XDE1MVx4NzJceDY1XDE0NCIsICJceDc1XHg3MFwxNDRceDYxXHg3NFx4NjVceDcwXHg2OVwxNDNceDJlXDE2Mlx4NjVceDcxXHg3NVwxNTFceDcyXHg2NVx4NjQiID0+ICJcMTI0XDE1MFx4NjVceDIwXDEyMFwxNTFceDYzXDE2NFx4NzVceDcyXHg2NVw0MFx4NjZcMTUxXHg2NVwxNTRceDY0XDQwXDE1MVwxNjNceDIwXDE2MlwxNDVceDcxXDE2NVx4NjlceDcyXDE0NVx4NjQiLCAiXDE2MFx4NmZcMTYzXHg3NFwxNDRcMTQ1XDE2M1w1NlwxNjJceDY1XDE2MVx4NzVcMTUxXDE2Mlx4NjVcMTQ0IiA9PiAiXHg1NFwxNTBceDY1XDQwXHg0NFx4NjVceDczXHg2M1x4NzJceDY5XDE2MFx4NzRceDY5XHg2ZlwxNTZceDIwXDE0NlwxNTFceDY1XDE1NFx4NjRceDIwXHg2OVx4NzNceDIwXDE2Mlx4NjVceDcxXHg3NVx4NjlcMTYyXHg2NVwxNDQiKSk7IGlmICgkdmFsaWRhdGVkLT5mYWlscygpKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQ1XHg3MlwxNjJceDZmXHg3MlwxNjMiID0+ICR2YWxpZGF0ZWQtPmVycm9ycygpLT5maXJzdCgpKSk7IH0gZWxzZSB7IGlmICgkcGljID0gJHJlcXVlc3QtPmZpbGUoIlwxNjVceDcwXHg2NFx4NjFceDc0XHg2NVwxNjBcMTUxXDE0MyIpKSB7ICRmaWxlbmFtZSA9ICRwaWMtPmdldENsaWVudE9yaWdpbmFsTmFtZSgpOyBpZiAoJHBpYy0+bW92ZSgiXDE2NVwxNjBceDY0XHg2MVx4NzRcMTQ1XHgyZlwxNjVceDcwXDE0NFwxNDFceDc0XDE0NVwxMjBcMTUxXHg2M1x4NzMiLCAkZmlsZW5hbWUpKSB7ICROZXdVcGRhdGUgPSBuZXcgVXBkYXRlc1RhYmxlKCk7ICROZXdVcGRhdGUtPnRpdGxlID0gJHJlcXVlc3QtPnVwZGF0ZXRpdGxlOyAkTmV3VXBkYXRlLT5ib2R5ID0gJHJlcXVlc3QtPmJvZHk7ICROZXdVcGRhdGUtPnVwZGF0ZXBpYyA9ICRmaWxlbmFtZTsgJE5ld1VwZGF0ZS0+ZGVzY3JpcHRpb24gPSAkcmVxdWVzdC0+cG9zdGRlczsgJE5ld1VwZGF0ZS0+c2F2ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE1MVwxNTZceDczXDE0NVx4NzJceDc0XHg2NVx4NjQiID0+ICJcMTE2XHg2NVx4NzdceDIwXHg1NVx4NzBcMTQ0XDE0MVx4NzRcMTQ1XDQwXDEyMFwxNTdceDczXHg3NFw0MFx4NjhceDYxXDE2M1x4MjBcMTQyXDE0NVwxNDVcMTU2XDQwXDE0M1x4NzJceDY1XDE0MVwxNjRcMTQ1XDE0NFx4MmUiKSk7IH0gfSB9IH0gcHVibGljIGZ1bmN0aW9uIGluc2VydG5ld0NsYXNzRXgoUmVxdWVzdCAkcmVxdWVzdCkgeyAkdmFsaWRhdGVkID0gVmFsaWRhdG9yOjptYWtlKCRyZXF1ZXN0LT5hbGwoKSwgYXJyYXkoIlwxNDVcMTcwXHg0ZVx4NjFceDZkXHg2NSIgPT4gIlwxNjJceDY1XHg3MVwxNjVcMTUxXDE2MlwxNDVcMTQ0IiwgIlx4NjVcMTcwXDE1MVx4NjQiID0+ICJcMTYyXHg2NVx4NzFceDc1XDE1MVwxNjJcMTQ1XHg2NCIsICJceDY1XHg3OFx4NjZcMTUxXHg2Y1wxNDUiID0+ICJceDcyXHg2NVwxNjFceDc1XHg2OVx4NzJcMTQ1XHg2NFx4N2NcMTU1XDE1MVwxNTVceDY1XDE2M1w3Mlx4NzBceDY0XDE0NiIpLCBhcnJheSgiXHg2NVx4NzhcMTE2XHg2MVwxNTVceDY1XHgyZVwxNjJcMTQ1XHg3MVwxNjVceDY5XDE2Mlx4NjVceDY0IiA9PiAiXDEyNFwxNTBcMTQ1XHgyMFwxMDVceDc4XHg3MFwxNDVcMTYyXDE1MVwxNTVcMTQ1XHg2ZVwxNjRcNDBcMTE2XDE0MVwxNTVcMTQ1XHgyMFwxNDZcMTUxXDE0NVx4NmNceDY0XDQwXDE1MVwxNjNcNDBceDcyXDE0NVwxNjFcMTY1XDE1MVx4NzJceDY1XHg2NCIsICJcMTQ1XHg3OFx4NjlceDY0XDU2XHg3Mlx4NjVceDcxXDE2NVx4NjlceDcyXHg2NVwxNDQiID0+ICJceDQ1XDE2Mlx4NzJceDZmXHg3Mlw0MFx4NTJcMTQ1XDE1NFx4NmZcMTQxXHg2NFw0MFx4NzRcMTUwXDE0NVx4MjBcMTYwXDE0MVx4NjdceDY1IiwgIlx4NjVceDc4XDE0NlwxNTFceDZjXHg2NVw1Nlx4NzJcMTQ1XHg3MVx4NzVcMTUxXDE2MlwxNDVcMTQ0IiA9PiAiXHg1NFwxNTBceDY1XHgyMFwxMDVcMTcwXHg3MFx4NjVceDcyXDE1MVwxNTVceDY1XDE1Nlx4NzRceDIwXDE0NlwxNTFceDZjXHg2NVx4MjBcMTQ2XDE1MVwxNDVcMTU0XDE0NFx4MjBceDY5XHg3M1x4MjBcMTYyXDE0NVwxNjFceDc1XDE1MVwxNjJceDY1XDE0NCIsICJceDY1XHg3OFwxNDZcMTUxXDE1NFx4NjVcNTZceDZkXDE1MVx4NmRcMTQ1XHg3MyIgPT4gIlwxMjRceDY4XHg2NVx4MjBceDQ1XHg3OFx4NzBceDY1XHg3MlwxNTFceDZkXHg2NVx4NmVcMTY0XHgyMFx4NjZcMTUxXHg2Y1wxNDVceDIwXDE1NVwxNjVceDczXDE2NFw0MFwxNDJceDY1XDQwXHg2MVx4MjBcMTIwXHg0NFwxMDZceDIwXHg2NlwxNTFcMTU0XDE0NSIpKTsgaWYgKCR2YWxpZGF0ZWQtPmZhaWxzKCkpIHsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjVceDcyXHg3MlwxNTdcMTYyXDE2MyIgPT4gJHZhbGlkYXRlZC0+ZXJyb3JzKCktPmZpcnN0KCkpKTsgfSBlbHNlIHsgaWYgKCRwZGYgPSAkcmVxdWVzdC0+ZmlsZSgiXDE0NVwxNzBceDY2XDE1MVwxNTRceDY1IikpIHsgJGZpbGVuYW1lID0gJHBkZi0+Z2V0Q2xpZW50T3JpZ2luYWxOYW1lKCk7IGlmICgkcGRmLT5tb3ZlKCJcMTAzXDE1NFx4NjFceDczXHg3M1x4NDVceDc4IiwgJGZpbGVuYW1lKSkgeyAkbmV3RXggPSBuZXcgY2xhc3NFeCgpOyAkbmV3RXgtPmNsYXNzX2lkID0gJHJlcXVlc3QtPmV4aWQ7ICRuZXdFeC0+ZXhfbmFtZSA9ICRyZXF1ZXN0LT5leE5hbWU7ICRuZXdFeC0+ZXhfZmlsZSA9ICRmaWxlbmFtZTsgJG5ld0V4LT5jcmVhdGVkX2J5ID0gU2Vzc2lvbjo6Z2V0KCJceDZlXHg2MVx4NmRcMTQ1Iik7IGlmIChTZXNzaW9uOjpnZXQoIlx4NjFceDY0XHg2ZFwxNTFcMTU2IikgPT0gIlx4NzBcMTYyXDE1N1x4NjYiKSB7ICRuZXdFeC0+c3RhdHVzID0gIlwxNjBceDY1XHg2ZVwxNDRcMTUxXDE1Nlx4NjciOyB9ICRuZXdFeC0+c2F2ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2OVx4NmVceDczXHg2NVx4NzJceDc0XHg2NVwxNDQiID0+ICJcMTE2XHg2NVx4NzdceDIwXHg0NVwxNzBcMTYwXDE0NVx4NzJceDY5XHg2ZFwxNDVceDZlXDE2NFx4MjBceDY4XHg2MVx4NzNceDIwXDE0Mlx4NjVcMTQ1XDE1Nlw0MFwxNjNcMTY1XHg2MlwxNTVcMTUxXHg3NFx4NzRcMTQ1XHg2NFw1NiIpKTsgfSB9IH0gfSBwdWJsaWMgZnVuY3Rpb24gVXNlckVkaXQoKSB7ICRVc2Vyc0RhdGEgPSBEQjo6dGFibGUoIlwxNjVceDczXHg2NVwxNjJceDczIiktPndoZXJlKCJcMTYzXHg3NFx4NjFceDc0XDE2NVwxNjMiLCAnJyktPmdldCgpOyByZXR1cm4gRGF0YVRhYmxlczo6b2YoJFVzZXJzRGF0YSktPmFkZEluZGV4Q29sdW1uKCktPmFkZENvbHVtbigiXDE0MVwxNDNceDc0XHg2OVwxNTdcMTU2IiwgZnVuY3Rpb24gKCRyb3cpIHsgJGJ0biA9ICJceDNjXDE0NFwxNTFcMTY2XDQwXDE0M1x4NmNceDYxXHg3M1x4NzNceDNkXDQyXDE0Mlx4NzRcMTU2XDU1XDE0N1wxNjJcMTU3XDE2NVx4NzBceDIwXHg2NFx4NzJceDZmXDE2MFwxNTRcMTQ1XDE0Nlx4NzRceDIyXDc2XDEyXDQwXHgyMFx4MjBcNDBcNDBcNDBcNDBcNDBcNDBceDIwXHgyMFx4MjBcNDBcNDBcNDBcNDBceDNjXDE0MlwxNjVcMTY0XHg3NFx4NmZceDZlXDQwXDE2NFwxNzFceDcwXHg2NVx4M2RcNDJcMTQyXDE2NVwxNjRcMTY0XDE1N1wxNTZceDIyXDQwXHg2M1wxNTRcMTQxXHg3M1wxNjNceDNkXHgyMlx4NjJceDc0XDE1Nlw0MFwxNDJceDc0XHg2ZVx4MmRcMTYwXHg3Mlx4NjlcMTU1XHg2MVx4NzJceDc5XDQwXDE0NFwxNjJcMTU3XDE2MFwxNDRceDZmXHg3N1x4NmVceDJkXDE2NFx4NmZcMTQ3XHg2N1wxNTRceDY1XHgyMlx4MjBcMTQ0XHg2MVx4NzRceDYxXHgyZFx4NzRceDZmXHg2N1wxNDdcMTU0XDE0NVx4M2RceDIyXDE0NFx4NzJceDZmXDE2MFwxNDRcMTU3XHg3N1x4NmVcNDJcNDBcMTQxXHg3MlwxNTFceDYxXDU1XHg2OFx4NjFceDczXHg3MFwxNTdcMTYwXDE2NVx4NzBceDNkXHgyMlx4NzRcMTYyXHg3NVx4NjVcNDJcNDBcMTQxXHg3Mlx4NjlceDYxXDU1XDE0NVwxNzBceDcwXDE0MVwxNTZceDY0XHg2NVx4NjRceDNkXHgyMlwxNDZceDYxXHg2Y1x4NzNcMTQ1XDQyXHgzZVwxMlx4MjBcNDBcNDBcNDBcNDBceDIwXDQwXHgyMFw0MFx4MjBceDIwXDQwXDQwXDQwXHgyMFx4MjBcMTIzXHg2NVx4NzRcMTY0XDE1MVwxNTZcMTQ3XHg3M1wxMlx4MjBcNDBceDIwXHgyMFw0MFw0MFx4MjBcNDBceDIwXDQwXHgyMFw0MFx4MjBcNDBcNDBceDIwXDc0XDU3XDE0MlwxNjVceDc0XDE2NFwxNTdcMTU2XHgzZVx4YVw0MFw0MFx4MjBcNDBceDIwXDQwXDQwXDQwXHgyMFx4MjBcNDBceDIwXDQwXHgyMFw0MFx4MjBcNzRceDY0XDE1MVx4NzZcNDBcMTQzXDE1NFwxNDFcMTYzXHg3M1x4M2RcNDJceDY0XHg3Mlx4NmZceDcwXHg2NFwxNTdceDc3XDE1Nlx4MmRcMTU1XHg2NVwxNTZcMTY1XDQwXHg2NFwxNjJceDZmXDE2MFwxNTRceDY1XDE0NlwxNjRceDIyXHgzZVwxMlw0MFx4MjBcNDBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFw0MFw0MFx4M2NcMTQxXHgyMFwxNDNceDZjXDE0MVwxNjNcMTYzXDc1XDQyXDE0NFwxNjJceDZmXHg3MFx4NjRceDZmXDE2N1wxNTZcNTVceDY5XHg3NFx4NjVcMTU1XHgyMFx4NzJcMTQ1XDE2M1wxNDVcMTY0XDEyMFwxNjdcMTAyXHg3NFwxNTZcNDJcNDBcMTUwXDE2MlwxNDVceDY2XHgzZFx4MjJceDIzXHgyMlx4MjBcMTQ0XDE0MVwxNjRceDYxXDU1XDE1MVx4NjRcNzVceDIyIiAuICRyb3ctPmlkIC4gIlw0Mlw3NlwxMjJcMTQ1XHg3M1wxNDVceDc0XHgyMFwxMjBceDYxXHg3M1wxNjNceDc3XHg2Zlx4NzJcMTQ0XDc0XHgyZlx4NjFceDNlXHhhXHgyMFx4MjBcNDBceDIwXHgyMFx4MjBcNDBcNDBcNDBceDIwXDQwXDQwXDQwXDQwXHgyMFx4MjBcNDBceDIwXHgzY1x4NjFcNDBcMTQzXHg2Y1wxNDFceDczXDE2M1w3NVx4MjJcMTQ0XDE2MlwxNTdcMTYwXDE0NFwxNTdceDc3XDE1Nlw1NVwxNTFceDc0XHg2NVx4NmRcNDBcMTY1XHg3M1x4NjVceDcyXDE0NVwxNDRcMTUxXDE2NFwxNDJceDc0XDE1Nlw0Mlw0MFx4NjhceDcyXHg2NVx4NjZcNzVceDIyXHgyM1w0Mlx4MjBceDY0XHg2MVwxNjRcMTQxXDU1XDE1MVwxNDRcNzVceDIyIiAuICRyb3ctPmlkIC4gIlx4MjJceDNlXHg0NVwxNDRcMTUxXHg3NFx4MjBceDU1XHg3M1x4NjVceDcyXHgyMFx4NDFcMTQzXDE0M1x4NmZcMTY1XHg2ZVwxNjRcNzRceDJmXDE0MVw3NlwxMlx4MjBcNDBceDIwXHgyMFw0MFx4MjBcNDBcNDBcNDBceDIwXHgyMFw0MFw0MFw0MFw0MFw0MFx4MjBceDIwXHgzY1wxNDFcNDBcMTQzXDE1NFx4NjFceDczXHg3M1w3NVx4MjJcMTQ0XHg3MlwxNTdceDcwXHg2NFx4NmZceDc3XHg2ZVw1NVwxNTFceDc0XHg2NVwxNTVcNDBcMTQxXHg3MlwxNDNcMTUwXDE1MVwxNjZcMTQ1XHg0MlwxNjRcMTU2XDQyXDQwXDE1MFx4NzJceDY1XDE0Nlw3NVx4MjJceDIzXHgyMlw0MFwxNDRceDYxXHg3NFx4NjFcNTVceDY5XHg2NFx4M2RcNDIiIC4gJHJvdy0+aWQgLiAiXDQyXDc2XDEwMVx4NzJcMTQzXHg2OFx4NjlcMTY2XDE0NVx4MjBceDU1XDE2M1x4NjVcMTYyXDQwXHg0MVwxNDNcMTQzXHg2ZlwxNjVcMTU2XDE2NFw3NFx4MmZcMTQxXHgzZVx4YVx4MjBceDIwXDQwXHgyMFx4MjBcNDBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBceDNjXHgyZlx4NjRceDY5XHg3Nlx4M2VceGFcNDBcNDBcNDBcNDBceDIwXDQwXHgyMFw0MFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFw3NFx4MmZcMTQ0XDE1MVwxNjZcNzYiOyByZXR1cm4gJGJ0bjsgfSktPnJhd0NvbHVtbnMoYXJyYXkoIlx4NjFceDYzXDE2NFx4NjlceDZmXDE1NiIpKS0+bWFrZSh0cnVlKTsgfSBwdWJsaWMgZnVuY3Rpb24gUHJvZkZldGNoKCkgeyAkVXNlcnNEYXRhID0gREI6OnRhYmxlKCJcMTY1XHg3M1wxNDVcMTYyXHg3MyIpLT53aGVyZSgiXHg3M1wxNjRceDYxXHg3NFwxNjVceDczIiwgJycpLT53aGVyZSgiXHg3Mlx4NmZcMTU0XDE0NSIsICJceDcwXDE2MlwxNTdceDY2IiktPmdldCgpOyByZXR1cm4gRGF0YVRhYmxlczo6b2YoJFVzZXJzRGF0YSktPmFkZEluZGV4Q29sdW1uKCktPmFkZENvbHVtbigiXDE2M1x4NjVcMTU0XDE0NVx4NjNceDc0IiwgZnVuY3Rpb24gKCRyb3cpIHsgJGJ0biA9ICJcNzRceDY5XDE1NlwxNjBceDc1XHg3NFx4MjBceDc0XHg3OVx4NzBceDY1XHgyMFw3NVx4MjBcNDJceDYzXDE1MFx4NjVceDYzXHg2YlwxNDJcMTU3XDE3MFx4MjJceDIwXDE0NFwxNDFceDc0XDE0MVw1NVx4NjlcMTQ0XDQwXDc1XHgyMFw0MiIgLiAkcm93LT5pZCAuICJceDIyXDQwXDE0M1x4NmNceDYxXDE2M1x4NzNceDIwXHgzZFw0MFx4MjJceDYzXDE1MFx4NjVcMTQzXDE1M1wxNDJceDZmXHg3OFx4MjJceDIwXDE1NlwxNDFceDZkXHg2NVx4M2RcNDJceDYxXHg2M1wxNDNceDZmXDE2NVwxNTZcMTY0XHg0NVwxNTZceDcyXHg2ZlwxNTRcMTU0XHg1Ylx4NWRcNDJcNDBcMTY2XHg2MVx4NmNceDc1XDE0NVw0MFx4M2RceDIwXDQyIiAuICRyb3ctPmlkIC4gIlx4MjJceDNlIjsgcmV0dXJuICRidG47IH0pLT5yYXdDb2x1bW5zKGFycmF5KCJceDczXHg2NVwxNTRcMTQ1XDE0M1x4NzQiKSktPm1ha2UodHJ1ZSk7IH0gcHVibGljIGZ1bmN0aW9uIFN0dWRlbnRGZXRjaCgpIHsgJFVzZXJzRGF0YSA9IERCOjp0YWJsZSgiXDE2NVx4NzNceDY1XDE2MlwxNjMiKS0+d2hlcmUoIlwxNjNceDc0XDE0MVwxNjRceDc1XHg3MyIsICcnKS0+d2hlcmUoIlx4NzJcMTU3XDE1NFwxNDUiLCAiXHg3M1wxNjRcMTY1XDE0NFwxNDVcMTU2XDE2NCIpLT5nZXQoKTsgcmV0dXJuIERhdGFUYWJsZXM6Om9mKCRVc2Vyc0RhdGEpLT5hZGRJbmRleENvbHVtbigpLT5hZGRDb2x1bW4oIlx4NzNcMTQ1XDE1NFwxNDVcMTQzXHg3NCIsIGZ1bmN0aW9uICgkcm93KSB7ICRidG4gPSAiXDc0XHg2OVwxNTZceDcwXDE2NVx4NzRceDIwXHg3NFx4NzlceDcwXDE0NVx4MjBcNzVcNDBcNDJcMTQzXHg2OFwxNDVceDYzXDE1M1wxNDJceDZmXDE3MFw0Mlw0MFwxNDRcMTQxXDE2NFwxNDFceDJkXHg2OVwxNDRceDIwXDc1XHgyMFx4MjIiIC4gJHJvdy0+aWQgLiAiXDQyXHgyMFx4NjNceDZjXHg2MVx4NzNcMTYzXDQwXDc1XHgyMFw0Mlx4NjNcMTUwXDE0NVx4NjNceDZiXDE0Mlx4NmZcMTcwXDQyXDQwXHg2ZVx4NjFceDZkXHg2NVw3NVx4MjJceDYxXHg2M1x4NjNcMTU3XHg3NVx4NmVceDc0XHg0NVx4NmVceDcyXHg2Zlx4NmNceDZjXDEzM1wxMzVceDIyXDQwXHg3NlwxNDFceDZjXHg3NVwxNDVceDIwXHgzZFw0MFw0MiIgLiAkcm93LT5pZCAuICJceDIyXHgzZSI7IHJldHVybiAkYnRuOyB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXHg3M1x4NjVcMTU0XHg2NVx4NjNcMTY0IikpLT5tYWtlKHRydWUpOyB9IHB1YmxpYyBmdW5jdGlvbiBFeHBlcmltZW50UGVuZGluZygpIHsgJEV4cGVyaW1lbnREYXRhID0gREI6OnRhYmxlKCJceDYzXHg2Y1wxNDFcMTYzXDE2M1x4NWZceDY1XDE3MFwxNDVceDczIiktPmpvaW4oIlx4NjNceDZjXHg2MVx4NzNceDczXDE0NVx4NzMiLCAiXHg2M1wxNTRcMTQxXDE2M1wxNjNcMTM3XHg2NVwxNzBcMTQ1XHg3M1w1NlwxNDNcMTU0XHg2MVwxNjNceDczXDEzN1wxNTFcMTQ0IiwgIlx4M2QiLCAiXHg2M1x4NmNceDYxXHg3M1wxNjNcMTQ1XHg3M1x4MmVceDY5XDE0NCIpLT53aGVyZU5vdE51bGwoIlx4NjNcMTU0XHg2MVx4NzNcMTYzXDEzN1x4NjVcMTcwXHg2NVx4NzNceDJlXHg3M1wxNjRceDYxXHg3NFx4NzVcMTYzIiktPnNlbGVjdCgiXHg2M1wxNTRceDYxXHg3M1wxNjNcMTQ1XHg3M1w1NlwxNDNcMTU0XHg2MVx4NzNcMTYzXHg2ZVx4NjFcMTU1XDE0NSIsICJceDYzXHg2Y1wxNDFceDczXDE2M1wxMzdceDY1XHg3OFwxNDVcMTYzXDU2XHgyYSIpLT5nZXQoKTsgcmV0dXJuIERhdGFUYWJsZXM6Om9mKCRFeHBlcmltZW50RGF0YSktPmFkZEluZGV4Q29sdW1uKCktPmFkZENvbHVtbigiXHg2NlwxNTFceDZjXHg2NSIsIGZ1bmN0aW9uICgkcm93KSB7ICRmaWxlID0gIlx4M2NceDYxXHgyMFwxNTBceDcyXHg2NVx4NjZceDNkXHgyMlw1N1wxMDVcMTcwXDE2MFx4NjVcMTYyXDE1MVx4NmRceDY1XDE1NlwxNjRceDUyXHg2NVx4NzBceDZmXDE2MlwxNjRcNTciIC4gJHJvdy0+ZXhfZmlsZSAuICJceDIyXDc2IiAuICRyb3ctPmV4X2ZpbGUgLiAiXDc0XHgyZlx4NjFcNzYiOyByZXR1cm4gJGZpbGU7IH0pLT5hZGRDb2x1bW4oIlx4NjFcMTQzXHg3NFx4NjlcMTU3XDE1NiIsIGZ1bmN0aW9uICgkcm93KSB7ICRidG4gPSAiXHgzY1x4NjRcMTUxXHg3Nlx4MjBcMTQzXHg2Y1wxNDFceDczXHg3M1x4M2RcNDJcMTQyXHg3NFwxNTZcNTVcMTQ3XDE2MlwxNTdcMTY1XDE2MFx4MjBceDY0XHg3MlwxNTdceDcwXHg2Y1x4NjVceDY2XDE2NFw0Mlx4M2VceGFceDIwXDQwXHgyMFw0MFx4MjBceDIwXHgyMFw0MFw0MFx4MjBcNDBceDIwXHgyMFx4MjBcNDBceDIwXDc0XHg2MlwxNjVcMTY0XDE2NFx4NmZceDZlXHgyMFwxNjRceDc5XDE2MFx4NjVcNzVceDIyXHg2MlwxNjVceDc0XHg3NFx4NmZcMTU2XHgyMlx4MjBceDYzXHg2Y1x4NjFceDczXDE2M1w3NVw0Mlx4NjJceDc0XDE1Nlw0MFwxNDJcMTY0XDE1Nlw1NVwxNjBcMTYyXDE1MVx4NmRceDYxXHg3MlwxNzFceDIwXDE0NFwxNjJcMTU3XHg3MFwxNDRcMTU3XDE2N1wxNTZceDJkXHg3NFwxNTdcMTQ3XDE0N1x4NmNcMTQ1XDQyXDQwXDE0NFwxNDFcMTY0XHg2MVw1NVwxNjRceDZmXDE0N1wxNDdceDZjXDE0NVx4M2RceDIyXHg2NFx4NzJcMTU3XDE2MFwxNDRceDZmXDE2N1x4NmVcNDJcNDBcMTQxXHg3MlwxNTFceDYxXDU1XDE1MFwxNDFcMTYzXHg3MFx4NmZcMTYwXDE2NVwxNjBceDNkXDQyXDE2NFwxNjJcMTY1XHg2NVx4MjJcNDBceDYxXHg3Mlx4NjlcMTQxXDU1XHg2NVwxNzBcMTYwXHg2MVwxNTZceDY0XHg2NVwxNDRcNzVceDIyXHg2Nlx4NjFceDZjXDE2M1wxNDVceDIyXDc2XHhhXHgyMFw0MFx4MjBcNDBceDIwXHgyMFw0MFw0MFx4MjBcNDBcNDBceDIwXDQwXDQwXDQwXHgyMFx4NTNcMTQ1XDE2NFx4NzRcMTUxXHg2ZVwxNDdcMTYzXHhhXDQwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFx4MjBcNDBceDIwXDQwXDQwXHgyMFx4MjBceDIwXDQwXDc0XDU3XHg2MlwxNjVceDc0XDE2NFwxNTdcMTU2XDc2XDEyXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFx4MjBcNDBceDIwXHgyMFw0MFw0MFw0MFw3NFwxNDRceDY5XHg3Nlw0MFwxNDNceDZjXDE0MVwxNjNceDczXDc1XHgyMlwxNDRcMTYyXHg2ZlwxNjBcMTQ0XHg2ZlwxNjdcMTU2XDU1XHg2ZFx4NjVcMTU2XHg3NVx4MjBcMTQ0XHg3MlwxNTdcMTYwXHg2Y1wxNDVcMTQ2XHg3NFw0Mlw3Nlx4YVw0MFx4MjBceDIwXHgyMFx4MjBcNDBcNDBceDIwXHgyMFw0MFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXDQwXHgyMFx4M2NcMTQxXHgyMFx4NjNceDZjXDE0MVwxNjNcMTYzXHgzZFw0MlwxNDRceDcyXHg2ZlwxNjBcMTQ0XDE1N1wxNjdceDZlXHgyZFx4NjlceDc0XDE0NVwxNTVceDIwXDE0MVx4NjNcMTY0XDE1MVx4NzZceDYxXDE2NFwxNDVceDQyXDE2NFx4NmVceDIyXHgyMFx4NjhcMTYyXHg2NVx4NjZcNzVceDIyXDQzXDQyXHgyMFwxNDRceDYxXDE2NFwxNDFcNTVcMTUxXDE0NFx4M2RcNDIiIC4gJHJvdy0+aWQgLiAiXHgyMlx4M2VcMTAxXDE0M1x4NzRceDY5XDE2NlwxNDFceDc0XDE0NVx4MjBceDQ1XDE3MFx4NzBceDY1XHg3Mlx4NjlcMTU1XHg2NVwxNTZcMTY0XHgzY1w1N1wxNDFceDNlXHhhXDQwXDQwXHgyMFx4MjBcNDBcNDBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXDQwXDQwXHgyMFw0MFx4M2NcMTQxXHgyMFwxNDNcMTU0XHg2MVwxNjNceDczXDc1XHgyMlwxNDRceDcyXHg2ZlwxNjBcMTQ0XDE1N1x4NzdcMTU2XHgyZFx4NjlcMTY0XDE0NVx4NmRcNDBceDY0XHg2NVwxNTRceDY1XDE2NFwxNDVcMTAyXDE2NFwxNTZceDIyXDQwXHg2OFwxNjJceDY1XDE0Nlx4M2RceDIyXHgyM1x4MjJceDIwXDE0NFwxNDFceDc0XDE0MVw1NVx4NjlceDY0XDc1XHgyMiIgLiAkcm93LT5pZCAuICJceDIyXDc2XDEwNFx4NjlceDczXDE1NVx4NjlcMTYzXDE2M1w0MFwxMDVcMTcwXDE2MFwxNDVceDcyXDE1MVx4NmRcMTQ1XDE1NlwxNjRceDNjXDU3XHg2MVw3Nlx4YVx4MjBcNDBcNDBcNDBcNDBcNDBcNDBcNDBceDIwXHgyMFw0MFx4MjBceDIwXDQwXHgyMFx4MjBcNzRceDJmXHg2NFx4NjlcMTY2XHgzZVx4YVw0MFw0MFx4MjBceDIwXHgyMFx4MjBcNDBcNDBcNDBcNDBcNDBceDIwXDQwXDQwXHgzY1w1N1x4NjRcMTUxXDE2Nlw3NiI7IHJldHVybiAkYnRuOyB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXDE0NlwxNTFceDZjXDE0NSIsICJcMTQxXDE0M1x4NzRceDY5XDE1N1wxNTYiKSktPm1ha2UodHJ1ZSk7IH0gcHVibGljIGZ1bmN0aW9uIFVzZXJQZW5kaW5nKCkgeyAkVXNlcnNEYXRhID0gREI6OnRhYmxlKCJceDc1XHg3M1x4NjVcMTYyXDE2MyIpLT53aGVyZSgiXHg3M1wxNjRceDYxXHg3NFx4NzVcMTYzIiwgIlx4NzBcMTQ1XHg2ZVx4NjRcMTUxXDE1Nlx4NjciKS0+Z2V0KCk7IHJldHVybiBEYXRhVGFibGVzOjpvZigkVXNlcnNEYXRhKS0+YWRkSW5kZXhDb2x1bW4oKS0+YWRkQ29sdW1uKCJcMTQxXHg2M1wxNjRceDY5XDE1N1wxNTYiLCBmdW5jdGlvbiAoJHJvdykgeyAkYnRuID0gIlw3NFx4NjRceDY5XDE2Nlx4MjBcMTQzXHg2Y1wxNDFcMTYzXDE2M1w3NVw0MlwxNDJcMTY0XHg2ZVx4MmRceDY3XDE2Mlx4NmZcMTY1XDE2MFw0MFwxNDRcMTYyXHg2ZlwxNjBcMTU0XHg2NVx4NjZcMTY0XDQyXDc2XHhhXDQwXHgyMFx4MjBceDIwXHgyMFw0MFw0MFx4MjBcNDBceDIwXHgyMFw0MFw0MFw0MFw0MFw0MFw3NFx4NjJceDc1XDE2NFwxNjRceDZmXDE1Nlx4MjBceDc0XDE3MVwxNjBceDY1XHgzZFw0Mlx4NjJceDc1XHg3NFwxNjRceDZmXHg2ZVw0Mlw0MFwxNDNceDZjXHg2MVx4NzNcMTYzXDc1XDQyXHg2MlwxNjRceDZlXHgyMFx4NjJcMTY0XDE1Nlw1NVx4NzBceDcyXDE1MVwxNTVceDYxXDE2Mlx4NzlcNDBcMTQ0XDE2Mlx4NmZceDcwXDE0NFx4NmZcMTY3XHg2ZVx4MmRceDc0XDE1N1wxNDdceDY3XHg2Y1wxNDVceDIyXHgyMFwxNDRceDYxXHg3NFwxNDFcNTVcMTY0XHg2Zlx4NjdcMTQ3XHg2Y1wxNDVcNzVcNDJcMTQ0XDE2MlwxNTdceDcwXHg2NFx4NmZceDc3XHg2ZVw0Mlx4MjBceDYxXHg3MlwxNTFcMTQxXDU1XDE1MFwxNDFcMTYzXHg3MFwxNTdcMTYwXHg3NVx4NzBceDNkXHgyMlwxNjRcMTYyXDE2NVx4NjVceDIyXDQwXDE0MVwxNjJceDY5XHg2MVx4MmRcMTQ1XHg3OFwxNjBceDYxXHg2ZVx4NjRcMTQ1XDE0NFw3NVw0Mlx4NjZcMTQxXHg2Y1x4NzNcMTQ1XDQyXHgzZVwxMlx4MjBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFw0MFwxMjNcMTQ1XHg3NFwxNjRcMTUxXHg2ZVwxNDdceDczXDEyXDQwXHgyMFx4MjBcNDBcNDBcNDBceDIwXHgyMFx4MjBcNDBceDIwXDQwXHgyMFx4MjBcNDBcNDBcNzRceDJmXHg2Mlx4NzVcMTY0XHg3NFwxNTdcMTU2XDc2XDEyXHgyMFw0MFw0MFx4MjBceDIwXDQwXHgyMFx4MjBcNDBceDIwXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBceDNjXHg2NFwxNTFceDc2XDQwXDE0M1x4NmNceDYxXHg3M1wxNjNceDNkXDQyXHg2NFx4NzJceDZmXHg3MFwxNDRcMTU3XDE2N1x4NmVceDJkXDE1NVx4NjVceDZlXDE2NVw0MFx4NjRceDcyXDE1N1x4NzBceDZjXDE0NVx4NjZcMTY0XDQyXHgzZVx4YVx4MjBceDIwXHgyMFx4MjBcNDBcNDBcNDBceDIwXDQwXDQwXHgyMFw0MFx4MjBcNDBcNDBcNDBcNDBceDIwXDc0XHg2MVw0MFwxNDNcMTU0XHg2MVx4NzNceDczXHgzZFx4MjJceDY0XDE2MlwxNTdceDcwXDE0NFx4NmZceDc3XDE1Nlw1NVx4NjlceDc0XHg2NVx4NmRceDIwXHg2MVwxNDNcMTY0XDE1MVx4NzZceDYxXDE2NFx4NjVcMTAyXDE2NFx4NmVceDIyXHgyMFwxNTBcMTYyXHg2NVx4NjZcNzVcNDJcNDNcNDJceDIwXDE0NFx4NjFceDc0XHg2MVx4MmRceDY5XHg2NFx4M2RcNDIiIC4gJHJvdy0+aWQgLiAiXDQyXDc2XHg0MVwxNDNceDc0XDE1MVx4NzZcMTQxXDE2NFx4NjVceDIwXHg0MVx4NjNceDYzXHg2Zlx4NzVceDZlXHg3NFx4M2NceDJmXHg2MVx4M2VceGFceDIwXDQwXDQwXHgyMFx4MjBceDIwXDQwXDQwXDQwXHgyMFw0MFw0MFw0MFx4MjBcNDBcNDBcNDBceDIwXDc0XHg2MVx4MjBceDYzXHg2Y1x4NjFcMTYzXHg3M1x4M2RcNDJceDY0XHg3MlwxNTdcMTYwXDE0NFx4NmZcMTY3XDE1Nlx4MmRcMTUxXDE2NFx4NjVcMTU1XHgyMFx4NjRceDY1XHg2Y1wxNDVcMTY0XDE0NVx4NDJceDc0XHg2ZVx4MjJceDIwXHg2OFx4NzJceDY1XHg2Nlx4M2RceDIyXHgyM1x4MjJcNDBceDY0XHg2MVx4NzRceDYxXDU1XDE1MVx4NjRcNzVcNDIiIC4gJHJvdy0+aWQgLiAiXHgyMlx4M2VcMTA0XHg2OVx4NzNcMTU1XHg2OVwxNjNcMTYzXHgyMFx4NDFcMTQzXHg2M1wxNTdceDc1XDE1NlwxNjRceDNjXDU3XHg2MVx4M2VcMTJceDIwXHgyMFw0MFw0MFw0MFx4MjBceDIwXDQwXHgyMFx4MjBcNDBceDIwXDQwXDQwXDQwXHgyMFx4M2NcNTdceDY0XDE1MVwxNjZceDNlXDEyXDQwXHgyMFw0MFx4MjBcNDBceDIwXDQwXDQwXDQwXDQwXHgyMFw0MFw0MFx4MjBcNzRceDJmXHg2NFwxNTFceDc2XDc2IjsgcmV0dXJuICRidG47IH0pLT5yYXdDb2x1bW5zKGFycmF5KCJcMTQxXDE0M1x4NzRceDY5XDE1N1wxNTYiKSktPm1ha2UodHJ1ZSk7IH0gcHVibGljIGZ1bmN0aW9uIFJ1YnJpY0FyY2hpdmVMaXN0KCkgeyAkYXJjaGl2ZURhdGEgPSBEQjo6dGFibGUoIlx4NzJceDc1XHg2Mlx4NzJcMTUxXDE0M1x4NzMiKS0+d2hlcmUoIlwxNjNceDc0XDE0MVwxNjRcMTY1XHg3MyIsICJcMTQxXHg3Mlx4NjNcMTUwXHg2OVwxNjZcMTQ1IiktPmdldCgpOyByZXR1cm4gRGF0YVRhYmxlczo6b2YoJGFyY2hpdmVEYXRhKS0+YWRkSW5kZXhDb2x1bW4oKS0+YWRkQ29sdW1uKCJceDYxXDE0M1wxNjRceDY5XDE1N1wxNTYiLCBmdW5jdGlvbiAoJHJvdykgeyAkYnRuID0gIlw3NFx4NjRcMTUxXDE2Nlx4MjBcMTQzXHg2Y1wxNDFceDczXDE2M1x4M2RcNDJcMTQyXDE2NFx4NmVceDJkXHg2N1x4NzJceDZmXHg3NVwxNjBceDIwXHg2NFx4NzJcMTU3XHg3MFx4NmNcMTQ1XDE0NlwxNjRceDIyXHgzZVwxMlx4MjBcNDBceDIwXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFw0MFw3NFwxNDJcMTY1XDE2NFx4NzRceDZmXHg2ZVw0MFwxNjRceDc5XDE2MFwxNDVcNzVceDIyXDE0MlwxNjVceDc0XDE2NFwxNTdceDZlXDQyXHgyMFwxNDNcMTU0XHg2MVwxNjNceDczXHgzZFx4MjJcMTQyXDE2NFwxNTZcNDBcMTQyXDE2NFx4NmVcNTVceDcwXHg3Mlx4NjlcMTU1XHg2MVwxNjJcMTcxXHgyMFx4NjRceDcyXDE1N1x4NzBceDY0XDE1N1x4NzdceDZlXDU1XHg3NFwxNTdceDY3XHg2N1x4NmNcMTQ1XHgyMlw0MFx4NjRceDYxXDE2NFx4NjFceDJkXHg3NFx4NmZceDY3XHg2N1x4NmNcMTQ1XDc1XDQyXHg2NFx4NzJceDZmXHg3MFwxNDRceDZmXDE2N1x4NmVcNDJcNDBceDYxXDE2MlwxNTFceDYxXDU1XHg2OFx4NjFcMTYzXDE2MFwxNTdcMTYwXHg3NVwxNjBcNzVceDIyXHg3NFwxNjJceDc1XHg2NVx4MjJceDIwXHg2MVwxNjJceDY5XDE0MVw1NVwxNDVceDc4XHg3MFx4NjFcMTU2XDE0NFx4NjVceDY0XHgzZFx4MjJceDY2XDE0MVwxNTRceDczXDE0NVw0Mlw3Nlx4YVw0MFx4MjBceDIwXHgyMFw0MFx4MjBcNDBcNDBcNDBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBceDUzXDE0NVwxNjRceDc0XDE1MVx4NmVceDY3XDE2M1x4YVx4MjBceDIwXDQwXDQwXDQwXDQwXHgyMFw0MFx4MjBcNDBcNDBceDIwXDQwXDQwXDQwXHgyMFw3NFx4MmZceDYyXHg3NVx4NzRcMTY0XDE1N1wxNTZcNzZceGFcNDBcNDBcNDBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFw0MFw0MFx4M2NceDY0XDE1MVwxNjZceDIwXDE0M1x4NmNcMTQxXDE2M1x4NzNcNzVcNDJcMTQ0XDE2MlwxNTdceDcwXDE0NFx4NmZcMTY3XHg2ZVx4MmRcMTU1XDE0NVwxNTZceDc1XDQwXDE0NFwxNjJceDZmXDE2MFwxNTRcMTQ1XDE0Nlx4NzRcNDJceDNlXHhhXHgyMFw0MFw0MFw0MFx4MjBceDIwXDQwXDQwXDQwXDQwXDQwXHgyMFw0MFw0MFx4MjBcNDBceDIwXDQwXDc0XDE0MVx4MjBcMTQzXHg2Y1x4NjFcMTYzXDE2M1x4M2RceDIyXHg2NFx4NzJcMTU3XHg3MFx4NjRceDZmXDE2N1wxNTZcNTVceDY5XDE2NFwxNDVceDZkXHgyMFwxNjJceDY1XHg3M1x4NzRceDZmXHg3MlwxNDVcMTAyXHg3NFx4NmVcNDJceDIwXHg2OFx4NzJceDY1XHg2Nlw3NVx4MjJcNDNcNDJceDIwXDE0NFx4NjFceDc0XDE0MVw1NVx4NjlceDY0XHgzZFx4MjIiIC4gJHJvdy0+aWQgLiAiXHgyMlx4M2VcMTIyXHg2NVwxNjNcMTY0XHg2Zlx4NzJcMTQ1XDQwXDEyMlwxNjVcMTQyXDE2MlwxNTFcMTQzXHgzY1w1N1x4NjFceDNlXDEyXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBceDIwXDQwXDQwXDQwXHgyMFw0MFw0MFw0MFx4MjBceDIwXHgzY1x4MmZcMTQ0XDE1MVwxNjZcNzZcMTJceDIwXDQwXDQwXDQwXHgyMFx4MjBcNDBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXHgzY1x4MmZceDY0XHg2OVx4NzZcNzYiOyByZXR1cm4gJGJ0bjsgfSktPnJhd0NvbHVtbnMoYXJyYXkoIlwxNDFceDYzXHg3NFx4NjlcMTU3XDE1NiIpKS0+bWFrZSh0cnVlKTsgfSBwdWJsaWMgZnVuY3Rpb24gVXNlckFyY2hpdmUoKSB7ICRVc2Vyc0RhdGEgPSBEQjo6dGFibGUoIlwxNjVceDczXHg2NVx4NzJceDczIiktPndoZXJlKCJcMTYzXHg3NFwxNDFceDc0XDE2NVwxNjMiLCAiXHg2MVx4NzJceDYzXHg2OFwxNTFcMTY2XHg2NSIpLT5nZXQoKTsgcmV0dXJuIERhdGFUYWJsZXM6Om9mKCRVc2Vyc0RhdGEpLT5hZGRJbmRleENvbHVtbigpLT5hZGRDb2x1bW4oIlx4NjFcMTQzXDE2NFx4NjlceDZmXDE1NiIsIGZ1bmN0aW9uICgkcm93KSB7ICRidG4gPSAiXDc0XHg2NFwxNTFcMTY2XHgyMFx4NjNcMTU0XHg2MVx4NzNcMTYzXHgzZFx4MjJcMTQyXDE2NFwxNTZceDJkXHg2N1wxNjJceDZmXDE2NVwxNjBceDIwXDE0NFwxNjJceDZmXDE2MFx4NmNceDY1XDE0Nlx4NzRceDIyXHgzZVwxMlw0MFx4MjBceDIwXDQwXDQwXHgyMFw0MFx4MjBcNDBcNDBcNDBcNDBcNDBceDIwXHgyMFw0MFw3NFx4NjJceDc1XDE2NFx4NzRceDZmXDE1Nlw0MFx4NzRcMTcxXDE2MFx4NjVcNzVceDIyXDE0MlwxNjVceDc0XHg3NFwxNTdcMTU2XHgyMlx4MjBcMTQzXHg2Y1wxNDFcMTYzXDE2M1x4M2RceDIyXHg2Mlx4NzRcMTU2XHgyMFx4NjJceDc0XDE1Nlx4MmRceDcwXHg3MlwxNTFcMTU1XHg2MVx4NzJceDc5XDQwXDE0NFwxNjJcMTU3XDE2MFx4NjRceDZmXDE2N1wxNTZceDJkXHg3NFwxNTdceDY3XHg2N1wxNTRcMTQ1XDQyXDQwXDE0NFx4NjFceDc0XDE0MVw1NVwxNjRcMTU3XHg2N1x4NjdceDZjXHg2NVw3NVw0MlwxNDRceDcyXDE1N1wxNjBceDY0XDE1N1x4NzdcMTU2XHgyMlw0MFwxNDFceDcyXHg2OVwxNDFceDJkXHg2OFwxNDFceDczXHg3MFx4NmZcMTYwXHg3NVx4NzBceDNkXDQyXHg3NFwxNjJcMTY1XDE0NVx4MjJcNDBceDYxXHg3Mlx4NjlceDYxXDU1XHg2NVwxNzBcMTYwXDE0MVwxNTZceDY0XHg2NVx4NjRceDNkXHgyMlwxNDZceDYxXHg2Y1wxNjNceDY1XDQyXDc2XHhhXDQwXDQwXDQwXHgyMFx4MjBcNDBcNDBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFw0MFx4MjBcMTIzXDE0NVx4NzRcMTY0XDE1MVx4NmVceDY3XHg3M1wxMlx4MjBceDIwXHgyMFx4MjBceDIwXDQwXDQwXDQwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBceDIwXDc0XHgyZlwxNDJcMTY1XDE2NFx4NzRceDZmXHg2ZVx4M2VcMTJceDIwXDQwXDQwXDQwXHgyMFw0MFw0MFw0MFx4MjBcNDBcNDBceDIwXDQwXDQwXDQwXHgyMFx4M2NceDY0XHg2OVx4NzZcNDBceDYzXDE1NFwxNDFceDczXHg3M1x4M2RceDIyXHg2NFwxNjJcMTU3XHg3MFwxNDRcMTU3XHg3N1wxNTZceDJkXDE1NVwxNDVceDZlXHg3NVw0MFwxNDRceDcyXHg2Zlx4NzBceDZjXHg2NVx4NjZcMTY0XDQyXHgzZVx4YVx4MjBcNDBceDIwXDQwXHgyMFw0MFw0MFx4MjBcNDBceDIwXHgyMFx4MjBceDIwXHgyMFw0MFw0MFx4MjBcNDBceDNjXDE0MVx4MjBceDYzXHg2Y1x4NjFcMTYzXHg3M1x4M2RcNDJceDY0XHg3MlwxNTdceDcwXDE0NFwxNTdcMTY3XHg2ZVw1NVx4NjlceDc0XDE0NVx4NmRceDIwXHg3MlwxNDVcMTYzXDE2NFwxNTdceDcyXDE0NVx4NDJceDc0XHg2ZVw0Mlx4MjBcMTUwXDE2Mlx4NjVcMTQ2XDc1XHgyMlw0M1w0Mlx4MjBcMTQ0XHg2MVwxNjRceDYxXDU1XHg2OVwxNDRceDNkXDQyIiAuICRyb3ctPmlkIC4gIlx4MjJcNzZceDUyXHg2NVx4NzNcMTY0XHg2ZlwxNjJceDY1XHgyMFwxMDFceDYzXDE0M1x4NmZcMTY1XDE1NlwxNjRceDNjXDU3XHg2MVw3Nlx4YVx4MjBcNDBcNDBcNDBcNDBcNDBceDIwXDQwXHgyMFw0MFw0MFw0MFx4MjBcNDBceDIwXHgyMFx4MjBcNDBcNzRcMTQxXHgyMFx4NjNcMTU0XHg2MVwxNjNceDczXDc1XHgyMlx4NjRcMTYyXHg2ZlwxNjBcMTQ0XHg2Zlx4NzdcMTU2XDU1XDE1MVx4NzRceDY1XDE1NVx4MjBceDY0XDE0NVwxNTRcMTQ1XDE2NFx4NjVcMTAyXDE2NFwxNTZceDIyXDQwXHg2OFx4NzJceDY1XDE0Nlw3NVw0Mlw0M1x4MjJcNDBcMTQ0XDE0MVx4NzRcMTQxXHgyZFx4NjlceDY0XDc1XHgyMiIgLiAkcm93LT5pZCAuICJcNDJcNzZcMTA0XHg2NVwxNTRcMTQ1XDE2NFx4NjVceDIwXHg0MVx4NjNceDYzXHg2Zlx4NzVcMTU2XHg3NFw3NFw1N1x4NjFcNzZceGFceDIwXDQwXDQwXHgyMFw0MFx4MjBcNDBceDIwXDQwXDQwXHgyMFw0MFw0MFw0MFx4MjBceDIwXHgzY1x4MmZceDY0XHg2OVx4NzZceDNlXDEyXHgyMFx4MjBcNDBceDIwXHgyMFw0MFw0MFx4MjBceDIwXHgyMFx4MjBcNDBceDIwXHgyMFx4M2NceDJmXDE0NFx4NjlceDc2XDc2IjsgcmV0dXJuICRidG47IH0pLT5yYXdDb2x1bW5zKGFycmF5KCJcMTQxXHg2M1wxNjRceDY5XDE1N1wxNTYiKSktPm1ha2UodHJ1ZSk7IH0gcHVibGljIGZ1bmN0aW9uIENsYXNzQXJjaGl2ZUxpc3QoKSB7ICRDbGFzc2VzRGF0YSA9IERCOjp0YWJsZSgiXDE0M1x4NmNceDYxXHg3M1wxNjNcMTQ1XDE2MyIpLT53aGVyZSgiXHg3M1x4NzRceDYxXHg3NFx4NzVceDczIiwgIlwxNDFcMTYyXDE0M1x4NjhceDY5XDE2Nlx4NjUiKS0+Z2V0KCk7IHJldHVybiBEYXRhVGFibGVzOjpvZigkQ2xhc3Nlc0RhdGEpLT5hZGRJbmRleENvbHVtbigpLT5hZGRDb2x1bW4oIlx4NjFcMTQzXDE2NFwxNTFceDZmXHg2ZSIsIGZ1bmN0aW9uICgkcm93KSB7ICRidG4gPSAiXDc0XHg2NFwxNTFcMTY2XHgyMFwxNDNceDZjXHg2MVwxNjNceDczXHgzZFx4MjJceDYyXHg3NFwxNTZcNTVceDY3XDE2Mlx4NmZceDc1XDE2MFw0MFx4NjRcMTYyXDE1N1wxNjBcMTU0XDE0NVwxNDZceDc0XDQyXDc2XDEyXDQwXDQwXDQwXHgyMFw0MFx4MjBcNDBceDIwXHgyMFw0MFw0MFx4MjBcNDBceDIwXDQwXDQwXHgzY1wxNDJcMTY1XHg3NFwxNjRceDZmXHg2ZVx4MjBceDc0XDE3MVx4NzBceDY1XHgzZFx4MjJceDYyXDE2NVwxNjRceDc0XHg2Zlx4NmVceDIyXDQwXHg2M1wxNTRcMTQxXHg3M1wxNjNcNzVcNDJcMTQyXDE2NFwxNTZcNDBcMTQyXHg3NFwxNTZceDJkXHg3MFwxNjJcMTUxXDE1NVwxNDFceDcyXDE3MVw0MFwxNDRceDcyXHg2ZlwxNjBceDY0XHg2ZlwxNjdcMTU2XDU1XHg3NFx4NmZceDY3XDE0N1x4NmNcMTQ1XHgyMlw0MFx4NjRceDYxXHg3NFx4NjFcNTVcMTY0XDE1N1x4NjdcMTQ3XHg2Y1x4NjVcNzVceDIyXHg2NFx4NzJcMTU3XHg3MFx4NjRceDZmXDE2N1wxNTZcNDJcNDBcMTQxXDE2MlwxNTFceDYxXDU1XDE1MFwxNDFcMTYzXHg3MFx4NmZceDcwXDE2NVx4NzBcNzVcNDJcMTY0XDE2MlwxNjVcMTQ1XDQyXHgyMFx4NjFcMTYyXDE1MVwxNDFcNTVcMTQ1XHg3OFx4NzBceDYxXHg2ZVwxNDRceDY1XDE0NFw3NVx4MjJcMTQ2XHg2MVwxNTRcMTYzXHg2NVx4MjJceDNlXDEyXHgyMFw0MFx4MjBceDIwXDQwXHgyMFx4MjBcNDBceDIwXDQwXHgyMFw0MFx4MjBcNDBcNDBcNDBcMTIzXHg2NVwxNjRceDc0XHg2OVwxNTZcMTQ3XHg3M1x4YVw0MFx4MjBcNDBceDIwXHgyMFw0MFx4MjBcNDBceDIwXDQwXHgyMFx4MjBcNDBcNDBceDIwXDQwXHgzY1w1N1wxNDJcMTY1XDE2NFwxNjRcMTU3XHg2ZVw3NlwxMlw0MFx4MjBcNDBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBcNDBceDIwXHgyMFx4MjBcNDBceDIwXHgzY1x4NjRceDY5XHg3Nlw0MFwxNDNcMTU0XHg2MVwxNjNcMTYzXDc1XDQyXDE0NFwxNjJcMTU3XDE2MFwxNDRceDZmXHg3N1x4NmVcNTVcMTU1XHg2NVx4NmVceDc1XHgyMFx4NjRceDcyXHg2ZlwxNjBcMTU0XDE0NVwxNDZceDc0XHgyMlw3NlwxMlw0MFx4MjBcNDBcNDBceDIwXHgyMFw0MFx4MjBcNDBcNDBcNDBcNDBceDIwXHgyMFx4MjBcNDBcNDBcNDBcNzRceDYxXHgyMFwxNDNceDZjXHg2MVwxNjNcMTYzXHgzZFw0Mlx4NjRceDcyXHg2ZlwxNjBcMTQ0XHg2Zlx4NzdceDZlXHgyZFwxNTFceDc0XDE0NVwxNTVcNDBcMTYyXDE0NVwxNjNcMTY0XHg2ZlwxNjJceDY1XHg0MlwxNjRceDZlXHgyMlx4MjBcMTUwXDE2MlwxNDVceDY2XDc1XDQyXDQzXHgyMlw0MFwxNDRcMTQxXHg3NFx4NjFcNTVcMTUxXDE0NFx4M2RcNDIiIC4gJHJvdy0+aWQgLiAiXHgyMlx4M2VceDUyXDE0NVwxNjNceDc0XHg2ZlwxNjJcMTQ1XHgyMFwxMDNcMTU0XDE0MVwxNjNceDczXHgzY1x4MmZcMTQxXDc2XDEyXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXDQwXDQwXHgyMFx4MjBceDIwXDQwXDQwXHgyMFx4MjBcNDBceDIwXHgzY1wxNDFceDIwXHg2M1wxNTRceDYxXDE2M1wxNjNcNzVceDIyXHg2NFwxNjJcMTU3XHg3MFwxNDRceDZmXHg3N1x4NmVceDJkXDE1MVx4NzRceDY1XHg2ZFx4MjBcMTQ0XHg2NVx4NmNceDY1XDE2NFx4NjVcMTAyXDE2NFwxNTZcNDJcNDBceDY4XHg3Mlx4NjVcMTQ2XDc1XHgyMlw0M1w0Mlw0MFx4NjRcMTQxXDE2NFwxNDFcNTVcMTUxXHg2NFx4M2RcNDIiIC4gJHJvdy0+aWQgLiAiXHgyMlw3NlwxMDRceDY1XDE1NFx4NjVcMTY0XDE0NVx4MjBcMTAzXDE1NFx4NjFceDczXHg3M1w3NFw1N1wxNDFcNzZceGFceDIwXHgyMFx4MjBceDIwXDQwXDQwXDQwXDQwXDQwXHgyMFw0MFx4MjBceDIwXDQwXDQwXHgyMFx4M2NceDJmXDE0NFwxNTFcMTY2XHgzZVwxMlx4MjBceDIwXDQwXHgyMFx4MjBcNDBcNDBcNDBceDIwXHgyMFw0MFw0MFw0MFw0MFx4M2NcNTdcMTQ0XHg2OVx4NzZcNzYiOyByZXR1cm4gJGJ0bjsgfSktPmFkZENvbHVtbigiXHg3M1x4NjNceDY4XHg2NVwxNDRceDc1XHg2Y1x4NjUiLCBmdW5jdGlvbiAoJHJvdykgeyAkZDEgPSAkcm93LT5tID09PSAiXHg3NFwxNjJcMTY1XHg2NSI7ICRkMiA9ICRyb3ctPnQgPT09ICJceDc0XDE2MlwxNjVceDY1IjsgJGQzID0gJHJvdy0+dyA9PT0gIlwxNjRceDcyXDE2NVwxNDUiOyAkZDQgPSAkcm93LT50aCA9PT0gIlx4NzRceDcyXDE2NVx4NjUiOyAkZDUgPSAkcm93LT5mID09PSAiXDE2NFwxNjJceDc1XHg2NSI7ICRkNiA9ICRyb3ctPnNhdCA9PT0gIlx4NzRceDcyXDE2NVx4NjUiOyAkZDcgPSAkcm93LT5zID09PSAiXDE2NFx4NzJcMTY1XHg2NSI7ICRzdGFydCA9IGRhdGUoIlx4NjhcNzJceDY5XHg0MSIsIHN0cnRvdGltZSgkcm93LT5zdGFydCkpOyAkZW5kID0gZGF0ZSgiXHg2OFx4M2FceDY5XDEwMSIsIHN0cnRvdGltZSgkcm93LT5lbmQpKTsgJHNjaGVkdWxlID0gJyc7IGlmICgkZDEpIHsgJHNjaGVkdWxlIC49ICJceDRkXDQwIjsgfSBpZiAoJGQyKSB7ICRzY2hlZHVsZSAuPSAiXHg1NFx4MjAiOyB9IGlmICgkZDMpIHsgJHNjaGVkdWxlIC49ICJcMTI3XHgyMCI7IH0gaWYgKCRkNCkgeyAkc2NoZWR1bGUgLj0gIlx4NTRceDQ4XHgyMCI7IH0gaWYgKCRkNSkgeyAkc2NoZWR1bGUgLj0gIlwxMDZcNDAiOyB9IGlmICgkZDYpIHsgJHNjaGVkdWxlIC49ICJcMTIzXDE0MVx4NzRceDIwIjsgfSBpZiAoJGQ3KSB7ICRzY2hlZHVsZSAuPSAiXDEyM1w0MCI7IH0gcmV0dXJuICRzY2hlZHVsZSAuICRzdGFydCAuICJcNDBceDJkXDQwIiAuICRlbmQ7IH0pLT5yYXdDb2x1bW5zKGFycmF5KCJcMTQxXHg2M1wxNjRceDY5XHg2Zlx4NmUiKSktPm1ha2UodHJ1ZSk7IH0gcHVibGljIGZ1bmN0aW9uIFVzZXJBY2NvdW50RGVsZXRlQWN0aW9uKFJlcXVlc3QgJHJlcXVlc3QpIHsgJGlkID0gJHJlcXVlc3QtPlVzZXJJRDsgVXNlcnM6OndoZXJlKCJcMTUxXHg2NCIsICRpZCktPmRlbGV0ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2MVwxNjBcMTYwXDE2Mlx4NmZceDc2XDE0NVx4NjQiID0+ICJcMTAxXHg2M1x4NjNceDZmXDE2NVwxNTZceDc0XHgyMFx4NjhceDYxXDE2M1w0MFwxNDJceDY1XDE0NVx4NmVceDIwXDE0NFwxNDVceDZjXHg2NVx4NzRcMTQ1XHg2NFx4MjBceDczXDE2NVwxNDNcMTQzXDE0NVx4NzNcMTYzXDE0NlwxNjVceDZjXDE1NFx4NzlcNTYiKSk7IH0gcHVibGljIGZ1bmN0aW9uIFJ1YnJpY0FyY2hpdmUoUmVxdWVzdCAkcmVxdWVzdCkgeyB0cnkgeyAkaWQgPSAkcmVxdWVzdC0+VXNlcklEOyAkdXNlciA9IHJ1YnJpY3M6OmZpbmRPckZhaWwoJGlkKTsgJHVzZXItPnN0YXR1cyA9ICJcMTQxXDE2Mlx4NjNceDY4XHg2OVwxNjZceDY1IjsgJHVzZXItPnVwZGF0ZWRfYnkgPSBTZXNzaW9uOjpnZXQoIlx4NmVcMTQxXDE1NVwxNDUiKTsgJHVzZXItPnNhdmUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNDFcMTYyXHg2M1x4NjhceDY5XHg3NlwxNDVcMTQ0IiA9PiAiXDEyMlx4NzVcMTQyXDE2MlwxNTFceDYzXHgyMFwxNTBceDYxXHg3M1x4MjBcMTQyXHg2NVwxNDVceDZlXDQwXDE0MVwxNjJcMTQzXDE1MFwxNTFceDc2XDE0NVx4NjRcNDBcMTYzXDE2NVx4NjNcMTQzXHg2NVwxNjNcMTYzXDE0NlwxNjVcMTU0XHg2Y1wxNzFcNTYiKSk7IH0gY2F0Y2ggKE1vZGVsTm90Rm91bmRFeGNlcHRpb24gJGV4Y2VwdGlvbikgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0NVx4NzJcMTYyXDE1N1wxNjIiID0+ICJceDUyXDE2NVx4NjJceDcyXDE1MVx4NjNcNDBcMTU2XDE1N1wxNjRceDIwXDE0Nlx4NmZcMTY1XHg2ZVwxNDRceDJlIikpOyB9IH0gcHVibGljIGZ1bmN0aW9uIFVzZXJBY2NvdW50QXJjaGl2ZShSZXF1ZXN0ICRyZXF1ZXN0KSB7IHRyeSB7ICRpZCA9ICRyZXF1ZXN0LT5Vc2VySUQ7ICR1c2VyID0gVXNlcnM6OmZpbmRPckZhaWwoJGlkKTsgJHVzZXItPnN0YXR1cyA9ICJcMTQxXDE2Mlx4NjNcMTUwXDE1MVwxNjZcMTQ1IjsgJHVzZXItPnVwZGF0ZWRfYnkgPSBTZXNzaW9uOjpnZXQoIlwxNTZceDYxXDE1NVwxNDUiKTsgJHVzZXItPnNhdmUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjFceDcyXDE0M1x4NjhceDY5XHg3Nlx4NjVceDY0IiA9PiAiXDEwMVx4NjNcMTQzXHg2ZlwxNjVceDZlXHg3NFx4MjBceDY4XHg2MVx4NzNceDIwXHg2Mlx4NjVcMTQ1XHg2ZVx4MjBceDYxXHg3MlwxNDNceDY4XDE1MVwxNjZcMTQ1XHg2NFx4MjBcMTYzXDE2NVwxNDNceDYzXDE0NVx4NzNceDczXHg2NlwxNjVcMTU0XHg2Y1x4NzlcNTYiKSk7IH0gY2F0Y2ggKE1vZGVsTm90Rm91bmRFeGNlcHRpb24gJGV4Y2VwdGlvbikgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0NVwxNjJceDcyXDE1N1x4NzIiID0+ICJcMTI1XHg3M1x4NjVceDcyXHgyMFwxNTZceDZmXHg3NFx4MjBcMTQ2XDE1N1wxNjVcMTU2XDE0NFw1NiIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBDbGFzc0FyY2hpdmUoUmVxdWVzdCAkcmVxdWVzdCkgeyB0cnkgeyAkaWQgPSAkcmVxdWVzdC0+VXNlcklEOyAkdXNlciA9IENsYXNzZXM6OmZpbmRPckZhaWwoJGlkKTsgJHVzZXItPnN0YXR1cyA9ICJceDYxXHg3MlwxNDNcMTUwXHg2OVwxNjZcMTQ1IjsgJHVzZXItPnVwZGF0ZWRfYnkgPSBTZXNzaW9uOjpnZXQoIlwxNTZcMTQxXHg2ZFx4NjUiKTsgJHVzZXItPnNhdmUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNDFcMTYyXHg2M1wxNTBceDY5XDE2NlwxNDVceDY0IiA9PiAiXHg0M1x4NmNceDYxXHg3M1x4NzNcNDBceDY4XDE0MVwxNjNcNDBcMTQyXHg2NVwxNDVcMTU2XHgyMFwxNDFcMTYyXDE0M1x4NjhcMTUxXHg3Nlx4NjVceDY0XHgyMFx4NzNceDc1XDE0M1wxNDNcMTQ1XDE2M1x4NzNceDY2XDE2NVx4NmNcMTU0XHg3OVx4MmUiKSk7IH0gY2F0Y2ggKE1vZGVsTm90Rm91bmRFeGNlcHRpb24gJGV4Y2VwdGlvbikgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0NVx4NzJcMTYyXHg2Zlx4NzIiID0+ICJcMTAzXHg2Y1wxNDFceDczXDE2M1x4MjBcMTU2XHg2ZlwxNjRceDIwXDE0NlwxNTdcMTY1XDE1Nlx4NjRceDJlIikpOyB9IH0gcHVibGljIGZ1bmN0aW9uIFVuZW5yb2xsQWNjb3VudChSZXF1ZXN0ICRyZXF1ZXN0KSB7IHRyeSB7ICRpZCA9ICRyZXF1ZXN0LT5Vc2VySUQ7ICRkYXRhID0gREI6OnRhYmxlKCJcMTQzXDE1NFwxNDFceDczXDE2M1x4NjVceDczXHg1Zlx4NjFcMTYzXHg2OVx4NjdcMTU2XDE2MyIpLT5zZWxlY3QoIlwxNDNcMTU0XDE0MVwxNjNceDczXDEzN1x4NjlcMTQ0IiwgIlwxNjVceDczXDE0NVx4NzJcMTM3XDE1MVx4NjQiKS0+d2hlcmUoIlwxNTFceDY0IiwgJGlkKS0+Zmlyc3QoKTsgJGNsYXNzX2lkID0gJGRhdGEtPmNsYXNzX2lkOyAkdXNlcl9pZCA9ICRkYXRhLT51c2VyX2lkOyAkZXhwZXJpbWVudCA9IEV4cGVyaW1lbnRSZXBvcnQ6OndoZXJlKCJceDc1XDE2M1x4NjVcMTYyXDEzN1x4NjlceDY0IiwgJHVzZXJfaWQpLT53aGVyZSgiXHg2M1wxNTRcMTQxXDE2M1x4NzNceDVmXDE1MVwxNDQiLCAkY2xhc3NfaWQpLT5kZWxldGUoKTsgJHVzZXIgPSBDbGFzc2VzQXNpZ246OndoZXJlKCJcMTUxXDE0NCIsICRpZCktPmRlbGV0ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg3NVx4NmVcMTQ1XHg2ZVwxNjJceDZmXHg2Y1wxNTRcMTQ1XDE0NCIgPT4gIlwxMDFceDYzXHg2M1x4NmZceDc1XDE1NlwxNjRcNDBcMTUwXDE0MVwxNjNceDIwXDE0Mlx4NjVcMTQ1XHg2ZVw0MFx4NzVcMTU2XDE0NVx4NmVcMTYyXHg2Zlx4NmNceDZjXDE0NVx4NjRceDIwXDE2M1x4NzVcMTQzXDE0M1wxNDVcMTYzXHg3M1wxNDZcMTY1XHg2Y1wxNTRcMTcxXHgyZSIpKTsgfSBjYXRjaCAoTW9kZWxOb3RGb3VuZEV4Y2VwdGlvbiAkZXhjZXB0aW9uKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDY1XHg3Mlx4NzJceDZmXDE2MiIgPT4gIlx4NDNceDZjXHg2MVx4NzNcMTYzXDQwXDE1Nlx4NmZceDc0XHgyMFx4NjZcMTU3XHg3NVwxNTZcMTQ0XDU2IikpOyB9IH0gcHVibGljIGZ1bmN0aW9uIFVuZW5yb2xsQ2xhc3MoUmVxdWVzdCAkcmVxdWVzdCkgeyB0cnkgeyAkaWQgPSAkcmVxdWVzdC0+Y2xhc3NJRDsgJGNsYXNzID0gQ2xhc3Nlc0FzaWduOjp3aGVyZSgiXDE0M1x4NmNceDYxXHg3M1x4NzNceDVmXHg2OVx4NjQiLCAkaWQpLT5kZWxldGUoKTsgJGV4cGVyaW1lbnQgPSBFeHBlcmltZW50UmVwb3J0Ojp3aGVyZSgiXDE0M1x4NmNcMTQxXHg3M1x4NzNcMTM3XHg2OVwxNDQiLCAkaWQpLT5kZWxldGUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNjVceDZlXHg2NVwxNTZceDcyXHg2ZlwxNTRcMTU0XHg2NVwxNDQiID0+ICJceDQxXDE1NFx4NmNceDIwXHg0MVwxNDNcMTQzXHg2Zlx4NzVcMTU2XHg3NFwxNjNcNDBceDUzXHg3NVx4NjNcMTQzXDE0NVx4NzNcMTYzXDE0NlwxNjVcMTU0XHg2Y1x4NzlcNDBceDU1XDE1NlwxNDVceDZlXHg3MlwxNTdcMTU0XDE1NFwxNDVcMTQ0XDU2IikpOyB9IGNhdGNoIChNb2RlbE5vdEZvdW5kRXhjZXB0aW9uICRleGNlcHRpb24pIHsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjVceDcyXDE2Mlx4NmZcMTYyIiA9PiAiXDEwM1x4NmNcMTQxXHg3M1x4NzNcNDBceDZlXDE1N1x4NzRcNDBceDY2XHg2Zlx4NzVceDZlXHg2NFx4MmUiKSk7IH0gfSBwdWJsaWMgZnVuY3Rpb24gRXhwZXJpbWVudEFjdGl2YXRpb24oUmVxdWVzdCAkcmVxdWVzdCkgeyB0cnkgeyAkaWQgPSAkcmVxdWVzdC0+VXNlcklEOyAkdXNlciA9IGNsYXNzRXg6OmZpbmRPckZhaWwoJGlkKTsgJHVzZXItPnN0YXR1cyA9IG51bGw7ICR1c2VyLT51cGRhdGVkX2J5ID0gU2Vzc2lvbjo6Z2V0KCJcMTU2XDE0MVx4NmRceDY1Iik7ICR1c2VyLT5zYXZlKCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDcyXDE0NVx4NzNceDc0XHg2ZlwxNjJceDY1XDE0NCIgPT4gIlwxMDVceDc4XHg3MFx4NjVcMTYyXHg2OVwxNTVcMTQ1XDE1NlwxNjRcNDBcMTUwXHg2MVwxNjNceDIwXHg2Mlx4NjVceDY1XHg2ZVx4MjBceDYxXHg2M1wxNjRcMTUxXHg3Nlx4NjFceDc0XDE0NVx4NjRceDIwXDE2M1wxNjVcMTQzXDE0M1x4NjVceDczXHg3M1wxNDZcMTY1XHg2Y1wxNTRceDc5XHgyZSIpKTsgfSBjYXRjaCAoTW9kZWxOb3RGb3VuZEV4Y2VwdGlvbiAkZXhjZXB0aW9uKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQ1XDE2MlwxNjJcMTU3XDE2MiIgPT4gIlx4NDVcMTcwXDE2MFx4NjVcMTYyXDE1MVwxNTVceDY1XDE1Nlx4NzRcNDBceDZlXDE1N1x4NzRceDIwXHg2Nlx4NmZceDc1XDE1Nlx4NjRceDJlIikpOyB9IH0gcHVibGljIGZ1bmN0aW9uIEFjY291bnRBY3RpdmF0aW9uKFJlcXVlc3QgJHJlcXVlc3QpIHsgdHJ5IHsgJGlkID0gJHJlcXVlc3QtPlVzZXJJRDsgJHVzZXIgPSBVc2Vyczo6ZmluZE9yRmFpbCgkaWQpOyAkdXNlci0+c3RhdHVzID0gJyc7ICR1c2VyLT51cGRhdGVkX2J5ID0gU2Vzc2lvbjo6Z2V0KCJceDZlXHg2MVwxNTVceDY1Iik7ICR1c2VyLT5zYXZlKCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDcyXHg2NVwxNjNceDc0XHg2Zlx4NzJcMTQ1XDE0NCIgPT4gIlx4NDFceDYzXHg2M1x4NmZceDc1XDE1NlwxNjRcNDBcMTUwXHg2MVx4NzNceDIwXHg2Mlx4NjVceDY1XDE1Nlw0MFwxNDFceDYzXDE2NFx4NjlcMTY2XDE0MVwxNjRcMTQ1XDE0NFw0MFwxNjNceDc1XDE0M1x4NjNcMTQ1XDE2M1wxNjNceDY2XHg3NVx4NmNceDZjXDE3MVx4MmUiKSk7IH0gY2F0Y2ggKE1vZGVsTm90Rm91bmRFeGNlcHRpb24gJGV4Y2VwdGlvbikgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2NVx4NzJceDcyXHg2Zlx4NzIiID0+ICJceDU1XDE2M1wxNDVcMTYyXDQwXDE1Nlx4NmZceDc0XDQwXDE0NlwxNTdceDc1XDE1Nlx4NjRcNTYiKSk7IH0gfSBwdWJsaWMgZnVuY3Rpb24gUnVicmljUmVzdG9yYXRpb24oUmVxdWVzdCAkcmVxdWVzdCkgeyB0cnkgeyAkaWQgPSAkcmVxdWVzdC0+VXNlcklEOyAkdXNlciA9IHJ1YnJpY3M6OmZpbmRPckZhaWwoJGlkKTsgJHVzZXItPnN0YXR1cyA9IG51bGw7ICR1c2VyLT51cGRhdGVkX2J5ID0gU2Vzc2lvbjo6Z2V0KCJceDZlXHg2MVx4NmRcMTQ1Iik7ICR1c2VyLT5zYXZlKCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDcyXHg2NVx4NzNceDc0XDE1N1wxNjJcMTQ1XDE0NCIgPT4gIlwxMjJcMTY1XHg2Mlx4NzJceDY5XDE0M1x4MjBcMTUwXHg2MVwxNjNceDIwXDE0MlwxNDVceDY1XDE1Nlw0MFwxNjJcMTQ1XDE2M1wxNjRcMTU3XHg3MlwxNDVceDY0XDQwXHg3M1x4NzVcMTQzXDE0M1wxNDVcMTYzXDE2M1x4NjZceDc1XHg2Y1x4NmNceDc5XHgyZSIpKTsgfSBjYXRjaCAoTW9kZWxOb3RGb3VuZEV4Y2VwdGlvbiAkZXhjZXB0aW9uKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQ1XDE2MlwxNjJcMTU3XDE2MiIgPT4gIlwxMjVcMTYzXHg2NVx4NzJceDIwXHg2ZVwxNTdceDc0XDQwXHg2NlwxNTdceDc1XHg2ZVx4NjRceDJlIikpOyB9IH0gcHVibGljIGZ1bmN0aW9uIEFjY291bnRSZXN0b3JhdGlvbihSZXF1ZXN0ICRyZXF1ZXN0KSB7IHRyeSB7ICRpZCA9ICRyZXF1ZXN0LT5Vc2VySUQ7ICR1c2VyID0gVXNlcnM6OmZpbmRPckZhaWwoJGlkKTsgJHVzZXItPnN0YXR1cyA9ICcnOyAkdXNlci0+dXBkYXRlZF9ieSA9IFNlc3Npb246OmdldCgiXDE1Nlx4NjFcMTU1XHg2NSIpOyAkdXNlci0+c2F2ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg3Mlx4NjVceDczXHg3NFx4NmZceDcyXDE0NVwxNDQiID0+ICJceDQxXDE0M1wxNDNceDZmXDE2NVwxNTZcMTY0XHgyMFx4NjhcMTQxXHg3M1x4MjBceDYyXHg2NVwxNDVcMTU2XDQwXHg3MlwxNDVceDczXHg3NFwxNTdceDcyXHg2NVx4NjRcNDBcMTYzXHg3NVx4NjNcMTQzXHg2NVwxNjNcMTYzXDE0NlwxNjVcMTU0XDE1NFx4NzlceDJlIikpOyB9IGNhdGNoIChNb2RlbE5vdEZvdW5kRXhjZXB0aW9uICRleGNlcHRpb24pIHsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNDVceDcyXDE2MlwxNTdceDcyIiA9PiAiXHg1NVx4NzNcMTQ1XHg3Mlw0MFx4NmVceDZmXHg3NFx4MjBceDY2XDE1N1wxNjVceDZlXDE0NFw1NiIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBDbGFzc1Jlc3RvcmF0aW9uKFJlcXVlc3QgJHJlcXVlc3QpIHsgdHJ5IHsgJGlkID0gJHJlcXVlc3QtPlVzZXJJRDsgJHVzZXIgPSBDbGFzc2VzOjpmaW5kT3JGYWlsKCRpZCk7ICR1c2VyLT5zdGF0dXMgPSAnJzsgJHVzZXItPnVwZGF0ZWRfYnkgPSBTZXNzaW9uOjpnZXQoIlx4NmVceDYxXDE1NVx4NjUiKTsgJHVzZXItPnNhdmUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNjJcMTQ1XHg3M1wxNjRceDZmXDE2MlwxNDVceDY0IiA9PiAiXHg0MVwxNDNcMTQzXDE1N1wxNjVceDZlXHg3NFw0MFx4NjhceDYxXHg3M1x4MjBcMTQyXHg2NVwxNDVcMTU2XHgyMFx4NzJceDY1XHg3M1wxNjRcMTU3XDE2MlwxNDVceDY0XDQwXHg3M1x4NzVcMTQzXDE0M1x4NjVceDczXHg3M1wxNDZcMTY1XHg2Y1x4NmNceDc5XHgyZSIpKTsgfSBjYXRjaCAoTW9kZWxOb3RGb3VuZEV4Y2VwdGlvbiAkZXhjZXB0aW9uKSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQ1XHg3Mlx4NzJceDZmXDE2MiIgPT4gIlwxMjVceDczXDE0NVx4NzJcNDBcMTU2XDE1N1x4NzRcNDBceDY2XDE1N1wxNjVcMTU2XHg2NFw1NiIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBVc2VyUGFzc3dvcmRSZXNldChSZXF1ZXN0ICRyZXF1ZXN0KSB7IHRyeSB7ICRpZCA9ICRyZXF1ZXN0LT5Vc2VySUQ7ICR1c2VyID0gVXNlcnM6OmZpbmRPckZhaWwoJGlkKTsgJHVzZXItPnBhc3N3b3JkID0gSGFzaDo6bWFrZSgiXHg1M1x4NmRceDYxXDE2MlwxNjRceDZjXHg2MVx4NjJceDMyXDYwXDYyXDYzXHgyMSIpOyAkdXNlci0+cGFzc19zdHJpbmcgPSAiXDEyM1wxNTVceDYxXDE2MlwxNjRcMTU0XHg2MVwxNDJcNjJceDMwXHgzMlw2M1x4MjEiOyAkdXNlci0+c2F2ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg3MlwxNDVceDczXHg2NVwxNjRceDc0XDE0NVwxNDQiID0+ICJceDUwXHg2MVwxNjNceDczXHg3N1wxNTdcMTYyXHg2NFw0MFwxNjJceDY1XHg3M1wxNDVcMTY0XHgyMFx4NzNcMTY1XHg2M1x4NjNceDY1XHg3M1x4NzNcMTQ2XHg3NVx4NmNceDZjXHg3OVx4MjEiKSk7IH0gY2F0Y2ggKE1vZGVsTm90Rm91bmRFeGNlcHRpb24gJGV4Y2VwdGlvbikgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0NVx4NzJceDcyXDE1N1x4NzIiID0+ICJceDU1XDE2M1wxNDVceDcyXHgyMFwxNTZcMTU3XDE2NFx4MjBceDY2XHg2Zlx4NzVceDZlXDE0NFw1NiIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBVc2VyRWRpdGJ0bkZldGNoKFJlcXVlc3QgJHJlcXVlc3QpIHsgJGRhdGEgPSBVc2Vyczo6ZmluZCgkcmVxdWVzdC0+VXVwZGF0ZWJ1dHRvbik7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDU1XHg3M1wxNDVceDcyXHg0NFx4NjFceDc0XDE0MSIgPT4gJGRhdGEpKTsgfSBwdWJsaWMgZnVuY3Rpb24gRWRpdFVzZXJBY2NvdW50KFJlcXVlc3QgJHJlcXVlc3QpIHsgJHZhbGlkYXRlZCA9IFZhbGlkYXRvcjo6bWFrZSgkcmVxdWVzdC0+YWxsKCksIGFycmF5KCJcMTY1XHg3M1wxNDVceDcyXHg2ZVwxNDFceDZkXDE0NSIgPT4gIlx4NzJcMTQ1XHg3MVx4NzVceDY5XDE2Mlx4NjVceDY0IiwgIlwxNTZceDYxXHg2ZFwxNDUiID0+ICJcMTYyXDE0NVwxNjFceDc1XDE1MVx4NzJceDY1XHg2NCIsICJceDcyXDE1N1x4NmNceDY1IiA9PiAiXHg3Mlx4NjVcMTYxXDE2NVx4NjlceDcyXHg2NVx4NjQiLCAiXDE2NVx4NzNcMTQ1XDE2Mlx4NDlcMTA0IiA9PiAiXDE2Mlx4NjVceDcxXDE2NVx4NjlceDcyXDE0NVwxNDQiLCAiXDE0NVx4NmRceDYxXDE1MVwxNTQiID0+ICJceDcyXHg2NVx4NzFcMTY1XDE1MVwxNjJcMTQ1XHg2NCIpLCBhcnJheSgiXHg3NVwxNjNceDY1XHg3Mlx4NmVcMTQxXDE1NVx4NjVcNTZceDcyXHg2NVx4NzFceDc1XHg2OVwxNjJceDY1XDE0NCIgPT4gIlx4NTRcMTUwXDE0NVx4MjBceDU1XHg3M1x4NjVcMTYyXHg2ZVwxNDFcMTU1XHg2NVx4MjBcMTQ2XHg2OVwxNDVceDZjXHg2NFx4MjBcMTUxXDE2M1x4MjBceDcyXDE0NVwxNjFcMTY1XHg2OVwxNjJcMTQ1XHg2NCIsICJceDZlXHg2MVwxNTVceDY1XDU2XHg3MlwxNDVceDcxXHg3NVwxNTFcMTYyXHg2NVx4NjQiID0+ICJcMTI0XDE1MFx4NjVceDIwXDExNlwxNDFcMTU1XDE0NVx4MjBceDY2XHg2OVwxNDVcMTU0XDE0NFw0MFwxNTFcMTYzXHgyMFwxNjJcMTQ1XHg3MVx4NzVceDY5XHg3Mlx4NjVcMTQ0IiwgIlwxNjJceDZmXHg2Y1wxNDVceDJlXHg3Mlx4NjVceDcxXHg3NVwxNTFceDcyXHg2NVx4NjQiID0+ICJceDU0XDE1MFx4NjVceDIwXHg1Mlx4NmZcMTU0XDE0NVw0MFx4NjZceDY5XDE0NVx4NmNceDY0XDQwXHg2OVwxNjNceDIwXHg3Mlx4NjVceDcxXDE2NVx4NjlceDcyXHg2NVwxNDQiLCAiXHg2NVwxNTVceDYxXHg2OVx4NmNcNTZceDcyXDE0NVx4NzFceDc1XHg2OVwxNjJcMTQ1XHg2NCIgPT4gIlwxMjRcMTUwXDE0NVx4MjBcMTA1XDE1NVwxNDFcMTUxXHg2Y1w0MFwxNDZceDY5XHg2NVx4NmNcMTQ0XHgyMFwxNTFceDczXHgyMFwxNjJcMTQ1XDE2MVx4NzVceDY5XHg3Mlx4NjVcMTQ0IiwgIlwxNjVcMTYzXHg2NVx4NzJcMTExXDEwNFw1Nlx4NzJcMTQ1XHg3MVx4NzVceDY5XHg3Mlx4NjVceDY0IiA9PiAiXHg1NFx4NjhcMTQ1XHg3MlwxNDVcNDBcMTY3XHg2MVx4NzNceDIwXDE1NlwxNTdceDIwXHg2MVx4NjNcMTQzXDE1N1wxNjVcMTU2XHg3NFx4MjBceDY4XDE1MVwxNDdcMTUwXDE1NFx4NjlcMTQ3XHg2OFwxNjRcMTQ1XDE0NFw1NFx4MjBceDUwXHg2Y1x4NjVcMTQxXHg3M1wxNDVceDIwXHg3Mlx4NjVcMTQzXHg2Y1x4NjlcMTQzXDE1M1x4MjBcMTY0XHg2OFx4NjVcNDBceDQ1XHg2NFx4NjlcMTY0XDQwXDE0MlwxNjVcMTY0XHg3NFx4NmZceDZlIikpOyBpZiAoJHZhbGlkYXRlZC0+ZmFpbHMoKSkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0NVwxNjJceDcyXDE1N1x4NzJcMTYzIiA9PiAkdmFsaWRhdGVkLT5lcnJvcnMoKS0+Zmlyc3QoKSkpOyB9IGVsc2UgeyAkZWRpdFVzZXIgPSBVc2Vyczo6ZmluZCgkcmVxdWVzdC0+dXNlcklEKTsgJGVkaXRVc2VyLT51c2VybmFtZSA9ICRyZXF1ZXN0LT51c2VybmFtZTsgJGVkaXRVc2VyLT5uYW1lID0gJHJlcXVlc3QtPm5hbWU7ICRlZGl0VXNlci0+cm9sZSA9ICRyZXF1ZXN0LT5yb2xlOyAkZWRpdFVzZXItPnVzZXJfZW1haWwgPSAkcmVxdWVzdC0+ZW1haWw7ICRlZGl0VXNlci0+c2F2ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg1NVx4NzNcMTQ1XHg3Mlx4NDVceDY0XDE1MVx4NzRcMTQ1XDE0NCIgPT4gIlx4NTVcMTYzXDE0NVwxNjJcNDBcMTAxXDE0M1wxNDNcMTU3XHg3NVwxNTZceDc0XDQwXHg2OFx4NjFceDczXDQwXDE0Mlx4NjVcMTQ1XDE1Nlw0MFwxNjVceDcwXHg2NFwxNDFceDc0XDE0NVwxNDRcNTYiKSk7IH0gfSBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2xhc3MoKSB7ICRkYXRhID0gREI6OnRhYmxlKCJceDYzXDE1NFx4NjFcMTYzXHg3M1wxNDVcMTYzIiktPndoZXJlTnVsbCgiXDE2Mlx4NzVceDYyXDE2MlwxNTFcMTQzXHg1Zlx4NjFceDczXDE2M1x4NjlcMTQ3XDE1NlwxNDVcMTQ0IiktPmdldCgpOyByZXR1cm4gdmlldygiXHg3M1wxNzFceDczXDE2NFx4NjVcMTU1XHg3MFx4NjFcMTQ3XDE0NVx4NzNcNTZceDcyXHg3NVx4NjJcMTYyXDE1MVx4NjNcNTVcMTQyXDE1N1x4NmZcMTUzIiwgYXJyYXkoIlwxNDNcMTU0XDE0MVx4NzNcMTYzXHg0NFwxNDFceDc0XDE0MSIgPT4gJGRhdGEpKTsgfSBwdWJsaWMgZnVuY3Rpb24gZGlzcGxheVJ1YnJpYygkcnVicmljX2lkLCAkY2xhc3NfaWQsICRhY3RfaWQsICR1c2VyX2lkKSB7ICRjaGVja0lmR3JhZGUgPSBEQjo6dGFibGUoIlx4NzJcMTY1XDE0MlwxNjJcMTUxXDE0M1x4NWZceDY3XHg3Mlx4NjFceDY0XDE0NVwxNjMiKS0+d2hlcmUoIlwxNTFceDY0XHg1Zlx4NzJceDc1XHg2Mlx4NzJcMTUxXHg2MyIsICRydWJyaWNfaWQpLT53aGVyZSgiXHg3NVwxMzdceDY5XHg2NCIsICR1c2VyX2lkKS0+d2hlcmUoIlx4NjNceDZjXHg2MVwxNjNceDczXDEzN1wxNTFceDY0IiwgJGNsYXNzX2lkKS0+d2hlcmUoIlwxNDFcMTQzXHg3NFx4NWZceDY5XDE0NCIsICRhY3RfaWQpLT53aGVyZSgiXDE2NFwxNTdcMTY0XHg2MVwxNTRceDVmXHg3M1wxNDNceDZmXDE2MlwxNDUiLCAiXDQxXDc1IiwgIlwxMTZceDJmXDEwMSIpLT5maXJzdCgpOyAkYWN0aXZpdHlEYXRhID0gREI6OnRhYmxlKCJceDYzXHg2Y1x4NjFceDczXDE2M1wxMzdcMTQ1XDE3MFx4NjVceDczIiktPndoZXJlKCJcMTQzXDE1NFwxNDFcMTYzXHg3M1x4NWZcMTUxXDE0NCIsICRjbGFzc19pZCktPndoZXJlKCJcMTUxXHg2NCIsICRhY3RfaWQpLT5maXJzdCgpOyAkcnVicmljRGF0YSA9IERCOjp0YWJsZSgiXDE2Mlx4NzVcMTQyXDE2MlwxNTFceDYzXHg3MyIpLT53aGVyZSgiXDE1MVx4NjQiLCAkcnVicmljX2lkKS0+Z2V0KCk7ICRwYXJ0RGF0YSA9IERCOjp0YWJsZSgiXDE2MlwxNjVcMTQyXDE2MlwxNTFceDYzXDEzN1wxNjBcMTQxXHg3Mlx4NzRcMTYzIiktPndoZXJlKCJceDcyXHg3NVx4NjJcMTYyXDE1MVwxNDNcMTM3XDE1MVwxNDQiLCAkcnVicmljX2lkKS0+Z2V0KCk7ICRjcml0ZXJpYURhdGEgPSBEQjo6dGFibGUoIlwxNjJceDc1XHg2Mlx4NzJcMTUxXHg2M1x4NWZcMTQzXHg3MlwxNTFcMTY0XHg2NVwxNjJcMTUxXHg2MVwxNjMiKS0+d2hlcmUoIlx4NzJceDc1XDE0Mlx4NzJcMTUxXDE0M1wxMzdceDY5XDE0NCIsICRydWJyaWNfaWQpLT5nZXQoKTsgJGNsYXNzRGF0YSA9IENsYXNzZXM6OmZpbmQoJGNsYXNzX2lkKTsgJHVzZXJEYXRhID0gVXNlcnM6OmZpbmQoJHVzZXJfaWQpOyAkY2hlY2tVc2VySURDbGFzcyA9IENsYXNzZXNBc2lnbjo6d2hlcmUoIlwxNDNceDZjXDE0MVwxNjNcMTYzXHg1Zlx4NjlcMTQ0IiwgJGNsYXNzX2lkKS0+d2hlcmUoIlx4NzVcMTYzXHg2NVwxNjJcMTM3XDE1MVx4NjQiLCAkdXNlcl9pZCktPmZpcnN0KCk7IGlmICgkY2hlY2tJZkdyYWRlKSB7IHJldHVybiByZWRpcmVjdCgiXHgyZlx4NzBcMTYyXHg2NVwxNjZcMTUxXHg2NVx4NzdcNTVcMTQ3XHg3MlwxNDFcMTQ0XDE0NVx4MmYiIC4gJHJ1YnJpY19pZCAuICJceDJmIiAuICRjbGFzc19pZCAuICJcNTciIC4gJGFjdF9pZCAuICJcNTciIC4gJHVzZXJfaWQpOyB9IGVsc2UgeyBpZiAoISRjbGFzc0RhdGEpIHsgcmV0dXJuIHJlZGlyZWN0KCJceDJmXDE0NFx4NjFcMTYzXDE1MFwxNDJceDZmXHg2MVx4NzJceDY0Iik7IH0gZWxzZSB7IGlmICghJGNoZWNrVXNlcklEQ2xhc3MpIHsgcmV0dXJuIHJlZGlyZWN0KCJceDJmXDE0NFx4NjFceDczXDE1MFwxNDJceDZmXDE0MVx4NzJcMTQ0Iik7IH0gZWxzZSB7IGlmICghJHJ1YnJpY0RhdGEtPmlzRW1wdHkoKSkgeyByZXR1cm4gdmlldygiXDE2M1wxNzFceDczXDE2NFx4NjVceDZkXHg3MFx4NjFceDY3XDE0NVx4NzNceDJlXHg3MlwxNjVceDYyXHg3Mlx4NjlcMTQzXHgyZFwxNDdcMTYyXHg2MVx4NjRceDY1IiwgYXJyYXkoIlx4NjRcMTQxXHg3NFx4NjEiID0+ICRydWJyaWNEYXRhLCAiXHg3Mlx4NzVcMTQyXHg3Mlx4NjlcMTQzXDEzN1x4NjlceDY0IiA9PiAkcnVicmljX2lkLCAiXHg3MFx4NjFceDcyXDE2NFwxMDRceDYxXDE2NFwxNDEiID0+ICRwYXJ0RGF0YSwgIlwxNDNceDcyXDE1MVwxNjRcMTQ1XHg3Mlx4NjlceDYxXDEwNFx4NjFcMTY0XDE0MSIgPT4gJGNyaXRlcmlhRGF0YSwgIlx4NjZcMTY1XDE1NFx4NmNceDZlXHg2MVx4NmRceDY1IiA9PiAkdXNlckRhdGEtPm5hbWUsICJceDczXDE2NFwxNjVcMTQ0XHg2NVx4NmVcMTY0XDExMVwxMDQiID0+ICR1c2VyRGF0YS0+aWQsICJceDYzXDE1NFx4NjFcMTYzXDE2M1wxNTZcMTQxXHg2ZFx4NjUiID0+ICRjbGFzc0RhdGEtPmNsYXNzbmFtZSwgIlx4NjFcMTQzXDE2NFwxNTFceDc2XDE1MVwxNjRcMTcxXHg0ZVwxNDFceDZkXDE0NSIgPT4gJGFjdGl2aXR5RGF0YS0+ZXhfbmFtZSkpOyB9IGVsc2UgeyByZXR1cm4gcmVkaXJlY3QoIlx4MmZceDY0XDE0MVx4NzNceDY4XHg2MlwxNTdcMTQxXDE2Mlx4NjQiKTsgfSB9IH0gfSB9IHB1YmxpYyBmdW5jdGlvbiBkaXNwbGF5UnVicmljREIoJGlkKSB7ICRydWJyaWNEYXRhID0gREI6OnRhYmxlKCJceDcyXDE2NVx4NjJceDcyXDE1MVx4NjNcMTYzIiktPndoZXJlKCJcMTUxXHg2NCIsICRpZCktPmdldCgpOyAkcGFydERhdGEgPSBEQjo6dGFibGUoIlwxNjJcMTY1XHg2Mlx4NzJceDY5XDE0M1x4NWZceDcwXHg2MVwxNjJcMTY0XHg3MyIpLT53aGVyZSgiXDE2MlwxNjVceDYyXDE2Mlx4NjlcMTQzXHg1ZlwxNTFceDY0IiwgJGlkKS0+Z2V0KCk7ICRjcml0ZXJpYURhdGEgPSBEQjo6dGFibGUoIlwxNjJceDc1XHg2Mlx4NzJceDY5XHg2M1x4NWZcMTQzXDE2MlwxNTFcMTY0XDE0NVwxNjJceDY5XHg2MVwxNjMiKS0+d2hlcmUoIlx4NzJcMTY1XDE0MlwxNjJceDY5XHg2M1wxMzdceDY5XDE0NCIsICRpZCktPmdldCgpOyBpZiAoISRydWJyaWNEYXRhLT5pc0VtcHR5KCkpIHsgcmV0dXJuIHZpZXcoIlx4NzNceDc5XDE2M1x4NzRceDY1XHg2ZFx4NzBceDYxXHg2N1x4NjVceDczXDU2XHg3MlwxNjVceDYyXDE2MlwxNTFcMTQzXHgyZFx4NzBcMTYyXDE0NVwxNjZceDY5XDE0NVwxNjciLCBhcnJheSgiXHg2NFx4NjFceDc0XDE0MSIgPT4gJHJ1YnJpY0RhdGEsICJcMTYwXDE0MVx4NzJceDc0XDEwNFx4NjFcMTY0XHg2MSIgPT4gJHBhcnREYXRhLCAiXHg2M1wxNjJcMTUxXHg3NFwxNDVceDcyXDE1MVx4NjFceDQ0XHg2MVwxNjRcMTQxIiA9PiAkY3JpdGVyaWFEYXRhKSk7IH0gZWxzZSB7IHJldHVybiByZWRpcmVjdCgiXHgyZlwxNDRcMTQxXHg3M1wxNTBcMTQyXDE1N1wxNDFcMTYyXHg2NCIpOyB9IH0gcHVibGljIGZ1bmN0aW9uIGVkaXRSdWJyaWNEQigkaWQpIHsgJHJ1YnJpY0RhdGEgPSBEQjo6dGFibGUoIlx4NzJceDc1XHg2Mlx4NzJceDY5XHg2M1x4NzMiKS0+d2hlcmUoIlwxNTFcMTQ0IiwgJGlkKS0+Z2V0KCk7ICRwYXJ0RGF0YSA9IERCOjp0YWJsZSgiXHg3MlwxNjVceDYyXHg3MlwxNTFceDYzXDEzN1x4NzBceDYxXHg3MlwxNjRcMTYzIiktPndoZXJlKCJcMTYyXDE2NVx4NjJceDcyXDE1MVx4NjNceDVmXHg2OVwxNDQiLCAkaWQpLT5nZXQoKTsgJGNyaXRlcmlhRGF0YSA9IERCOjp0YWJsZSgiXHg3Mlx4NzVceDYyXDE2MlwxNTFceDYzXHg1Zlx4NjNcMTYyXDE1MVwxNjRcMTQ1XHg3Mlx4NjlcMTQxXHg3MyIpLT53aGVyZSgiXDE2Mlx4NzVcMTQyXDE2MlwxNTFceDYzXHg1ZlwxNTFcMTQ0IiwgJGlkKS0+Z2V0KCk7IGlmICghJHJ1YnJpY0RhdGEtPmlzRW1wdHkoKSkgeyByZXR1cm4gdmlldygiXHg3M1wxNzFcMTYzXHg3NFx4NjVceDZkXHg3MFwxNDFcMTQ3XHg2NVx4NzNceDJlXDE0NVwxNDRcMTUxXDE2NFx4MmRceDcyXHg3NVwxNDJceDcyXDE1MVx4NjMiLCBhcnJheSgiXHg2NFx4NjFcMTY0XHg2MSIgPT4gJHJ1YnJpY0RhdGEsICJceDcwXHg2MVx4NzJceDc0XDEwNFwxNDFceDc0XHg2MSIgPT4gJHBhcnREYXRhLCAiXHg2M1x4NzJcMTUxXDE2NFx4NjVceDcyXHg2OVx4NjFceDQ0XHg2MVx4NzRceDYxIiA9PiAkY3JpdGVyaWFEYXRhLCAiXDE1MVwxNDQiID0+ICRpZCkpOyB9IGVsc2UgeyByZXR1cm4gcmVkaXJlY3QoIlw1N1x4NjRceDYxXDE2M1x4NjhceDYyXHg2Zlx4NjFceDcyXDE0NCIpOyB9IH0gcHVibGljIGZ1bmN0aW9uIHB1Ymxpc2hHcmFkZShSZXF1ZXN0ICRyZXF1ZXN0KSB7ICR0b3RhbFBhcnQgPSAkcmVxdWVzdC0+aW5wdXQoIlx4NzBceDc0XHg3NFwxNTdceDc0XHg2MVwxNTQiKTsgJHNjb3JlID0gJHJlcXVlc3QtPmlucHV0KCJcMTQ2XHg2OVwxNTZcMTQxXHg2Y1wxMzdceDczXDE0M1x4NmZcMTYyXDE0NSIpOyAkZmVlZGJhY2sgPSAkcmVxdWVzdC0+aW5wdXQoIlwxNDZcMTQ1XHg2NVx4NjRceDYyXDE0MVwxNDNceDZiXDEzNyIpOyAkdV9pZCA9ICRyZXF1ZXN0LT5pbnB1dCgiXDE2M1wxNjRcMTY1XHg2NFwxNDVceDZlXDE2NFx4NWZcMTUxXHg2NCIpOyAkcl9pZCA9ICRyZXF1ZXN0LT5pbnB1dCgiXHg3Mlx4NzVceDYyXDE2Mlx4NjlcMTQzXHg1ZlwxNTFceDY0Iik7ICRjbGFzc19pZCA9ICRyZXF1ZXN0LT5pbnB1dCgiXHg2M1wxNTRcMTQxXDE2M1x4NzNceDVmXDE1MVwxNDQiKTsgJGFjdF9pZCA9ICRyZXF1ZXN0LT5pbnB1dCgiXHg2MVx4NjNcMTY0XHg1Zlx4NjlcMTQ0Iik7ICRhY3RfbmFtZSA9ICRyZXF1ZXN0LT5pbnB1dCgiXDE0MVwxNDNcMTY0XDE1MVwxNjZcMTUxXHg3NFwxNzFceDVmXHg2ZVwxNDFceDZkXDE0NSIpOyAkY2hlY2tfd2VpZ2h0ID0gJHJlcXVlc3QtPmlucHV0KCJcMTY3XHg2NVx4NjlceDY3XHg2OFx4NzRceDQzXHg2OFx4NjVcMTQzXHg2YiIpOyAkdmFsaWRhdGVkID0gVmFsaWRhdG9yOjptYWtlKCRyZXF1ZXN0LT5hbGwoKSwgYXJyYXkoIlx4NzBcMTY0XDE2NFx4NmZceDc0XHg2MVwxNTRcNTZcNTIiID0+ICJcMTYyXHg2NVx4NzFceDc1XDE1MVx4NzJceDY1XHg2NCIpLCBhcnJheSgiXHg3MFx4NzRcMTY0XHg2Zlx4NzRcMTQxXDE1NFx4MmVcNTJceDJlXHg3MlwxNDVcMTYxXDE2NVx4NjlcMTYyXHg2NVwxNDQiID0+ICJceDU0XHg2OFwxNDVcNDBceDQzXDE2Mlx4NjlceDc0XHg2NVx4NzJcMTUxXDE0MVw0MFx4NjZceDY5XHg2NVx4NmNcMTQ0XDQwXDE1MVx4NzNcNDBceDcyXHg2NVwxNjFcMTY1XDE1MVx4NzJcMTQ1XHg2NFw1NiIpKTsgJGNoZWNrSWZHcmFkZSA9IERCOjp0YWJsZSgiXHg3MlwxNjVcMTQyXDE2Mlx4NjlceDYzXHg1Zlx4NjdceDcyXDE0MVwxNDRcMTQ1XDE2MyIpLT53aGVyZSgiXHg2OVwxNDRceDVmXDE2MlwxNjVceDYyXHg3MlwxNTFceDYzIiwgJHJfaWQpLT53aGVyZSgiXDE2NVwxMzdceDY5XDE0NCIsICR1X2lkKS0+d2hlcmUoIlwxNDNcMTU0XDE0MVwxNjNceDczXHg1Zlx4NjlcMTQ0IiwgJGNsYXNzX2lkKS0+d2hlcmUoIlwxNDFcMTQzXDE2NFwxMzdcMTUxXHg2NCIsICRhY3RfaWQpLT53aGVyZSgiXHg3NFwxNTdceDc0XHg2MVwxNTRcMTM3XDE2M1x4NjNcMTU3XHg3Mlx4NjUiLCAiXHgyMVw3NSIsICJceDRlXDU3XHg0MSIpLT5maXJzdCgpOyBpZiAoJHZhbGlkYXRlZC0+ZmFpbHMoKSkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2NVwxNjJcMTYyXDE1N1x4NzJcMTYzIiA9PiAkdmFsaWRhdGVkLT5lcnJvcnMoKS0+Zmlyc3QoKSkpOyB9IGVsc2UgeyBpZiAoJGNoZWNrSWZHcmFkZSkgeyByZXR1cm4gcmVkaXJlY3QoIlx4MmZceDcwXDE2Mlx4NjVcMTY2XDE1MVwxNDVcMTY3XDU1XDE0N1x4NzJceDYxXHg2NFx4NjVceDJmIiAuICRyX2lkIC4gIlx4MmYiIC4gJGNsYXNzX2lkIC4gIlx4MmYiIC4gJGFjdF9pZCAuICJcNTciIC4gJHVfaWQpOyB9IGVsc2UgeyAkY29uZGl0aW9ucyA9IGFycmF5KCJcMTY1XHg1Zlx4NjlcMTQ0IiA9PiAkdV9pZCwgIlx4NjlceDY0XDEzN1wxNjJcMTY1XHg2Mlx4NzJceDY5XDE0MyIgPT4gJHJfaWQsICJcMTQzXDE1NFx4NjFceDczXDE2M1wxMzdceDY5XDE0NCIgPT4gJGNsYXNzX2lkLCAiXDE0MVwxNDNcMTY0XHg1Zlx4NjlceDY0IiA9PiAkYWN0X2lkKTsgUnVicmljR3JhZGVzOjp3aGVyZSgkY29uZGl0aW9ucyktPnVwZGF0ZShhcnJheSgiXDE2NFx4NmZceDc0XDE0MVwxNTRceDVmXDE2M1x4NjNceDZmXDE2Mlx4NjUiID0+ICRzY29yZSwgIlwxNjJceDYxXHg2ZVx4NmIiID0+ICcnLCAiXHg2Nlx4NjVceDY1XDE0NFx4NjJceDYxXDE0M1wxNTMiID0+ICRmZWVkYmFjaywgIlx4NjFcMTQzXDE2NFx4NWZcMTU2XHg2MVwxNTVceDY1IiA9PiAkYWN0X25hbWUsICJcMTQzXHg3MlwxNDVceDYxXHg3NFwxNDVceDY0XDEzN1wxNDJcMTcxIiA9PiBTZXNzaW9uOjpnZXQoIlwxNTZceDYxXDE1NVx4NjUiKSkpOyBmb3JlYWNoICgkdG90YWxQYXJ0IGFzICR0cGluZGV4ID0+ICR0cCkgeyAkc2F2ZVBhcnQgPSBuZXcgUGFydEdyYWRlcygpOyAkc2F2ZVBhcnQtPnVfaWQgPSAkdV9pZDsgJHNhdmVQYXJ0LT5pZF9ydWJyaWMgPSAkcl9pZDsgJHNhdmVQYXJ0LT5pZF9wYXJ0ID0gJHRwaW5kZXg7ICRzYXZlUGFydC0+YWN0X2lkID0gJGFjdF9pZDsgJHNhdmVQYXJ0LT50b3RhbF9wdHMgPSAkdHA7ICRzYXZlUGFydC0+YXZnX3B0cyA9IG51bGw7ICRzYXZlUGFydC0+d2VpZ2h0ZWRfYXZnID0gbnVsbDsgJHNhdmVQYXJ0LT5zYXZlKCk7IH0gcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NzNceDc1XHg2M1wxNDNceDY1XHg3M1x4NzMiID0+ICJcMTA3XDE2Mlx4NjFceDY0XHg2NVx4MjBcMTU3XDE0Nlx4MjBcMTIzXHg3NFwxNjVceDY0XHg2NVwxNTZcMTY0XHgyMFwxNjBceDc1XDE0Mlx4NmNceDY5XDE2M1x4NjhcMTQ1XHg2NFx4MjBceDczXDE2NVwxNDNceDYzXHg2NVwxNjNceDczXDE0NlwxNjVcMTU0XHg2Y1wxNzFceDJlIikpOyB9IH0gfSBwdWJsaWMgZnVuY3Rpb24gZ3JhZGVQcmV2aWV3KCRydWJyaWNfaWQsICRjbGFzc19pZCwgJGFjdF9pZCwgJHVzZXJfaWQpIHsgJHJ1YnJpY0RhdGEgPSBSdWJyaWNHcmFkZXM6OmpvaW4oIlwxNjJceDc1XHg2Mlx4NzJceDY5XDE0M1x4NzMiLCAiXDE2MlwxNjVceDYyXDE2Mlx4NjlcMTQzXDEzN1wxNDdcMTYyXHg2MVwxNDRceDY1XDE2M1w1NlwxNTFcMTQ0XHg1ZlwxNjJceDc1XHg2Mlx4NzJcMTUxXDE0MyIsICJcNzUiLCAiXHg3Mlx4NzVcMTQyXDE2Mlx4NjlcMTQzXHg3M1x4MmVcMTUxXHg2NCIpLT53aGVyZSgiXHg3Mlx4NzVcMTQyXHg3MlwxNTFcMTQzXDE2M1w1Nlx4NjlceDY0IiwgJHJ1YnJpY19pZCktPndoZXJlKCJceDcyXDE2NVwxNDJceDcyXDE1MVwxNDNcMTM3XHg2N1wxNjJcMTQxXHg2NFx4NjVceDczXDU2XDE2NVx4NWZceDY5XDE0NCIsICR1c2VyX2lkKS0+d2hlcmUoIlx4NjFceDYzXHg3NFwxMzdceDY5XDE0NCIsICRhY3RfaWQpLT5nZXQoKTsgJHBhcnREYXRhID0gUGFydEdyYWRlczo6am9pbigiXHg3MlwxNjVceDYyXHg3MlwxNTFceDYzXDEzN1wxNjBceDYxXHg3MlwxNjRcMTYzIiwgZnVuY3Rpb24gKCRqb2luKSB7ICRqb2luLT5vbigiXDE2MFwxNDFceDcyXHg3NFwxMzdceDY3XHg3Mlx4NjFcMTQ0XDE0NVx4NzNcNTZceDY5XDE0NFx4NWZceDcyXDE2NVx4NjJcMTYyXHg2OVx4NjMiLCAiXHgzZCIsICJcMTYyXDE2NVx4NjJceDcyXDE1MVx4NjNcMTM3XDE2MFx4NjFceDcyXDE2NFx4NzNceDJlXDE2Mlx4NzVcMTQyXDE2Mlx4NjlcMTQzXDEzN1x4NjlceDY0IiktPm9uKCJcMTYwXDE0MVwxNjJcMTY0XHg1ZlwxNDdcMTYyXHg2MVwxNDRcMTQ1XHg3M1x4MmVceDY5XDE0NFwxMzdceDcwXHg2MVx4NzJceDc0IiwgIlw3NSIsICJcMTYyXDE2NVwxNDJceDcyXHg2OVwxNDNcMTM3XDE2MFx4NjFcMTYyXHg3NFx4NzNceDJlXHg2OVx4NjQiKTsgfSktPndoZXJlKCJceDcyXHg3NVx4NjJcMTYyXDE1MVwxNDNcMTM3XHg3MFwxNDFceDcyXHg3NFx4NzNceDJlXDE2Mlx4NzVceDYyXDE2Mlx4NjlceDYzXDEzN1x4NjlceDY0IiwgJHJ1YnJpY19pZCktPndoZXJlKCJcMTYwXDE0MVwxNjJcMTY0XDEzN1wxNDdceDcyXDE0MVx4NjRcMTQ1XHg3M1w1NlwxNjVcMTM3XDE1MVwxNDQiLCAkdXNlcl9pZCktPndoZXJlKCJceDYxXDE0M1x4NzRcMTM3XDE1MVx4NjQiLCAkYWN0X2lkKS0+Z2V0KCk7ICRjcml0ZXJpYURhdGEgPSBEQjo6dGFibGUoIlwxNjJcMTY1XHg2MlwxNjJceDY5XHg2M1x4NWZceDYzXDE2Mlx4NjlcMTY0XHg2NVwxNjJcMTUxXHg2MVwxNjMiKS0+d2hlcmUoIlx4NzJceDc1XHg2Mlx4NzJceDY5XHg2M1x4NWZcMTUxXHg2NCIsICRydWJyaWNfaWQpLT5nZXQoKTsgJHNjb3JlRGF0YSA9IERCOjp0YWJsZSgiXHg2M1wxNjJcMTUxXDE2NFx4NjVcMTYyXDE1MVx4NjFcMTM3XHg2N1x4NzJceDYxXDE0NFwxNDVcMTYzIiktPndoZXJlKCJcMTUxXDE0NFwxMzdceDcyXHg3NVx4NjJcMTYyXHg2OVx4NjMiLCAkcnVicmljX2lkKS0+d2hlcmUoIlx4NzVceDVmXDE1MVwxNDQiLCAkdXNlcl9pZCktPndoZXJlKCJceDYxXHg2M1wxNjRceDVmXDE1MVx4NjQiLCAkYWN0X2lkKS0+Z2V0KCk7ICRjbGFzc0RhdGEgPSBDbGFzc2VzOjpmaW5kKCRjbGFzc19pZCk7ICR1c2VyRGF0YSA9IFVzZXJzOjpmaW5kKCR1c2VyX2lkKTsgJGNoZWNrVXNlcklEQ2xhc3MgPSBDbGFzc2VzQXNpZ246OndoZXJlKCJcMTQzXDE1NFx4NjFcMTYzXHg3M1x4NWZcMTUxXHg2NCIsICRjbGFzc19pZCktPndoZXJlKCJcMTY1XDE2M1wxNDVceDcyXDEzN1wxNTFceDY0IiwgJHVzZXJfaWQpLT5maXJzdCgpOyBpZiAoISRjbGFzc0RhdGEpIHsgcmV0dXJuIHJlZGlyZWN0KCJcNTdcMTQ0XHg2MVx4NzNcMTUwXHg2Mlx4NmZcMTQxXHg3MlwxNDQiKTsgfSBlbHNlIHsgaWYgKCEkY2hlY2tVc2VySURDbGFzcykgeyByZXR1cm4gcmVkaXJlY3QoIlx4MmZcMTQ0XHg2MVwxNjNceDY4XHg2MlwxNTdcMTQxXHg3Mlx4NjQiKTsgfSBlbHNlIHsgaWYgKCEkcnVicmljRGF0YS0+aXNFbXB0eSgpKSB7IHJldHVybiB2aWV3KCJceDczXDE3MVx4NzNcMTY0XDE0NVwxNTVceDcwXHg2MVx4NjdcMTQ1XHg3M1x4MmVceDY3XDE2Mlx4NjFceDY0XDE0NVw1NVwxNjBceDcyXHg2NVx4NzZceDY5XDE0NVwxNjciLCBhcnJheSgiXDE0NFwxNDFceDc0XDE0MSIgPT4gJHJ1YnJpY0RhdGEsICJcMTYyXHg3NVx4NjJcMTYyXDE1MVx4NjNcMTM3XDE1MVx4NjQiID0+ICRydWJyaWNfaWQsICJceDcwXDE0MVwxNjJceDc0XHg0NFwxNDFcMTY0XHg2MSIgPT4gJHBhcnREYXRhLCAiXHg2M1wxNjJcMTUxXDE2NFwxNDVceDcyXHg2OVwxNDFcMTA0XDE0MVwxNjRcMTQxIiA9PiAkY3JpdGVyaWFEYXRhLCAiXDE2M1wxNDNcMTU3XHg3MlwxNDVcMTA0XHg2MVwxNjRcMTQxIiA9PiAkc2NvcmVEYXRhLCAiXDE0Nlx4NzVcMTU0XDE1NFx4NmVcMTQxXDE1NVwxNDUiID0+ICR1c2VyRGF0YS0+bmFtZSwgIlx4NzNceDc0XHg3NVx4NjRcMTQ1XDE1Nlx4NzRceDQ5XDEwNCIgPT4gJHVzZXJEYXRhLT5pZCwgIlwxNDNcMTU0XHg2MVwxNjNceDczXHg2ZVx4NjFcMTU1XDE0NSIgPT4gJGNsYXNzRGF0YS0+Y2xhc3NuYW1lKSk7IH0gZWxzZSB7IHJldHVybiByZWRpcmVjdCgiXHgyZlwxNDRcMTQxXDE2M1wxNTBcMTQyXDE1N1wxNDFcMTYyXDE0NCIpOyB9IH0gfSB9IHB1YmxpYyBmdW5jdGlvbiBDbGFzc0VkaXRGZXRjaCgpIHsgaWYgKFNlc3Npb246OmdldCgiXDE0MVwxNDRceDZkXDE1MVwxNTYiKSA9PSAiXDE0MVwxNDRcMTU1XDE1MVx4NmUiIHx8IFNlc3Npb246OmdldCgiXHg2MVwxNDRcMTU1XDE1MVwxNTYiKSA9PSAiXDE1NFx4NmZceDc3XDEzN1wxNDFcMTQ0XDE1NVx4NjlcMTU2IikgeyAkQ2xhc3NEYXRhID0gREI6OnRhYmxlKCJceDYzXDE1NFwxNDFceDczXHg3M1x4NjVcMTYzIiktPndoZXJlKCJcMTYzXDE2NFwxNDFceDc0XHg3NVx4NzMiLCAnJyktPmdldCgpOyB9IGVsc2VpZiAoU2Vzc2lvbjo6Z2V0KCJcMTQxXHg2NFwxNTVcMTUxXDE1NiIpID09ICJcMTYwXHg3MlwxNTdceDY2IikgeyAkQ2xhc3NEYXRhID0gREI6OnRhYmxlKCJcMTQzXDE1NFwxNDFceDczXHg3M1wxNDVceDczIiktPndoZXJlKCJceDZmXHg3N1wxNTZcMTQ1XHg3MlwxMzdcMTUxXHg2NCIsIFNlc3Npb246OmdldCgiXDE2NVwxNjNceDY1XHg3MlwxNTZcMTQxXHg2ZFwxNDUiKSktPndoZXJlKCJcMTYzXHg3NFx4NjFceDc0XHg3NVx4NzMiLCAnJyktPmdldCgpOyB9IHJldHVybiBEYXRhVGFibGVzOjpvZigkQ2xhc3NEYXRhKS0+YWRkSW5kZXhDb2x1bW4oKS0+YWRkQ29sdW1uKCJceDUzXDE0M1wxNTBcMTQ1XHg2NFwxNjVcMTU0XDE0NSIsIGZ1bmN0aW9uICgkcm93KSB7ICRjbGFzc190aW1lID0gREI6OnRhYmxlKCJceDc3XHg2NVx4NjVcMTUzXHg1ZlwxNDRceDYxXHg3OVx4NzMiKS0+d2hlcmUoIlx4NjNcMTU0XDE0MVwxNjNceDczXDEzN1wxNTFceDY0IiwgJHJvdy0+c2NoZWR1bGVfaWQpLT5nZXQoKTsgJGRhdGFQYXNzZWQgPSBhcnJheSgpOyAkY3VycmVudFMgPSAnJzsgJGN1cnJlbnRFID0gJyc7IGZvcmVhY2ggKCRjbGFzc190aW1lIGFzICR0aW1lRGF0YSkgeyAkdGltZVMgPSBkYXRlKCJceDY4XDcyXHg2OVx4NDEiLCBzdHJ0b3RpbWUoJHRpbWVEYXRhLT5zdGFydCkpOyAkdGltZUUgPSBkYXRlKCJcMTUwXHgzYVx4NjlcMTAxIiwgc3RydG90aW1lKCR0aW1lRGF0YS0+ZW5kKSk7ICRjdXJyZW50UyA9ICR0aW1lUzsgJGN1cnJlbnRFID0gJHRpbWVFOyAkZGF5ID0gJHRpbWVEYXRhLT5kYXk7IHN3aXRjaCAoJGRheSkgeyBjYXNlICJceDRkXDE1N1x4NmVcMTQ0XDE0MVwxNzEiOiAkZGF5U3RyaW5nID0gIlx4NGQiOyBicmVhazsgY2FzZSAiXDEyNFx4NzVcMTQ1XHg3M1x4NjRcMTQxXHg3OSI6ICRkYXlTdHJpbmcgPSAiXHg1NCI7IGJyZWFrOyBjYXNlICJceDU3XHg2NVx4NjRcMTU2XHg2NVwxNjNcMTQ0XHg2MVx4NzkiOiAkZGF5U3RyaW5nID0gIlx4NTciOyBicmVhazsgY2FzZSAiXHg1NFwxNTBceDc1XHg3MlwxNjNceDY0XDE0MVx4NzkiOiAkZGF5U3RyaW5nID0gIlwxMjRcMTEwIjsgYnJlYWs7IGNhc2UgIlx4NDZcMTYyXDE1MVx4NjRceDYxXDE3MSI6ICRkYXlTdHJpbmcgPSAiXDEwNiI7IGJyZWFrOyBjYXNlICJceDUzXHg2MVwxNjRcMTY1XDE2Mlx4NjRceDYxXDE3MSI6ICRkYXlTdHJpbmcgPSAiXDEyM1x4NjFcMTY0IjsgYnJlYWs7IGNhc2UgIlx4NTNcMTY1XHg2ZVx4NjRcMTQxXHg3OSI6ICRkYXlTdHJpbmcgPSAiXHg1MyI7IGJyZWFrOyB9ICRkYXRhUGFzc2VkW10gPSAnJyAuICRkYXlTdHJpbmc7IH0gJGRhdGFQYXNzZWRbXSA9ICJceDIwIiAuICRjdXJyZW50UyAuICJcNDBcNTVcNDAiIC4gJGN1cnJlbnRFIC4gIlw0MCI7IGlmICgkZGF0YVBhc3NlZCkgeyByZXR1cm4gJGRhdGFQYXNzZWQ7IH0gfSktPmFkZENvbHVtbigiXDE2MlwxNjVceDYyXDE2Mlx4NjlceDYzIiwgZnVuY3Rpb24gKCRyb3cpIHsgJHJ1YnJpY05hbWUgPSBEQjo6dGFibGUoIlwxNjJceDc1XDE0MlwxNjJcMTUxXDE0M1x4NzMiKS0+d2hlcmUoIlx4NjlceDY0IiwgJHJvdy0+cnVicmljX2Fzc2lnbmVkKS0+dmFsdWUoIlx4NzJceDc1XHg2MlwxNjJcMTUxXHg2M1x4NWZcMTU2XDE0MVx4NmRceDY1Iik7IHJldHVybiAiXHgzY1x4NzRceDY0XDc2XHgyMHskcnVicmljTmFtZX1cNDBceDNjXHgyZlwxNjRcMTQ0XDc2IjsgfSktPmFkZENvbHVtbigiXDE0MVwxNDNceDc0XDE1MVx4NmZcMTU2IiwgZnVuY3Rpb24gKCRyb3cpIHsgaWYgKFNlc3Npb246OmdldCgiXHg2MVwxNDRcMTU1XHg2OVx4NmUiKSA9PSAiXDE0MVx4NjRceDZkXHg2OVwxNTYiIHx8IFNlc3Npb246OmdldCgiXHg2MVwxNDRceDZkXHg2OVwxNTYiKSA9PSAiXHg2Y1x4NmZcMTY3XDEzN1x4NjFcMTQ0XHg2ZFwxNTFcMTU2IikgeyAkYnRuID0gIlx4M2NcMTQ0XDE1MVwxNjZcNDBceDYzXDE1NFwxNDFcMTYzXDE2M1x4M2RceDIyXHg2MlwxNjRceDZlXHgyZFwxNDdcMTYyXHg2Zlx4NzVcMTYwXDQwXDE0NFx4NzJcMTU3XDE2MFwxNTRceDY1XDE0Nlx4NzRcNDJceDNlXHhhXDQwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBcNDBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBceDNjXHg2Mlx4NzVceDc0XDE2NFx4NmZcMTU2XHgyMFwxNjRceDc5XHg3MFx4NjVceDNkXDQyXDE0MlwxNjVcMTY0XDE2NFx4NmZceDZlXHgyMlw0MFx4NjNcMTU0XDE0MVx4NzNcMTYzXHgzZFx4MjJcMTQyXDE2NFx4NmVceDIwXDE0MlwxNjRceDZlXHgyZFwxNjBceDcyXHg2OVwxNTVcMTQxXHg3Mlx4NzlceDIwXDE0NFwxNjJceDZmXHg3MFx4NjRceDZmXDE2N1x4NmVceDJkXDE2NFwxNTdcMTQ3XDE0N1wxNTRceDY1XDQyXDQwXDE0NFwxNDFceDc0XHg2MVx4MmRcMTY0XDE1N1x4NjdceDY3XHg2Y1x4NjVcNzVcNDJcMTQ0XHg3Mlx4NmZcMTYwXHg2NFx4NmZcMTY3XHg2ZVx4MjJcNDBceDYxXHg3MlwxNTFcMTQxXHgyZFwxNTBcMTQxXHg3M1wxNjBcMTU3XDE2MFwxNjVcMTYwXDc1XDQyXHg3NFwxNjJcMTY1XHg2NVw0Mlw0MFwxNDFceDcyXDE1MVx4NjFcNTVceDY1XDE3MFx4NzBceDYxXDE1Nlx4NjRceDY1XDE0NFx4M2RceDIyXDE0Nlx4NjFcMTU0XDE2M1wxNDVceDIyXDc2XDEyXDQwXDQwXHgyMFw0MFw0MFw0MFw0MFw0MFx4MjBcNDBceDIwXHgyMFw0MFw0MFw0MFw0MFx4NTNceDY1XDE2NFx4NzRceDY5XHg2ZVx4NjdcMTYzXHhhXHgyMFw0MFx4MjBceDIwXHgyMFx4MjBceDIwXDQwXDQwXHgyMFw0MFw0MFw0MFx4MjBceDIwXHgyMFx4M2NcNTdceDYyXHg3NVwxNjRceDc0XHg2ZlwxNTZceDNlXDEyXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFw0MFw0MFw0MFw0MFx4MjBcNDBcNDBcNzRcMTQ0XDE1MVwxNjZcNDBcMTQzXHg2Y1wxNDFceDczXDE2M1x4M2RcNDJceDY0XHg3Mlx4NmZcMTYwXDE0NFx4NmZcMTY3XHg2ZVw1NVx4NmRcMTQ1XDE1NlwxNjVceDIwXDE0NFx4NzJceDZmXDE2MFx4NmNceDY1XHg2Nlx4NzRceDIyXDc2XHhhXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBcNDBcNDBceDIwXHgyMFw0MFw0MFx4MjBcNDBcNDBceDIwXHgyMFw0MFx4M2NceDYxXDQwXHg2M1x4NmNceDYxXDE2M1x4NzNcNzVcNDJcMTQ0XHg3MlwxNTdceDcwXHg2NFx4NmZcMTY3XHg2ZVw1NVx4NjlcMTY0XDE0NVwxNTVcNDBcMTAzXDE1NFx4NjFceDczXHg3M1wxMDVcMTQ0XDE1MVx4NzRceDQyXDE2NFx4NmVcNDJceDIwXHg2NFwxNDFcMTY0XHg2MVw1NVwxNTFceDY0XHgzZFx4MjIiIC4gJHJvdy0+aWQgLiAiXDQyXHgyMFwxNTBcMTYyXHg2NVx4NjZcNzVcNDJcNDNcNDJcNzZceDQ1XHg2NFx4NjlcMTY0XHgyMFwxMDNcMTU0XHg2MVwxNjNcMTYzXDQwXDEyM1x4NjNceDY4XHg2NVx4NjRcMTY1XDE1NFx4NjVceDNjXHgyZlwxNDFceDNlXDEyXDQwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFx4MjBcNDBceDIwXHgyMFx4MjBcNDBceDIwXDQwXHgyMFx4MjBcNDBceDNjXDE0MVx4MjBceDYzXDE1NFx4NjFcMTYzXDE2M1w3NVw0MlwxNDRcMTYyXHg2ZlwxNjBceDY0XHg2Zlx4NzdcMTU2XHgyZFx4NjlcMTY0XDE0NVwxNTVcNDBceDQxXDE0NFwxNDRceDRlXDE0NVwxNjdcMTA1XHg3OFx4NzBcMTQ1XDE2Mlx4NjlceDZkXHg2NVwxNTZcMTY0XDQyXDQwXHg2OFx4NzJceDY1XDE0Nlx4M2RcNDJcNDNcNDJceDIwXHg2NFx4NjFceDc0XHg2MVx4MmRceDY5XDE0NFx4M2RceDIyIiAuICRyb3ctPmlkIC4gIlx4MjJcNzZcMTI1XDE2MFwxNTRceDZmXDE0MVx4NjRceDIwXDExNlx4NjVceDc3XDQwXDEwNVwxNzBcMTYwXHg2NVx4NzJcMTUxXDE1NVx4NjVceDZlXHg3NFx4M2NceDJmXHg2MVx4M2VceGFceDIwXHgyMFx4MjBcNDBceDIwXDQwXDQwXHgyMFw0MFw0MFw0MFw0MFw0MFw0MFw0MFx4MjBceDIwXHgyMFw3NFx4NjFcNDBcMTQzXDE1NFx4NjFcMTYzXDE2M1w3NVx4MjJcMTQ0XHg3MlwxNTdceDcwXHg2NFwxNTdcMTY3XDE1Nlx4MmRceDY5XDE2NFwxNDVceDZkXHgyMlx4MjBcMTUwXHg3Mlx4NjVcMTQ2XHgzZFx4MjJcNTdcMTQ1XDE1Nlx4NzJcMTU3XDE1NFwxNTRcMTQ1XDE0NFw1NVx4NmNcMTUxXHg3M1x4NzRceDJmIiAuICRyb3ctPmlkIC4gIlw0Mlw0MFx4NjRceDYxXDE2NFwxNDFceDJkXDE1MVwxNDRceDNkXDQyIiAuICRyb3ctPmlkIC4gIlx4MjJceDIwXDE2NFx4NjFcMTYyXDE0N1x4NjVcMTY0XDQwXDc1XDQwXDQyXDEzN1x4NjJceDZjXDE0MVx4NmVceDZiXDQyXDQwXHgzZVwxMjZcMTUxXDE0NVwxNjdceDIwXHg0MVx4NjNcMTQzXHg2ZlwxNjVceDZlXDE2NFx4NzNceDIwXDEwNVx4NmVcMTYyXDE1N1wxNTRcMTU0XDE0NVx4NjRcNzRceDJmXHg2MVx4M2VcMTJceDIwXDQwXDQwXHgyMFw0MFw0MFx4MjBceDIwXHgyMFw0MFx4MjBcNDBceDIwXDQwXDQwXHgyMFw0MFw0MFw3NFwxNDFcNDBceDYzXHg2Y1x4NjFceDczXDE2M1x4M2RcNDJceDY0XHg3MlwxNTdceDcwXDE0NFwxNTdcMTY3XHg2ZVx4MmRceDY5XHg3NFwxNDVcMTU1XHgyMFx4NzZcMTUxXHg2NVx4NzdcMTA1XHg3OFx4NzBcMTQ1XDE2Mlx4NjlceDZkXDE0NVwxNTZcMTY0XDE2M1x4MjJcNDBcMTUwXDE2MlwxNDVceDY2XDc1XDQyXDQzXHgyMlx4MjBcMTQ0XDE0MVx4NzRceDYxXDU1XDE1MVwxNDRcNzVceDIyIiAuICRyb3ctPmlkIC4gIlw0Mlw3Nlx4NTZceDY5XDE0NVx4NzdceDIwXHg0M1wxNTRceDYxXDE2M1wxNjNcNDBcMTA1XHg3OFx4NzBceDY1XHg3MlwxNTFcMTU1XDE0NVwxNTZcMTY0XDE2M1x4M2NcNTdceDYxXHgzZVwxMlx4MjBceDIwXDQwXDQwXDQwXDQwXHgyMFw0MFx4MjBcNDBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFw0MFx4MjBceDNjXHg2MVx4MjBcMTQzXDE1NFx4NjFceDczXDE2M1w3NVx4MjJcMTQ0XHg3MlwxNTdcMTYwXDE0NFx4NmZcMTY3XDE1Nlx4MmRceDY5XHg3NFwxNDVceDZkXHgyMFx4NzJceDY1XDE1NVwxNTdceDc2XHg2NVx4NTJceDc1XDE0MlwxNjJceDY5XHg2M1x4MjJceDIwXDE1MFwxNjJcMTQ1XHg2Nlw3NVx4MjJcNDNcNDJceDIwXHg2NFx4NjFceDc0XHg2MVw1NVwxNTFceDY0XHgzZFw0MiIgLiAkcm93LT5pZCAuICJceDIyXDc2XDEyMlwxNDVceDZkXDE1N1x4NzZcMTQ1XHgyMFwxMjJceDc1XHg2Mlx4NzJcMTUxXDE0M1x4M2NcNTdceDYxXHgzZVwxMlx4MjBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFw0MFx4MjBcNDBceDIwXDQwXDQwXHgyMFw0MFx4MjBcNDBcNDBceDNjXHg2MVx4MjBcMTQzXHg2Y1x4NjFceDczXHg3M1w3NVw0Mlx4NjRcMTYyXDE1N1x4NzBceDY0XDE1N1wxNjdceDZlXDU1XDE1MVx4NzRcMTQ1XDE1NVx4MjBceDYxXHg3Mlx4NjNcMTUwXHg2OVwxNjZceDY1XDEwMlx4NzRceDZlXHgyMlx4MjBcMTUwXHg3MlwxNDVcMTQ2XHgzZFw0Mlx4MjNcNDJceDIwXHg2NFwxNDFcMTY0XDE0MVx4MmRcMTUxXDE0NFw3NVx4MjIiIC4gJHJvdy0+aWQgLiAiXHgyMlx4M2VcMTAxXHg3MlwxNDNcMTUwXHg2OVx4NzZcMTQ1XHgyMFx4NDNceDZjXHg2MVwxNjNcMTYzXDc0XDU3XHg2MVw3Nlx4YVx4MjBcNDBcNDBcNDBcNDBcNDBceDIwXHgyMFw0MFw0MFw0MFw0MFw0MFx4MjBcNDBceDIwXHgyMFx4MjBcNzRcMTQxXDQwXDE0M1wxNTRceDYxXHg3M1wxNjNceDNkXHgyMlx4NjRcMTYyXHg2Zlx4NzBceDY0XHg2Zlx4NzdcMTU2XHgyZFx4NjlcMTY0XDE0NVx4NmRcNDBcMTU1XHg2MVwxNjNcMTYzXDEyNVx4NmVceDY1XHg2ZVx4NzJceDZmXDE1NFwxNTRcMTAyXDE2NFwxNTZcNDJcNDBceDY4XDE2MlwxNDVceDY2XHgzZFx4MjJceDIzXDQyXDQwXDE0NFx4NjFceDc0XDE0MVx4MmRcMTUxXHg2NFw3NVw0MiIgLiAkcm93LT5pZCAuICJcNDJceDNlXDExNVx4NjFcMTYzXHg3M1x4MjBceDU1XDE1NlwxNDVceDZlXHg3Mlx4NmZcMTU0XDE1NFwxNTVceDY1XHg2ZVx4NzRcNzRcNTdcMTQxXHgzZVwxMlx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFw0MFw0MFx4MjBceDIwXDQwXDQwXDQwXDc0XDU3XDE0NFwxNTFcMTY2XHgzZVwxMlx4MjBcNDBcNDBcNDBcNDBcNDBceDIwXHgyMFw0MFw0MFx4MjBceDIwXHgyMFw0MFx4M2NcNTdceDY0XDE1MVwxNjZcNzYiOyB9IGVsc2UgeyAkYnRuID0gIlx4M2NceDY0XHg2OVx4NzZcNDBceDYzXDE1NFx4NjFcMTYzXDE2M1w3NVx4MjJceDYyXDE2NFwxNTZcNTVceDY3XHg3Mlx4NmZcMTY1XDE2MFx4MjBceDY0XHg3MlwxNTdceDcwXDE1NFx4NjVceDY2XDE2NFw0Mlx4M2VcMTJceDIwXDQwXHgyMFx4MjBcNDBcNDBcNDBcNDBcNDBcNDBcNDBceDIwXHgyMFx4MjBcNDBcNDBceDNjXDE0MlwxNjVceDc0XHg3NFx4NmZceDZlXDQwXDE2NFwxNzFcMTYwXDE0NVx4M2RceDIyXHg2MlwxNjVceDc0XDE2NFwxNTdcMTU2XHgyMlx4MjBcMTQzXHg2Y1x4NjFceDczXHg3M1x4M2RceDIyXDE0MlwxNjRcMTU2XDQwXHg2Mlx4NzRcMTU2XDU1XHg3MFx4NzJcMTUxXHg2ZFx4NjFcMTYyXHg3OVx4MjBceDY0XHg3MlwxNTdcMTYwXHg2NFwxNTdceDc3XHg2ZVw1NVx4NzRceDZmXDE0N1wxNDdcMTU0XDE0NVx4MjJcNDBceDY0XDE0MVx4NzRceDYxXDU1XDE2NFwxNTdcMTQ3XDE0N1x4NmNcMTQ1XDc1XDQyXDE0NFwxNjJcMTU3XHg3MFwxNDRceDZmXDE2N1wxNTZcNDJceDIwXDE0MVwxNjJceDY5XDE0MVw1NVwxNTBceDYxXDE2M1x4NzBcMTU3XDE2MFx4NzVcMTYwXHgzZFx4MjJcMTY0XDE2Mlx4NzVcMTQ1XDQyXDQwXHg2MVx4NzJcMTUxXHg2MVw1NVx4NjVcMTcwXDE2MFx4NjFcMTU2XHg2NFx4NjVceDY0XHgzZFw0MlwxNDZceDYxXHg2Y1x4NzNcMTQ1XDQyXDc2XDEyXDQwXDQwXHgyMFx4MjBcNDBceDIwXDQwXHgyMFw0MFw0MFx4MjBceDIwXDQwXHgyMFw0MFx4MjBceDUzXDE0NVx4NzRceDc0XHg2OVx4NmVceDY3XDE2M1x4YVx4MjBcNDBceDIwXHgyMFx4MjBcNDBcNDBceDIwXDQwXHgyMFx4MjBcNDBceDIwXDQwXHgyMFw0MFx4M2NceDJmXHg2MlwxNjVceDc0XHg3NFwxNTdcMTU2XDc2XDEyXDQwXDQwXHgyMFw0MFx4MjBcNDBcNDBcNDBceDIwXDQwXHgyMFx4MjBcNDBceDIwXDQwXDQwXDc0XHg2NFx4NjlceDc2XHgyMFwxNDNceDZjXDE0MVx4NzNcMTYzXDc1XDQyXHg2NFwxNjJceDZmXDE2MFx4NjRceDZmXDE2N1wxNTZcNTVcMTU1XDE0NVwxNTZceDc1XDQwXHg2NFwxNjJceDZmXDE2MFx4NmNcMTQ1XDE0NlwxNjRcNDJcNzZceGFcNDBcNDBcNDBcNDBcNDBceDIwXHgyMFx4MjBcNDBcNDBcNDBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBceDNjXHg2MVx4MjBceDYzXHg2Y1x4NjFceDczXDE2M1x4M2RceDIyXDE0NFwxNjJceDZmXDE2MFwxNDRcMTU3XHg3N1wxNTZceDJkXHg2OVwxNjRcMTQ1XHg2ZFw0MFwxMDNcMTU0XHg2MVx4NzNceDczXHg0NVx4NjRcMTUxXHg3NFx4NDJceDc0XDE1Nlx4MjJceDIwXHg2NFwxNDFceDc0XHg2MVw1NVx4NjlceDY0XHgzZFx4MjIiIC4gJHJvdy0+aWQgLiAiXDQyXDQwXDE1MFx4NzJceDY1XDE0Nlx4M2RceDIyXDQzXHgyMlx4M2VcMTA1XHg2NFwxNTFceDc0XDQwXHg0M1wxNTRcMTQxXHg3M1wxNjNcNDBcMTIzXDE0M1x4NjhceDY1XDE0NFx4NzVceDZjXDE0NVw3NFx4MmZceDYxXDc2XDEyXDQwXDQwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXDQwXDQwXDQwXHgyMFw0MFx4MjBceDIwXDQwXHgyMFw0MFw3NFx4NjFceDIwXDE0M1x4NmNceDYxXDE2M1x4NzNcNzVceDIyXHg2NFx4NzJceDZmXHg3MFx4NjRceDZmXHg3N1x4NmVcNTVceDY5XDE2NFx4NjVcMTU1XHgyMFwxMDFceDY0XDE0NFx4NGVcMTQ1XDE2N1wxMDVcMTcwXHg3MFwxNDVceDcyXHg2OVwxNTVcMTQ1XHg2ZVx4NzRcNDJceDIwXHg2OFwxNjJcMTQ1XHg2Nlw3NVx4MjJcNDNcNDJcNDBceDY0XHg2MVwxNjRcMTQxXHgyZFx4NjlceDY0XDc1XDQyIiAuICRyb3ctPmlkIC4gIlx4MjJceDNlXDEyNVx4NzBcMTU0XHg2Zlx4NjFcMTQ0XDQwXHg0ZVx4NjVcMTY3XDQwXHg0ZFwxNTdcMTQ0XDE2NVwxNTRceDY1XDc0XDU3XHg2MVx4M2VceGFceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBcNDBceDIwXHgyMFx4MjBcNDBceDIwXDQwXHgyMFw3NFwxNDFceDIwXHg2M1wxNTRcMTQxXDE2M1wxNjNceDNkXHgyMlx4NjRcMTYyXHg2ZlwxNjBceDY0XDE1N1x4NzdceDZlXDU1XHg2OVwxNjRceDY1XDE1NVw0MFx4NjNcMTYyXHg2NVwxNDFcMTY0XDE0NVwxMTZceDY1XDE2N1x4NDVceDc4XHg3MFwxNDVcMTYyXHg2OVwxNTVcMTQ1XHg2ZVx4NzRcNDJceDIwXHg2OFwxNjJcMTQ1XHg2Nlx4M2RcNDJceDIzXHgyMlx4MjBceDY0XDE0MVwxNjRcMTQxXHgyZFx4NjlceDY0XHgzZFx4MjIiIC4gJHJvdy0+aWQgLiAiXDQyXHgzZVwxMDNcMTYyXDE0NVx4NjFceDc0XHg2NVx4MjBcMTE2XHg2NVx4NzdceDIwXHg0ZFwxNTdceDY0XDE2NVx4NmNceDY1XHgzY1x4MmZceDYxXHgzZVwxMlx4MjBcNDBcNDBceDIwXDQwXDQwXDQwXDQwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFx4MjBcNDBceDIwXDQwXDc0XDE0MVx4MjBcMTQzXHg2Y1wxNDFcMTYzXDE2M1w3NVw0MlwxNDRcMTYyXHg2ZlwxNjBceDY0XDE1N1x4NzdceDZlXDU1XHg2OVx4NzRcMTQ1XHg2ZFx4MjBcMTY2XDE1MVwxNDVceDc3XDEwNVwxNzBcMTYwXHg2NVx4NzJcMTUxXHg2ZFwxNDVceDZlXDE2NFx4NzNcNDJcNDBceDY4XHg3MlwxNDVcMTQ2XHgzZFx4MjJceDIzXHgyMlw0MFwxNDRceDYxXDE2NFwxNDFcNTVceDY5XHg2NFx4M2RcNDIiIC4gJHJvdy0+aWQgLiAiXHgyMlx4M2VceDU2XHg2OVwxNDVceDc3XDQwXHg0M1x4NmNcMTQxXDE2M1x4NzNcNDBceDQ1XDE3MFx4NzBcMTQ1XDE2MlwxNTFceDZkXHg2NVx4NmVcMTY0XDE2M1x4M2NceDJmXDE0MVw3NlwxMlx4MjBceDIwXDQwXDQwXDQwXHgyMFx4MjBcNDBcNDBceDIwXDQwXDQwXHgyMFx4MjBceDIwXHgyMFw3NFx4MmZcMTQ0XHg2OVwxNjZcNzZceGFcNDBcNDBcNDBceDIwXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBcNzRcNTdceDY0XDE1MVwxNjZcNzYiOyB9IHJldHVybiAkYnRuOyB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXHg2MVx4NjNceDc0XDE1MVwxNTdceDZlIiwgIlx4NzJcMTY1XHg2Mlx4NzJceDY5XDE0MyIsICJcMTIzXDE0M1wxNTBcMTQ1XDE0NFwxNjVcMTU0XDE0NSIpKS0+bWFrZSh0cnVlKTsgfSBwdWJsaWMgZnVuY3Rpb24gUnVicmljQm9va0ZldGNoKCkgeyAkUnVicmljQm9vayA9IERCOjp0YWJsZSgiXHg3Mlx4NzVceDYyXDE2MlwxNTFceDYzXHg3MyIpLT53aGVyZU51bGwoIlwxNjNcMTY0XHg2MVx4NzRcMTY1XHg3MyIpLT5nZXQoKTsgcmV0dXJuIERhdGFUYWJsZXM6Om9mKCRSdWJyaWNCb29rKS0+YWRkSW5kZXhDb2x1bW4oKS0+YWRkQ29sdW1uKCJceDYxXDE0M1wxNjRceDY5XHg2ZlwxNTYiLCBmdW5jdGlvbiAoJHJvdykgeyAkYnRuID0gIlx4M2NcMTQ0XDE1MVwxNjZcNDBcMTQzXDE1NFx4NjFcMTYzXDE2M1x4M2RceDIyXDE0MlwxNjRceDZlXHgyZFwxNDdcMTYyXDE1N1wxNjVceDcwXDQwXHg2NFwxNjJceDZmXDE2MFwxNTRcMTQ1XDE0NlwxNjRceDIyXDc2XHhhXDExXHg5XHg5XDExXHg5XDExXDc0XDE0Mlx4NzVcMTY0XDE2NFx4NmZcMTU2XDQwXHg3NFwxNzFceDcwXDE0NVw3NVw0MlwxNDJceDc1XHg3NFx4NzRceDZmXHg2ZVx4MjJcNDBcMTQzXHg2Y1x4NjFceDczXDE2M1x4M2RcNDJcMTQyXHg3NFx4NmVcNDBcMTQyXDE2NFx4NmVceDJkXHg3MFx4NzJcMTUxXDE1NVx4NjFcMTYyXDE3MVw0MFx4NjRceDcyXDE1N1wxNjBcMTQ0XDE1N1wxNjdceDZlXHgyZFwxNjRcMTU3XDE0N1x4NjdceDZjXHg2NVx4MjJcNDBcMTQ0XDE0MVwxNjRcMTQxXDU1XDE2NFx4NmZceDY3XHg2N1wxNTRcMTQ1XHgzZFw0Mlx4NjRcMTYyXDE1N1x4NzBcMTQ0XHg2ZlwxNjdcMTU2XDQyXDQwXDE0MVwxNjJceDY5XDE0MVx4MmRcMTUwXDE0MVx4NzNceDcwXDE1N1wxNjBcMTY1XHg3MFw3NVw0MlwxNjRcMTYyXHg3NVwxNDVcNDJceDIwXHg2MVx4NzJceDY5XDE0MVw1NVwxNDVcMTcwXDE2MFx4NjFcMTU2XDE0NFx4NjVceDY0XHgzZFw0MlwxNDZceDYxXHg2Y1wxNjNcMTQ1XDQyXHgzZVx4YVwxMVx4OVx4OVwxMVwxMVx4OVwxMVx4NTNceDY1XHg3NFwxNjRceDY5XHg2ZVx4NjdcMTYzXDEyXDExXDExXDExXDExXDExXHg5XHgzY1x4MmZcMTQyXDE2NVwxNjRceDc0XHg2Zlx4NmVceDNlXHhhXHg5XDExXHg5XHg5XHg5XHg5XDc0XDE0NFx4NjlceDc2XHgyMFx4NjNcMTU0XDE0MVx4NzNcMTYzXDc1XHgyMlwxNDRcMTYyXHg2Zlx4NzBceDY0XDE1N1wxNjdceDZlXHgyZFx4NmRceDY1XHg2ZVwxNjVceDIwXHg2NFwxNjJceDZmXHg3MFx4NmNcMTQ1XHg2Nlx4NzRcNDJcNzZceGFcMTFceDlceDlceDlceDlceDlceDlceDNjXHg2MVx4MjBceDYzXDE1NFx4NjFceDczXDE2M1x4M2RcNDJceDY0XHg3Mlx4NmZcMTYwXHg2NFx4NmZceDc3XHg2ZVw1NVwxNTFcMTY0XDE0NVwxNTVceDIwXDE2MlwxNjVcMTQyXHg3MlwxNTFceDYzXHg0MVx4NzNceDczXHg2OVwxNDdcMTU2XDEwM1x4NmNcMTUxXDE0M1wxNTNcNDJcNDBceDY0XHg2MVx4NzRceDYxXHgyZFwxNTFcMTQ0XHgzZFw0MiIgLiAkcm93LT5pZCAuICJceDIyXDQwXHg2OFwxNjJceDY1XDE0Nlx4M2RcNDJceDIzXHgyMlw0MFx4NjRcMTQxXHg3NFwxNDFcNTVcMTY0XDE1N1x4NjdcMTQ3XDE1NFwxNDVcNzVceDIyXHg2ZFwxNTdceDY0XHg2MVx4NmNceDIyXDQwXHg2NFx4NjFceDc0XHg2MVx4MmRceDc0XHg2MVwxNjJcMTQ3XDE0NVwxNjRcNzVceDIyXHgyM1wxNDFceDczXHg3M1wxNTFcMTQ3XHg2ZVx4NTJceDc1XHg2Mlx4NzJceDY5XDE0M1wxMTVceDZmXDE0NFwxNDFcMTU0XHgyMlx4M2VcMTAxXHg3M1wxNjNcMTUxXHg2N1x4NmVceDIwXHg1Mlx4NzVcMTQyXDE2Mlx4NjlceDYzXHgyMFwxNjRcMTU3XHgyMFx4NDNceDZjXHg2MVwxNjNceDczXHgzY1w1N1wxNDFcNzZceGFcMTFcMTFcMTFcMTFceDlceDlceDlceDNjXDE0MVx4MjBceDYzXDE1NFwxNDFcMTYzXHg3M1x4M2RcNDJceDY0XDE2Mlx4NmZcMTYwXDE0NFwxNTdceDc3XDE1Nlw1NVwxNTFcMTY0XDE0NVwxNTVcNDJcNDBcMTUwXHg3Mlx4NjVceDY2XDc1XDQyXDU3XHg3Mlx4NzVcMTQyXDE2Mlx4NjlceDYzXHgyZFwxNjBcMTYyXDE0NVx4NzZcMTUxXDE0NVwxNjdceDJmIiAuICRyb3ctPmlkIC4gIlw0Mlw0MFx4NzRceDYxXDE2MlwxNDdceDY1XDE2NFx4M2RcNDJceDVmXDE0Mlx4NmNcMTQxXHg2ZVwxNTNcNDJcNzZceDUwXHg3Mlx4NjVceDc2XHg2OVwxNDVcMTY3XDQwXDEyMlx4NzVcMTQyXDE2MlwxNTFcMTQzXDc0XDU3XDE0MVx4M2VceGFcMTFceDlcMTFceDlcMTFceDlceDlceDNjXHg2MVw0MFx4NjNcMTU0XDE0MVwxNjNceDczXHgzZFx4MjJceDY0XHg3Mlx4NmZcMTYwXDE0NFx4NmZceDc3XDE1Nlx4MmRceDY5XHg3NFwxNDVcMTU1XDQyXHgyMFwxNTBcMTYyXDE0NVwxNDZceDNkXDQyXHgyZlwxNDVceDY0XDE1MVwxNjRceDJkXDE2MlwxNjVceDYyXHg3Mlx4NjlcMTQzXHgyZiIgLiAkcm93LT5pZCAuICJcNDJceDIwXDE2NFwxNDFceDcyXHg2N1wxNDVceDc0XDc1XHgyMlwxMzdceDYyXHg2Y1wxNDFcMTU2XHg2Ylx4MjJcNzZceDQ1XHg2NFx4NjlcMTY0XDQwXDEyMlx4NzVceDYyXDE2Mlx4NjlcMTQzXDc0XHgyZlwxNDFcNzZceGFceDlceDlceDlceDlceDlceDlcMTFcNzRcMTQxXHgyMFwxNDNceDZjXHg2MVwxNjNcMTYzXHgzZFw0MlwxNDRcMTYyXHg2ZlwxNjBceDY0XHg2Zlx4NzdcMTU2XDU1XDE1MVwxNjRcMTQ1XHg2ZFx4MjBceDcyXDE2NVx4NjJceDcyXDE1MVwxNDNcMTAxXHg3MlwxNDNcMTUwXHg2OVx4NzZcMTQ1XHgyMlx4MjBceDY0XHg2MVx4NzRceDYxXHgyZFx4NjlceDY0XDc1XDQyIiAuICRyb3ctPmlkIC4gIlx4MjJceDIwXDQwXHg2OFx4NzJceDY1XHg2Nlw3NVx4MjJceDIzXHgyMlx4M2VceDQxXDE2MlwxNDNcMTUwXDE1MVwxNjZceDY1XDQwXDEyMlwxNjVcMTQyXDE2MlwxNTFceDYzXDc0XDU3XHg2MVw3Nlx4YVwxMVwxMVwxMVwxMVx4OVwxMVx4M2NceDJmXDE0NFx4NjlcMTY2XHgzZVx4YVwxMVx4OVx4OVwxMVx4OVx4M2NceDJmXHg2NFx4NjlcMTY2XHgzZSI7IHJldHVybiAkYnRuOyB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXHg2MVwxNDNcMTY0XHg2OVwxNTdceDZlIikpLT5tYWtlKHRydWUpOyB9IHB1YmxpYyBmdW5jdGlvbiBDbGFzc0FjY291bnREZWxldGVBY3Rpb24oUmVxdWVzdCAkcmVxdWVzdCkgeyAkaWQgPSAkcmVxdWVzdC0+VXNlcklEOyBDbGFzc2VzOjp3aGVyZSgiXDE1MVwxNDQiLCAkaWQpLT5kZWxldGUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjFcMTYwXHg3MFwxNjJcMTU3XDE2Nlx4NjVcMTQ0IiA9PiAiXDEwM1wxNTRcMTQxXHg3M1x4NzNceDIwXDE1MFx4NjFcMTYzXDQwXHg2MlwxNDVcMTQ1XHg2ZVw0MFwxNDRceDY1XDE1NFx4NjVceDc0XHg2NVwxNDRcNDBcMTYzXHg3NVwxNDNceDYzXDE0NVwxNjNcMTYzXHg2Nlx4NzVceDZjXHg2Y1x4NzlceDJlIikpOyB9IHB1YmxpYyBmdW5jdGlvbiBVbmFzc2lnblJ1YnJpYyhSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRpZCA9ICRyZXF1ZXN0LT5Vc2VySUQ7ICRyZXN1bHQgPSBDbGFzc2VzOjp3aGVyZSgiXHg2OVx4NjQiLCAkaWQpLT51cGRhdGUoYXJyYXkoIlx4NzJcMTY1XDE0MlwxNjJcMTUxXDE0M1x4NWZceDYxXDE2M1wxNjNcMTUxXDE0N1wxNTZceDY1XHg2NCIgPT4gbnVsbCkpOyBpZiAoJHJlc3VsdCkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg3NVx4NmVceDYxXDE2M1x4NzNcMTUxXHg2N1x4NmVceDY1XHg2NCIgPT4gIlwxMjJcMTY1XDE0Mlx4NzJceDY5XDE0M1x4MjBcMTUwXDE0MVx4NzNceDIwXDE0Mlx4NjVcMTQ1XHg2ZVx4MjBcMTYyXDE0NVx4NmRcMTU3XDE2NlwxNDVcMTQ0XHgyMFwxNjNcMTY1XDE0M1wxNDNceDY1XHg3M1wxNjNcMTQ2XHg3NVwxNTRcMTU0XHg3OVw1NiIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBDbGFzc0VkaXRidG5GZXRjaChSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRkYXRhID0gQ2xhc3Nlczo6ZmluZCgkcmVxdWVzdC0+Q3VwZGF0ZWJ1dHRvbik7ICR3ZWVrX2RheXMgPSBEQjo6dGFibGUoIlx4NzdcMTQ1XDE0NVwxNTNcMTM3XHg2NFx4NjFcMTcxXDE2MyIpLT53aGVyZSgiXHg2M1x4NmNceDYxXDE2M1wxNjNceDVmXHg2OVwxNDQiLCAkZGF0YS0+c2NoZWR1bGVfaWQpLT5nZXQoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxMDNcMTU0XHg2MVx4NzNceDczXHg0NFx4NjFceDc0XHg2MSIgPT4gJGRhdGEsICJcMTI3XDE0NVx4NjVceDZiXDEwNFwxNDFcMTcxXHg3M1x4NWZceDY0XDE0MVx4NzRceDYxIiA9PiAkd2Vla19kYXlzKSk7IH0gcHVibGljIGZ1bmN0aW9uIGZldGNoQ2xhc3MoKSB7ICRkYXRhID0gREI6OnRhYmxlKCJcMTQzXHg2Y1wxNDFceDczXHg3M1wxNDVcMTYzIiktPmdldCgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2M1x4NmNcMTQxXHg3M1wxNjNceDQ0XHg2MVx4NzRceDYxIiA9PiAkZGF0YSkpOyB9IHB1YmxpYyBmdW5jdGlvbiBFZGl0Q2xhc3NEYXRhKFJlcXVlc3QgJHJlcXVlc3QpIHsgJHZhbGlkYXRlZCA9IFZhbGlkYXRvcjo6bWFrZSgkcmVxdWVzdC0+YWxsKCksIGFycmF5KCJcMTQzXDE1NFx4NjFceDczXDE2M1wxNTZceDYxXHg2ZFwxNDUiID0+ICJcMTYyXHg2NVwxNjFceDc1XHg2OVx4NzJcMTQ1XDE0NCIsICJcMTQzXHg2Y1wxNDFceDczXDE2M1wxNTFceDZlXDE0Nlx4NmYiID0+ICJcMTYyXDE0NVwxNjFceDc1XDE1MVwxNjJceDY1XHg2NCIsICJcMTQzXDE1NFx4NjFceDczXDE2M1wxMTFceDQ0IiA9PiAiXHg3Mlx4NjVcMTYxXHg3NVx4NjlcMTYyXHg2NVx4NjQiKSwgYXJyYXkoIlx4NjNceDZjXDE0MVwxNjNcMTYzXDE1NlwxNDFceDZkXDE0NVx4MmVceDcyXHg2NVwxNjFcMTY1XHg2OVx4NzJcMTQ1XDE0NCIgPT4gIlx4NTRcMTUwXDE0NVw0MFwxMDNcMTU0XDE0MVx4NzNceDczXHgyMFx4NGVcMTQxXDE1NVx4NjVceDIwXDE0NlwxNTFceDY1XHg2Y1x4NjRcNDBcMTUxXDE2M1x4MjBceDcyXHg2NVwxNjFcMTY1XDE1MVwxNjJcMTQ1XHg2NCIsICJceDYzXHg2Y1wxNDFceDczXHg3M1wxNTFcMTU2XDE0NlwxNTdcNTZcMTYyXHg2NVwxNjFcMTY1XHg2OVwxNjJcMTQ1XHg2NCIgPT4gIlwxMjRceDY4XHg2NVx4MjBceDQzXDE1NFwxNDFceDczXDE2M1x4MjBcMTExXDE1Nlx4NjZcMTU3XDQwXDE0NlwxNTFceDY1XDE1NFwxNDRceDIwXDE1MVwxNjNceDIwXHg3MlwxNDVcMTYxXHg3NVx4NjlcMTYyXDE0NVwxNDQiLCAiXHg3MFwxNTFcMTQzXHgyZVx4NzJceDY1XHg3MVwxNjVceDY5XDE2Mlx4NjVceDY0IiA9PiAiXHg1NFx4NjhcMTQ1XHgyMFx4NTBceDY5XHg2M1x4NzRcMTY1XDE2MlwxNDVcNDBcMTQ2XDE1MVx4NjVcMTU0XDE0NFw0MFx4NjlceDczXDQwXDE2MlwxNDVceDcxXHg3NVwxNTFceDcyXHg2NVx4NjQiLCAiXDE2MFx4NjlcMTQzXDU2XHg2ZFx4NjlcMTU1XHg2NVx4NzMiID0+ICJceDU0XHg2OFwxNDVceDIwXDEwM1x4NmNceDYxXHg3M1wxNjNceDIwXHg1MFx4NjlceDYzXDE2NFx4NzVcMTYyXHg2NVx4MjBceDZkXDE2NVx4NzNceDc0XDQwXDE0Mlx4NjVcNDBcMTQxXHgyMFx4NjZceDY5XDE1NFx4NjVceDIwXHg2ZlwxNDZcNDBceDc0XHg3OVx4NzBceDY1XDcyXDQwXHg2YVx4NzBcMTQ1XDE0N1x4MmNcNDBcMTQ3XHg2OVx4NjZceDJjXHgyMFx4NzBcMTU2XHg2N1x4MmNceDIwXHg0YVwxMjBcMTA1XHg0N1x4MmNceDIwXHg0N1wxMTFceDQ2XHgyY1w0MFwxMjBceDRlXDEwN1w1NiIpKTsgaWYgKCR2YWxpZGF0ZWQtPmZhaWxzKCkpIHsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNDVcMTYyXDE2MlwxNTdcMTYyXHg3MyIgPT4gJHZhbGlkYXRlZC0+ZXJyb3JzKCktPmZpcnN0KCkpKTsgfSBlbHNlIHsgaWYgKCRyZXF1ZXN0LT5tID09ICcnKSB7ICRkYXlfY2hlY2sgPSBEQjo6dGFibGUoIlwxNjdcMTQ1XHg2NVx4NmJcMTM3XHg2NFwxNDFcMTcxXDE2MyIpLT53aGVyZSgiXHg2M1x4NmNceDYxXHg3M1wxNjNceDVmXHg2OVx4NjQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJceDY0XHg2MVwxNzEiLCAiXDExNVx4NmZceDZlXHg2NFx4NjFceDc5IiktPmZpcnN0KCk7IGlmICgkZGF5X2NoZWNrKSB7IERCOjp0YWJsZSgiXHg3N1wxNDVceDY1XDE1M1x4NWZceDY0XHg2MVx4NzlceDczIiktPndoZXJlKCJcMTQzXHg2Y1wxNDFceDczXHg3M1x4NWZcMTUxXHg2NCIsICRyZXF1ZXN0LT5jbGFzc0lEKS0+d2hlcmUoIlx4NjRcMTQxXHg3OSIsICJceDRkXHg2Zlx4NmVcMTQ0XDE0MVx4NzkiKS0+ZGVsZXRlKCk7IH0gJG0gPSAiXDE0NlwxNDFcMTU0XDE2M1x4NjUiOyB9IGVsc2UgeyAkbSA9ICRyZXF1ZXN0LT5tOyB9IGlmICgkcmVxdWVzdC0+dCA9PSAnJykgeyAkZGF5X2NoZWNrID0gREI6OnRhYmxlKCJcMTY3XDE0NVx4NjVcMTUzXDEzN1x4NjRcMTQxXDE3MVwxNjMiKS0+d2hlcmUoIlx4NjNceDZjXHg2MVx4NzNcMTYzXHg1ZlwxNTFcMTQ0IiwgJHJlcXVlc3QtPmNsYXNzSUQpLT53aGVyZSgiXHg2NFwxNDFcMTcxIiwgIlx4NTRcMTY1XDE0NVwxNjNcMTQ0XHg2MVx4NzkiKS0+Zmlyc3QoKTsgaWYgKCRkYXlfY2hlY2spIHsgREI6OnRhYmxlKCJcMTY3XDE0NVx4NjVceDZiXDEzN1x4NjRceDYxXHg3OVx4NzMiKS0+d2hlcmUoIlwxNDNceDZjXDE0MVx4NzNceDczXDEzN1x4NjlceDY0IiwgJHJlcXVlc3QtPmNsYXNzSUQpLT53aGVyZSgiXHg2NFx4NjFcMTcxIiwgIlx4NTRcMTY1XDE0NVx4NzNceDY0XDE0MVwxNzEiKS0+ZGVsZXRlKCk7IH0gJHQgPSAiXHg2Nlx4NjFcMTU0XHg3M1wxNDUiOyB9IGVsc2UgeyAkdCA9ICRyZXF1ZXN0LT50OyB9IGlmICgkcmVxdWVzdC0+dyA9PSAnJykgeyAkZGF5X2NoZWNrID0gREI6OnRhYmxlKCJceDc3XDE0NVwxNDVcMTUzXHg1Zlx4NjRcMTQxXHg3OVwxNjMiKS0+d2hlcmUoIlx4NjNcMTU0XHg2MVx4NzNceDczXDEzN1wxNTFceDY0IiwgJHJlcXVlc3QtPmNsYXNzSUQpLT53aGVyZSgiXHg2NFx4NjFceDc5IiwgIlx4NTdcMTQ1XHg2NFx4NmVceDY1XHg3M1x4NjRcMTQxXHg3OSIpLT5maXJzdCgpOyBpZiAoJGRheV9jaGVjaykgeyBEQjo6dGFibGUoIlx4NzdcMTQ1XDE0NVx4NmJcMTM3XDE0NFwxNDFcMTcxXHg3MyIpLT53aGVyZSgiXDE0M1wxNTRceDYxXHg3M1x4NzNcMTM3XDE1MVx4NjQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJceDY0XHg2MVx4NzkiLCAiXDEyN1x4NjVcMTQ0XDE1NlwxNDVceDczXDE0NFwxNDFceDc5IiktPmRlbGV0ZSgpOyB9ICR3ID0gIlwxNDZcMTQxXHg2Y1wxNjNceDY1IjsgfSBlbHNlIHsgJHcgPSAkcmVxdWVzdC0+dzsgfSBpZiAoJHJlcXVlc3QtPnRoID09ICcnKSB7ICRkYXlfY2hlY2sgPSBEQjo6dGFibGUoIlwxNjdceDY1XDE0NVx4NmJceDVmXHg2NFx4NjFcMTcxXDE2MyIpLT53aGVyZSgiXHg2M1wxNTRcMTQxXDE2M1x4NzNceDVmXDE1MVx4NjQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJceDY0XDE0MVx4NzkiLCAiXDEyNFx4NjhceDc1XHg3Mlx4NzNceDY0XDE0MVwxNzEiKS0+Zmlyc3QoKTsgaWYgKCRkYXlfY2hlY2spIHsgREI6OnRhYmxlKCJcMTY3XHg2NVwxNDVcMTUzXHg1ZlwxNDRceDYxXHg3OVx4NzMiKS0+d2hlcmUoIlwxNDNceDZjXDE0MVwxNjNcMTYzXDEzN1wxNTFcMTQ0IiwgJHJlcXVlc3QtPmNsYXNzSUQpLT53aGVyZSgiXHg2NFx4NjFceDc5IiwgIlwxMjRceDY4XHg3NVwxNjJceDczXDE0NFx4NjFceDc5IiktPmRlbGV0ZSgpOyB9ICR0aCA9ICJcMTQ2XHg2MVx4NmNceDczXDE0NSI7IH0gZWxzZSB7ICR0aCA9ICRyZXF1ZXN0LT50aDsgfSBpZiAoJHJlcXVlc3QtPmYgPT0gJycpIHsgJGRheV9jaGVjayA9IERCOjp0YWJsZSgiXDE2N1x4NjVceDY1XDE1M1wxMzdcMTQ0XHg2MVx4NzlcMTYzIiktPndoZXJlKCJceDYzXHg2Y1x4NjFceDczXDE2M1wxMzdceDY5XDE0NCIsICRyZXF1ZXN0LT5jbGFzc0lEKS0+d2hlcmUoIlwxNDRcMTQxXDE3MSIsICJcMTA2XHg3Mlx4NjlcMTQ0XHg2MVx4NzkiKS0+Zmlyc3QoKTsgaWYgKCRkYXlfY2hlY2spIHsgREI6OnRhYmxlKCJcMTY3XHg2NVwxNDVceDZiXHg1ZlwxNDRceDYxXHg3OVwxNjMiKS0+d2hlcmUoIlx4NjNceDZjXDE0MVwxNjNcMTYzXDEzN1x4NjlceDY0IiwgJHJlcXVlc3QtPmNsYXNzSUQpLT53aGVyZSgiXDE0NFwxNDFcMTcxIiwgIlwxMDZceDcyXHg2OVwxNDRceDYxXDE3MSIpLT5kZWxldGUoKTsgfSAkZiA9ICJcMTQ2XDE0MVwxNTRcMTYzXDE0NSI7IH0gZWxzZSB7ICRmID0gJHJlcXVlc3QtPmY7IH0gaWYgKCRyZXF1ZXN0LT5zYXQgPT0gJycpIHsgJGRheV9jaGVjayA9IERCOjp0YWJsZSgiXDE2N1x4NjVceDY1XDE1M1wxMzdceDY0XDE0MVx4NzlcMTYzIiktPndoZXJlKCJcMTQzXHg2Y1x4NjFceDczXHg3M1x4NWZcMTUxXDE0NCIsICRyZXF1ZXN0LT5jbGFzc0lEKS0+d2hlcmUoIlx4NjRcMTQxXHg3OSIsICJcMTIzXDE0MVwxNjRcMTY1XDE2Mlx4NjRceDYxXHg3OSIpLT5maXJzdCgpOyBpZiAoJGRheV9jaGVjaykgeyBEQjo6dGFibGUoIlx4NzdcMTQ1XHg2NVwxNTNcMTM3XDE0NFwxNDFceDc5XHg3MyIpLT53aGVyZSgiXDE0M1wxNTRcMTQxXHg3M1wxNjNcMTM3XDE1MVx4NjQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJceDY0XDE0MVwxNzEiLCAiXDEyM1x4NjFcMTY0XHg3NVx4NzJcMTQ0XDE0MVx4NzkiKS0+ZGVsZXRlKCk7IH0gJHNhdCA9ICJcMTQ2XHg2MVx4NmNceDczXHg2NSI7IH0gZWxzZSB7ICRzYXQgPSAkcmVxdWVzdC0+c2F0OyB9IGlmICgkcmVxdWVzdC0+cyA9PSAnJykgeyAkZGF5X2NoZWNrID0gREI6OnRhYmxlKCJceDc3XDE0NVx4NjVceDZiXDEzN1x4NjRcMTQxXHg3OVwxNjMiKS0+d2hlcmUoIlwxNDNceDZjXHg2MVwxNjNceDczXDEzN1wxNTFcMTQ0IiwgJHJlcXVlc3QtPmNsYXNzSUQpLT53aGVyZSgiXHg2NFwxNDFcMTcxIiwgIlx4NTNcMTY1XDE1Nlx4NjRceDYxXHg3OSIpLT5maXJzdCgpOyBpZiAoJGRheV9jaGVjaykgeyBEQjo6dGFibGUoIlwxNjdcMTQ1XDE0NVwxNTNcMTM3XDE0NFwxNDFceDc5XHg3MyIpLT53aGVyZSgiXDE0M1wxNTRceDYxXHg3M1wxNjNcMTM3XDE1MVx4NjQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJceDY0XHg2MVwxNzEiLCAiXHg1M1wxNjVceDZlXHg2NFx4NjFceDc5IiktPmRlbGV0ZSgpOyB9ICRzID0gIlx4NjZceDYxXHg2Y1wxNjNceDY1IjsgfSBlbHNlIHsgJHMgPSAkcmVxdWVzdC0+czsgfSAkcmVmX2lkID0gJHJlcXVlc3QtPmNsYXNzSUQ7ICRjbGFzc19pZF9mZXRjaCA9IERCOjp0YWJsZSgiXHg2M1x4NmNcMTQxXDE2M1x4NzNcMTQ1XDE2MyIpLT53aGVyZSgiXHg3M1x4NjNcMTUwXHg2NVwxNDRcMTY1XHg2Y1x4NjVceDVmXDE1MVx4NjQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPmZpcnN0KCk7ICRlZGl0Q2xhc3MgPSBDbGFzc2VzOjpmaW5kKCRjbGFzc19pZF9mZXRjaC0+aWQpOyAkZWRpdENsYXNzLT5jbGFzc25hbWUgPSAkcmVxdWVzdC0+Y2xhc3NuYW1lOyAkZWRpdENsYXNzLT5jbGFzc2luZm8gPSAkcmVxdWVzdC0+Y2xhc3NpbmZvOyAkZWRpdENsYXNzLT51cGRhdGVkX2J5ID0gU2Vzc2lvbjo6Z2V0KCJceDZlXDE0MVwxNTVceDY1Iik7ICRlZGl0Q2xhc3MtPm0gPSAkbTsgJGVkaXRDbGFzcy0+dCA9ICR0OyAkZWRpdENsYXNzLT53ID0gJHc7ICRlZGl0Q2xhc3MtPnRoID0gJHRoOyAkZWRpdENsYXNzLT5mID0gJGY7ICRlZGl0Q2xhc3MtPnNhdCA9ICRzYXQ7ICRlZGl0Q2xhc3MtPnMgPSAkczsgJGVkaXRDbGFzcy0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICRlZGl0Q2xhc3MtPmVuZCA9ICRyZXF1ZXN0LT5lbmQ7ICRlZGl0Q2xhc3MtPnNhdmUoKTsgaWYgKCRyZXF1ZXN0LT5tICE9ICcnKSB7ICRkYXlfY2hlY2sgPSBEQjo6dGFibGUoIlwxNjdcMTQ1XDE0NVx4NmJcMTM3XDE0NFx4NjFcMTcxXHg3MyIpLT53aGVyZSgiXHg2M1wxNTRcMTQxXHg3M1wxNjNceDVmXDE1MVx4NjQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJcMTQ0XHg2MVx4NzkiLCAiXHg0ZFx4NmZcMTU2XDE0NFwxNDFcMTcxIiktPmZpcnN0KCk7IGlmICghJGRheV9jaGVjaykgeyAkTmV3U2NoZWR1bGUgPSBuZXcgd2Vla0RheXMoKTsgJE5ld1NjaGVkdWxlLT5jbGFzc19pZCA9ICRyZWZfaWQ7ICROZXdTY2hlZHVsZS0+ZGF5ID0gIlwxMTVcMTU3XDE1NlwxNDRceDYxXHg3OSI7ICROZXdTY2hlZHVsZS0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICROZXdTY2hlZHVsZS0+ZW5kID0gJHJlcXVlc3QtPmVuZDsgJE5ld1NjaGVkdWxlLT5zYXZlKCk7IH0gfSBpZiAoJHJlcXVlc3QtPnQgIT0gJycpIHsgJGRheV9jaGVjayA9IERCOjp0YWJsZSgiXDE2N1x4NjVcMTQ1XDE1M1x4NWZceDY0XHg2MVwxNzFcMTYzIiktPndoZXJlKCJceDYzXDE1NFwxNDFcMTYzXHg3M1wxMzdcMTUxXHg2NCIsICRyZXF1ZXN0LT5jbGFzc0lEKS0+d2hlcmUoIlx4NjRcMTQxXDE3MSIsICJceDU0XDE2NVwxNDVceDczXHg2NFx4NjFceDc5IiktPmZpcnN0KCk7IGlmICghJGRheV9jaGVjaykgeyAkTmV3U2NoZWR1bGUgPSBuZXcgd2Vla0RheXMoKTsgJE5ld1NjaGVkdWxlLT5jbGFzc19pZCA9ICRyZWZfaWQ7ICROZXdTY2hlZHVsZS0+ZGF5ID0gIlx4NTRceDc1XHg2NVwxNjNceDY0XDE0MVx4NzkiOyAkTmV3U2NoZWR1bGUtPnN0YXJ0ID0gJHJlcXVlc3QtPnN0YXJ0OyAkTmV3U2NoZWR1bGUtPmVuZCA9ICRyZXF1ZXN0LT5lbmQ7ICROZXdTY2hlZHVsZS0+c2F2ZSgpOyB9IH0gaWYgKCRyZXF1ZXN0LT53ICE9ICcnKSB7ICRkYXlfY2hlY2sgPSBEQjo6dGFibGUoIlx4NzdceDY1XDE0NVwxNTNcMTM3XDE0NFwxNDFcMTcxXHg3MyIpLT53aGVyZSgiXHg2M1x4NmNcMTQxXHg3M1wxNjNceDVmXDE1MVwxNDQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJceDY0XDE0MVx4NzkiLCAiXDEyN1wxNDVceDY0XDE1NlwxNDVcMTYzXDE0NFx4NjFcMTcxIiktPmZpcnN0KCk7IGlmICghJGRheV9jaGVjaykgeyAkTmV3U2NoZWR1bGUgPSBuZXcgd2Vla0RheXMoKTsgJE5ld1NjaGVkdWxlLT5jbGFzc19pZCA9ICRyZWZfaWQ7ICROZXdTY2hlZHVsZS0+ZGF5ID0gIlwxMjdceDY1XDE0NFwxNTZcMTQ1XDE2M1x4NjRcMTQxXHg3OSI7ICROZXdTY2hlZHVsZS0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICROZXdTY2hlZHVsZS0+ZW5kID0gJHJlcXVlc3QtPmVuZDsgJE5ld1NjaGVkdWxlLT5zYXZlKCk7IH0gfSBpZiAoJHJlcXVlc3QtPnRoICE9ICcnKSB7ICRkYXlfY2hlY2sgPSBEQjo6dGFibGUoIlwxNjdceDY1XHg2NVwxNTNceDVmXHg2NFwxNDFcMTcxXDE2MyIpLT53aGVyZSgiXDE0M1wxNTRceDYxXHg3M1wxNjNceDVmXDE1MVwxNDQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJcMTQ0XDE0MVwxNzEiLCAiXDEyNFwxNTBceDc1XDE2Mlx4NzNcMTQ0XHg2MVwxNzEiKS0+Zmlyc3QoKTsgaWYgKCEkZGF5X2NoZWNrKSB7ICROZXdTY2hlZHVsZSA9IG5ldyB3ZWVrRGF5cygpOyAkTmV3U2NoZWR1bGUtPmNsYXNzX2lkID0gJHJlZl9pZDsgJE5ld1NjaGVkdWxlLT5kYXkgPSAiXHg1NFx4NjhceDc1XDE2MlwxNjNcMTQ0XHg2MVwxNzEiOyAkTmV3U2NoZWR1bGUtPnN0YXJ0ID0gJHJlcXVlc3QtPnN0YXJ0OyAkTmV3U2NoZWR1bGUtPmVuZCA9ICRyZXF1ZXN0LT5lbmQ7ICROZXdTY2hlZHVsZS0+c2F2ZSgpOyB9IH0gaWYgKCRyZXF1ZXN0LT5mICE9ICcnKSB7ICRkYXlfY2hlY2sgPSBEQjo6dGFibGUoIlwxNjdceDY1XHg2NVx4NmJcMTM3XDE0NFwxNDFceDc5XHg3MyIpLT53aGVyZSgiXHg2M1x4NmNcMTQxXHg3M1wxNjNcMTM3XDE1MVwxNDQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPndoZXJlKCJceDY0XHg2MVx4NzkiLCAiXDEwNlx4NzJcMTUxXHg2NFx4NjFcMTcxIiktPmZpcnN0KCk7IGlmICghJGRheV9jaGVjaykgeyAkTmV3U2NoZWR1bGUgPSBuZXcgd2Vla0RheXMoKTsgJE5ld1NjaGVkdWxlLT5jbGFzc19pZCA9ICRyZWZfaWQ7ICROZXdTY2hlZHVsZS0+ZGF5ID0gIlwxMDZcMTYyXHg2OVx4NjRcMTQxXHg3OSI7ICROZXdTY2hlZHVsZS0+c3RhcnQgPSAkcmVxdWVzdC0+c3RhcnQ7ICROZXdTY2hlZHVsZS0+ZW5kID0gJHJlcXVlc3QtPmVuZDsgJE5ld1NjaGVkdWxlLT5zYXZlKCk7IH0gfSBpZiAoJHJlcXVlc3QtPnNhdCAhPSAnJykgeyAkZGF5X2NoZWNrID0gREI6OnRhYmxlKCJceDc3XHg2NVwxNDVcMTUzXDEzN1wxNDRcMTQxXDE3MVx4NzMiKS0+d2hlcmUoIlx4NjNcMTU0XDE0MVx4NzNceDczXHg1ZlwxNTFceDY0IiwgJHJlcXVlc3QtPmNsYXNzSUQpLT53aGVyZSgiXHg2NFx4NjFceDc5IiwgIlwxMjNcMTQxXHg3NFx4NzVceDcyXHg2NFx4NjFcMTcxIiktPmZpcnN0KCk7IGlmICghJGRheV9jaGVjaykgeyAkTmV3U2NoZWR1bGUgPSBuZXcgd2Vla0RheXMoKTsgJE5ld1NjaGVkdWxlLT5jbGFzc19pZCA9ICRyZWZfaWQ7ICROZXdTY2hlZHVsZS0+ZGF5ID0gIlx4NTNceDYxXHg3NFx4NzVceDcyXDE0NFwxNDFcMTcxIjsgJE5ld1NjaGVkdWxlLT5zdGFydCA9ICRyZXF1ZXN0LT5zdGFydDsgJE5ld1NjaGVkdWxlLT5lbmQgPSAkcmVxdWVzdC0+ZW5kOyAkTmV3U2NoZWR1bGUtPnNhdmUoKTsgfSB9IGlmICgkcmVxdWVzdC0+cyAhPSAnJykgeyAkZGF5X2NoZWNrID0gREI6OnRhYmxlKCJcMTY3XHg2NVx4NjVcMTUzXHg1ZlwxNDRceDYxXDE3MVx4NzMiKS0+d2hlcmUoIlwxNDNceDZjXDE0MVwxNjNcMTYzXDEzN1x4NjlcMTQ0IiwgJHJlcXVlc3QtPmNsYXNzSUQpLT53aGVyZSgiXHg2NFwxNDFceDc5IiwgIlwxMjNcMTY1XDE1Nlx4NjRcMTQxXDE3MSIpLT5maXJzdCgpOyBpZiAoISRkYXlfY2hlY2spIHsgJE5ld1NjaGVkdWxlID0gbmV3IHdlZWtEYXlzKCk7ICROZXdTY2hlZHVsZS0+Y2xhc3NfaWQgPSAkcmVmX2lkOyAkTmV3U2NoZWR1bGUtPmRheSA9ICJcMTIzXHg3NVx4NmVcMTQ0XDE0MVwxNzEiOyAkTmV3U2NoZWR1bGUtPnN0YXJ0ID0gJHJlcXVlc3QtPnN0YXJ0OyAkTmV3U2NoZWR1bGUtPmVuZCA9ICRyZXF1ZXN0LT5lbmQ7ICROZXdTY2hlZHVsZS0+c2F2ZSgpOyB9IH0gJGFsbF9kYXlfY2hlY2sgPSBEQjo6dGFibGUoIlwxNjdcMTQ1XHg2NVwxNTNceDVmXDE0NFx4NjFceDc5XDE2MyIpLT53aGVyZSgiXHg2M1x4NmNcMTQxXHg3M1wxNjNcMTM3XHg2OVx4NjQiLCAkcmVxdWVzdC0+Y2xhc3NJRCktPmdldCgpOyBmb3JlYWNoICgkYWxsX2RheV9jaGVjayBhcyAkZGF0YSkgeyAkdXBkYXRlVGltZSA9IHdlZWtEYXlzOjpmaW5kKCRkYXRhLT5pZCk7ICR1cGRhdGVUaW1lLT5zdGFydCA9ICRyZXF1ZXN0LT5zdGFydDsgJHVwZGF0ZVRpbWUtPmVuZCA9ICRyZXF1ZXN0LT5lbmQ7ICR1cGRhdGVUaW1lLT5zYXZlKCk7IH0gcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjlcMTU2XHg3M1wxNDVcMTYyXHg3NFx4NjVcMTQ0IiA9PiAiXHg0M1wxNTRceDYxXDE2M1wxNjNceDIwXHg0NFx4NjFceDc0XHg2MVx4MjBcMTUwXDE0MVwxNjNceDIwXDE0MlwxNDVcMTQ1XHg2ZVx4MjBcMTY1XDE2MFx4NjRcMTQxXDE2NFwxNDVcMTQ0XHgyZSIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBzdG9yZShSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRmaWxlID0gJHJlcXVlc3QtPnVwbG9hZDsgJGZpbGVOYW1lID0gJGZpbGUtPmdldENsaWVudE9yaWdpbmFsTmFtZSgpOyAkTmV3X25hbWUgPSB0aW1lKCkgLiAkZmlsZU5hbWU7ICRkaXIgPSAiXDE2M1wxNjRceDZmXDE2MlwxNDFcMTQ3XHg2NVx4MmZceDQ4XHg2Zlx4NmRceDY1XDEyMFwxNDFcMTQ3XHg2NVwxMjBceDY5XDE0M1wxNjRceDc1XHg3Mlx4NjVcMTYzXHgyZiI7ICRmaWxlLT5tb3ZlKCRkaXIsICROZXdfbmFtZSk7ICR1cmwgPSBhc3NldCgiXHg3M1wxNjRcMTU3XHg3MlwxNDFcMTQ3XHg2NVw1N1x4NDhcMTU3XHg2ZFwxNDVceDUwXHg2MVx4NjdcMTQ1XHg1MFx4NjlcMTQzXHg3NFwxNjVcMTYyXHg2NVwxNjNceDJmIiAuICROZXdfbmFtZSk7ICRDa2VkaXRvckZ1bmNOdW0gPSAkcmVxdWVzdC0+aW5wdXQoIlx4NDNcMTEzXHg0NVwxNDRceDY5XHg3NFx4NmZcMTYyXHg0Nlx4NzVceDZlXDE0M1x4NGVceDc1XDE1NSIpOyAkc3RhdHVzID0gIlx4M2NceDczXHg2M1wxNjJcMTUxXHg3MFx4NzRceDNlXDE2N1x4NjlcMTU2XDE0NFwxNTdcMTY3XHgyZVx4NzBceDYxXDE2Mlx4NjVcMTU2XHg3NFx4MmVceDQzXDExM1wxMDVcMTA0XDExMVx4NTRcMTE3XDEyMlx4MmVceDc0XDE1N1x4NmZceDZjXHg3M1w1NlwxNDNcMTQxXDE1NFx4NmNceDQ2XHg3NVx4NmVcMTQzXDE2NFwxNTFcMTU3XDE1Nlx4MjhceDI3eyRDa2VkaXRvckZ1bmNOdW19XDQ3XDU0XDQwXHgyN3skdXJsfVw0N1x4MmNcNDBceDI3XDEwNlx4NjlceDZjXDE0NVx4MjBcMTUwXHg2MVwxNjNcNDBceDYyXHg2NVwxNDVceDZlXHgyMFx4NzVceDcwXHg2Y1wxNTdceDYxXHg2NFx4NjVcMTQ0XHgyZVw0N1x4MjlcNzRcNTdcMTYzXHg2M1x4NzJcMTUxXDE2MFx4NzRceDNlIjsgZWNobyAkc3RhdHVzOyB9IHB1YmxpYyBmdW5jdGlvbiBIb21lUGFnZVVwZGF0ZShSZXF1ZXN0ICRyZXF1ZXN0KSB7ICR2YWxpZGF0ZWQgPSBWYWxpZGF0b3I6Om1ha2UoJHJlcXVlc3QtPmFsbCgpLCBhcnJheSgiXHg0OFwxNTdcMTU1XHg2NVx4NDVceDY0XHg2OVwxNjRcMTU3XHg3MiIgPT4gIlwxNjJcMTQ1XHg3MVx4NzVcMTUxXDE2MlwxNDVcMTQ0IiksIGFycmF5KCJcMTEwXDE1N1wxNTVcMTQ1XHg0NVwxNDRceDY5XHg3NFx4NmZcMTYyXHgyZVx4NzJcMTQ1XDE2MVwxNjVcMTUxXDE2Mlx4NjVceDY0IiA9PiAiXDEyNFwxNTBcMTQ1XDQwXDEwNVx4NjRceDY5XDE2NFx4NmZceDcyXDQwXDE0NlwxNTFceDY1XHg2Y1wxNDRceDIwXHg2OVwxNjNcNDBcMTYyXHg2NVx4NzFceDc1XHg2OVwxNjJceDY1XHg2NCIpKTsgaWYgKCR2YWxpZGF0ZWQtPmZhaWxzKCkpIHsgcmV0dXJuIHJlZGlyZWN0KCktPmJhY2soKS0+d2l0aEVycm9ycyhhcnJheSgiXDE0NVx4NmRceDcwXHg3NFx4NzlceDVmXDE0NVx4NzJcMTYyXHg2Zlx4NzIiID0+ICR2YWxpZGF0ZWQtPmVycm9ycygpLT5maXJzdCgpKSk7IH0gZWxzZSB7ICRIb21lRWRpdCA9IEhvbWVQYWdlOjpmaW5kKCJceDMxIik7ICRIb21lRWRpdC0+SG9tZUNvbnRlbnQgPSAkcmVxdWVzdC0+SG9tZUVkaXRvcjsgJEhvbWVFZGl0LT5zYXZlKCk7IHJldHVybiByZWRpcmVjdCgpLT5iYWNrKCktPndpdGgoYXJyYXkoIlx4NzNcMTY1XHg2M1x4NjNcMTQ1XHg3M1x4NzMiID0+ICJceDU0XHg2OFx4NjVcNDBcMTEwXDE1N1wxNTVcMTQ1XDQwXDEyMFwxNDFceDY3XHg2NVx4MjBceDY4XHg2MVwxNjNcNDBcMTQyXDE0NVx4NjVcMTU2XHgyMFwxNjVceDcwXDE0NFwxNDFceDc0XDE0NVwxNDRceDJlIikpOyB9IH0gcHVibGljIGZ1bmN0aW9uIGluc2VydG5ld0NsYXNzRXhXaXRoRWRpdG9yKFJlcXVlc3QgJHJlcXVlc3QpIHsgJHZhbGlkYXRlZCA9IFZhbGlkYXRvcjo6bWFrZSgkcmVxdWVzdC0+YWxsKCksIGFycmF5KCJceDY1XHg3OFx4NGVcMTQxXHg2ZFwxNDVcMTA1XHg2NFwxNTFcMTY0XDE1N1wxNjIiID0+ICJceDcyXDE0NVx4NzFcMTY1XHg2OVwxNjJcMTQ1XHg2NCIsICJceDY1XHg3OFx4NjlcMTQ0XHg0NVwxNDRceDY5XHg3NFx4NmZceDcyIiA9PiAiXDE2MlwxNDVceDcxXDE2NVx4NjlcMTYyXHg2NVwxNDQiLCAiXHg0NVx4NzhcMTA1XDE0NFx4NjlceDc0XHg2Zlx4NzIiID0+ICJcMTYyXDE0NVwxNjFceDc1XDE1MVx4NzJcMTQ1XHg2NCIpLCBhcnJheSgiXDE0NVx4NzhceDRlXHg2MVx4NmRcMTQ1XHg0NVx4NjRceDY5XDE2NFx4NmZcMTYyXHgyZVwxNjJcMTQ1XDE2MVx4NzVceDY5XDE2MlwxNDVceDY0IiA9PiAiXHg1NFx4NjhcMTQ1XDQwXDEwNVwxNzBcMTYwXDE0NVwxNjJceDY5XDE1NVwxNDVceDZlXDE2NFx4MjBcMTE2XDE0MVx4NmRcMTQ1XHgyMFx4NjZceDY5XDE0NVwxNTRcMTQ0XDQwXDE1MVwxNjNceDIwXDE2MlwxNDVcMTYxXHg3NVwxNTFceDcyXDE0NVwxNDQiLCAiXDE0NVx4NzhcMTUxXDE0NFx4NDVcMTQ0XDE1MVx4NzRcMTU3XHg3Mlx4MmVceDcyXDE0NVx4NzFceDc1XHg2OVx4NzJceDY1XDE0NCIgPT4gIlwxMDVcMTYyXHg3MlwxNTdcMTYyXHgyMFx4NTJceDY1XDE1NFwxNTdceDYxXDE0NFw0MFwxNjRcMTUwXDE0NVw0MFwxNjBceDYxXHg2N1x4NjUiLCAiXHg0NVwxNzBcMTA1XDE0NFwxNTFceDc0XHg2ZlwxNjJcNTZceDcyXHg2NVx4NzFceDc1XHg2OVx4NzJceDY1XHg2NCIgPT4gIlwxMjRceDY4XHg2NVx4MjBcMTA1XDE3MFx4NzBceDY1XDE2Mlx4NjlceDZkXHg2NVx4NmVcMTY0XDE0MFwxNjNcNDBcMTA1XHg2NFwxNTFcMTY0XDE1N1x4NzJceDIwXDE0NlwxNTFcMTQ1XDE1NFwxNDRcNDBceDY5XDE2M1x4MjBceDcyXDE0NVwxNjFceDc1XDE1MVwxNjJcMTQ1XHg2NCIpKTsgaWYgKCR2YWxpZGF0ZWQtPmZhaWxzKCkpIHsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjVceDcyXDE2MlwxNTdceDcyXHg3MyIgPT4gJHZhbGlkYXRlZC0+ZXJyb3JzKCktPmZpcnN0KCkpKTsgfSBlbHNlIHsgJG5ld0V4ID0gbmV3IGNsYXNzRXgoKTsgJG5ld0V4LT5jbGFzc19pZCA9ICRyZXF1ZXN0LT5leGlkRWRpdG9yOyAkbmV3RXgtPmV4X25hbWUgPSAkcmVxdWVzdC0+ZXhOYW1lRWRpdG9yOyAkbmV3RXgtPkV4Q3JlYXRlZCA9ICRyZXF1ZXN0LT5FeEVkaXRvcjsgJG5ld0V4LT5zYXZlKCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDY5XDE1NlwxNjNceDY1XDE2Mlx4NzRceDY1XHg2NCIgPT4gIlwxMTZcMTQ1XDE2N1w0MFx4NDVceDc4XDE2MFwxNDVcMTYyXDE1MVx4NmRceDY1XDE1Nlx4NzRceDIwXHg2OFwxNDFceDczXDQwXDE0MlwxNDVcMTQ1XHg2ZVw0MFwxNjNceDc1XHg2Mlx4NmRceDY5XHg3NFx4NzRceDY1XDE0NFw1NiIpKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBWaWV3RXhwZXJpbWVudChSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRhcHBzX2NoZWNrID0gREI6OnRhYmxlKCJceDczXHg2ZFwxNDFcMTYyXDE2NFwxNTRcMTQxXDE0MlwxMzdcMTQxXDE2MFwxNjBceDczIiktPndoZXJlKCJcMTQzXDE1NFwxNDFcMTYzXDE2M1x4NDVcMTcwXDEzN1x4NjlceDY0IiwgJHJlcXVlc3QtPklEKS0+Z2V0KCk7IGlmICgkYXBwc19jaGVjay0+aXNOb3RFbXB0eSgpKSB7ICRkYXRhID0gREI6OnRhYmxlKCJceDYzXDE1NFwxNDFceDczXHg3M1x4NWZceDY1XHg3OFwxNDVcMTYzIiktPnNlbGVjdCgiXDE0M1x4NmNcMTQxXDE2M1wxNjNcMTM3XHg2NVx4NzhceDY1XHg3M1x4MmVceDJhIiwgIlwxNjNcMTU1XHg2MVwxNjJcMTY0XDE1NFwxNDFcMTQyXHg1ZlwxNDFcMTYwXDE2MFx4NzNcNTZcNTIiLCAiXDE0M1wxNTRcMTQxXHg3M1x4NzNceDVmXDE0NVwxNzBcMTQ1XDE2M1w1Nlx4NjlcMTQ0XDQwXHg2MVx4NzNcNDBceDZjXHg2OVx4NmVcMTUzXDExNlwxNDFceDZkXDE0NSIpLT5qb2luKCJcMTYzXDE1NVwxNDFcMTYyXHg3NFwxNTRceDYxXHg2Mlx4NWZcMTQxXHg3MFwxNjBceDczIiwgIlwxNDNcMTU0XDE0MVx4NzNceDczXDEzN1x4NjVceDc4XDE0NVwxNjNcNTZcMTUxXDE0NCIsICJceDNkIiwgIlwxNjNceDZkXDE0MVx4NzJcMTY0XDE1NFwxNDFceDYyXHg1ZlwxNDFceDcwXHg3MFx4NzNcNTZcMTQzXHg2Y1x4NjFceDczXDE2M1wxMDVceDc4XHg1ZlwxNTFcMTQ0IiktPndoZXJlKCJcMTQzXHg2Y1x4NjFceDczXDE2M1x4NWZceDY1XHg3OFwxNDVcMTYzXHgyZVx4NjNcMTU0XHg2MVx4NzNcMTYzXHg1Zlx4NjlcMTQ0IiwgJHJlcXVlc3QtPklEKS0+Z2V0KCk7ICRkYXRhX3Njb3JlID0gREI6OnRhYmxlKCJceDY1XDE3MFwxNjBceDY1XDE2Mlx4NjlceDZkXHg2NVwxNTZcMTY0XHg1ZlwxNjJcMTQ1XDE2MFwxNTdcMTYyXHg3NFwxNjMiKS0+d2hlcmUoIlwxMDVcMTcwXDE2MFwxNDVcMTYyXHg2OVx4NmRceDY1XHg2ZVwxNjRceDVmXHg2OVwxNDQiLCAkcmVxdWVzdC0+SUQpLT53aGVyZSgiXDE2NVx4NzNceDY1XHg3MlwxMzdceDY5XHg2NCIsIFNlc3Npb246OmdldCgiXDE2NVwxNjNcMTQ1XHg3Mlx4NmVcMTQxXHg2ZFx4NjUiKSktPmZpcnN0KCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDQ0XDE0MVx4NzRceDYxXHg0NVwxMzAiID0+ICRkYXRhLCAiXHg0NFx4NjFcMTY0XDE0MVwxMzdcMTYzXDE0M1x4NmZcMTYyXDE0NSIgPT4gJGRhdGFfc2NvcmUpKTsgfSBlbHNlIHsgJGRhdGEgPSBEQjo6dGFibGUoIlwxNDNcMTU0XDE0MVwxNjNcMTYzXDEzN1wxNDVceDc4XHg2NVx4NzMiKS0+c2VsZWN0KCJcMTQzXHg2Y1wxNDFceDczXHg3M1x4NWZcMTQ1XHg3OFwxNDVceDczXDU2XDUyIiwgIlx4NzNcMTU1XHg2MVwxNjJcMTY0XHg2Y1x4NjFceDYyXHg1Zlx4NjFceDcwXHg3MFwxNjNceDJlXDUyIiwgIlx4NjNceDZjXHg2MVx4NzNcMTYzXDEzN1x4NjVceDc4XHg2NVwxNjNceDJlXHg2OVx4NjRceDIwXHg2MVwxNjNceDIwXHg2Y1x4NjlcMTU2XDE1M1wxMTZcMTQxXHg2ZFx4NjUiKS0+am9pbigiXDE2M1x4NmRcMTQxXHg3Mlx4NzRcMTU0XHg2MVx4NjJceDVmXDE0MVwxNjBceDcwXDE2MyIsICJcMTQzXHg2Y1x4NjFceDczXHg3M1wxMzdceDY1XHg3OFwxNDVceDczXDU2XDE1MVx4NjQiLCAiXDc1IiwgIlwxNjNcMTU1XHg2MVx4NzJceDc0XHg2Y1wxNDFcMTQyXHg1ZlwxNDFcMTYwXDE2MFwxNjNcNTZceDYzXDE1NFwxNDFceDczXDE2M1wxMDVcMTcwXDEzN1x4NjlceDY0IiktPndoZXJlKCJcMTQzXDE1NFx4NjFcMTYzXDE2M1wxMzdceDY1XDE3MFx4NjVceDczXDU2XHg2M1x4NmNcMTQxXHg3M1wxNjNceDVmXHg2OVwxNDQiLCAkcmVxdWVzdC0+SUQpLT5nZXQoKTsgJGRhdGFfc2NvcmUgPSBEQjo6dGFibGUoIlwxNDVcMTcwXDE2MFx4NjVceDcyXHg2OVx4NmRcMTQ1XDE1Nlx4NzRceDVmXHg3Mlx4NjVceDcwXDE1N1wxNjJceDc0XDE2MyIpLT53aGVyZSgiXHg0NVwxNzBcMTYwXDE0NVx4NzJcMTUxXDE1NVx4NjVcMTU2XDE2NFwxMzdcMTUxXDE0NCIsICRyZXF1ZXN0LT5JRCktPndoZXJlKCJcMTY1XDE2M1x4NjVcMTYyXDEzN1wxNTFcMTQ0IiwgU2Vzc2lvbjo6Z2V0KCJceDc1XHg3M1wxNDVcMTYyXDE1Nlx4NjFceDZkXHg2NSIpKS0+Zmlyc3QoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxMDRcMTQxXDE2NFwxNDFcMTA1XHg1OCIgPT4gJGRhdGEsICJcMTA0XHg2MVwxNjRcMTQxXHg1ZlwxNjNceDYzXHg2ZlwxNjJcMTQ1IiA9PiAkZGF0YV9zY29yZSkpOyB9IH0gcHVibGljIGZ1bmN0aW9uIEFwcHNGZXRjaChSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRkYXRhID0gREI6OnRhYmxlKCJceDYzXHg2Y1x4NjFceDczXHg3M1x4NWZceDY1XDE3MFwxNDVceDczIiktPnNlbGVjdCgiXHg2M1wxNTRceDYxXDE2M1wxNjNcMTM3XHg2NVx4NzhceDY1XHg3M1x4MmVcNTIiLCAiXDE2M1wxNTVceDYxXDE2Mlx4NzRceDZjXDE0MVx4NjJceDVmXHg2MVwxNjBcMTYwXHg3M1w1Nlx4MmEiLCAiXDE0M1x4NmNcMTQxXDE2M1x4NzNceDVmXDE0NVwxNzBceDY1XDE2M1w1Nlx4NjlceDY0XDQwXHg2MVx4NzNcNDBceDZjXDE1MVx4NmVceDZiXDExNlwxNDFcMTU1XHg2NSIpLT5sZWZ0Sm9pbigiXDE2M1wxNTVceDYxXDE2MlwxNjRcMTU0XDE0MVx4NjJceDVmXHg2MVx4NzBcMTYwXDE2MyIsICJceDYzXHg2Y1wxNDFceDczXDE2M1x4NWZceDY1XDE3MFwxNDVcMTYzXHgyZVx4NjlcMTQ0IiwgIlw3NSIsICJceDczXHg2ZFwxNDFcMTYyXHg3NFwxNTRceDYxXHg2Mlx4NWZceDYxXHg3MFwxNjBceDczXHgyZVx4NjNcMTU0XDE0MVx4NzNcMTYzXHg0NVwxNzBcMTM3XHg2OVwxNDQiKS0+d2hlcmUoIlx4NjNcMTU0XHg2MVx4NzNceDczXDEzN1x4NjVcMTcwXDE0NVx4NzNcNTZceDY5XHg2NCIsICRyZXF1ZXN0LT5JRCktPmdldCgpOyByZXR1cm4gRGF0YVRhYmxlczo6b2YoJGRhdGEpLT5hZGRJbmRleENvbHVtbigpLT5hZGRDb2x1bW4oIlwxMDVcMTcwXHg3MFwxNDVcMTYyXDE1MVx4NmRceDY1XDE1NlwxNjRcMTE2XHg2MVwxNTVcMTQ1IiwgZnVuY3Rpb24gKCRyb3cpIHsgaWYgKCFlbXB0eSgkcm93LT5leF9maWxlKSkgeyAkYnRuID0gIlx4M2NceDYxXHgyMFwxNjRcMTQxXDE2MlwxNDdcMTQ1XHg3NFw3NVx4MjJcMTM3XHg2Mlx4NmNcMTQxXDE1NlwxNTNcNDJceDIwXDE1MFx4NzJceDY1XHg2Nlx4M2RceDIyXDEwM1wxNTRceDYxXDE2M1wxNjNceDQ1XHg3OFw1NyIgLiAkcm93LT5leF9maWxlIC4gIlx4MjJcNzYiIC4gJHJvdy0+ZXhfbmFtZSAuICJceDNjXDU3XHg2MVx4M2UiOyByZXR1cm4gJGJ0bjsgfSBlbHNlIHsgaWYgKCFlbXB0eSgkcm93LT5FeENyZWF0ZWQpKSB7ICRidG4gPSAiXHgzY1x4NjFcNDBcMTY0XDE0MVx4NzJceDY3XDE0NVwxNjRcNzVcNDJceDVmXHg2Mlx4NmNcMTQxXHg2ZVwxNTNceDIyXDQwXHg2OFx4NzJceDY1XHg2Nlx4M2RcNDJcMTQ1XHg3OFx4NzBceDY1XHg3MlwxNTFcMTU1XDE0NVwxNTZceDc0XDU3IiAuICRyb3ctPmxpbmtOYW1lIC4gIlw0Mlx4M2UiIC4gJHJvdy0+ZXhfbmFtZSAuICJcNzRcNTdceDYxXHgzZSI7IHJldHVybiAkYnRuOyB9IH0gfSktPmFkZENvbHVtbigiXDEwMVx4NzBceDcwIiwgZnVuY3Rpb24gKCRyb3cpIHsgaWYgKCRyb3ctPmFwcF9uYW1lID09ICJceDQ0XDE1MVx4NjdcMTUxXHg3NFwxNDFceDZjXDQwXHg0M1x4NjlcMTYyXHg2M1x4NzVceDY5XHg3NCIpIHsgJGJ0biA9ICJcNzRceDYxXDQwXHg3NFwxNDFcMTYyXHg2N1x4NjVceDc0XDc1XDQyXDEzN1wxNDJcMTU0XHg2MVx4NmVcMTUzXDQyXDQwXHg2OFwxNjJcMTQ1XHg2Nlx4M2RceDIyXDU3XDE2M1wxNTFceDZkXHg3NVwxNTRcMTQxXHg3NFx4NmZceDcyXHgzZlwxNDFceDcwXHg3MFx4M2RceDQ0XHg0M1w0Mlx4MjBceDYzXDE1NFwxNDFcMTYzXDE2M1x4M2RceDIyXHg2MlwxNjRcMTU2XHgyMFwxNDJceDc0XDE1Nlw1NVx4NjRcMTQxXDE1Nlx4NjdceDY1XDE2Mlx4MjJceDNlIiAuICRyb3ctPmFwcF9uYW1lIC4gIlw3NFx4MmZcMTQxXHgzZSI7IHJldHVybiAkYnRuOyB9IGlmICgkcm93LT5hcHBfbmFtZSA9PSAiXHg0NFwxNTFcMTQ3XHg2OVx4NzRceDYxXHg2Y1w0MFx4NDFceDcyXDE0NFx4NzVceDY5XDE1Nlx4NmYiKSB7ICRidG4gPSAiXHgzY1x4NjFcNDBcMTY0XDE0MVwxNjJceDY3XDE0NVx4NzRcNzVcNDJceDVmXDE0MlwxNTRcMTQxXDE1Nlx4NmJceDIyXDQwXDE1MFx4NzJcMTQ1XHg2Nlx4M2RceDIyXDU3XHg3M1wxNTFcMTU1XDE2NVwxNTRcMTQxXHg3NFwxNTdcMTYyXHgzZlx4NjFcMTYwXDE2MFx4M2RcMTA0XHg0MVx4MjJcNDBcMTQzXDE1NFwxNDFcMTYzXHg3M1w3NVx4MjJcMTQyXDE2NFwxNTZceDIwXDE0MlwxNjRceDZlXHgyZFx4NjRceDYxXHg2ZVx4NjdceDY1XDE2Mlx4MjJceDNlIiAuICRyb3ctPmFwcF9uYW1lIC4gIlx4M2NceDJmXHg2MVx4M2UiOyByZXR1cm4gJGJ0bjsgfSB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXHg0MVwxNjBcMTYwIiwgIlwxMDVcMTcwXDE2MFwxNDVceDcyXDE1MVx4NmRcMTQ1XHg2ZVwxNjRceDRlXDE0MVx4NmRcMTQ1IikpLT5tYWtlKHRydWUpOyB9IHB1YmxpYyBmdW5jdGlvbiBpbnNlcnRuZXdFeHBlcmltZW50UmVwb3J0KFJlcXVlc3QgJHJlcXVlc3QpIHsgJGNsYXNzSUQgPSAkcmVxdWVzdC0+Y2xhc3NfaWQ7ICR2YWxpZGF0ZWQgPSBWYWxpZGF0b3I6Om1ha2UoJHJlcXVlc3QtPmFsbCgpLCBhcnJheSgiXDEwNVwxNzBceDcwXDE0NVwxNjJcMTUxXHg2ZFwxNDVceDZlXHg3NFx4NDlceDQ0IiA9PiAiXDE2Mlx4NjVceDcxXHg3NVwxNTFceDcyXDE0NVwxNDQiLCAiXDEyMlwxNDVcMTYwXDE1N1wxNjJceDc0XDEwNlx4NjlceDZjXHg2NSIgPT4gIlwxNjJcMTQ1XDE2MVwxNjVceDY5XDE2MlwxNDVcMTQ0IiwgIlx4NTJceDY1XHg3MFx4NmZceDcyXHg3NFx4NDZcMTUxXDE1NFwxNDUiID0+ICJcMTYyXDE0NVx4NzFceDc1XHg2OVx4NzJceDY1XHg2NFx4N2NceDZkXHg2OVwxNTVcMTQ1XDE2M1w3Mlx4NzBcMTQ0XDE0NiIpLCBhcnJheSgiXHg0NVwxNzBcMTYwXHg2NVx4NzJceDY5XDE1NVx4NjVceDZlXHg3NFx4NDlcMTA0XHgyZVwxNjJcMTQ1XDE2MVwxNjVceDY5XHg3MlwxNDVceDY0IiA9PiAiXDEyNFx4NjhcMTQ1XHgyMFx4NDVceDc4XHg3MFwxNDVceDcyXDE1MVwxNTVcMTQ1XDE1Nlx4NzRceDIwXHg0ZVx4NjFcMTU1XHg2NVw0MFwxNDZcMTUxXHg2NVwxNTRcMTQ0XDQwXHg2OVx4NzNceDIwXHg3MlwxNDVceDcxXHg3NVwxNTFcMTYyXDE0NVwxNDQiLCAiXDE0NVwxNzBcMTUxXDE0NFx4MmVcMTYyXDE0NVx4NzFceDc1XHg2OVwxNjJcMTQ1XDE0NCIgPT4gIlwxMDVcMTYyXDE2MlwxNTdceDcyXDQwXHg1MlwxNDVcMTU0XDE1N1wxNDFcMTQ0XDQwXDE2NFx4NjhceDY1XDQwXHg3MFx4NjFcMTQ3XDE0NSIsICJcMTIyXDE0NVx4NzBceDZmXHg3MlwxNjRceDQ2XDE1MVwxNTRceDY1XDU2XHg3Mlx4NjVcMTYxXDE2NVwxNTFceDcyXHg2NVwxNDQiID0+ICJcMTI0XDE1MFwxNDVceDIwXDEwNVx4NzhceDcwXHg2NVx4NzJceDY5XHg2ZFwxNDVceDZlXDE2NFw0MFx4NTJceDY1XHg3MFwxNTdcMTYyXDE2NFx4MjBceDY2XHg2OVwxNTRceDY1XDQwXHg2Nlx4NjlcMTQ1XDE1NFwxNDRcNDBceDY5XHg3M1w0MFwxNjJceDY1XDE2MVwxNjVcMTUxXHg3MlwxNDVcMTQ0IiwgIlwxMjJcMTQ1XHg3MFx4NmZceDcyXDE2NFwxMDZceDY5XHg2Y1wxNDVcNTZceDZkXHg2OVx4NmRceDY1XDE2MyIgPT4gIlwxMjRceDY4XHg2NVx4MjBceDQ1XHg3OFx4NzBcMTQ1XDE2MlwxNTFceDZkXDE0NVwxNTZceDc0XHgyMFwxMjJceDY1XDE2MFx4NmZceDcyXDE2NFx4MjBcMTQ2XHg2OVx4NmNcMTQ1XHgyMFx4NmRcMTY1XDE2M1wxNjRcNDBcMTQyXDE0NVw0MFx4NjFceDIwXDEyMFwxMDRcMTA2XDQwXDE0NlwxNTFcMTU0XDE0NSIpKTsgaWYgKCR2YWxpZGF0ZWQtPmZhaWxzKCkpIHsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNDVceDcyXDE2MlwxNTdceDcyXHg3MyIgPT4gJHZhbGlkYXRlZC0+ZXJyb3JzKCktPmZpcnN0KCkpKTsgfSBlbHNlIHsgJGNoZWNrX2lmX2xhYlJlcG9ydF9zdWJtaXR0ZWQgPSBEQjo6dGFibGUoIlwxNDVceDc4XDE2MFx4NjVceDcyXDE1MVx4NmRceDY1XHg2ZVx4NzRceDVmXHg3MlwxNDVceDcwXHg2Zlx4NzJcMTY0XDE2MyIpLT53aGVyZSgiXHg0NVwxNzBcMTYwXHg2NVx4NzJceDY5XDE1NVx4NjVcMTU2XHg3NFx4NWZcMTUxXDE0NCIsICRyZXF1ZXN0LT5FeHBlcmltZW50SUQpLT53aGVyZSgiXDE2NVwxNjNceDY1XHg3Mlx4NWZcMTUxXHg2NCIsIFNlc3Npb246OmdldCgiXDE2NVx4NzNceDY1XDE2MlwxNTZcMTQxXDE1NVx4NjUiKSktPmZpcnN0KCk7IGlmICgkY2hlY2tfaWZfbGFiUmVwb3J0X3N1Ym1pdHRlZCkgeyBpZiAoJHBkZiA9ICRyZXF1ZXN0LT5maWxlKCJcMTIyXHg2NVx4NzBcMTU3XHg3Mlx4NzRceDQ2XHg2OVx4NmNceDY1IikpIHsgJGZpbGVuYW1lID0gJHBkZi0+Z2V0Q2xpZW50T3JpZ2luYWxOYW1lKCk7IGlmICgkcGRmLT5tb3ZlKCJcMTA1XHg3OFx4NzBceDY1XHg3Mlx4NjlceDZkXDE0NVx4NmVcMTY0XHg1MlwxNDVcMTYwXDE1N1wxNjJcMTY0IiwgJGZpbGVuYW1lKSkgeyBEQjo6dGFibGUoIlx4NjVceDc4XHg3MFwxNDVceDcyXHg2OVwxNTVceDY1XDE1NlwxNjRceDVmXDE2MlwxNDVceDcwXDE1N1wxNjJceDc0XHg3MyIpLT53aGVyZSgiXDEwNVwxNzBcMTYwXHg2NVx4NzJcMTUxXDE1NVx4NjVcMTU2XDE2NFwxMzdceDY5XHg2NCIsICRyZXF1ZXN0LT5FeHBlcmltZW50SUQpLT53aGVyZSgiXHg3NVwxNjNcMTQ1XHg3MlwxMzdcMTUxXHg2NCIsIFNlc3Npb246OmdldCgiXHg3NVx4NzNcMTQ1XHg3Mlx4NmVcMTQxXHg2ZFwxNDUiKSktPnVwZGF0ZShhcnJheSgiXHg1MlwxNDVceDcwXHg2Zlx4NzJcMTY0XHg1Zlx4NjZceDY5XDE1NFx4NjUiID0+ICRmaWxlbmFtZSkpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXHg2OVwxNTZcMTYzXHg2NVwxNjJceDc0XDE0NVwxNDQiID0+ICJcMTE0XDE0MVwxNDJcNDBceDUyXHg2NVx4NzBceDZmXDE2MlwxNjRceDIwXHg2OFx4NjFceDczXDQwXDE0Mlx4NjVceDY1XDE1Nlx4MjBcMTY1XHg3MFx4NjRcMTQxXDE2NFwxNDVcMTQ0XHgyZSIpKTsgfSB9IH0gZWxzZSB7IGlmICgkcGRmID0gJHJlcXVlc3QtPmZpbGUoIlwxMjJceDY1XDE2MFwxNTdcMTYyXHg3NFwxMDZcMTUxXHg2Y1wxNDUiKSkgeyAkZmlsZW5hbWUgPSAkcGRmLT5nZXRDbGllbnRPcmlnaW5hbE5hbWUoKTsgaWYgKCRwZGYtPm1vdmUoIlx4NDVceDc4XDE2MFwxNDVcMTYyXHg2OVx4NmRcMTQ1XHg2ZVx4NzRceDUyXDE0NVwxNjBceDZmXHg3MlwxNjQiLCAkZmlsZW5hbWUpKSB7ICRjaGVjayA9IERCOjp0YWJsZSgiXDE0M1x4NmNcMTQxXDE2M1wxNjNcMTQ1XDE2MyIpLT5zZWxlY3QoIlwxNjJcMTY1XHg2Mlx4NzJceDY5XHg2M1wxMzdceDYxXDE2M1wxNjNcMTUxXHg2N1x4NmVceDY1XHg2NCIpLT53aGVyZSgiXHg2OVwxNDQiLCAkY2xhc3NJRCktPmdldCgpOyAkbmV3RXggPSBuZXcgRXhwZXJpbWVudFJlcG9ydCgpOyAkbmV3RXgtPkV4cGVyaW1lbnRfaWQgPSAkcmVxdWVzdC0+RXhwZXJpbWVudElEOyAkbmV3RXgtPlJlcG9ydF9maWxlID0gJGZpbGVuYW1lOyAkbmV3RXgtPnVzZXJfaWQgPSBTZXNzaW9uOjpnZXQoIlwxNjVceDczXHg2NVx4NzJcMTU2XHg2MVx4NmRceDY1Iik7ICRuZXdFeC0+Y2xhc3NfaWQgPSAkY2xhc3NJRDsgJG5ld0V4LT5zYXZlKCk7ICRhY3RfbmFtZSA9IERCOjp0YWJsZSgiXHg2M1x4NmNcMTQxXDE2M1x4NzNcMTM3XDE0NVx4NzhcMTQ1XHg3MyIpLT5zZWxlY3QoIlx4NjVcMTcwXHg1ZlwxNTZceDYxXDE1NVwxNDUiKS0+d2hlcmUoIlx4NjlceDY0IiwgJHJlcXVlc3QtPkV4cGVyaW1lbnRJRCktPmdldCgpOyAkc2F2ZUdyYWRlID0gbmV3IFJ1YnJpY0dyYWRlcygpOyAkc2F2ZUdyYWRlLT51X2lkID0gU2Vzc2lvbjo6Z2V0KCJcMTY1XHg3M1wxNDVceDcyXHg2ZVwxNDFcMTU1XHg2NSIpOyAkc2F2ZUdyYWRlLT50b3RhbF9zY29yZSA9ICJceDRlXHgyZlwxMDEiOyAkc2F2ZUdyYWRlLT5yYW5rID0gIlwxMTZceDJmXDEwMSI7ICRzYXZlR3JhZGUtPmlkX3J1YnJpYyA9ICRjaGVja1swXS0+cnVicmljX2Fzc2lnbmVkOyAkc2F2ZUdyYWRlLT5mZWVkYmFjayA9ICJceDRlXHgyZlwxMDEiOyAkc2F2ZUdyYWRlLT5jbGFzc19pZCA9ICRjbGFzc0lEOyAkc2F2ZUdyYWRlLT5hY3RfaWQgPSAkcmVxdWVzdC0+RXhwZXJpbWVudElEOyAkc2F2ZUdyYWRlLT5hY3RfbmFtZSA9ICRhY3RfbmFtZVswXS0+ZXhfbmFtZTsgJHNhdmVHcmFkZS0+cmVwb3J0X2ZpbGUgPSAkZmlsZW5hbWU7ICRzYXZlR3JhZGUtPmNyZWF0ZWRfYnkgPSAiXDExNlx4MmZcMTAxIjsgJHNhdmVHcmFkZS0+c2F2ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE1MVwxNTZceDczXHg2NVwxNjJceDc0XDE0NVwxNDQiID0+ICJcMTE2XHg2NVwxNjdcNDBcMTE0XHg2MVx4NjJceDIwXHg1Mlx4NjVceDcwXDE1N1wxNjJceDc0XHgyMFx4NjhceDYxXHg3M1w0MFx4NjJceDY1XDE0NVx4NmVcNDBceDczXHg3NVwxNDJcMTU1XDE1MVx4NzRcMTY0XDE0NVwxNDRceDJlIikpOyB9IH0gfSB9IH0gcHVibGljIGZ1bmN0aW9uIFJlcG9ydHNTdWJtaXR0ZWQoUmVxdWVzdCAkcmVxdWVzdCkgeyAkY2xhc3NJRCA9IENsYXNzZXM6OmZpbmQoY2xhc3NFeDo6ZmluZCgkcmVxdWVzdC0+SUQpLT5jbGFzc19pZCktPmlkOyAkY2hlY2sgPSBEQjo6dGFibGUoIlwxNDNcMTU0XDE0MVx4NzNceDczXHg2NVx4NzMiKS0+c2VsZWN0KCJceDcyXHg3NVx4NjJcMTYyXHg2OVx4NjNcMTM3XDE0MVx4NzNceDczXDE1MVwxNDdceDZlXHg2NVx4NjQiKS0+d2hlcmUoIlx4NjlcMTQ0IiwgJGNsYXNzSUQpLT5nZXQoKTsgJGhhc1J1YnJpYyA9IERCOjp0YWJsZSgiXDE0M1x4NmNceDYxXHg3M1x4NzNceDY1XHg3MyIpLT5zZWxlY3QoIlx4NzJceDc1XHg2Mlx4NzJceDY5XDE0M1wxMzdcMTQxXHg3M1x4NzNcMTUxXHg2N1wxNTZceDY1XDE0NCIpLT53aGVyZSgiXDE1MVwxNDQiLCAkY2xhc3NJRCktPndoZXJlTm90TnVsbCgiXDE2MlwxNjVcMTQyXDE2MlwxNTFceDYzXHg1Zlx4NjFcMTYzXDE2M1wxNTFcMTQ3XDE1Nlx4NjVceDY0IiktPmZpcnN0KCk7IGlmICgkaGFzUnVicmljKSB7ICRkYXRhID0gREI6OnRhYmxlKCJceDc1XDE2M1x4NjVcMTYyXHg3MyIpLT5zZWxlY3QoIlwxNjVceDczXDE0NVx4NzJcMTYzXDU2XDUyIiwgIlwxNjJceDc1XDE0Mlx4NzJceDY5XHg2M1wxMzdcMTQ3XHg3MlwxNDFceDY0XDE0NVwxNjNceDJlXDUyIiwgIlx4NzVceDczXHg2NVwxNjJceDczXDU2XHg2OVx4NjRcNDBceDYxXHg3M1w0MFx4NTVcMTYzXHg2NVx4NzJcMTExXHg0NCIpLT5qb2luKCJceDcyXHg3NVwxNDJcMTYyXDE1MVx4NjNcMTM3XHg2N1x4NzJceDYxXHg2NFx4NjVcMTYzIiwgIlwxNjVceDczXHg2NVx4NzJceDczXHgyZVwxNTFceDY0IiwgIlx4M2QiLCAiXHg3MlwxNjVceDYyXHg3Mlx4NjlceDYzXHg1ZlwxNDdceDcyXHg2MVx4NjRcMTQ1XDE2M1x4MmVcMTY1XDEzN1x4NjlcMTQ0IiktPndoZXJlKCJceDcyXHg3NVx4NjJceDcyXDE1MVwxNDNceDVmXHg2N1wxNjJceDYxXDE0NFx4NjVcMTYzXDU2XHg2MVx4NjNceDc0XDEzN1wxNTFceDY0IiwgJHJlcXVlc3QtPklEKS0+Z2V0KCk7IHJldHVybiBEYXRhVGFibGVzOjpvZigkZGF0YSktPmFkZEluZGV4Q29sdW1uKCktPmFkZENvbHVtbigiXHg2MVwxNDNcMTY0XHg2OVx4NmZceDZlIiwgZnVuY3Rpb24gKCRyb3cpIHsgJHJ1YnJpY0lEID0gQ2xhc3Nlczo6ZmluZChjbGFzc0V4OjpmaW5kKCRyb3ctPmFjdF9pZCktPmNsYXNzX2lkKS0+cnVicmljX2Fzc2lnbmVkOyAkY2xhc3NJRDEgPSBDbGFzc2VzOjpmaW5kKGNsYXNzRXg6OmZpbmQoJHJvdy0+YWN0X2lkKS0+Y2xhc3NfaWQpLT5pZDsgJHVzZXJJRCA9ICRyb3ctPnVfaWQ7ICRidG4gPSAiXDc0XHg2MVx4MjBcMTUwXDE2MlwxNDVcMTQ2XDQwXDc1XHgyMFx4MjJceDJmXHg3MlwxNjVceDYyXHg3Mlx4NjlcMTQzXDU1XHg2N1x4NzJcMTQxXDE0NFx4NjVceDJmIiAuICRydWJyaWNJRCAuICJceDJmIiAuICRjbGFzc0lEMSAuICJcNTciIC4gJHJvdy0+YWN0X2lkIC4gIlx4MmYiIC4gJHVzZXJJRCAuICJceDIyXHgyMFwxNjRcMTQxXDE2MlwxNDdceDY1XHg3NFw0MFx4M2RceDIwXHgyMlx4NWZcMTQyXDE1NFwxNDFcMTU2XDE1M1x4MjJcNDBceDYzXHg2Y1wxNDFceDczXHg3M1x4M2RceDIyXDE0Mlx4NzRcMTU2XDQwXHgyMFx4NjJceDc0XDE1Nlx4MmRcMTYzXHg2ZFx4MjJcNDBcMTYzXDE2NFx4NzlceDZjXHg2NVx4M2RceDIyXHg2Mlx4NjFceDYzXDE1M1x4NjdcMTYyXHg2ZlwxNjVceDZlXDE0NFx4MmRceDYzXDE1N1wxNTRcMTU3XDE2Mlx4M2FcNDBcMTQ3XDE1N1x4NmNceDY0XHgzYlw0MFx4NjNcMTU3XDE1NFwxNTdceDcyXHgzYVx4MjBcMTY3XHg2OFwxNTFcMTY0XHg2NVx4M2JcNDJcNzZcMTIyXHg3NVwxNDJcMTYyXHg2OVwxNDNcNDBcMTA3XDE2MlwxNDFceDY0XHg2NVw3NFw1N1x4NjFcNzYiOyByZXR1cm4gJGJ0bjsgfSktPmFkZENvbHVtbigiXDEwNlx4NjlceDZjXDE0NVx4NTNceDc1XHg2Mlx4NmRcMTUxXDE2NFx4NzRceDY1XDE0NCIsIGZ1bmN0aW9uICgkcm93KSB7ICRidG4gPSAiXHgzY1x4NjFceDIwXHg3NFx4NjFceDcyXDE0N1wxNDVcMTY0XHgzZFx4MjJceDVmXHg2Mlx4NmNceDYxXDE1NlwxNTNceDIyXHgyMFwxNTBcMTYyXHg2NVwxNDZceDNkXDQyXHg0NVwxNzBceDcwXDE0NVwxNjJcMTUxXHg2ZFwxNDVceDZlXDE2NFx4NTJceDY1XHg3MFx4NmZcMTYyXDE2NFx4MmYiIC4gJHJvdy0+cmVwb3J0X2ZpbGUgLiAiXDQyXHgzZVx4NTZceDY5XDE0NVwxNjdcNDBcMTE0XDEwMVx4NDJcNDBcMTIyXDE0NVwxNjBcMTU3XHg3Mlx4NzRceDNjXDU3XHg2MVw3NiI7IHJldHVybiAkYnRuOyB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXDE0MVwxNDNceDc0XDE1MVx4NmZceDZlIiwgIlwxMDZceDY5XDE1NFx4NjVcMTIzXHg3NVwxNDJceDZkXHg2OVwxNjRceDc0XHg2NVx4NjQiKSktPm1ha2UodHJ1ZSk7IH0gZWxzZSB7ICRkYXRhID0gREI6OnRhYmxlKCJcMTY1XDE2M1x4NjVcMTYyXHg3MyIpLT5zZWxlY3QoIlwxNjVceDczXHg2NVwxNjJceDczXHgyZVx4MmEiLCAiXHg2NVwxNzBceDcwXHg2NVwxNjJcMTUxXHg2ZFwxNDVceDZlXHg3NFwxMzdcMTYyXHg2NVwxNjBceDZmXHg3MlwxNjRcMTYzXDU2XHgyYSIsICJcMTQ1XDE3MFx4NzBceDY1XHg3MlwxNTFceDZkXHg2NVwxNTZcMTY0XHg1Zlx4NzJceDY1XDE2MFx4NmZcMTYyXHg3NFx4NzNcNTZcMTA1XDE3MFx4NzBceDY1XHg3Mlx4NjlceDZkXHg2NVx4NmVceDc0XDEzN1x4NjlcMTQ0XHgyMFwxNDFcMTYzXHgyMFwxMDVcMTcwXDE2MFx4NjVceDcyXHg2OVwxNTVceDY1XHg2ZVwxNjRceDQ5XDEwNCIsICJcMTY1XDE2M1wxNDVceDcyXDE2M1w1Nlx4NjlcMTQ0XHgyMFx4NjFceDczXHgyMFwxMjVcMTYzXDE0NVx4NzJceDQ5XHg0NCIsICJcMTQ1XDE3MFwxNjBcMTQ1XHg3Mlx4NjlcMTU1XHg2NVx4NmVcMTY0XHg1ZlwxNjJcMTQ1XHg3MFx4NmZceDcyXHg3NFwxNjNceDJlXHg2OVwxNDRcNDBceDYxXDE2M1x4MjBcMTA1XHg3OFwxNjBceDY1XDE2MlwxNTFcMTU1XHg2NVx4NmVceDc0XHg1ZlwxMTFceDQ0IiktPmpvaW4oIlwxNDVceDc4XHg3MFx4NjVceDcyXDE1MVwxNTVcMTQ1XDE1Nlx4NzRcMTM3XHg3Mlx4NjVceDcwXDE1N1wxNjJceDc0XHg3MyIsICJceDc1XDE2M1x4NjVceDcyXHg3M1w1Nlx4NjlceDY0IiwgIlw3NSIsICJceDY1XHg3OFwxNjBceDY1XDE2Mlx4NjlceDZkXHg2NVwxNTZcMTY0XDEzN1x4NzJcMTQ1XDE2MFwxNTdceDcyXHg3NFwxNjNcNTZcMTY1XDE2M1wxNDVcMTYyXHg1Zlx4NjlceDY0IiktPndoZXJlKCJceDY1XHg3OFx4NzBceDY1XDE2MlwxNTFcMTU1XDE0NVx4NmVcMTY0XHg1ZlwxNjJcMTQ1XDE2MFwxNTdcMTYyXDE2NFx4NzNcNTZceDQ1XHg3OFx4NzBceDY1XHg3Mlx4NjlcMTU1XDE0NVx4NmVcMTY0XHg1ZlwxNTFceDY0IiwgJHJlcXVlc3QtPklEKS0+Z2V0KCk7IHJldHVybiBEYXRhVGFibGVzOjpvZigkZGF0YSktPmFkZEluZGV4Q29sdW1uKCktPmFkZENvbHVtbigiXDE0MVwxNDNcMTY0XDE1MVx4NmZcMTU2IiwgZnVuY3Rpb24gKCRyb3cpIHsgJGJ0biA9ICJcNzRcMTQyXDE2NVwxNjRceDc0XDE1N1x4NmVcNDBceDYzXDE1NFx4NjFceDczXDE2M1w3NVw0Mlx4NjJcMTY0XDE1Nlx4MjBcNDBceDYyXDE2NFx4NmVceDJkXDE2M1x4NmRcNDBceDQxXDE0NFwxNDRcMTA3XDE2Mlx4NjFcMTQ0XDE0NVx4NDJceDc0XDE1Nlx4MjJcNDBcMTYzXHg3NFx4NzlceDZjXDE0NVx4M2RcNDJcMTQyXHg2MVx4NjNcMTUzXDE0N1wxNjJceDZmXHg3NVwxNTZceDY0XHgyZFx4NjNcMTU3XHg2Y1x4NmZcMTYyXDcyXHgyMFwxNDdcMTU3XDE1NFwxNDRcNzNcNDBceDYzXHg2ZlwxNTRceDZmXHg3Mlx4M2FceDIwXHg3N1x4NjhceDY5XDE2NFx4NjVcNzNceDIwXHgyMlx4MjBcMTQ0XHg2MVx4NzRceDYxXHgyZFwxNTFcMTQ0XDc1XDQyIiAuICRyb3ctPkV4cGVyaW1lbnRfSUQgLiAiXDQyXHgzZVx4NDdceDcyXHg2MVx4NjRcMTQ1XDc0XDU3XHg2MlwxNjVcMTY0XHg3NFwxNTdcMTU2XHgzZSI7IHJldHVybiAkYnRuOyB9KS0+YWRkQ29sdW1uKCJceDQ2XHg2OVwxNTRceDY1XDEyM1wxNjVceDYyXDE1NVx4NjlcMTY0XDE2NFx4NjVceDY0IiwgZnVuY3Rpb24gKCRyb3cpIHsgJGJ0biA9ICJceDNjXDE0MVx4MjBcMTY0XHg2MVx4NzJceDY3XDE0NVwxNjRcNzVcNDJcMTM3XDE0Mlx4NmNceDYxXHg2ZVx4NmJceDIyXHgyMFwxNTBcMTYyXHg2NVwxNDZcNzVcNDJceDQ1XDE3MFwxNjBcMTQ1XDE2MlwxNTFcMTU1XDE0NVwxNTZceDc0XHg1Mlx4NjVceDcwXHg2Zlx4NzJceDc0XHgyZiIgLiAkcm93LT5SZXBvcnRfZmlsZSAuICJcNDJceDNlXHg1NlwxNTFceDY1XHg3N1w0MFwxMTRceDQxXHg0Mlw0MFwxMjJcMTQ1XDE2MFwxNTdcMTYyXDE2NFx4M2NceDJmXDE0MVw3NiI7IHJldHVybiAkYnRuOyB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXHg2MVwxNDNcMTY0XDE1MVx4NmZcMTU2IiwgIlwxMDZcMTUxXDE1NFx4NjVceDUzXHg3NVwxNDJceDZkXDE1MVwxNjRcMTY0XHg2NVwxNDQiKSktPm1ha2UodHJ1ZSk7IH0gfSBwdWJsaWMgZnVuY3Rpb24gYUREbmV3R3JhZGVUb0V4cGVyaW1lbnQoUmVxdWVzdCAkcmVxdWVzdCkgeyAkRXhwZXJpbWVudF9EYXRhID0gREI6OnRhYmxlKCJcMTQ1XHg3OFx4NzBceDY1XDE2Mlx4NjlceDZkXDE0NVwxNTZcMTY0XDEzN1wxNjJcMTQ1XDE2MFwxNTdceDcyXHg3NFx4NzMiKS0+d2hlcmUoIlx4NjlcMTQ0IiwgJHJlcXVlc3QtPklEKS0+Zmlyc3QoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxMDVcMTcwXHg3MFwxNDVcMTYyXDE1MVx4NmRcMTQ1XHg2ZVwxNjRcMTM3XHg0OVwxMDRcMTM3XDEwNlwxNDVcMTY0XDE0M1x4NjhcMTQ1XDE0NCIgPT4gJEV4cGVyaW1lbnRfRGF0YSkpOyB9IHB1YmxpYyBmdW5jdGlvbiBOZXdHcmFkZShSZXF1ZXN0ICRyZXF1ZXN0KSB7ICR2YWxpZGF0ZWQgPSBWYWxpZGF0b3I6Om1ha2UoJHJlcXVlc3QtPmFsbCgpLCBhcnJheSgiXHg0NVx4NzhcMTYwXDE0NVx4NzJcMTUxXHg2ZFx4NjVcMTU2XHg3NFwxMzdcMTUxXDE0NFx4NWZceDY0XDE0MVx4NzRceDYxIiA9PiAiXDE2Mlx4NjVceDcxXHg3NVwxNTFcMTYyXDE0NVx4NjQiLCAiXDE2NVwxNjNcMTQ1XHg3MlwxMzdceDY5XHg2NFwxMzdcMTQ3XHg3MlwxNDFceDY0XDE0NSIgPT4gIlwxNjJcMTQ1XHg3MVx4NzVcMTUxXDE2MlwxNDVcMTQ0IiwgIlwxNDdcMTYyXDE0MVx4NjRcMTQ1IiA9PiAiXDE2Mlx4NjVceDcxXDE2NVwxNTFcMTYyXDE0NVx4NjQiKSwgYXJyYXkoIlwxNjVceDczXDE0NVwxNjJcMTU2XDE0MVx4NmRcMTQ1XDU2XDE2Mlx4NjVcMTYxXHg3NVx4NjlcMTYyXDE0NVx4NjQiID0+ICJceDU0XDE1MFwxNDVcNDBceDQ3XDE2Mlx4NjFcMTQ0XHg2NVw0MFwxMjNceDYzXDE1N1x4NzVcMTYyXDE0NVx4MjBcMTQ2XHg2OVx4NjVcMTU0XDE0NFx4MjBcMTUxXDE2M1x4MjBcMTYyXDE0NVx4NzFceDc1XDE1MVx4NzJcMTQ1XDE0NCIsICJceDQ1XDE3MFwxNjBceDY1XHg3MlwxNTFcMTU1XHg2NVwxNTZcMTY0XHg1ZlwxNTFceDY0XDEzN1wxNDRcMTQxXHg3NFx4NjFceDJlXDE2Mlx4NjVcMTYxXDE2NVwxNTFceDcyXHg2NVwxNDQiID0+ICJceDUzXDE3MVwxNjNcMTY0XDE0NVx4NmRcNDBcMTA1XDE2MlwxNjJceDZmXHg3Mlx4MmVceDIwXHg1MFx4NmNcMTQ1XDE0MVwxNjNcMTQ1XHgyMFwxNjJcMTQ1XDE1NFx4NmZcMTQxXHg2NFw0MFwxNjRceDY4XDE0NVx4MjBcMTYwXDE0MVwxNDdceDY1XDQwXDE1N1x4NzJcNDBceDYzXDE1N1x4NmVceDZlXDE2NFwxNDFceDYzXHg3NFx4MjBcMTYzXDE3MVx4NzNcMTY0XDE0NVx4NmRceDIwXHg2MVwxNDRcMTU1XHg2OVx4NmVceDY5XHg3M1x4NzRceDcyXHg2MVx4NzRcMTU3XHg3Mlw1NiIsICJceDc1XHg3M1wxNDVcMTYyXHg1Zlx4NjlceDY0XDEzN1x4NjdcMTYyXDE0MVwxNDRceDY1XDU2XDE2Mlx4NjVceDcxXDE2NVx4NjlceDcyXDE0NVwxNDQiID0+ICJceDUzXDE3MVwxNjNcMTY0XDE0NVwxNTVceDIwXDEwNVx4NzJceDcyXHg2Zlx4NzJceDJlXHgyMFx4NTBceDZjXDE0NVwxNDFceDczXDE0NVw0MFx4NzJceDY1XDE1NFx4NmZceDYxXDE0NFw0MFwxNjRcMTUwXDE0NVx4MjBceDcwXDE0MVx4NjdceDY1XHgyMFx4NmZceDcyXHgyMFwxNDNceDZmXHg2ZVx4NmVceDc0XDE0MVwxNDNcMTY0XDQwXDE2M1x4NzlceDczXHg3NFx4NjVcMTU1XHgyMFwxNDFcMTQ0XHg2ZFx4NjlcMTU2XHg2OVwxNjNceDc0XHg3Mlx4NjFcMTY0XDE1N1x4NzJceDJlIikpOyBpZiAoJHZhbGlkYXRlZC0+ZmFpbHMoKSkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0NVwxNjJceDcyXHg2ZlwxNjJcMTYzIiA9PiAkdmFsaWRhdGVkLT5lcnJvcnMoKS0+Zmlyc3QoKSkpOyB9IGVsc2UgeyAkY2hlY2tfZ3JhZGUgPSBEQjo6dGFibGUoIlx4NjVcMTcwXDE2MFx4NjVcMTYyXHg2OVwxNTVceDY1XDE1Nlx4NzRceDVmXHg3MlwxNDVceDcwXDE1N1wxNjJcMTY0XDE2MyIpLT53aGVyZSgiXDE1MVx4NjQiLCAkcmVxdWVzdC0+RXhwZXJpbWVudF9pZF9vKS0+Zmlyc3QoKTsgaWYgKCRyZXF1ZXN0LT5ncmFkZV9mZWVkYmFjayA9PSAnJykgeyBpZiAoJGNoZWNrX2dyYWRlLT5mZWVkYmFjayA9PSAiXDExNlx4MmZcMTAxIikgeyAkTmV3X2dyYWRlID0gRXhwZXJpbWVudFJlcG9ydDo6ZmluZCgkcmVxdWVzdC0+RXhwZXJpbWVudF9pZF9vKTsgJE5ld19ncmFkZS0+dG90YWxfc2NvcmUgPSAkcmVxdWVzdC0+Z3JhZGU7ICROZXdfZ3JhZGUtPmZlZWRiYWNrID0gIlwxMTZcNTdcMTAxIjsgJE5ld19ncmFkZS0+c2F2ZSgpOyAkY2hlY2tfcmVwb3J0ID0gREI6OnRhYmxlKCJceDY1XDE3MFx4NzBceDY1XHg3MlwxNTFceDZkXHg2NVx4NmVcMTY0XHg1Zlx4NzJcMTQ1XDE2MFwxNTdcMTYyXHg3NFwxNjMiKS0+d2hlcmUoIlx4NjlceDY0IiwgJHJlcXVlc3QtPkV4cGVyaW1lbnRfaWRfbyktPmZpcnN0KCk7ICRjaGVja19leHBlcmltZW50ID0gREI6OnRhYmxlKCJcMTQzXHg2Y1x4NjFceDczXHg3M1wxMzdceDY1XHg3OFx4NjVceDczIiktPndoZXJlKCJcMTUxXHg2NCIsICRjaGVja19yZXBvcnQtPkV4cGVyaW1lbnRfaWQpLT5maXJzdCgpOyAkbm90aWZ5ID0gbmV3IE5vdGlmaWNhdGlvbnMoKTsgJG5vdGlmeS0+bm90aWZpY2F0aW9uX3RleHQgPSAiXHg1OVwxNTdcMTY1XHg3Mlw0MFx4NDdceDcyXHg2MVx4NjRcMTQ1XHgyMFx4NmZceDY2XDQweyRjaGVja19leHBlcmltZW50LT5leF9uYW1lfVx4MjBcMTUwXDE0MVwxNjNceDIwXDE0Mlx4NjVceDY1XDE1Nlw0MFx4NzVcMTYwXDE0NFwxNDFceDc0XDE0NVwxNDRceDJlXHgyMCI7ICRub3RpZnktPnVzZXJfaWRfbm90aWZ5ID0gJGNoZWNrX3JlcG9ydC0+dXNlcl9pZDsgJG5vdGlmeS0+c3RhdHVzID0gIlx4NzVcMTU2XDE2MlwxNDVceDYxXDE0NCI7ICRub3RpZnktPnNhdmUoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlwxNTFcMTU2XHg3M1x4NjVcMTYyXDE2NFwxNDVceDY0IiA9PiAiXDEwN1x4NzJcMTQxXHg2NFwxNDVceDIwXHg3M1x4NjNcMTU3XDE2MlwxNDVceDIwXHg2OFx4NjFceDczXDQwXDE0MlwxNDVceDY1XDE1Nlx4MjBceDc1XHg3MFx4NjRcMTQxXHg3NFwxNDVceDY0XDU2IikpOyB9IGVsc2UgeyAkTmV3X2dyYWRlID0gRXhwZXJpbWVudFJlcG9ydDo6ZmluZCgkcmVxdWVzdC0+RXhwZXJpbWVudF9pZF9vKTsgJE5ld19ncmFkZS0+dG90YWxfc2NvcmUgPSAkcmVxdWVzdC0+Z3JhZGU7ICROZXdfZ3JhZGUtPnNhdmUoKTsgJGNoZWNrX3JlcG9ydCA9IERCOjp0YWJsZSgiXHg2NVwxNzBceDcwXDE0NVwxNjJceDY5XHg2ZFwxNDVceDZlXDE2NFwxMzdcMTYyXHg2NVx4NzBceDZmXHg3Mlx4NzRcMTYzIiktPndoZXJlKCJceDY5XDE0NCIsICRyZXF1ZXN0LT5FeHBlcmltZW50X2lkX28pLT5maXJzdCgpOyAkY2hlY2tfZXhwZXJpbWVudCA9IERCOjp0YWJsZSgiXHg2M1wxNTRcMTQxXHg3M1wxNjNcMTM3XDE0NVx4NzhcMTQ1XHg3MyIpLT53aGVyZSgiXHg2OVx4NjQiLCAkY2hlY2tfcmVwb3J0LT5FeHBlcmltZW50X2lkKS0+Zmlyc3QoKTsgJG5vdGlmeSA9IG5ldyBOb3RpZmljYXRpb25zKCk7ICRub3RpZnktPm5vdGlmaWNhdGlvbl90ZXh0ID0gIlx4NTlcMTU3XHg3NVwxNjJcNDBceDQ3XDE2MlwxNDFceDY0XDE0NVw0MFx4NmZceDY2XHgyMHskY2hlY2tfZXhwZXJpbWVudC0+ZXhfbmFtZX1ceDIwXDE1MFx4NjFcMTYzXHgyMFx4NjJceDY1XDE0NVwxNTZceDIwXHg3NVwxNjBceDY0XDE0MVwxNjRcMTQ1XDE0NFw1Nlx4MjAiOyAkbm90aWZ5LT51c2VyX2lkX25vdGlmeSA9ICRjaGVja19yZXBvcnQtPnVzZXJfaWQ7ICRub3RpZnktPnN0YXR1cyA9ICJcMTY1XHg2ZVwxNjJceDY1XDE0MVwxNDQiOyAkbm90aWZ5LT5zYXZlKCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTUxXHg2ZVwxNjNcMTQ1XDE2Mlx4NzRceDY1XDE0NCIgPT4gIlwxMDdceDcyXDE0MVx4NjRceDY1XDQwXDE2M1wxNDNcMTU3XDE2MlwxNDVceDIwXHg2OFx4NjFceDczXHgyMFwxNDJceDY1XHg2NVx4NmVcNDBcMTY1XDE2MFx4NjRcMTQxXDE2NFx4NjVceDY0XHgyZSIpKTsgfSB9IGVsc2UgeyAkTmV3X2dyYWRlID0gRXhwZXJpbWVudFJlcG9ydDo6ZmluZCgkcmVxdWVzdC0+RXhwZXJpbWVudF9pZF9vKTsgJE5ld19ncmFkZS0+dG90YWxfc2NvcmUgPSAkcmVxdWVzdC0+Z3JhZGU7ICROZXdfZ3JhZGUtPmZlZWRiYWNrID0gJHJlcXVlc3QtPmdyYWRlX2ZlZWRiYWNrOyAkTmV3X2dyYWRlLT5zYXZlKCk7ICRjaGVja19yZXBvcnQgPSBEQjo6dGFibGUoIlwxNDVceDc4XDE2MFwxNDVcMTYyXDE1MVx4NmRcMTQ1XDE1Nlx4NzRceDVmXDE2MlwxNDVcMTYwXDE1N1wxNjJcMTY0XDE2MyIpLT53aGVyZSgiXHg2OVwxNDQiLCAkcmVxdWVzdC0+RXhwZXJpbWVudF9pZF9vKS0+Zmlyc3QoKTsgJGNoZWNrX2V4cGVyaW1lbnQgPSBEQjo6dGFibGUoIlwxNDNceDZjXHg2MVx4NzNcMTYzXDEzN1x4NjVcMTcwXHg2NVx4NzMiKS0+d2hlcmUoIlwxNTFcMTQ0IiwgJGNoZWNrX3JlcG9ydC0+RXhwZXJpbWVudF9pZCktPmZpcnN0KCk7ICRub3RpZnkgPSBuZXcgTm90aWZpY2F0aW9ucygpOyAkbm90aWZ5LT5ub3RpZmljYXRpb25fdGV4dCA9ICJceDU5XDE1N1x4NzVceDcyXDQwXHg0N1x4NzJceDYxXDE0NFwxNDVcNDBceDZmXHg2Nlw0MHskY2hlY2tfZXhwZXJpbWVudC0+ZXhfbmFtZX1ceDIwXHg2OFwxNDFcMTYzXDQwXHg2MlwxNDVceDY1XHg2ZVw0MFwxNjVcMTYwXDE0NFwxNDFcMTY0XHg2NVwxNDRcNTZceDIwIjsgJG5vdGlmeS0+dXNlcl9pZF9ub3RpZnkgPSAkY2hlY2tfcmVwb3J0LT51c2VyX2lkOyAkbm90aWZ5LT5zdGF0dXMgPSAiXHg3NVx4NmVcMTYyXDE0NVwxNDFcMTQ0IjsgJG5vdGlmeS0+c2F2ZSgpOyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE1MVx4NmVceDczXDE0NVx4NzJcMTY0XDE0NVx4NjQiID0+ICJcMTA3XHg3MlwxNDFceDY0XDE0NVx4MjBceDczXDE0M1x4NmZcMTYyXHg2NVx4MjBcMTQxXDE1NlwxNDRcNDBcMTA2XHg2NVwxNDVceDY0XDE0Mlx4NjFcMTQzXDE1M1x4MjBceDY4XDE0MVwxNjZceDY1XHgyMFwxNDJceDY1XHg2NVx4NmVcNDBceDc1XDE2MFwxNDRcMTQxXDE2NFx4NjVceDY0XHgyZSIpKTsgfSB9IH0gcHVibGljIGZ1bmN0aW9uIEV4cGVyaW1lbnRzVmlld0RldGFpbHMoUmVxdWVzdCAkcmVxdWVzdCkgeyAkY2xhc3NfRXhwZXJpbWVudHNfdmlldyA9IERCOjp0YWJsZSgiXDE0M1x4NmNcMTQxXHg3M1wxNjNceDVmXDE0NVx4NzhceDY1XHg3MyIpLT53aGVyZSgiXHg2M1x4NmNcMTQxXHg3M1x4NzNceDVmXDE1MVwxNDQiLCAkcmVxdWVzdC0+Y2xhc3NJRCk7IHJldHVybiBEYXRhVGFibGVzOjpvZigkY2xhc3NfRXhwZXJpbWVudHNfdmlldyktPmFkZEluZGV4Q29sdW1uKCktPmFkZENvbHVtbigiXHg0MVwxNDNceDc0XHg2OVx4NmZcMTU2IiwgZnVuY3Rpb24gKCRyb3cpIHsgJGJ0biA9ICJcNzRceDY0XHg2OVx4NzZcNDBcMTQzXDE1NFwxNDFcMTYzXDE2M1w3NVx4MjJcMTQyXDE2NFwxNTZceDJkXDE0N1wxNjJceDZmXDE2NVx4NzBceDIwXHg2NFx4NzJceDZmXHg3MFx4NmNceDY1XDE0Nlx4NzRceDIyXHgzZVwxMlx4MjBcNDBcNDBcNDBceDIwXDQwXDQwXDQwXDQwXDQwXHgyMFw0MFw0MFx4MjBcNDBcNDBcNzRceDYyXHg3NVx4NzRcMTY0XDE1N1x4NmVcNDBceDc0XHg3OVwxNjBceDY1XHgzZFw0MlwxNDJceDc1XHg3NFwxNjRcMTU3XHg2ZVw0Mlw0MFx4NjNcMTU0XDE0MVwxNjNceDczXDc1XDQyXDE0MlwxNjRceDZlXDQwXHg2Mlx4NzRceDZlXDU1XHg2NFwxNDFcMTYyXHg2Ylx4MjBcMTQ0XDE2Mlx4NmZcMTYwXDE0NFx4NmZcMTY3XHg2ZVx4MmRcMTY0XHg2Zlx4NjdceDY3XHg2Y1wxNDVcNDJcNDBcMTQ0XDE0MVwxNjRceDYxXHgyZFwxNjRcMTU3XHg2N1wxNDdceDZjXDE0NVw3NVw0MlwxNDRcMTYyXDE1N1x4NzBcMTQ0XDE1N1wxNjdceDZlXHgyMlx4MjBcMTQxXHg3MlwxNTFceDYxXHgyZFwxNTBceDYxXHg3M1x4NzBceDZmXDE2MFwxNjVceDcwXHgzZFw0Mlx4NzRcMTYyXDE2NVx4NjVceDIyXDQwXHg2MVx4NzJceDY5XDE0MVw1NVx4NjVceDc4XHg3MFwxNDFcMTU2XDE0NFx4NjVceDY0XDc1XHgyMlwxNDZceDYxXHg2Y1x4NzNcMTQ1XDQyXHgzZVx4YVw0MFx4MjBcNDBcNDBceDIwXHgyMFx4MjBcNDBcNDBceDIwXDQwXHgyMFw0MFx4MjBcNDBcNDBcMTIzXDE0NVx4NzRcMTY0XHg2OVx4NmVceDY3XDE2M1wxMlx4MjBcNDBcNDBceDIwXHgyMFw0MFw0MFx4MjBceDIwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFw0MFw3NFw1N1wxNDJceDc1XDE2NFx4NzRcMTU3XHg2ZVx4M2VcMTJceDIwXDQwXDQwXHgyMFw0MFw0MFw0MFx4MjBceDIwXDQwXHgyMFw0MFw0MFw0MFx4MjBcNDBceDNjXHg2NFx4NjlceDc2XDQwXHg2M1x4NmNceDYxXHg3M1wxNjNcNzVceDIyXDE0NFwxNjJceDZmXDE2MFx4NjRcMTU3XHg3N1x4NmVceDJkXDE1NVwxNDVcMTU2XHg3NVx4MjBcMTQ0XHg3Mlx4NmZcMTYwXHg2Y1wxNDVceDY2XHg3NFw0Mlw3NlwxMlw0MFx4MjBcNDBcNDBcNDBcNDBcNDBceDIwXDQwXDQwXHgyMFw0MFx4MjBcNDBcNDBcNDBcNDBceDIwXHgzY1wxNDFcNDBceDYzXDE1NFwxNDFceDczXDE2M1x4M2RcNDJceDY0XDE2MlwxNTdceDcwXHg2NFx4NmZcMTY3XHg2ZVx4MmRceDY5XDE2NFx4NjVcMTU1XHgyMFwxMDFceDY0XHg2NFwxMDVceDc4XHg3MFx4NjVcMTYyXHg2OVx4NmRcMTQ1XDE1Nlx4NzRceDQxXHg3MFx4NzBcMTAyXDE2NFwxNTZceDIyXHgyMFwxNTBceDcyXHg2NVwxNDZceDNkXHgyMlx4MjNcNDJcNDBceDY0XHg2MVx4NzRceDYxXHgyZFx4NjlcMTQ0XHgzZFw0MiIgLiAkcm93LT5pZCAuICJceDIyXHgzZVx4NDFcMTQ0XHg2NFx4MjBceDRlXDE0NVx4NzdceDIwXDEwMVx4NzBceDcwXHgzY1x4MmZcMTQxXHgzZVx4YVw0MFw0MFw0MFw0MFw0MFx4MjBcNDBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBcNDBcNDBcNDBcNzRceDYxXDQwXDE0M1wxNTRceDYxXDE2M1wxNjNcNzVcNDJceDY0XDE2Mlx4NmZceDcwXHg2NFwxNTdcMTY3XDE1Nlw1NVx4NjlcMTY0XDE0NVx4NmRceDIwXDEwNVwxNzBceDcwXDE0NVwxNjJceDY5XHg2ZFwxNDVcMTU2XHg3NFx4NTZcMTUxXHg2NVx4NzdceDQxXHg3MFx4NzBceDQyXDE2NFwxNTZceDIyXDQwXHg2NFx4NjFcMTY0XDE0MVw1NVwxNTFceDY0XHgzZFx4MjIiIC4gJHJvdy0+aWQgLiAiXDQyXHgyMFx4NjhcMTYyXHg2NVwxNDZcNzVceDIyXHgyM1w0Mlx4M2VcMTI2XDE1MVwxNDVcMTY3XHgyMFwxMDVceDc4XHg3MFx4NjVceDcyXHg2OVx4NmRcMTQ1XHg2ZVx4NzRcNDBcMTAxXHg3MFwxNjBceDczXHgzY1w1N1wxNDFceDNlXHhhXDQwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBceDIwXDQwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFw0MFw0MFx4M2NceDYxXDQwXHg2M1wxNTRceDYxXHg3M1x4NzNcNzVcNDJceDY0XDE2MlwxNTdceDcwXHg2NFwxNTdceDc3XDE1Nlx4MmRceDY5XHg3NFwxNDVceDZkXDQwXDEyNlx4NjlcMTQ1XHg3N1x4NDVceDc4XDE2MFwxNDVceDcyXHg2OVx4NmRceDY1XHg2ZVx4NzRcMTIzXHg3NVx4NjJceDZkXHg2OVwxNjNceDczXHg2OVwxNTdceDZlXHg3M1wxMDJcMTY0XDE1Nlx4MjJcNDBceDY0XHg2MVwxNjRcMTQxXHgyZFx4NjlceDY0XDc1XHgyMiIgLiAkcm93LT5pZCAuICJcNDJceDIwXHg2OFx4NzJcMTQ1XHg2Nlw3NVx4MjJceDIzXHgyMlx4M2VceDU2XDE1MVwxNDVcMTY3XDQwXDEyM1x4NzVcMTQyXHg2ZFwxNTFcMTYzXDE2M1x4NjlceDZmXDE1NlwxNjNceDNjXHgyZlwxNDFcNzZceGFceDIwXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXDQwXDQwXDQwXHgyMFw0MFw0MFw0MFw0MFx4MjBceDIwXHgzY1wxNDFceDIwXDE0M1wxNTRceDYxXDE2M1wxNjNcNzVcNDJceDY0XDE2MlwxNTdcMTYwXHg2NFx4NmZceDc3XDE1Nlx4MmRceDY5XHg3NFwxNDVceDZkXDQwXHg2NFwxNDVceDZjXDE0NVwxNjRceDY1XDEwNVwxNzBceDcwXDE0NVwxNjJceDY5XHg2ZFwxNDVcMTU2XHg3NFwxMDJceDc0XHg2ZVx4MjJceDIwXHg2OFwxNjJcMTQ1XDE0Nlw3NVx4MjJcNDNcNDJcNDBceDY0XHg2MVwxNjRcMTQxXDU1XDE1MVx4NjRcNzVcNDIiIC4gJHJvdy0+aWQgLiAiXDQyXDc2XHg0NFwxNDVceDZjXHg2NVwxNjRcMTQ1XDQwXHg0NVx4NzhceDcwXDE0NVx4NzJcMTUxXHg2ZFwxNDVcMTU2XDE2NFx4M2NceDJmXDE0MVw3NlwxMlx4MjBcNDBcNDBceDIwXHgyMFw0MFw0MFx4MjBceDIwXDQwXHgyMFw0MFx4MjBceDIwXHgyMFx4MjBcNzRceDJmXHg2NFx4NjlceDc2XDc2XDEyXDQwXHgyMFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFw0MFx4MjBceDIwXHgyMFw3NFw1N1wxNDRcMTUxXDE2Nlx4M2UiOyByZXR1cm4gJGJ0bjsgfSktPmFkZENvbHVtbigiXHg0NVwxNzBcMTYwXDE0NVwxNjJceDY5XHg2ZFwxNDVcMTU2XHg3NFwxMTZceDYxXDE1NVx4NjUiLCBmdW5jdGlvbiAoJHJvdykgeyBpZiAoJHJvdy0+ZXhfZmlsZSA+ICcnKSB7ICRidG4gPSAiXHgzY1wxNDFceDIwXDE2NFwxNDFcMTYyXHg2N1wxNDVcMTY0XHgzZFx4MjJceDVmXDE0MlwxNTRcMTQxXDE1Nlx4NmJcNDJceDIwXDE1MFx4NzJceDY1XDE0Nlw3NVx4MjJceDQzXHg2Y1wxNDFceDczXHg3M1x4NDVceDc4XDU3IiAuICRyb3ctPmV4X2ZpbGUgLiAiXHgyMlw3NiIgLiAkcm93LT5leF9uYW1lIC4gIlw3NFw1N1wxNDFcNzYiOyByZXR1cm4gJGJ0bjsgfSBlbHNlIHsgaWYgKCRyb3ctPkV4Q3JlYXRlZCA+ICcnKSB7ICRidG4gPSAiXHgzY1x4NjFceDIwXDE2NFx4NjFcMTYyXDE0N1wxNDVcMTY0XDc1XDQyXHg1ZlwxNDJceDZjXHg2MVx4NmVcMTUzXHgyMlw0MFx4NjhcMTYyXDE0NVwxNDZcNzVcNDJceDY1XHg3OFwxNjBceDY1XDE2MlwxNTFcMTU1XHg2NVx4NmVceDc0XDU3IiAuICRyb3ctPmlkIC4gIlw0Mlw3NiIgLiAkcm93LT5leF9uYW1lIC4gIlw3NFx4MmZcMTQxXDc2IjsgcmV0dXJuICRidG47IH0gfSB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXDEwNVx4NzhceDcwXHg2NVx4NzJceDY5XHg2ZFwxNDVcMTU2XDE2NFx4NGVcMTQxXDE1NVwxNDUiLCAiXDEwMVwxNDNcMTY0XHg2OVwxNTdceDZlIikpLT5tYWtlKHRydWUpOyB9IHB1YmxpYyBmdW5jdGlvbiBFeHBlcmltZW50RGVsZXRlZChSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRpZCA9ICRyZXF1ZXN0LT5FeHBlcmltZW50SUQ7ICRkZWxldGVkUm93cyA9IGNsYXNzRXg6OndoZXJlKCJcMTUxXDE0NCIsICRpZCktPmRlbGV0ZSgpOyBpZiAoJGRlbGV0ZWRSb3dzID4gMCkgeyByZXR1cm4gcmVzcG9uc2UoKS0+anNvbihhcnJheSgiXDE0MVx4NzBceDcwXHg3MlwxNTdceDc2XDE0NVwxNDQiID0+ICJcMTA1XHg3OFwxNjBceDY1XHg3MlwxNTFcMTU1XHg2NVwxNTZceDc0XHgyMFx4NjhcMTQxXHg3M1x4MjBceDYyXHg2NVwxNDVcMTU2XDQwXDE0NFwxNDVcMTU0XHg2NVx4NzRceDY1XDE0NFw0MFwxNjNcMTY1XHg2M1x4NjNceDY1XHg3M1wxNjNceDY2XHg3NVwxNTRceDZjXHg3OVx4MmUiKSk7IH0gZWxzZSB7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQxXDE2MFwxNjBceDcyXDE1N1x4NzZcMTQ1XDE0NCIgPT4gIlx4NDVceDc4XDE2MFx4NjVcMTYyXDE1MVwxNTVcMTQ1XDE1Nlx4NzRceDIwXDE2N1wxNTFceDc0XDE1MFx4MjBceDQ5XDEwNFw0MHskaWR9XHgyMFwxNTZcMTU3XHg3NFx4MjBcMTQ2XHg2ZlwxNjVceDZlXHg2NFw1NiIpLCA0MDQpOyB9IH0gcHVibGljIGZ1bmN0aW9uIEV4cGVyaW1lbnRzQXBwc1ZpZXdEZXRhaWxzKFJlcXVlc3QgJHJlcXVlc3QpIHsgJGNsYXNzX0V4cGVyaW1lbnRzX2FwcF92aWV3ID0gREI6OnRhYmxlKCJceDczXDE1NVx4NjFcMTYyXDE2NFx4NmNceDYxXDE0MlwxMzdcMTQxXDE2MFx4NzBcMTYzIiktPndoZXJlKCJceDYzXDE1NFx4NjFcMTYzXHg3M1x4NDVceDc4XDEzN1x4NjlcMTQ0IiwgJHJlcXVlc3QtPmV4cGVyaW1lbnRJRCk7IHJldHVybiBEYXRhVGFibGVzOjpvZigkY2xhc3NfRXhwZXJpbWVudHNfYXBwX3ZpZXcpLT5hZGRJbmRleENvbHVtbigpLT5hZGRDb2x1bW4oIlwxMDFcMTQzXHg3NFx4NjlceDZmXHg2ZSIsIGZ1bmN0aW9uICgkcm93KSB7ICRidG4gPSAiXDc0XDE0NFwxNTFcMTY2XHgyMFwxNDNcMTU0XDE0MVwxNjNceDczXHgzZFx4MjJceDYyXHg3NFx4NmVceDJkXHg2N1wxNjJcMTU3XDE2NVwxNjBceDIwXDE0NFwxNjJcMTU3XDE2MFwxNTRceDY1XHg2NlwxNjRcNDJceDNlXDEyXDQwXDQwXDQwXHgyMFx4MjBcNDBcNDBceDIwXDQwXHgyMFw0MFx4MjBceDIwXDQwXHgyMFw0MFw3NFwxNDJceDc1XDE2NFwxNjRcMTU3XHg2ZVw0MFx4NzRceDc5XDE2MFwxNDVcNzVceDIyXHg2Mlx4NzVceDc0XDE2NFwxNTdcMTU2XDQyXDQwXHg2M1wxNTRceDYxXHg3M1wxNjNceDNkXDQyXDE0MlwxNjRcMTU2XDQwXDE0Mlx4NzRceDZlXDU1XHg2NFx4NjFcMTYyXDE1M1w0MFwxNDRcMTYyXDE1N1wxNjBceDY0XDE1N1x4NzdcMTU2XDU1XHg3NFx4NmZcMTQ3XHg2N1x4NmNcMTQ1XHgyMlx4MjBcMTQ0XDE0MVwxNjRcMTQxXHgyZFwxNjRceDZmXHg2N1x4NjdcMTU0XDE0NVx4M2RceDIyXDE0NFwxNjJceDZmXDE2MFx4NjRcMTU3XHg3N1x4NmVceDIyXDQwXHg2MVx4NzJceDY5XHg2MVw1NVwxNTBcMTQxXDE2M1wxNjBcMTU3XHg3MFx4NzVceDcwXHgzZFw0Mlx4NzRceDcyXDE2NVwxNDVceDIyXDQwXDE0MVwxNjJceDY5XDE0MVx4MmRceDY1XHg3OFwxNjBceDYxXHg2ZVx4NjRceDY1XDE0NFx4M2RcNDJceDY2XHg2MVwxNTRceDczXHg2NVx4MjJcNzZcMTJceDIwXHgyMFx4MjBcNDBcNDBceDIwXDQwXHgyMFw0MFx4MjBceDIwXDQwXDQwXDQwXDQwXDQwXHg1M1wxNDVcMTY0XDE2NFwxNTFcMTU2XDE0N1wxNjNceGFceDIwXHgyMFx4MjBceDIwXDQwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFw0MFw0MFx4MjBcNDBcNDBceDNjXHgyZlwxNDJcMTY1XHg3NFx4NzRceDZmXHg2ZVx4M2VceGFceDIwXDQwXDQwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBcNzRcMTQ0XHg2OVwxNjZceDIwXDE0M1wxNTRceDYxXHg3M1wxNjNceDNkXHgyMlwxNDRcMTYyXDE1N1wxNjBceDY0XDE1N1x4NzdcMTU2XDU1XHg2ZFwxNDVcMTU2XDE2NVx4MjBceDY0XHg3MlwxNTdceDcwXDE1NFwxNDVcMTQ2XHg3NFw0Mlx4M2VcMTJcNDBceDIwXHgyMFx4MjBcNDBceDIwXHgyMFw0MFx4MjBcNDBcNDBcNDBceDIwXDQwXDQwXHgyMFx4MjBcNDBcNzRceDYxXHgyMFwxNDNcMTU0XHg2MVwxNjNcMTYzXDc1XHgyMlwxNDRceDcyXHg2ZlwxNjBceDY0XDE1N1wxNjdcMTU2XHgyZFwxNTFcMTY0XHg2NVwxNTVceDIwXDE0NFwxNDVceDZjXDE0NVx4NzRceDY1XHg0NVwxNzBcMTYwXDE0NVwxNjJcMTUxXDE1NVwxNDVceDZlXHg3NFwxMDFcMTYwXDE2MFx4NDJcMTY0XHg2ZVw0Mlw0MFx4NjhcMTYyXHg2NVwxNDZceDNkXDQyXDQzXHgyMlx4MjBcMTQ0XHg2MVwxNjRcMTQxXHgyZFx4NjlceDY0XDc1XDQyIiAuICRyb3ctPmlkIC4gIlx4MjJceDNlXHg0NFwxNDVcMTU0XDE0NVx4NzRceDY1XDQwXDEwMVwxNjBcMTYwXDc0XHgyZlx4NjFceDNlXDEyXDQwXDQwXHgyMFw0MFw0MFw0MFw0MFw0MFx4MjBcNDBceDIwXDQwXDQwXHgyMFw0MFx4MjBcNzRceDJmXHg2NFwxNTFceDc2XDc2XHhhXHgyMFw0MFw0MFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBceDIwXHgyMFw0MFx4M2NceDJmXDE0NFx4NjlceDc2XHgzZSI7IHJldHVybiAkYnRuOyB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXDEwMVx4NjNceDc0XDE1MVwxNTdceDZlIikpLT5tYWtlKHRydWUpOyB9IHB1YmxpYyBmdW5jdGlvbiBFeHBlcmltZW50QVBQRGVsZXRlZChSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRpZCA9ICRyZXF1ZXN0LT5FeHBlcmltZW50QVBQSUQ7IFNtYXJ0bGFiQXBwczo6d2hlcmUoIlx4NjlcMTQ0IiwgJGlkKS0+ZGVsZXRlKCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQxXHg3MFwxNjBcMTYyXHg2Zlx4NzZcMTQ1XHg2NCIgPT4gIlx4NDFcMTYwXHg3MFwxNTRceDY5XDE0M1x4NjFcMTY0XDE1MVwxNTdceDZlXDQwXDE1MFx4NjFceDczXHgyMFwxNDJceDY1XHg2NVx4NmVceDIwXDE0NFwxNDVcMTU0XDE0NVwxNjRceDY1XHg2NFx4MjBcMTYzXDE2NVx4NjNcMTQzXHg2NVwxNjNcMTYzXDE0NlwxNjVcMTU0XDE1NFwxNzFceDJlIikpOyB9IHB1YmxpYyBmdW5jdGlvbiBFeHBlcmltZW50SURmZXRjaChSZXF1ZXN0ICRyZXF1ZXN0KSB7ICRkYXRhZXhwZXJpbWVudCA9IERCOjp0YWJsZSgiXDE0M1wxNTRcMTQxXHg3M1wxNjNcMTM3XDE0NVx4NzhceDY1XHg3MyIpLT53aGVyZSgiXDE1MVx4NjQiLCAkcmVxdWVzdC0+RXhwZXJpbWVudElERmV0Y2hlZCktPmZpcnN0KCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTQ0XDE0MVx4NzRcMTQxXHg2NVx4NzhcMTYwXDE0NVwxNjJcMTUxXDE1NVwxNDVceDZlXDE2NCIgPT4gJGRhdGFleHBlcmltZW50KSk7IH0gcHVibGljIGZ1bmN0aW9uIHVzZXJjb250cm9sUEMoUmVxdWVzdCAkcmVxdWVzdCkgeyAkZGF0YXVzZXJzID0gREI6OnRhYmxlKCJceDc1XDE2M1x4NjVceDcyXHg3MyIpLT53aGVyZSgiXDE1MVx4NjQiLCAkcmVxdWVzdC0+dXNlcklEKS0+Zmlyc3QoKTsgcmV0dXJuIHJlc3BvbnNlKCktPmpzb24oYXJyYXkoIlx4NjRcMTQxXHg3NFx4NjFcMTY1XDE2M1wxNDVceDcyXDE2MyIgPT4gJGRhdGF1c2VycykpOyB9IHB1YmxpYyBmdW5jdGlvbiBBc3NpZ25Db250cm9sUEMoUmVxdWVzdCAkcmVxdWVzdCkgeyAkYXNzaWduUEMgPSBVc2Vyczo6ZmluZCgkcmVxdWVzdC0+dXNlcklEUENBc3NpZ24pOyAkYXNzaWduUEMtPmNvbnRyb2xfUEMgPSAkcmVxdWVzdC0+Y29udHJvbF9QQzsgJGFzc2lnblBDLT5zYXZlKCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJcMTY1XHg3MFx4NjRcMTQxXHg3NFwxNDVceDY0IiA9PiAiXDEwM1x4NmZcMTU2XDE2NFx4NzJcMTU3XHg2Y1x4MjBcMTIwXHg0M1x4MjBcMTUwXDE0MVx4NzNcNDBceDYyXHg2NVwxNDVcMTU2XDQwXDE0MVwxNjNceDczXDE1MVx4NjdcMTU2XDE0NVx4NjRceDIwXHg3M1wxNjVceDYzXDE0M1x4NjVceDczXHg3M1wxNDZceDc1XHg2Y1x4NmNceDc5XDU2IikpOyB9IHB1YmxpYyBmdW5jdGlvbiBzZWFyY2hsYWIoUmVxdWVzdCAkcmVxdWVzdCkgeyAkaW5wdXQgPSAkcmVxdWVzdC0+bGFibmFtZTsgJENsYXNzRGF0YSA9IENsYXNzZXM6OndoZXJlKCJceDYzXDE1NFwxNDFcMTYzXDE2M1x4NmVcMTQxXDE1NVwxNDUiLCAiXHg0Y1x4NDlcMTEzXDEwNSIsICJceDI1eyRpbnB1dH1cNDUiKS0+Z2V0KCk7IHJldHVybiBEYXRhVGFibGVzOjpvZigkQ2xhc3NEYXRhKS0+YWRkSW5kZXhDb2x1bW4oKS0+YWRkQ29sdW1uKCJceDUzXHg2M1x4NjhcMTQ1XDE0NFwxNjVceDZjXDE0NSIsIGZ1bmN0aW9uICgkcm93KSB7ICRjbGFzc190aW1lID0gREI6OnRhYmxlKCJcMTY3XHg2NVx4NjVcMTUzXDEzN1x4NjRcMTQxXHg3OVwxNjMiKS0+d2hlcmUoIlwxNDNcMTU0XDE0MVx4NzNcMTYzXHg1ZlwxNTFcMTQ0IiwgJHJvdy0+c2NoZWR1bGVfaWQpLT5nZXQoKTsgZm9yZWFjaCAoJGNsYXNzX3RpbWUgYXMgJHRpbWVEYXRhKSB7ICRkYXRhUGFzc2VkW10gPSAnJyAuICR0aW1lRGF0YS0+ZGF5IC4gIlw0MCIgLiAkdGltZURhdGEtPnN0YXJ0IC4gIlw0MFx4MmRcNDAiIC4gJHRpbWVEYXRhLT5lbmQgLiAiXHgyMCI7IH0gaWYgKCRkYXRhUGFzc2VkKSB7IHJldHVybiAkZGF0YVBhc3NlZDsgfSB9KS0+cmF3Q29sdW1ucyhhcnJheSgiXHg1M1wxNDNceDY4XHg2NVx4NjRceDc1XHg2Y1x4NjUiKSktPm1ha2UodHJ1ZSk7IH0gcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVByb2ZpbGUoUmVxdWVzdCAkcmVxdWVzdCwgJGlkKSB7ICR1c2VyID0gVXNlcnM6OmZpbmRPckZhaWwoJGlkKTsgaWYgKCFlbXB0eSgkcmVxdWVzdC0+aW5wdXQoIlx4NzBceDYxXDE2M1x4NzNceDc3XHg2ZlwxNjJcMTQ0IikpKSB7ICR1c2VyLT5wYXNzd29yZCA9IEhhc2g6Om1ha2UoJHJlcXVlc3QtPmlucHV0KCJcMTYwXDE0MVx4NzNcMTYzXDE2N1x4NmZceDcyXDE0NCIpKTsgJHVzZXItPnBhc3Nfc3RyaW5nID0gJHJlcXVlc3QtPmlucHV0KCJcMTYwXDE0MVx4NzNcMTYzXHg3N1wxNTdcMTYyXDE0NCIpOyB9ICR1c2VyLT5zYXZlKCk7IHJldHVybiByZXNwb25zZSgpLT5qc29uKGFycmF5KCJceDcwXHg3MlwxNTdcMTQ2XHg2OVwxNTRceDY1XDEyNVwxNjBcMTQ0XHg2MVx4NzRcMTQ1XHg2NCIgPT4gIlx4NDFcMTQzXHg2M1x4NmZceDc1XHg2ZVwxNjRcNDBceDY4XHg2MVwxNjNcNDBceDYyXHg2NVwxNDVceDZlXHgyMFwxNjVceDcwXDE0NFwxNDFcMTY0XDE0NVx4NjRcNDBcMTYzXHg3NVwxNDNcMTQzXDE0NVwxNjNcMTYzXHg2Nlx4NzVcMTU0XDE1NFx4NzlceDIxIikpOyB9IH0g')); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | d442c51a57782b3b14878ab8a975111f |
Eval Count | 1 |
Decode Time | 301 ms |