a:6:{i:0;s:6308:"				<div class="h1"><h1>Tashkent Dziner Holidays Tour Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.dzinerholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.dzinerholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Tashkent Dziner Holidays Tour Package</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Tashkent</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 43000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.dzinerholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Tashkent Dziner Holidays Tour Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="15155"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_8/225755/28799.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/225755/28799.jpg"  width="150" height="150"    alt="Tashkent Dziner Holidays Tour Package" title="Tashkent Dziner Holidays Tour Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Return Economy Class Airfare On Uzbekistan Airways.<br />
3 Nights Accommodation.<br />
Daily Breakfast.<br />
Gala Dinner With Drinks.Medical & Travel Insurance.<br />
Domestic Airfare.<br />
Personal Items Like Mineral Water, Phone Calls, Laundry Etc.<br />
Extra Meals / Room Services / Bottled Beverages Consumed At The Hotel.<br />
Additional Costs For Hotel Accommodation, Transport Services Due To Flight Cancellation, Road Blocks Etc.<br />
Porterage & Tips At The Airport, Hotel/Camp Staff & Drivers.01-1131-10<br />						 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Medical & Travel Insurance.</li><li>
Domestic Airfare.</li><li>
Personal Items Like Mineral Water, Phone Calls, Laundry Etc.</li><li>
Extra Meals / Room Services / Bottled Beverages Consumed At The Hotel.</li><li>
Additional Costs For Hotel Accommodation, Transport Services Due To Flight Cancellation, Road Blocks Etc.</li><li>
Porterage & Tips At The Airport, Hotel/Camp Staff & Drivers.</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>Every Week<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>Ex Delhi : 43,000/-<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Trip Prices Are Applicable Strictly For Resident Indian Citizens Only. Trips Are Materialized Subject To Minimum 2 Persons Together.</li>
	<li>We Hold The Right To Alter The Tour Schedule Incase Of Bed Weather &amp; Other Conditions Beyond Our Control That Might Effect The Normal Itinerary.</li>
	<li>50% Advance Payment Is Required To Book The Trip On Definite Basis And Balance Payments To Be Cleared Before Departure Of The Tour. The Meals At The Hotel Are Buffet Style.</li>
	<li>Incase Of Pure Veg Meals (No Onion/No Garlic) Advance Intimation Is Must. During Day Sightseeing Tours, Lunch Would Mostly Be Packed Boxes So In Such A Case Hot Lunch May Not Be Possible. Meals At The Hotel Or Other Services Not Utilized During The Tour Shall Be Not Liable For Any Kind Of Refund From The Tour Price.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.dzinerholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Tashkent Dziner Holidays Tour Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="15155"/>
						</form>
						</div>
						
						";i:1;s:76:"Book Tashkent Dziner Holidays Tour Package - 3 Nights / 4 Days Tour Packages";i:2;s:124:"book tashkent dziner holidays tour package - 3 nights / 4 days tour packages, heritage tour packages, tashkent tour packages";i:3;s:178:"Book Tashkent Dziner Holidays Tour Package - 3 Nights / 4 Days tour packages from Dziner Travel Concepts - Get attractive 3 Nights / 4 Days Heritage  tour packages for  Tashkent.";i:4;s:896:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Tashkent"        
		                 },
		      "description": "Return Economy Class Airfare On Uzbekistan Airways.
3 Nights Accommodation.
Daily Breakfast.
Gala Dinner With Drinks.Medical & Travel Insurance.
Domestic Airfare.
Personal Items Like Mineral Water, Phone Calls, Laundry Etc.
Extra Meals / Room Services / Bottled Beverages Consumed At The Hotel.
Additional Costs For Hotel Accommodation, Transport Services Due To Flight Cancellation, Road Blocks Etc.
Porterage & Tips At The Airport, Hotel/Camp Staff & Drivers.01-1131-10",
		      "name": "Tashkent Dziner Holidays Tour Package",
		      "telephone": "+91-9825121020"
		    }
		    </script>
			";i:5;N;}