<!DOCTYPE html><html><head>
    <meta charset="utf-8">
    <meta name="google-site-verification" content="AMtaJnUDidavhNgVS2vUsc-TUHqFvfT4Ip4anM2BvfA">
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height">

    <!-- Pinterest meta tag -->
    <meta name="p:domain_verify" content="b1850a49bf1cbbb8383e5d89dbe62f37">

	<!-- Facebook domain verification meta tag -->
	<meta name="facebook-domain-verification" content="0bqp00bsjo01iwpgvisw64tlpn3cs1">

    <title> Eish! </title>
    <base href="/">

	<!-- Google Tag Manager -->
    <script>
			dataLayer = [];
    </script>
    <script>
			(function (w, d, s, l, i) {
				if (window.location.href.indexOf('/cn/zh') > -1) {
					return;
				}

				w[l] = w[l] || [];
				w[l].push({
					'gtm.start': new Date().getTime(),
					event: 'gtm.js'
				});
				var f = d.getElementsByTagName(s)[0],
						j = d.createElement(s),
						dl = l != 'dataLayer' ? '&l=' + l : '';
				j.async = true;
				j.src =
						'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
				f.parentNode.insertBefore(j, f);
			})(window, document, 'script', 'dataLayer', 'GTM-W3CZD9R');

    </script>
    <!-- End Google Tag Manager -->
    <!-- Baidu tracking for China -->
    <script>
        var _hmt = _hmt || [];
        (function () {
            if (window.location.href.indexOf('/cn/zh') === -1) {
                return;
            }

            var hm = document.createElement('script');
            hm.src = 'https://hm.baidu.com/hm.js?0f131430d5d8b8ea0f8e0397d1cd37ee';
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(hm, s);
        })();
    </script>
    <!-- End Baidu -->
	<!-- tiktok-->
	<script>
		!function (w, d, t) {
		  w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i="https://analytics.tiktok.com/i18n/pixel/events.js";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};var o=document.createElement("script");o.type="text/javascript",o.async=!0,o.src=i+"?sdkid="+e+"&lib="+t;var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a)};
		 
		  ttq.load('C983TJ3C77U7KEOR7ES0');
		  ttq.page();
		}(window, document, 'ttq');
	</script>
	<!--hubspot -->
	<!--trade and business tracking-->	
	<script>
		if (window.location.href.indexOf('/trade') > -1) {
			registerScript("//js-eu1.hs-scripts.com/25488807.js",'hs-script-loader');
		}

		if (window.location.href.indexOf('/business') > -1) {
			registerScript("//js-eu1.hs-scripts.com/25488807.js",'hs-script-loader');
		}
	
		
	
	function registerScript(scriptPath, scriptId) {
		var scriptTag = document.createElement('script');
		scriptTag.type = 'text/javascript';
		scriptTag.id = scriptId;
		scriptTag.async = true;
		scriptTag.src = scriptPath;
		var s = document.getElementsByTagName('script')[0];
		s.parentNode.insertBefore(scriptTag, s);
	}
	</script>	
	<!--french-->
	<script>
		if (window.location.href.indexOf('/fr/travel') > -1) 
		{
			var _zbo = _zbo || {register: function(ev,d){ this[ev] = this[ev] || []; this[ev].push(d); }};
			(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
			g.async = true; g.src= 'https://tag.zebestof.com/render/959';
			s.parentNode.insertBefore(g,s);}(document,'script'));
		}
	</script>

	<!-- India Campaign  -->
	<script>
    	if (window.location.pathname.includes('/in/travel')) {
        	// dynamically load GTM script
        	var gtmScript = document.createElement('script');
        	gtmScript.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-K77TN6HB';
        	document.head.appendChild(gtmScript);
    	}
	</script>
	<!-- End India Campaign -->

	<!--MS Clarity-->
	<script type="text/javascript">
    	(function(c,l,a,r,i,t,y){
        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
    	})(window, document, "clarity", "script", "g5tx14mqux");
	</script>


	<!-- Swiffy Slider -->
	<script src="https://cdn.jsdelivr.net/npm/swiffy-slider@1.6.0/dist/js/swiffy-slider.min.js" crossorigin="anonymous" defer=""></script>
	<link href="https://cdn.jsdelivr.net/npm/swiffy-slider@1.6.0/dist/css/swiffy-slider.min.css" rel="stylesheet" crossorigin="anonymous">
	<script src="https://unpkg.com/smoothscroll-polyfill/dist/smoothscroll.min.js" crossorigin="anonymous" defer=""></script>

	<!-- <script src="https://cdn.jsdelivr.net/npm/swiffy-slider@1.6.0/dist/js/swiffy-slider.min.js" crossorigin="anonymous" defer></script> -->
	<script src="https://cdn.jsdelivr.net/npm/swiffy-slider@1.6.0/dist/js/swiffy-slider-extensions.min.js" crossorigin="anonymous" defer=""></script>
	<!-- <link href="https://cdn.jsdelivr.net/npm/swiffy-slider@1.6.0/dist/css/swiffy-slider.min.css" rel="stylesheet" crossorigin="anonymous"> -->

	<script src="https://unpkg.com/smoothscroll-polyfill/dist/smoothscroll.min.js" crossorigin="anonymous" defer=""></script>

	<script>
		
		const mySwiper = new Swiper('.swiper-container', {
		freeMode: false,
		});

	</script>

	<!-- Swiffy Slider End-->

    <link rel="icon" type="image/x-icon" href="favicon.ico?v=2">
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.4.2/css/swiper.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.4.2/js/swiper.min.js" type="text/javascript"></script>
    <script src="vendor/redux-logger.js" type="text/javascript"></script>

	<!-- Swiper Slider -->
	<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-element-bundle.min.js"></script>
	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">

	<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>

	<!-- Swiper JS -->
	<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>

	 <!-- FontAwesomes -->
	<script src="https://kit.fontawesome.com/4e166c9a7c.js" crossorigin="anonymous"></script>


<link href="main.6ff127fd6408b042dff37c2c5d80be51.css" rel="stylesheet"><script type="text/javascript" src="client.js" defer=""></script><script id="preboot-inline-script">(function() {
      

function waitUntilReady(data, win) {
    var /** @type {?} */ theWindow = /** @type {?} */ ((win || window));
    var /** @type {?} */ _document = /** @type {?} */ ((theWindow.document || {}));
    if (_document.body) {
        start(data);
    }
    else {
        setTimeout(function () {
            waitUntilReady(data);
        }, 10);
    }
}

function start(prebootData, win) {
    var /** @type {?} */ theWindow = /** @type {?} */ ((win || window));
    // only start once
    if (theWindow.prebootStarted) {
        return;
    }
    else {
        theWindow.prebootStarted = true;
    }
    var /** @type {?} */ _document = /** @type {?} */ ((theWindow.document || {}));
    var /** @type {?} */ opts = prebootData.opts || (/** @type {?} */ ({}));
    var /** @type {?} */ eventSelectors = opts.eventSelectors || [];
    // create an overlay that can be used later if a freeze event occurs
    prebootData.overlay = createOverlay(_document);
    // get an array of all the root info
    var /** @type {?} */ appRoots = prebootData.opts ? getAppRoots(_document, prebootData.opts) : [];
    // for each app root
    appRoots.forEach(function (root) {
        // we track all events for each app in the prebootData object which is on
        // the global scope
        var /** @type {?} */ appData = /** @type {?} */ ({ root: root, events: [] });
        if (prebootData.apps) {
            prebootData.apps.push(appData);
        }
        eventSelectors = eventSelectors.map(function (eventSelector) {
            if (!eventSelector.hasOwnProperty('replay')) {
                eventSelector.replay = true;
            }
            return eventSelector;
        });
        // loop through all the eventSelectors and create event handlers
        eventSelectors.forEach(function (eventSelector) { return handleEvents(prebootData, appData, eventSelector); });
    });
}

function createOverlay(_document) {
    var /** @type {?} */ overlay = _document.createElement('div');
    overlay.setAttribute('id', 'prebootOverlay');
    overlay.setAttribute('style', 'display:none;position:absolute;left:0;' +
        'top:0;width:100%;height:100%;z-index:999999;background:black;opacity:.3');
    _document.body.appendChild(overlay);
    return overlay;
}

function getAppRoots(_document, opts) {
    var /** @type {?} */ roots = [];
    // loop through any appRoot selectors to add them to the list of roots
    if (opts.appRoot && opts.appRoot.length) {
        var /** @type {?} */ baseList = [];
        var /** @type {?} */ appRootSelectors = baseList.concat(opts.appRoot);
        appRootSelectors.forEach(function (selector) { return roots.push({ serverSelector: selector }); });
    }
    // now loop through the roots to get the nodes for each root
    roots.forEach(function (root) {
        root.serverNode = /** @type {?} */ (_document.querySelector(root.serverSelector));
        root.clientSelector = root.clientSelector || root.serverSelector;
        if (root.clientSelector !== root.serverSelector) {
            // if diff selectors, then just get the client node
            root.clientNode = /** @type {?} */ (_document.querySelector(root.clientSelector));
        }
        else {
            // if we are doing buffering, we need to create the buffer for the client
            // else the client root is the same as the server
            root.clientNode = opts.buffer ? createBuffer(root) : root.serverNode;
        }
        // if no server node found, log error
        if (!root.serverNode) {
            console.log("No server node found for selector: " + root.serverSelector);
        }
    });
    return roots;
}

function handleEvents(prebootData, appData, eventSelector) {
    var /** @type {?} */ serverRoot = appData.root.serverNode;
    // don't do anything if no server root
    if (!serverRoot) {
        return;
    }
    // get all nodes under the server root that match the given selector
    var /** @type {?} */ nodes = serverRoot.querySelectorAll(eventSelector.selector);
    // don't do anything if no nodes found
    if (!nodes) {
        return;
    }
    var _loop_1 = function (i) {
        var /** @type {?} */ node = nodes.item(i);
        eventSelector.events.forEach(function (eventName) {
            // get the appropriate handler and add it as an event listener
            var /** @type {?} */ handler = createListenHandler(prebootData, eventSelector, appData, node);
            node.addEventListener(eventName, handler);
            // need to keep track of listeners so we can do node.removeEventListener()
            // when preboot done
            if (prebootData.listeners) {
                prebootData.listeners.push({
                    node: /** @type {?} */ (node),
                    eventName: eventName,
                    handler: handler
                });
            }
        });
    };
    // we want to add an event listener for each node and each event
    for (var /** @type {?} */ i = 0; i < nodes.length; i++) {
        _loop_1(i);
    }
}

function createListenHandler(prebootData, eventSelector, appData, node) {
    var /** @type {?} */ CARET_EVENTS = ['keyup', 'keydown', 'focusin', 'mouseup', 'mousedown'];
    var /** @type {?} */ CARET_NODES = ['INPUT', 'TEXTAREA'];
    return function (event) {
        var /** @type {?} */ root = appData.root;
        var /** @type {?} */ eventName = event.type;
        // if no node or no event name or not listening, just return
        if (!node || !eventName) {
            return;
        }
        // if key codes set for eventSelector, then don't do anything if event
        // doesn't include key
        var /** @type {?} */ keyCodes = eventSelector.keyCodes;
        if (keyCodes && keyCodes.length) {
            var /** @type {?} */ matchingKeyCodes = keyCodes.filter(function (keyCode) { return event.which === keyCode; });
            // if there are not matches (i.e. key entered NOT one of the key codes)
            // then don't do anything
            if (!matchingKeyCodes.length) {
                return;
            }
        }
        // if for a given set of events we are preventing default, do that
        if (eventSelector.preventDefault) {
            event.preventDefault();
        }
        // if an action handler passed in, use that
        if (eventSelector.action) {
            eventSelector.action(node, event);
        }
        // get the node key for a given node
        var /** @type {?} */ nodeKey = getNodeKeyForPreboot({ root: root, node: node });
        // if event on input or text area, record active node
        if (CARET_EVENTS.indexOf(eventName) >= 0 &&
            CARET_NODES.indexOf(node.tagName ? node.tagName : '') >= 0) {
            prebootData.activeNode = {
                root: root,
                node: node,
                nodeKey: nodeKey,
                selection: getSelection(/** @type {?} */ (node))
            };
        }
        else if (eventName !== 'change' && eventName !== 'focusout') {
            prebootData.activeNode = undefined;
        }
        // if we are freezing the UI
        if (eventSelector.freeze) {
            var /** @type {?} */ overlay_1 = /** @type {?} */ (prebootData.overlay);
            // show the overlay
            // show the overlay
            overlay_1.style.display = 'block';
            // hide the overlay after 10 seconds just in case preboot.complete() never
            // called
            setTimeout(function () {
                overlay_1.style.display = 'none';
            }, 10000);
        }
        // we will record events for later replay unless explicitly marked as
        // doNotReplay
        if (eventSelector.replay) {
            appData.events.push({
                node: node,
                nodeKey: nodeKey,
                event: event,
                name: eventName
            });
        }
    };
}

function getSelection(node) {
    node = node || /** @type {?} */ ({});
    var /** @type {?} */ nodeValue = node.value || '';
    var /** @type {?} */ selection = {
        start: nodeValue.length,
        end: nodeValue.length,
        direction: 'forward'
    };
    // if browser support selectionStart on node (Chrome, FireFox, IE9+)
    try {
        if (node.selectionStart || node.selectionStart === 0) {
            selection.start = node.selectionStart;
            selection.end = node.selectionEnd ? node.selectionEnd : 0;
            selection.direction = node.selectionDirection ? /** @type {?} */ (node.selectionDirection) : 'none';
        }
    }
    catch (/** @type {?} */ ex) { }
    return selection;
}

function createBuffer(root) {
    var /** @type {?} */ serverNode = root.serverNode;
    // if no rootServerNode OR the selector is on the entire html doc or the body
    // OR no parentNode, don't buffer
    if (!serverNode || !serverNode.parentNode ||
        root.serverSelector === 'html' || root.serverSelector === 'body') {
        return /** @type {?} */ (serverNode);
    }
    // create shallow clone of server root
    var /** @type {?} */ rootClientNode = /** @type {?} */ (serverNode.cloneNode(false));
    // we want the client to write to a hidden div until the time for switching
    // the buffers
    rootClientNode.style.display = 'none';
    // insert the client node before the server and return it
    serverNode.parentNode.insertBefore(rootClientNode, serverNode);
    // mark server node as not to be touched by AngularJS - needed for ngUpgrade
    serverNode.setAttribute('ng-non-bindable', '');
    // return the rootClientNode
    return rootClientNode;
}

function getNodeKeyForPreboot(nodeContext) {
    var /** @type {?} */ ancestors = [];
    var /** @type {?} */ root = nodeContext.root;
    var /** @type {?} */ node = nodeContext.node;
    var /** @type {?} */ temp = node;
    // walk up the tree from the target node up to the root
    while (temp && temp !== root.serverNode && temp !== root.clientNode) {
        ancestors.push(temp);
        temp = /** @type {?} */ (temp.parentNode);
    }
    // note: if temp doesn't exist here it means root node wasn't found
    if (temp) {
        ancestors.push(temp);
    }
    // now go backwards starting from the root, appending the appName to unique
    // identify the node later..
    var /** @type {?} */ name = node.nodeName || 'unknown';
    var /** @type {?} */ key = name + '_' + root.serverSelector;
    var /** @type {?} */ len = ancestors.length;
    for (var /** @type {?} */ i = len - 1; i >= 0; i--) {
        temp = ancestors[i];
        if (temp.childNodes && i > 0) {
            for (var /** @type {?} */ j = 0; j < temp.childNodes.length; j++) {
                if (temp.childNodes[j] === ancestors[i - 1]) {
                    key += '_s' + (j + 1);
                    break;
                }
            }
        }
    }
    return key;
}


      (function init(opts, win) {
    var /** @type {?} */ theWindow = /** @type {?} */ ((win || window));
    // add the preboot options to the preboot data and then add the data to
    // the window so it can be used later by the client
    var /** @type {?} */ data = (theWindow.prebootData = /** @type {?} */ ({
        opts: opts,
        listening: true,
        apps: [],
        listeners: []
    }));
    // start up preboot listening as soon as the DOM is ready
    waitUntilReady(data);
}
      )({"buffer":true,"minify":true,"replay":true,"eventSelectors":[{"selector":"input,textarea","events":["keypress","keyup","keydown","input","change"]},{"selector":"select,option","events":["change"],"freeze":true},{"selector":"input","events":["keyup"],"preventDefault":true,"keyCodes":[13],"freeze":true},{"selector":"form","events":["submit"],"preventDefault":true,"freeze":true},{"selector":"input,textarea","events":["focusin","focusout","mousedown","mouseup"],"noReplay":true},{"selector":"button,a,i,h1,h2,h3,.btn > span,.h1,.hamburger-icon,.tag-circle","events":["click"],"preventDefault":true,"freeze":true},{"selector":".toolkit-tab,.nav-mobile > p,.nav-settings,.nav-profile,.selector-country,.selector-language,.tag,.wl-container,.card,.card-mobile-action","events":["click"],"preventDefault":true,"freeze":true}],"appRoot":"app-root"})
    })()</script><style ng-transition="my-app-id">.completer-dropdown[_ngcontent-sc2] {
        border-color: #ececec;
        border-width: 1px;
        border-style: solid;
        border-radius: 2px;
        width: 250px;
        padding: 6px;
        cursor: pointer;
        z-index: 9999;
        position: absolute;
        margin-top: -6px;
        background-color: #ffffff;
    }

    .completer-row[_ngcontent-sc2] {
        padding: 5px;
        color: #000000;
        margin-bottom: 4px;
        clear: both;
        display: inline-block;
        width: 103%;
    }

    .completer-selected-row[_ngcontent-sc2] {
        background-color: lightblue;
        color: #ffffff;
    }

    .completer-description[_ngcontent-sc2] {
        font-size: 14px;
    }

    .completer-image-default[_ngcontent-sc2] {
        width: 16px; 
        height: 16px;
        background-image: url("demo/res/img/default.png");
    }

    .completer-image-holder[_ngcontent-sc2] {
        float: left;
        width: 10%;
    }
    .completer-item-text-image[_ngcontent-sc2] {
        float: right;
        width: 90%;
    }</style><meta property="og:title" content=" Eish! "><meta name="description" content=" Page not found. "><meta property="og:description" content=" Page not found. "><meta property="og:image" content="https://www.southafrica.net/assets/images/navigation/logo_sat.png"><meta property="og:url" content="https:/www.southafrica.net/tz/en/travel/something-went-wrong/404"><meta property="og:type" content="website"></head>

<body>
	
<!-- Google Tag Manager (noscript) -->
<noscript>
    <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W3CZD9R" height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->

<!-- India Campaign GTM (noscript) -->
<noscript>
	<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-K77TN6HB" height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->

<app-root ng-version="6.0.7"><div class="app-container show-hover ssr"><sat-clip-paths><div class="clip-paths"><svg height="0" width="0" xmlns="http://www.w3.org/2000/svg"><clipPath id="clip-person-l"><path d="M270.25,217.86a10.13,10.13,0,0,1,9.75-10V1.79c0-.88-.29-1.79-1.18-1.79H2.35C1.47,0,0,.91,0,1.79V218H270.51S270.25,217.91,270.25,217.86Z" id="person-l"></path></clipPath><clipPath id="clip-content-l"><path d="M349.56,299.51H350V1.63C350,.52,349,0,347.91,0H2.31C1.21,0,0,.52,0,1.63V308H339.69A10,10,0,0,1,349.56,299.51Z" id="content-l"></path></clipPath><clipPath id="clip-content-m"><path d="m299.88,248.48c0.11,0 0.12,-0.24 0.12,-0.23l0,-247.33c0,-0.92 -0.32,-0.85 -1.23,-0.85l-296.53,0c-0.91,0 -2.24,-0.07 -2.24,0.85l0,256.08l289.86,0c0.02,-5 5.47,-8.52 10.02,-8.52l0,0z" id="content-m"></path></clipPath><clipPath id="clip-content-s"><path d="m1.59,0l236.97,0a1.236,1.236 0 0 1 1.44,1.114l0,204.569s-0.21,-0.014 -0.3,-0.014a6.879,6.879 0 0 0 -6.88,6.867c0,0.642 -232.82,0.555 -232.82,0.555l0,-211.977a1.383,1.383 0 0 1 1.59,-1.114z" id="content-s"></path></clipPath><clipPath id="clip-feature-front-l"><path d="M2.31,0H732.91C734,0,735,.52,735,1.62v297.9l-.44,0a10,10,0,1,0,0,20l.43,0v144c0,1.1-1,2.5-2.09,2.5H2.31A2.77,2.77,0,0,1,0,463.5V1.62C0,.52,1.21,0,2.31,0Z" id="feature-front-l"></path></clipPath><clipPath id="clip-feature-front-m"><path d="m1.93,-0.01l606.34,0a1.492,1.492 0 0 1 1.74,1.35l0,248.4s-0.26,-0.01 -0.37,-0.01a8.3,8.3 0 1 0 0.01,16.6c0.11,0 0.36,-0.01 0.36,-0.01l0,121.6a2.133,2.133 0 0 1 -1.74,2.08l-606.34,0a2.3,2.3 0 0 1 -1.91,-2.08l0,-386.58c0,-0.92 1,-1.35 1.91,-1.35z" id="feature-front-m"></path></clipPath><clipPath id="clip-feature-front-s"><path d="m1.579971,-0.01l497.28,0a1.237,1.237 0 0 1 1.44,1.11l0,205.75s-0.21,-0.01 -0.31,-0.01a6.855,6.855 0 1 0 0.01,13.71c0.09,0 0.3,-0.01 0.3,-0.01l0,98.74a1.755,1.755 0 0 1 -1.44,1.71l-497.28,0a1.893,1.893 0 0 1 -1.59,-1.71l0,-318.18a1.386,1.386 0 0 1 1.59,-1.11z" id="feature-front-s"></path></clipPath><clipPath id="clip-feature-back-l"><path d="M2,0C.89,0,0,.52,0,1.62v347.9s.26.47.39.47h0a10,10,0,0,1,10,10,10,10,0,0,1-10,10h0c-.13,0-.38-.51-.38-.51v94c0,1.1.89,2.5,2,2.5H365V0Z" id="feature-back-l"></path></clipPath><clipPath id="clip-feature-back-m"><path d="m608.07,0.01l-606.33,0a1.492,1.492 0 0 0 -1.74,1.35l0,290.98s0.26,-0.01 0.37,-0.01a8.305,8.305 0 1 1 -0.01,16.61c-0.11,0 -0.36,-0.02 -0.36,-0.02l0,78.99a2.133,2.133 0 0 0 1.74,2.08l606.33,0a2.3,2.3 0 0 0 1.92,-2.08l0,-386.55c0,-0.92 -1,-1.35 -1.92,-1.35z" id="feature-back-m"></path></clipPath><clipPath id="clip-feature-back-s"><path d="m498.719912,0.01l-497.28,0a1.222,1.222 0 0 0 -1.43,1.11l0,240.08s0.21,-0.02 0.3,-0.02a6.86,6.86 0 1 1 -0.01,13.72a1.653,1.653 0 0 1 -0.29,-0.02l0,64.39a1.755,1.755 0 0 0 1.43,1.71l497.28,0a1.893,1.893 0 0 0 1.58,-1.71l0,-318.15a1.368,1.368 0 0 0 -1.58,-1.11z" id="feature-back-s"></path></clipPath><clipPath id="clip-pillar-l"><path d="M2.31,0h530.6C534,0,535,.52,535,1.63V394l-.44,0a10,10,0,1,0,0,20l.43,0V463.5c0,1.1-1,2.5-2.09,2.5H2.31A2.77,2.77,0,0,1,0,463.5V1.63C0,.52,1.21,0,2.31,0Z" id="pillar-l"></path></clipPath><clipPath id="clip-pillar-m"><path d="m1.62,0l372.56,0a1.281,1.281 0 0 1 1.47,1.1l0,273.5l-0.31,0a7,7 0 1 0 0.01,14l0.3,0l0,34.7a1.8,1.8 0 0 1 -1.47,1.7l-372.56,0a1.951,1.951 0 0 1 -1.62,-1.7l0,-322.2a1.439,1.439 0 0 1 1.62,-1.1z" id="pillar-m"></path></clipPath><clipPath id="clip-pillar-s"><path d="m257,198.389966a6.882,6.882 0 0 1 6.63,-7.13a3.844,3.844 0 0 1 0.48,0l0,0l-0.11,-190.87c0,-0.55 -0.27,-0.37 -0.81,-0.37l-261.52,0c-0.54,-0.02 -1.67,-0.17 -1.67,0.37l0,227.65a2.754,2.754 0 0 0 1.67,1.8l261.52,0c0.54,0 0.81,-1.25 0.81,-1.8l0.11,-22.53l0,0a6.887,6.887 0 0 1 -7.12,-6.65c0,-0.16 0,-0.32 0.01,-0.47z" id="pillar-s"></path></clipPath><clipPath id="clip-social-l"><path d="m2.307,0l344.6,0c1.1,0 2.09,0.52 2.09,1.63l0,224.88l-0.44,0c-5.52,0 -8.99,4.47 -8.99,9.98l0,0.01c0,5.53 3.47,9 8.99,9l0.43,0l0,29c0,1.11 -1,2.5 -2.09,2.5l-344.59,0a2.763,2.763 0 0 1 -2.307,-2.53l0,-272.84c0,-1.11 1.208,-1.63 2.307,-1.63z" id="social-l"></path></clipPath><clipPath id="clip-social-s"><path d="m1.75,0.010005l261.67,0a1.38,1.38 0 0 1 1.57,1.11c0,0.04 0.01,0.08 0.01,0.12l0,170.59l-0.33,0c-4.17,0.01 -6.55,2.38 -6.55,6.55s3.86,6.53 6.56,6.53l0.32,0l0,22.17a1.872,1.872 0 0 1 -1.58,1.8l-261.67,0a2.028,2.028 0 0 1 -1.75,-1.8l0,-205.84a1.533,1.533 0 0 1 1.75,-1.23l0,0z" id="social-s"></path></clipPath><clipPath id="clip-executive-front-s"><path d="m239.6,208c0.1,0 0.4,0 0.4,0l0,-206.4c0,-1.1 -1,-1.6 -2.1,-1.6l-235.6,0c-1.1,0 -2.3,0.5 -2.3,1.6l0,216.9l229.6,0c0.2,-5.3 4.6,-10.5 10,-10.5z" id="executive-front-s"></path></clipPath><clipPath id="clip-executive-front-l"><path d="M349.56,299.51H350V1.63C350,.52,349,0,347.91,0H2.31C1.21,0,0,.52,0,1.63V308H339.69A10,10,0,0,1,349.56,299.51Z" id="executive-front-l"></path></clipPath><linearGradient id="card-grad-full" x1="100%" x2="100%" y1="100%" y2="100%"><stop class="card-grad-full-stop" offset="0%"></stop><stop class="card-grad-full-stop" offset="100%"></stop></linearGradient><linearGradient id="card-grad-featured" x1="50%" x2="50%" y1="100%" y2="0%"><stop class="card-grad-featured-stop1" offset="0%"></stop><stop class="card-grad-featured-stop2" offset="75%"></stop></linearGradient><linearGradient id="card-grad" x1="50%" x2="50%" y1="100%" y2="0%"><stop class="card-grad-stop1" offset="0%"></stop><stop class="card-grad-stop2" offset="50%"></stop></linearGradient><radialGradient cx="50%" cy="50%" id="card-grad-radial" r="75%"><stop class="card-grad-radial-stop1" offset="0%"></stop><stop class="card-grad-radial-stop1" offset="50%"></stop></radialGradient></svg></div></sat-clip-paths><router-outlet></router-outlet><app-travel class="ng-star-inserted"><div class="main-container travel main-error-container"><app-nav-top><nav class="primary"><div class="primary-nav-container"><div class="nav-image image-active-primary"><a><img alt="" src="42478742.svg"></a></div><div class="nav-search"><div class="search-outer-container"><app-search><!----><div class="search-container"><!----><form novalidate="" class="ng-untouched ng-pristine ng-valid"><ng2-completer class="completer ng-untouched ng-pristine ng-valid" name="search" textnoresults="" textsearching="" _nghost-sc2=""><div _ngcontent-sc2="" class="completer-holder" ctrcompleter=""><input _ngcontent-sc2="" autocapitalize="off" autocomplete="off" autocorrect="off" class="completer-input ng-untouched ng-pristine ng-valid" ctrinput="" type="search" value="" name="" placeholder="Find Experiences..." maxlength="524288" tabindex="0"><!----><div _ngcontent-sc2="" class="completer-dropdown-holder ng-star-inserted"><!----></div></div></ng2-completer><!----><!----><!----></form></div></app-search><!----><i class="icon-search ng-star-inserted"></i></div></div><div class="mobile-only mobile-seperator"></div><div class="nav-mobile"><!----><div class="hamburger-icon ng-star-inserted"><span></span><span></span><span></span></div><p>Menu</p></div><!----><div class="nav-settings ng-star-inserted"><div class="settings-container"><i class="icon-close"></i><span class="selector-country"><i class="icon-down"></i> Tanzania </span><span>|</span><span class="selector-language">English</span></div></div><div class="nav-backdrop"></div><div class="nav-profile"><div class="profile-pic"><!----><!----><i class="icon-profile_circle ng-star-inserted"></i><!----></div><div class="profile-close"><i class="icon-close"></i></div><!----></div><!----></div></nav><!----><!----><app-menu-tablet class="ng-star-inserted"><div class="overlay"></div><div class="tablet-menu-container"><div class="menu-left-container"><div class="menu-top"><!----><div class="menu-top-logo translated ng-star-inserted" style="background-image:url(https://sat-backend-api-manager.azure-api.net//media/33586/logo_travel_en.png);"></div><!----><div class="menu-top-close"><i class="icon-close"></i></div></div><app-site-selector><div class="site-selector"><ul><!----><li class="ng-star-inserted">Travel Website</li><!----><!----><li hidden="" class="ng-star-inserted"><i class="icon-arrow txt-yellow" classname="icon-arrow txt-yellow"></i><a>Travel Website</a></li><li class="ng-star-inserted"><i class="icon-arrow txt-green" classname="icon-arrow txt-green"></i><a>Travel trade website</a></li><li class="ng-star-inserted"><i class="icon-arrow txt-blue" classname="icon-arrow txt-blue"></i><a>Business events website</a></li><li class="ng-star-inserted"><i class="icon-arrow txt-red" classname="icon-arrow txt-red"></i><a>Corporate &amp; media website</a></li></ul></div><div class="mobile-site-selector"><a>Travel Website<i class="icon-down"></i></a></div><div class="mobile-site-selector-menu"><a class="back-button"><i class="icon-down"></i>Back to main menu </a><div class="menu-settings"><ul><!----><li class="selected ng-star-inserted"><a>Travel Website</a></li><li class="ng-star-inserted"><a>Travel trade website</a></li><li class="ng-star-inserted"><a>Business events website</a></li><li class="ng-star-inserted"><a>Corporate &amp; media website</a></li></ul></div></div></app-site-selector><div class="scrollable-items"><div class="menu-items"><!----><ul class="main-menu custom"><!----><li class="ng-star-inserted"><app-menu-link><!----><a href="/tz/en/travel" target="_self" class="ng-star-inserted"> Welcome to South Africa <!----></a><!----></app-menu-link><!----><!----><i class="icon-arrow ng-star-inserted"></i></li><li class="ng-star-inserted"><app-menu-link><!----><a href="/tz/en/travel/category/what-you-need-to-know" target="_self" class="ng-star-inserted"> What you need to know <!----></a><!----></app-menu-link><!----><!----><i class="icon-arrow ng-star-inserted"></i></li><li class="ng-star-inserted"><app-menu-link><!----><!----><a class="ng-star-inserted"><span>Things to do</span><!----></a></app-menu-link><!----><i class="icon-down ng-star-inserted"></i><!----></li><li class="ng-star-inserted"><app-menu-link><!----><!----><a class="ng-star-inserted"><span>Places to go</span><!----></a></app-menu-link><!----><i class="icon-down ng-star-inserted"></i><!----></li><li class="ng-star-inserted"><app-menu-link><!----><a href="/tz/en/travel/page/summer-deals" target="_self" class="ng-star-inserted"> Travel deals <!----></a><!----></app-menu-link><!----><!----><i class="icon-arrow ng-star-inserted"></i></li><li class="ng-star-inserted"><app-menu-link><!----><a href="/tz/en/travel/category/travel-deals" target="_self" class="ng-star-inserted"> Events <!----></a><!----></app-menu-link><!----><!----><i class="icon-arrow ng-star-inserted"></i></li><li class="ng-star-inserted"><app-menu-link><!----><a href="/tz/en/travel/contact-us" target="_self" class="ng-star-inserted"> Get in touch <!----></a><!----></app-menu-link><!----><!----><i class="icon-arrow ng-star-inserted"></i></li></ul><div class="sub-menu-container"><!----></div><div class="sub-menu-container"><!----></div></div><div class="tablet-menu-content"><!----></div></div></div></div></app-menu-tablet><!----><app-country-selector><div class="country-selector"><div class="container"><h3 class="txt-primary">Choose your country and language:</h3></div><div class="container areas-container"><!----><div class="columns three country-area ng-star-inserted"><div class="head-board"></div><h4>Africa</h4><ul><!----><li class="tick-icon global ng-star-inserted"> Global </li><li class="tick-icon ng-star-inserted"> Angola </li><li class="tick-icon ng-star-inserted"> Botswana </li><li class="tick-icon ng-star-inserted"> DRC </li><li class="tick-icon ng-star-inserted"> Ethiopia </li><li class="tick-icon ng-star-inserted"> Ghana </li><li class="tick-icon ng-star-inserted"> Kenya </li><li class="tick-icon ng-star-inserted"> Malawi </li><li class="tick-icon ng-star-inserted"> Mozambique </li><li class="tick-icon ng-star-inserted"> Namibia </li><li class="tick-icon ng-star-inserted"> Nigeria </li><li class="tick-icon ng-star-inserted"> South Africa </li><li class="tick-icon selected ng-star-inserted"> Tanzania </li><li class="tick-icon ng-star-inserted"> Uganda </li><li class="tick-icon ng-star-inserted"> Zambia </li><li class="tick-icon ng-star-inserted"> Zimbabwe </li><li class="tick-icon ng-star-inserted"> Sho't Left </li></ul></div><div class="columns three country-area ng-star-inserted"><div class="head-board"></div><h4>Americas</h4><ul><!----><li class="tick-icon ng-star-inserted"> USA </li><li class="tick-icon ng-star-inserted"> Brazil </li></ul></div><div class="columns three country-area ng-star-inserted"><div class="head-board"></div><h4>Asia Pacific</h4><ul><!----><li class="tick-icon ng-star-inserted"> China </li><li class="tick-icon ng-star-inserted"> India </li><li class="tick-icon ng-star-inserted"> Japan </li><li class="tick-icon ng-star-inserted"> South Korea </li><li class="tick-icon ng-star-inserted"> Australia </li></ul></div><div class="columns three country-area ng-star-inserted"><div class="head-board"></div><h4>Europe</h4><ul><!----><li class="tick-icon ng-star-inserted"> France </li><li class="tick-icon ng-star-inserted"> Germany </li><li class="tick-icon ng-star-inserted"> Italy </li><li class="tick-icon ng-star-inserted"> Netherlands </li><li class="tick-icon ng-star-inserted"> Spain </li><li class="tick-icon ng-star-inserted"> United Kingdom </li></ul></div></div></div></app-country-selector><app-user-area><div class="user-area"><a class="back-button"><i class="icon-down"></i> Back</a><div class="user-content transparent"><!----><app-user-signin class="ng-tns-c3-8 ng-star-inserted"><div class="user-signin ng-trigger ng-trigger-fadeInOut" style=""><sat-panel class="ng-tns-c3-8 opened tab" paneltype="tab"><div class="tabs"><ul><!----><li class="active ng-star-inserted" style=""><a><!----> Sign Up <!----></a></li><li style="" class="ng-star-inserted"><a><!----> Sign In <!----></a></li><!----></ul></div><div class="panels"><sat-panel-item class="ng-tns-c12-9 ng-tns-c3-8 panel-item open ng-star-inserted" style=""><div class="title" id="panel-item-title-947"><!----> Sign Up <!----><!----><!----><i class="icon ng-tns-c12-9 icon-close ng-star-inserted"></i><!----></div><!----><div class="body ng-tns-c12-9 ng-trigger ng-trigger-shrinkInOut ng-star-inserted" style="opacity:1;"><div class="content"><!----><div class="signin-wrap ng-tns-c3-8 ng-star-inserted" style=""><div class="signin-left-column"><form class="ng-tns-c3-8 ng-untouched ng-pristine ng-invalid" novalidate=""><div class="controls"><sat-input-control class="ng-tns-c3-8" for="email"><div class="control input"><label for="email">Enter your email address</label><div class="input-container"><input formcontrolname="email" name="email" pinputtext="" type="text" class="ng-tns-c3-8 ng-untouched ng-pristine ng-invalid ui-inputtext ui-corner-all ui-state-default ui-widget" value=""><!----></div></div></sat-input-control><sat-validator class="ng-tns-c3-8 ng-tns-c15-13"><div class="error-container"><!----></div></sat-validator></div><div class="controls"><sat-input-control class="ng-tns-c3-8" for="password"><div class="control input"><label for="password">Create a password</label><div class="input-container"><input formcontrolname="password" name="password" pinputtext="" type="password" class="ng-tns-c3-8 ng-untouched ng-pristine ng-invalid ui-inputtext ui-corner-all ui-state-default ui-widget" value=""><!----></div></div></sat-input-control><sat-validator class="ng-tns-c3-8 ng-tns-c15-14"><div class="error-container"><!----></div></sat-validator></div><div class="controls"><sat-input-control class="ng-tns-c3-8" for="confirmPassword"><div class="control input"><label for="confirmPassword">Confirm your password</label><div class="input-container"><input formcontrolname="confirmPassword" name="confirmPassword" pinputtext="" type="password" class="ng-tns-c3-8 ng-untouched ng-pristine ng-invalid ui-inputtext ui-corner-all ui-state-default ui-widget" value=""><!----></div></div></sat-input-control><sat-validator class="ng-tns-c3-8 ng-tns-c15-15"><div class="error-container"><!----></div></sat-validator></div><div class="control submit-btn-wrap"><sat-button-submit class="ng-tns-c3-8"><button class="btn primary disabled" type="submit" disabled="" id=""><!----><!---->Create account<!----><!----></button></sat-button-submit></div></form></div><p class="social-alternative-text">or via</p><!----><div class="signin-right-column ng-tns-c3-8 ng-star-inserted"><app-facebook-login class="ng-tns-c3-8"><a class="btn social facebook">Sign up with Facebook</a></app-facebook-login><app-linked-in-login class="ng-tns-c3-8"><div class="btn social linkedin">Sign up with LinkedIn</div></app-linked-in-login><app-google-login class="ng-tns-c3-8"><a class="btn social google-plus">Sign up with Google+</a></app-google-login></div></div><!----><div class="create-terms ng-tns-c3-8 ng-star-inserted" style=""><p class="ng-tns-c3-8">By creating an account, I agree to the<br class="ng-tns-c3-8"><a class="link">Terms of service</a> and <a class="link">Privacy policy</a></p></div><!----></div></div></sat-panel-item><sat-panel-item class="ng-tns-c12-10 ng-tns-c3-8 panel-item ng-star-inserted" style=""><div class="title" id="panel-item-title-948"><!----> Sign In <!----><!----><i class="icon ng-tns-c12-10 icon-open ng-star-inserted"></i><!----><!----></div><!----></sat-panel-item><!----></div></sat-panel></div></app-user-signin><!----><!----><!----><!----><!----><!----><!----><!----></div></div></app-user-area></app-nav-top><app-social-share class="ng-tns-c0-0"><!----></app-social-share><router-outlet></router-outlet><app-error class="ng-star-inserted"><!----><div class="error-container null-bg ng-star-inserted" style="background-image:url(assets/images/error/404_error.jpg);"><div class="error-container-pattern-overlay"></div><div class="error-container-darkened-overlay"></div><div class="error-container-wrapper"><div class="title_box"><span class="h1">Eish!</span><hr><span>(pron.) /aysh/ but also, less often, as /ish/</span></div><!----><span class="h7 expl ng-star-inserted">A term of resignation; Used to express everything ranging from frustration to surprise and disapproval</span><div class="descr-box"><!----><h5 class="code ng-star-inserted">Error 404</h5><!----><h5 class="sub ng-star-inserted">Page not found.</h5></div><a class="btn primary dark"><!----><span class="ng-star-inserted">Explore experiences</span><!----><!----><!----><!----></a></div></div></app-error><!----><sat-cookie-notice><!----></sat-cookie-notice><!----></div></app-travel><!----></div></app-root>


<script type="text/javascript" src="https://connect.facebook.net/en_US/sdk.js"></script>
<script src="https://apis.google.com/js/platform.js" async="" defer=""></script>
<script>
	var overlay = document.getElementById('prebootOverlay');
	if (overlay) {
		overlay.innerHTML = '<div class="page-loader"></div>'
	}
</script>
<script type="text/javascript" id="gtm-youtube-tracking">
	(function (document, window, config) {
		'use strict';

		var _config = config || {};
		var forceSyntax = _config.forceSyntax || 0;
		var dataLayerName = _config.dataLayerName || 'dataLayer';
		// Default configuration for events
		var eventsFired = {
			'Play': true,
			'Pause': true,
			'Watch to End': true
		};
		var key;

		// Fetches YouTube JS API
		var tag = document.createElement('script');
		tag.src = '//www.youtube.com/iframe_api';
		var firstScriptTag = document.getElementsByTagName('script')[0];
		firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

		for (key in _config.events) {
			if (_config.events.hasOwnProperty(key)) {
				eventsFired[key] = _config.events[key];
			}
		}

		window.onYouTubeIframeAPIReady = (function () {
			var cached = window.onYouTubeIframeAPIReady;

			return function () {
				if (cached) {
					cached.apply(this, arguments);
				}

				// This script won't work on IE 6 or 7, so we bail at this point if we detect that UA
				if (navigator.userAgent.match(/MSIE [67]\./gi)) return;

				if (document.readyState !== 'loading') {
					init();
				} else {

					// On IE8 this fires on window.load, all other browsers will fire when DOM ready
					if (document.addEventListener) {
						addEvent(document, 'DOMContentLoaded', init);
					} else {
						addEvent(window, 'load', init);
					}
				}
			};
		})();

		// Invoked by the YouTube API when it's ready
		function init() {

			var potentialVideos = getTagsAsArr_('iframe').concat(getTagsAsArr_('embed'));
			digestPotentialVideos(potentialVideos);

			// Will bind to dynamically added videos. CAPTURE NOT SUPPORTED BY IE8
			if ('addEventListener' in document) {
				document.addEventListener('load', bindToNewVideos_, true);
			}
		}

		// Take our videos and turn them into trackable videos with events
		function digestPotentialVideos(potentialVideos) {
			var i;

			for (i = 0; i < potentialVideos.length; i++) {
				var isYouTubeVideo = checkIfYouTubeVideo(potentialVideos[i]);

				if (isYouTubeVideo) {
					var normalizedYouTubeIframe = normalizeYouTubeIframe(potentialVideos[i]);
					addYouTubeEvents(normalizedYouTubeIframe);
				}
			}
		}

		// Determine if the element is a YouTube video or not
		function checkIfYouTubeVideo(potentialYouTubeVideo) {
			var potentialYouTubeVideoSrc = potentialYouTubeVideo.src || '';

			if (potentialYouTubeVideoSrc.indexOf('youtube.com/embed/') > -1 || potentialYouTubeVideoSrc.indexOf('youtube.com/v/') > -1) {
				return true;
			}

			return false;
		}

		function jsApiEnabled(url) {
			return url.indexOf('enablejsapi') > -1;
		}

		function originEnabled(url) {
			return url.indexOf('origin') > -1;
		}

		// Turn embed objects into iframe objects and ensure they have the right parameters
		function normalizeYouTubeIframe(youTubeVideo) {
			var loc = window.location;
			var a = document.createElement('a');
			a.href = youTubeVideo.src;
			a.hostname = 'www.youtube.com';
			a.protocol = loc.protocol;
			var tmpPathname = a.pathname.charAt(0) === '/' ? a.pathname : '/' + a.pathname; // IE10 shim

			// For security reasons, YouTube wants an origin parameter set that matches our hostname
			if (!jsApiEnabled(a.search)) {
				a.search = (a.search.length > 0 ? a.search + '&' : '') + 'enablejsapi=1';
			}

			if (!originEnabled(a.search) && loc.hostname.indexOf('localhost') === -1) {
				var port = loc.port ? ':' + loc.port : '';
				var origin = loc.protocol + '%2F%2F' + loc.hostname + port;
				a.search = a.search + '&origin=' + origin;
			}

			if (youTubeVideo.type === 'application/x-shockwave-flash') {
				var newIframe = document.createElement('iframe');
				newIframe.height = youTubeVideo.height;
				newIframe.width = youTubeVideo.width;
				tmpPathname = tmpPathname.replace('/v/', '/embed/');
				youTubeVideo.parentNode.parentNode.replaceChild(newIframe, youTubeVideo.parentNode);
				youTubeVideo = newIframe;
			}

			a.pathname = tmpPathname;

			if (youTubeVideo.src !== a.href + a.hash) {
				youTubeVideo.src = a.href + a.hash;
			}

			return youTubeVideo;

		}

		// Add event handlers for events emitted by the YouTube API
		function addYouTubeEvents(youTubeIframe) {
			var player = YT.get(youTubeIframe.id);

			if (!player) {
				player = new YT.Player(youTubeIframe, {});
			}

			if (typeof youTubeIframe.pauseFlag === 'undefined') {
				youTubeIframe.pauseFlag = false;
				player.addEventListener('onStateChange', function (evt) { // todo: this creates memory leak, has to be removed than user navigates to another page
					onStateChangeHandler(evt, youTubeIframe);
				});
			}
		}

		// Returns key/value pairs of percentages: number of seconds to achieve
		function getMarks(duration) {
			var marks = {};

			// For full support, we're handling Watch to End with percentage viewed
			if (_config.events['Watch to End']) {
				marks['Watch to End'] = Math.min(duration - 3, Math.floor(duration * 0.99));
			}

			if (_config.percentageTracking) {
				var points = [];
				var i;

				if (_config.percentageTracking.each) {
					points = points.concat(_config.percentageTracking.each);
				}

				if (_config.percentageTracking.every) {
					var every = parseInt(_config.percentageTracking.every, 10);
					var num = 100 / every;

					for (i = 1; i < num; i++) {
						points.push(i * every);
					}
				}

				for (i = 0; i < points.length; i++) {
					var _point = points[i];
					var _mark = _point + '%';
					var _time = duration * _point / 100;
					marks[_mark] = Math.floor(_time);
				}
			}

			return marks;

		}

		function checkCompletion(player, marks, videoId) {
			var currentTime = player.getCurrentTime();
			var key;

			player[videoId] = player[videoId] || {};

			for (key in marks) {
				if (marks[key] <= currentTime && !player[videoId][key]) {
					player[videoId][key] = true;
					fireAnalyticsEvent(videoId, key);
				}
			}
		}

		// Event handler for events emitted from the YouTube API
		function onStateChangeHandler(evt, youTubeIframe) {
			var stateIndex = evt.data;
			var player = evt.target;
			var targetVideoUrl = player.getVideoUrl();
			var targetVideoId = targetVideoUrl.match(/[?&]v=([^&#]*)/)[1]; // Extract the ID
			var playerState = player.getPlayerState();
			var duration = Math.floor(player.getDuration());
			var marks = getMarks(duration);
			var playerStatesIndex = {
				'1': 'Play',
				'2': 'Pause'
			};
			var state = playerStatesIndex[stateIndex];

			youTubeIframe.playTracker = youTubeIframe.playTracker || {};

			if (playerState === 1 && !youTubeIframe.timer) {
				clearInterval(youTubeIframe.timer);

				youTubeIframe.timer = setInterval(function () {
					// Check every second to see if we've hit any of our percentage viewed marks
					checkCompletion(player, marks, youTubeIframe.videoId);
				}, 1000);

			} else {
				clearInterval(youTubeIframe.timer);
				youTubeIframe.timer = false;
			}

			// Playlist edge-case handler
			if (stateIndex === 1) {
				youTubeIframe.playTracker[targetVideoId] = true;
				youTubeIframe.videoId = targetVideoId;
				youTubeIframe.pauseFlag = false;
			}

			if (!youTubeIframe.playTracker[youTubeIframe.videoId]) {

				// This video hasn't started yet, so this is spam
				return false;
			}

			if (stateIndex === 2) {
				if (!youTubeIframe.pauseFlag) {
					youTubeIframe.pauseFlag = true;
				} else {
					// We don't want to fire consecutive pause events
					return false;
				}
			}

			// If we're meant to track this event, fire it
			if (eventsFired[state]) {
				fireAnalyticsEvent(youTubeIframe.videoId, state);
			}

		}

		// Fire an event to Google Analytics or Google Tag Manager
		function fireAnalyticsEvent(videoId, state) {
			var videoUrl = 'https://www.youtube.com/watch?v=' + videoId;
			var _ga = window.GoogleAnalyticsObject;

			if (typeof window[dataLayerName] !== 'undefined' && !_config.forceSyntax) {
				window[dataLayerName].push({
					'event': 'youTubeTrack',
					'attributes': {

						'videoUrl': videoUrl,
						'videoAction': state

					}
				});
			} else if (typeof window[_ga] === 'function' &&
					typeof window[_ga].getAll === 'function' &&
					_config.forceSyntax !== 2) {
				window[_ga]('send', 'event', 'Videos', state, videoUrl);
			} else if (typeof window._gaq !== 'undefined' && forceSyntax !== 1) {
				window._gaq.push(['_trackEvent', 'Videos', state, videoUrl]);
			}
		}

		// Simple cross-browser event listener
		function addEvent(el, name, fn) {
			if (el.addEventListener) {
				el.addEventListener(name, fn);
			} else if (el.attachEvent) {
				el.attachEvent('on' + name, function (evt) {
					evt.target = evt.target || evt.srcElement;
					// Call the event to ensure uniform 'this' handling, pass it event
					fn.call(el, evt);
				});
			} else if (typeof el['on' + name] === 'undefined' || el['on' + name] === null) {
				el['on' + name] = function (evt) {
					evt.target = evt.target || evt.srcElement;
					// Call the event to ensure uniform 'this' handling, pass it event
					fn.call(el, evt);
				};
			}
		}

		// Returns array of elements with given tag name
		function getTagsAsArr_(tagName) {
			return [].slice.call(document.getElementsByTagName(tagName));
		}

		function bindToNewVideos_(evt) {
			var el = evt.target || evt.srcElement;
			var isYT = checkIfYouTubeVideo(el);

			if (isYT && el.tagName === 'IFRAME') {
				if (!(jsApiEnabled(el.src) && originEnabled(el.src))) {
					el = normalizeYouTubeIframe(el);
				}

				addYouTubeEvents(el);
			}
		}
	})(document, window, {
		'events': {
			'Play': true,
			'Pause': true,
			'Watch to End': true
		},
		'percentageTracking': {
			'every': 25,
			'each': [10, 90]
		}
	});
	/*
     * Configuration Details
     *
     * @property events object
     * Defines which events emitted by YouTube API
     * will be turned into Google Analytics or GTM events
     *
     * @property percentageTracking object
     * Object with configurations for percentage viewed events
     *
     *   @property each array
     *   Fires an event once each percentage ahs been reached
     *
     *   @property every number
     *   Fires an event for every n% viewed
     *
     * @property forceSyntax int 0, 1, or 2
     * Forces script to use Classic (2) or Universal(1)
     *
     * @property dataLayerName string
     * Tells script to use custom dataLayer name instead of default
     */
	/*
     * v8.1.3
     * Created by the Google Analytics consultants at http://www.lunametrics.com
     * Written by @SayfSharif and @notdanwilkerson
     * Documentation: https://github.com/lunametrics/youtube-google-analytics/
     * Licensed under the Creative Commons 4.0 Attribution Public License
     * Modified to normalize new YT videos.
     */
</script>
<script src="//cdn.jsdelivr.net/youtube-google-analytics/8.0.2/lunametrics-youtube.gtm.min.js"></script>

<!-- Consentag -->
<script src="https://consentag.eu/public/2.1.1/consenTag.js"></script>

<footer>
<script>
/**
 * GuideGeek Control System
 * Uses custom button approach with disableChatToggle for complete positioning control
 */
window.GuideGeekControl = (function () {
  const GUIDE_SCRIPT_ID = 'guidegeek-script';
  const GUIDE_BUTTON_ID = 'mn-guidegeek-custom-button';
  let guideLoaded = false;
  let chatInstance = null;

  function addGuideGeek() {
    if (guideLoaded || document.getElementById(GUIDE_SCRIPT_ID)) return;
    guideLoaded = true;
    
    // Create GuideGeek script with custom options
    const script = document.createElement('script');
    script.id = GUIDE_SCRIPT_ID;
    script.src = 'https://embed.guidegeek.com/embed.js';
    script.dataset.zIndex = '1000000';
    script.dataset.disableChatToggle = 'true'; // Hide default button
    document.body.appendChild(script);
    
    // Listen for GuideGeek registration
    document.addEventListener('GuideGeekChatRegistered', handleChatRegistered);
    
    // Create custom button
    createCustomButton();
  }
  
  function handleChatRegistered(e) {
    chatInstance = e.detail.chat;
    console.log('✅ GuideGeek chat registered');
    
    // Connect button to chat
    const button = document.getElementById(GUIDE_BUTTON_ID);
    if (button && chatInstance) {
      button.addEventListener('click', () => {
        chatInstance.command('show');
        chatInstance.command('openWindow');
      });
      console.log('✅ Custom button connected to GuideGeek');
    }

	setTimeout(() => {
		if (chatInstance) {
			chatInstance.command('show');
			chatInstance.command('openWindow');
			console.log('✅ GuideGeek auto-opened on page load');
		}
	}, 2000); // Delay to ensure chat is ready
  }
  
  function createCustomButton() {
    // Remove existing button if any
    const existing = document.getElementById(GUIDE_BUTTON_ID);
    if (existing) existing.remove();
    
    // Create button element
    const button = document.createElement('button');
    button.id = GUIDE_BUTTON_ID;
    button.className = 'mn-guidegeek-button';
    button.setAttribute('aria-label', 'Open GuideGeek Travel Assistant');
    
    // Add to body
    document.body.appendChild(button);
    console.log('✅ Custom GuideGeek button created');
  }

  function teardownGuideGeek() {
    guideLoaded = false;
    chatInstance = null;
    
    // Remove event listener
    document.removeEventListener('GuideGeekChatRegistered', handleChatRegistered);
    
    // Remove custom button
    const button = document.getElementById(GUIDE_BUTTON_ID);
    if (button) button.remove();
    
    // Remove script
    const tag = document.getElementById(GUIDE_SCRIPT_ID);
    if (tag) tag.remove();

    // Clean up all GuideGeek elements
    const selectors = [
      'script[src*="guidegeek"]',
      'iframe[src*="guidegeek"]',
      '[data-guidegeek]',
      '[id*="guidegeek" i]:not(#' + GUIDE_BUTTON_ID + ')',
      '[class*="guidegeek" i]'
    ];
    document.querySelectorAll(selectors.join(',')).forEach(n => { 
      try { n.remove(); } catch(_) {} 
    });

    // Clean up GuideGeek instance
    if (window.GuideGeek && typeof window.GuideGeek.destroy === 'function') {
      try { window.GuideGeek.destroy(); } catch(_) {}
    }
    delete window.GuideGeek;
    
    console.log('✅ GuideGeek teardown complete');
  }

  return { add: addGuideGeek, remove: teardownGuideGeek };
})();
</script>

<!-- Custom GuideGeek Button Styles -->
<style>
.mn-guidegeek-button {
  position: fixed;
  right: 120px;
  bottom: 20px;
  z-index: 100000;
  border-radius: 99px 99px 0 99px;
  background-color: #058141;
  width: 50px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 0;
  border: 0;
  box-shadow: 0 5px 15px rgba(0, 0, 0, .15);
  pointer-events: auto;
  color: #1d1d1d;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.mn-guidegeek-button:hover {
  transform: scale(1.05);
  box-shadow: 0 7px 20px rgba(0, 0, 0, .25);
}

.mn-guidegeek-button:active {
  transform: scale(0.95);
}

.mn-guidegeek-button:before {
  content: "";
  display: block;
  filter: invert(1);
  background-image: url(https://embed.guidegeek.com/images/icon-wand.svg);
  scale: .8;
  width: 35px;
  height: 35px;
  background-size: cover;
}

/* Mobile positioning - above bottom nav bar */
@media (max-width: 1079px) {
  .mn-guidegeek-button {
    bottom: 80px;
    right: 20px;
  }
}
</style>

</footer>


<script id="my-app-id-state" type="application/json">{&q;cached&q;:true,&q;https://sat-backend-api-manager.azure-api.net/umbraco/api/SearchApi/BuildSearchSuggestion?language=enundefined&q;:[&q;Adventure&q;,&q;Arts&q;,&q;Entertainment&q;,&q;Attractions&q;,&q;Museums&q;,&q;Culture&q;,&q;History&q;,&q;Food&q;,&q;Health And Fitness&q;,&q;Sport&q;,&q;Animals&q;,&q;Safari&q;,&q;Routes&q;,&q;Trails&q;,&q;Luxury&q;,&q;Affordable&q;,&q;Shopping&q;,&q;Wine&q;,&q;Events&q;,&q;Family&q;,&q;Kids&q;,&q;Camping&q;,&q;Lifestyle&q;,&q;LGBT&q;,&q;Accessibility&q;,&q;Cape Town&q;,&q;Johannesburg&q;,&q;Bloemfontein&q;,&q;Durban&q;,&q;Nelspruit&q;,&q;Pretoria&q;,&q;Port Elizabeth&q;,&q;Polokwane&q;,&q;Kimberley&q;,&q;Infrastructure&q;,&q;Transport&q;,&q;What you need to know&q;,&q;Wildlife&q;,&q;People&q;,&q;Weekend Getaway&q;,&q;Spa&q;,&q;Events&q;,&q;Day Trips&q;,&q;Countryside Meanders&q;,&q;Cultural Discoveries&q;,&q;Bush Retreats&q;,&q;Coastal Getaways&q;,&q;City Breaks&q;,&q;Mountain Escapes&q;,&q;Small town charm&q;,&q;Multiple experiences&q;,&q;Popular&q;,&q;Strategic Events&q;,&q;Bungee&q;,&q;Bungy&q;,&q;Canoeing&q;,&q;Kayak&q;,&q;Walking&q;,&q;Hiking&q;,&q;Kayaking&q;,&q;Rafting&q;,&q;Trail Running&q;,&q;Mountain Biking&q;,&q;Cycling&q;,&q;Running&q;,&q;Tourism Month&q;,&q;Meet South Africa&q;,&q;Snorkelling&q;,&q;Diving&q;,&q;Scuba Dive&q;,&q;Nightlife&q;,&q;Indian Food&q;,&q;Jain Food&q;,&q;Vegetarian&q;,&q;Malaria&q;,&q;Yellow Fever&q;,&q;Honeymoon&q;,&q;Family Holiday&q;,&q;Tourist Visa&q;,&q;Visa&q;,&q;Annual Reports&q;,&q;Tourist Arrivals&q;,&q;Bakkie Stories 1&q;,&q;Bakkie Stories 2&q;,&q;Bakkie Stories 3&q;,&q;Bakkie Stories 4&q;,&q;Bakkie Stories&q;,&q;Bakkie Stories 5&q;,&q;Bakkie Stories 6&q;,&q;Bakkie Stories 7&q;,&q;Bakkie Stories 8&q;,&q;Bakkie Stories 9&q;,&q;Bakkie Stories 10&q;,&q;Bakkie Stories 11&q;,&q;Bakkie Stories 12&q;,&q;Nelson Mandela&q;,&q;Sho&s;t Left&q;,&q;Instameet&q;,&q;Africa Day&q;,&q;Fashion&q;,&q;COVID-19&q;,&q;Travel Safely&q;,&q;Summer Different&q;,&q;Netflix JIVA&q;,&q;COVID information&q;,&q;Sustainability&q;,&q;Sustainable Conservation&q;,&q;Sustainable Accommodation&q;,&q;Sustainable Wildlife Encounters&q;,&q;Eco-Friendly Sustainable Accommodation&q;,&q;Sustainable Tourism Experience&q;,&q;Conservation&q;,&q;Social&q;,&q;Environmental&q;,&q;Backpackers and hosteling&q;,&q;Bed and Breakfast&q;,&q;Camp Site&q;,&q;Caravan and Camping&q;,&q;Country House&q;,&q;Game Lodge&q;,&q;Guest House&q;,&q;Hotel&q;,&q;Nature Lodge&q;,&q;MESE&q;,&q;Self Catering&q;,&q;English&q;,&q;German&q;,&q;French&q;,&q;Spanish&q;,&q;Dutch&q;,&q;Italian&q;,&q;Portuguese&q;,&q;Korean&q;,&q;Japanese&q;,&q;Chinese&q;,&q;Breathtaking scenery&q;,&q;Bustling city life&q;,&q;Active adventure&q;,&q;Sun-soaked coasts&q;,&q;Wildlife safari&q;,&q;Vibrant culture&q;,&q;Food &a; Drink&q;,&q;Travel Trade AU&q;,&q;Sustainability&q;,&q;Press Release&q;,&q;News&q;,&q;Speech&q;,&q;Tourism Tuesday&q;,&q;Tourist Arrivals&q;,&q;Domestic Tourism Report&q;,&q;International Tourism Report&q;,&q;Annual Tourism Performance&q;,&q;Industry Reports&q;,&q;Country&q;,&q;Corporate Results Report&q;],&q;https://sat-backend-api-manager.azure-api.net/umbraco/api/TranslationApi/GetUiCopy?lang=enundefined&q;:{&q;addToWishlist&q;:&q;Add to wish list&q;,&q;addCard&q;:&q;Add card&q;,&q;addAnotherLocation&q;:&q;Add another location&q;,&q;back&q;:&q;Back&q;,&q;bookNow&q;:&q;Book now&q;,&q;bookYourTrip&q;:&q;Book your trip&q;,&q;backToMainMenu&q;:&q;Back to main menu&q;,&q;contactThisTravelPartner&q;:&q;Contact &q;,&q;clearAllFilters&q;:&q;Clear all filters&q;,&q;changeMyPassword&q;:&q;Change my password&q;,&q;changeIt&q;:&q;Change it&q;,&q;cancel&q;:&q;Cancel&q;,&q;downloadReport&q;:&q;Download report&q;,&q;displayAllArticles&q;:&q;Display all articles&q;,&q;deleteMyProfile&q;:&q;Delete my profile&q;,&q;decrement&q;:&q;Decrement&q;,&q;exploreExperiences&q;:&q;Explore experiences&q;,&q;editThumbnail&q;:&q;Edit thumbnail&q;,&q;exploreMoreDeals&q;:&q;Explore more deals&q;,&q;exploreMore&q;:&q;Explore more&q;,&q;exploreNow&q;:&q;Explore now&q;,&q;findAccommodation&q;:&q;Find accommodation&q;,&q;findATravelPartner&q;:&q;Find a Travel Trade Partner&q;,&q;findATravelWeekPartner&q;:&q;Find a Travel Week Partner&q;,&q;findDeals&q;:&q;Find deals&q;,&q;findEvents&q;:&q;Find events&q;,&q;findActivities&q;:&q;Find activities&q;,&q;goToLogin&q;:&q;Go to login&q;,&q;increment&q;:&q;Increment&q;,&q;learnMore&q;:&q;Learn more&q;,&q;loadCards&q;:&q;Load cards&q;,&q;large&q;:&q;Large&q;,&q;loadMore&q;:&q;Load more&q;,&q;menu&q;:&q;Menu&q;,&q;no&q;:&q;No&q;,&q;removeFirstCard&q;:&q;Remove first card&q;,&q;resendTheConfirmationEmail&q;:&q;Resend the confirmation email&q;,&q;readMore&q;:&q;Read More&q;,&q;removeFromWishlist&q;:&q;Remove from wish list&q;,&q;resetPassword&q;:&q;Reset password&q;,&q;share&q;:&q;Share&q;,&q;submit&q;:&q;Submit&q;,&q;searchVenues&q;:&q;Search Venues&q;,&q;shareYourWishlist&q;:&q;Share your wish list&q;,&q;subscribe&q;:&q;Subscribe&q;,&q;signOut&q;:&q;Sign out&q;,&q;shotLeft&q;:&q;Sho&s;t Left&q;,&q;termsOfService&q;:&q;Terms of service&q;,&q;uploadANewPhoto&q;:&q;Upload a new photo&q;,&q;viewWishlist&q;:&q;View wish list&q;,&q;viewOnMap&q;:&q;View on map&q;,&q;yes&q;:&q;Yes&q;,&q;activities&q;:&q;Activities&q;,&q;articles&q;:&q;Articles&q;,&q;areYouSureToRemoveYourProfile&q;:&q;Are you sure you want to remove your profile?&q;,&q;errorAiskiesTitle&q;:&q;Askies!&q;,&q;errorAiskiesPron&q;:&q;(pron.) /aah-skees/&q;,&q;americas&q;:&q;Americas&q;,&q;and&q;:&q;and&q;,&q;acceptable&q;:&q;Acceptable&q;,&q;author&q;:&q;Author&q;,&q;averageRainfall&q;:&q;Average Rainfall (mm)&q;,&q;accreditation&q;:&q;Accreditation&q;,&q;affordable&q;:&q;Affordable&q;,&q;allPersonalInfoWillBeRemovedInAccordanceWith&q;:&q;All your personal information on the South African Tourism website will be removed in accordance with our&q;,&q;asiaPacific&q;:&q;Asia Pacific&q;,&q;away&q;:&q;away&q;,&q;africa&q;:&q;Africa&q;,&q;apartFromTheWorldClass&q;:&q;Apart from the world-class international airports, there are a number of domestic airports scattered throughout the country including Bloemfontein, East London, George, Kimberley, Port Elizabeth , Upington and more.&q;,&q;accommodationTGCSA&q;:&q;Find a graded establishment&q;,&q;averageHighTemp&q;:&q;Average high temp&q;,&q;all&q;:&q;All&q;,&q;accommodationType&q;:&q;Accommodation type&q;,&q;addYourPhoneNumber&q;:&q;Add your phone number&q;,&q;address&q;:&q;Address &q;,&q;accommodation&q;:&q;Accommodation&q;,&q;ambulance&q;:&q;Ambulance&q;,&q;accept&q;:&q;Accept&q;,&q;brazil&q;:&q;Brazil&q;,&q;byUsingOurSite&q;:&q;By using our site you agree to our {{cookiesPolicyDot}}&q;,&q;business&q;:&q;Business&q;,&q;byCreatingAnAccount&q;:&q;By creating an account, I agree to the&q;,&q;budget&q;:&q;Budget&q;,&q;browseTheSite&q;:&q;Browse the site and add your favourites so that you can save, print and share ideas for an awesome trip&q;,&q;businessWebsiteLabel&q;:&q;Business events website&q;,&q;bookAccommodation&q;:&q;Book accommodation&q;,&q;byPlane&q;:&q;By plane&q;,&q;bookTicket&q;:&q;Book ticket&q;,&q;byBus&q;:&q;By bus&q;,&q;byCar&q;:&q;By car&q;,&q;country&q;:&q;Country&q;,&q;copyright&q;:&q;Copyright&q;,&q;couldNotRemoveItem&q;:&q;Could not remove item from your wish list&q;,&q;corporate&q;:&q;Corporate&q;,&q;contactDetails&q;:&q;Contact Details&q;,&q;contactNow&q;:&q;contact now&q;,&q;changePasswordFor&q;:&q;Change Password for&q;,&q;capacity&q;:&q;Capacity&q;,&q;clickTheConfirmationLink&q;:&q;Click the confirmation link in the email to begin.&q;,&q;confirmYourPassword&q;:&q;Confirm your password&q;,&q;createAccount&q;:&q;Create account&q;,&q;couldNotCreateAnAccount&q;:&q;Could not create an account&q;,&q;city&q;:&q;City &q;,&q;chooseYourCountryAndLanguage&q;:&q;Choose your country and language&q;,&q;cardRemoved&q;:&q;Card removed&q;,&q;couldNotSignIn&q;:&q;Could not sign in.&q;,&q;corporateWebsiteLabel&q;:&q;Corporate &a; media website&q;,&q;couldNotRemoveProfile&q;:&q;Something went wrong when deleting your profile&q;,&q;chinese&q;:&q;Chinese&q;,&q;cookiesPolicyDot&q;:&q;cookies policy&q;,&q;contactingTravelPartner&q;:&q;Contacting Travel Trade Partner&q;,&q;createAPassword&q;:&q;Create a password&q;,&q;cellPhoneEmergency&q;:&q;Cell phone emergency&q;,&q;cookiesHelpUsDeliverContent&q;:&q;Cookies help us deliver content of interest and improve website functionality. By using our site, you agree to our cookies policy.&q;,&q;contactPerson&q;:&q;Contact person&q;,&q;couldNotSyncYourWishlist&q;:&q;Could not sync your wish list&q;,&q;couldNotSubscribe&q;:&q;Could not subscribe, please try again later&q;,&q;couldNotUpdateYourDetails&q;:&q;Could not update your details.&q;,&q;contactSouthAfricanTourism&q;:&q;Contact South African Tourism&q;,&q;cookiesHelpUs&q;:&q;Cookies help us deliver content of interest and improve website functionality.&q;,&q;counterValue&q;:&q;Counter value:&q;,&q;china&q;:&q;China&q;,&q;cardAdded&q;:&q;Card added&q;,&q;contact&q;:&q;Contact&q;,&q;drive&q;:&q;Drive&q;,&q;departmentOfTourism&q;:&q;Department of Tourism&q;,&q;dragToReposition&q;:&q;Drag to reposition&q;,&q;deals&q;:&q;Deals&q;,&q;disclaimerTitle&q;:&q;USER DISCLAIMER/INDEMNITY NOTICE&q;,&q;dutch&q;:&q;Dutch&q;,&q;download&q;:&q;Download&q;,&q;congoDemocraticRepublic&q;:&q;DRC&q;,&q;didYouKnow&q;:&q;Did You Know?&q;,&q;disclaimer&q;:&q;Disclaimer&q;,&q;disclaimerDescription&q;:&q;The usage including bookings; payments and all other related activities by the User on southafrica.net are entirely between the User and the Tour Operator/Travel Agent and related service providers. South African Tourism, its agent/s and/or its employee/s shall not be liable for, and the User/s hereby waive/s and abandon/s any claims of whatever nature including but not limited to that of fraud, misrepresentation, injury, loss or damage of whatever nature, whether arising from the South African Tourism&s;s default, negligence or otherwise as a result of the usage of southafrica.net. By making use of the domain address southafrica.net and any other Web address belonging to South African Tourism the User/s accept the terms and conditions stipulated above.&q;,&q;didntReceiveTheEmail&q;:&q;Didn&s;t receive the email?&q;,&q;error&q;:&q;Error&q;,&q;english&q;:&q;English&q;,&q;endDate&q;:&q;End date&q;,&q;excellent&q;:&q;Excellent&q;,&q;editProfile&q;:&q;Edit profile&q;,&q;europe&q;:&q;Europe&q;,&q;events&q;:&q;Events&q;,&q;errorChangingThePassword&q;:&q;Error changing the password.&q;,&q;exploreSouthAfrica&q;:&q;Explore South Africa&q;,&q;errorEishTitle&q;:&q;Eish!&q;,&q;errorEishPron&q;:&q;(pron.) /aysh/ but also, less often, as /ish/&q;,&q;explore&q;:&q;Explore&q;,&q;enterYourEmailAddress&q;:&q;Enter your email address&q;,&q;email&q;:&q;Email&q;,&q;emailAddress&q;:&q;Email address&q;,&q;findMoreDeals&q;:&q;Find more deals&q;,&q;fridayAbbreviation&q;:&q;Fri&q;,&q;fly&q;:&q;Fly&q;,&q;findAVenue&q;:&q;Find a venue&q;,&q;findMoreEvents&q;:&q;Find more events&q;,&q;food&q;:&q;Food&q;,&q;france&q;:&q;France&q;,&q;flySAA&q;:&q;Fly SAA&q;,&q;firstName&q;:&q;First name&q;,&q;from&q;:&q;From&q;,&q;fromZeroToUnforgettableInOnly&q;:&q;From zero to unforgettable in only&q;,&q;forSigningUpForOurNewsletter&q;:&q;for signing up for our newsletter&q;,&q;french&q;:&q;French&q;,&q;findMoreActivities&q;:&q;Find more activities&q;,&q;findExperiences&q;:&q;Find Experiences&q;,&q;findMoreAccommodation&q;:&q;Find more accommodation&q;,&q;forgotYourPassword&q;:&q;Forgot your password?&q;,&q;fax&q;:&q;Fax&q;,&q;greatJob&q;:&q;Great job!&q;,&q;good&q;:&q;Good&q;,&q;global&q;:&q;Global&q;,&q;german&q;:&q;German&q;,&q;germany&q;:&q;Germany&q;,&q;hours&q;:&q;HOURS&q;,&q;hour&q;:&q;HOUR&q;,&q;howToGetHere&q;:&q;How to get here&q;,&q;iWillBeTravelling&q;:&q;I will be travelling in South Africa from&q;,&q;inspiringNewWays&q;:&q;Inspiring New Ways&q;,&q;italian&q;:&q;Italian&q;,&q;intermediate&q;:&q;Intermediate&q;,&q;itemIsNotAddedToYourWishlist&q;:&q;Item is not added to your wish list.&q;,&q;ifYouReOnABudget&q;:&q;If you’re on a budget, travelling by bus is the cheapest way to travel the country. As a result it has become the go-to travelling option for the more economically-conscious locals. There are a number of bus operators, offering both economy and luxury rides.&q;,&q;italy&q;:&q;Italy&q;,&q;japan&q;:&q;Japan&q;,&q;japanese&q;:&q;Japanese&q;,&q;korean&q;:&q;Korean&q;,&q;language&q;:&q;Language&q;,&q;linkExpired&q;:&q;Link expired&q;,&q;lastName&q;:&q;Last name&q;,&q;location&q;:&q;Location&q;,&q;luxury&q;:&q;Luxury&q;,&q;lookingForADifferentExperience&q;:&q;Refine your experience&q;,&q;moments&q;:&q;moments&q;,&q;mondayAbbreviation&q;:&q;Mon&q;,&q;mayJuly&q;:&q;May - July&q;,&q;manyMajorInternational&q;:&q;Many major international car-hire companies operate in South Africa, offering anything from small, budget-friendly cars to luxurious sedans. It’s best to hire vehicles in advance, especially if you are coming to South Africa at a high traffic season.&q;,&q;message&q;:&q;Message&q;,&q;meetingsAfrica&q;:&q;Meetings Africa&q;,&q;myWishlist&q;:&q;My Wish list&q;,&q;mobile&q;:&q;Mobile&q;,&q;nameLabel&q;:&q;Name&q;,&q;noResultsFound&q;:&q;No results found&q;,&q;netherlands&q;:&q;Netherlands&q;,&q;noCitiesForChosenProvince&q;:&q;There&s;s no cities assigned to chosen province&q;,&q;newPassword&q;:&q;New password&q;,&q;nowYouCanUseYour&q;:&q;Now you can use your new credentials to log in.&q;,&q;navBottomToTop&q;:&q;TOP&q;,&q;outstanding&q;:&q;Outstanding&q;,&q;orVia&q;:&q;or via&q;,&q;oopsSomethingWentWrong&q;:&q;Oops, something went wrong&q;,&q;octoberFebruary&q;:&q;October - February&q;,&q;overcast&q;:&q;Overcast&q;,&q;overview&q;:&q;Overview&q;,&q;otherDealsFrom&q;:&q;Other deals from {{value}}&q;,&q;oldPassword&q;:&q;Old password&q;,&q;profile&q;:&q;Profile&q;,&q;partnerType&q;:&q;Partner type&q;,&q;province&q;:&q;Province&q;,&q;pleaseEnterYourNewPassword&q;:&q;Please enter your new password.&q;,&q;pageNotFound&q;:&q;Page not found&q;,&q;password&q;:&q;Password&q;,&q;print&q;:&q;Print&q;,&q;pleaseCheckYourMailbox&q;:&q;Please check your mailbox for a confirmation email&q;,&q;pressCategory&q;:&q;Press category&q;,&q;pleaseCheckYourInbox&q;:&q;Please check your inbox.&q;,&q;partnerTypes&q;:&q;Partner types&q;,&q;pressTypes&q;:&q;Press types&q;,&q;pleaseProvideThe&q;:&q;Please provide the email address that you used when you signed up for your account.&q;,&q;photo&q;:&q;Photo&q;,&q;partlyCloudy&q;:&q;Partly cloudy&q;,&q;portuguese&q;:&q;Portuguese&q;,&q;physicalAddress&q;:&q;Physical address&q;,&q;pleaseVerifyYourEmailAddress&q;:&q;Please verify your email address&q;,&q;phone&q;:&q;Phone&q;,&q;postalAddress&q;:&q;Postal address&q;,&q;profileDetailsHaveBeenUpdated&q;:&q;Profile details have been updated.&q;,&q;priceRange&q;:&q;Price range&q;,&q;pleaseCheckYourInboxAndClickTheLink&q;:&q;Please check your inbox and click the link.&q;,&q;privacyPolicy&q;:&q;Privacy policy&q;,&q;pleaseFillInTheForm&q;:&q;Please fill in the form&q;,&q;planningAMeetingInSouthAfrica&q;:&q;Planning a meeting in South Africa?&q;,&q;quickFactsAboutSouthAfrica&q;:&q;Quick facts about South Africa &q;,&q;quickSignIn&q;:&q;Quick sign in&q;,&q;reviews&q;:&q;Reviews&q;,&q;removeAllCards&q;:&q;Remove all cards&q;,&q;relatedTravelSites&q;:&q;Related travel sites&q;,&q;rain&q;:&q;Rain&q;,&q;repeatNewPassword&q;:&q;Repeat new password&q;,&q;researchCategory&q;:&q;Research category&q;,&q;resetItHere&q;:&q;Reset it here&q;,&q;resetPasswordFor&q;:&q;Reset password for&q;,&q;rightNow&q;:&q;Right now&q;,&q;retweet&q;:&q;Retweet&q;,&q;resultsFound&q;:&q;Results found&q;,&q;resultFound&q;:&q;Result found&q;,&q;reportCategory&q;:&q;Report category&q;,&q;signUpForNewsletter&q;:&q;Sign up for newsletter&q;,&q;signInWith&q;:&q;Sign in with&q;,&q;southAfricaTheGoodNews&q;:&q;South Africa The Good News&q;,&q;save&q;:&q;Save&q;,&q;southKorea&q;:&q;South Korea&q;,&q;showNumber&q;:&q;Show Number&q;,&q;storeYourWishListTo&q;:&q;Store your wish list to access it anytime, from any device.&q;,&q;southAfricanTourismIs&q;:&q;South African Tourism is committed to providing the best possible experience and welcomes all feedback.&q;,&q;sundayAbbreviation&q;:&q;Sun&q;,&q;success&q;:&q;SUCCESS&q;,&q;saturdayAbbreviation&q;:&q;Sat&q;,&q;southAfricanEmergencyContacts&q;:&q;South African emergency contacts&q;,&q;storm&q;:&q;Storm&q;,&q;searching&q;:&q;Searching...&q;,&q;southAfricanNationalParks&q;:&q;South African National Parks&q;,&q;signUp&q;:&q;Sign Up&q;,&q;startNow&q;:&q;Start now!&q;,&q;spanish&q;:&q;Spanish&q;,&q;select&q;:&q;Select&q;,&q;searchResultsFound&q;:&q;{{number}} result(s) found&q;,&q;startDate&q;:&q;Start date&q;,&q;signIn&q;:&q;Sign In&q;,&q;syncComplete&q;:&q;Sync complete&q;,&q;starGrading&q;:&q;Star grading&q;,&q;signUpWith&q;:&q;Sign up with&q;,&q;searchIn&q;:&q;Search in&q;,&q;small&q;:&q;Small&q;,&q;summer&q;:&q;Summer&q;,&q;southAfricanTourism&q;:&q;South African Tourism&q;,&q;southAfricaOnSocialMedia&q;:&q;South Africa on social media&q;,&q;shareMyWishListVia&q;:&q;Share my wish list&q;,&q;shareMyWishList&q;:&q;Share my accommodations, events and activities in my wish list&q;,&q;send&q;:&q;Send&q;,&q;sunshine&q;:&q;Sunshine&q;,&q;travelers&q;:&q;Travelers&q;,&q;thankYouForConfirmingYourEmailAddress&q;:&q;Thank you for confirming your email address.&q;,&q;today&q;:&q;Today&q;,&q;thankYouForSubscribing&q;:&q;Thank you for subscribing&q;,&q;travelAgent&q;:&q;Travel agent&q;,&q;thursdayAbbreviation&q;:&q;Thurs&q;,&q;trade&q;:&q;Trade&q;,&q;travel&q;:&q;Travel&q;,&q;travelWebsite&q;:&q;Travel Website&q;,&q;tradeWebsiteLabel&q;:&q;Travel trade website&q;,&q;termsAndConditions&q;:&q;Terms and conditions&q;,&q;tuesdayAbbreviation&q;:&q;Tues&q;,&q;thereWasAnErrorTrying&q;:&q;There was an error trying to update your picture. Please, try again.&q;,&q;top&q;:&q;Top&q;,&q;travelDates&q;:&q;Travel dates&q;,&q;tourOperator&q;:&q;Tour operator&q;,&q;thankYou&q;:&q;Thank you&q;,&q;tourGuide&q;:&q;Tour guide&q;,&q;tweetThis&q;:&q;Tweet this&q;,&q;tourismEnterprisePartnership&q;:&q;Tourism Enterprise Partnership&q;,&q;travelTipsAndPlanning&q;:&q;Travel tips and planning&q;,&q;tel&q;:&q;Tel&q;,&q;thingsToDo&q;:&q;Things to do&q;,&q;travelPartners&q;:&q;Travel Trade Partners&q;,&q;travelTipsAndPlanningInfo&q;:&q;Travel Tips and Planning Info&q;,&q;tomsa&q;:&q;Tourism Marketing Levy SA (TOMSA)&q;,&q;travelServices&q;:&q;Travel services&q;,&q;thankYouForYourMessage&q;:&q;Thank you for your message&q;,&q;userNotFound&q;:&q;User not found&q;,&q;undo&q;:&q;Undo&q;,&q;usefulContacts&q;:&q;Useful contacts&q;,&q;universallyAccessible&q;:&q;Universally accessible&q;,&q;usersWishlist&q;:&q;{{user}}&s;s Wish List&q;,&q;northAmerica&q;:&q;USA&q;,&q;useTheFiltersBelow&q;:&q;Use the filters below to find exactly what you need.&q;,&q;usefulLinks&q;:&q;Useful links&q;,&q;viewOnZomato&q;:&q;View on Zomato&q;,&q;viewTravelWeekDealsOnly&q;:&q;View Travel Week Deals Only&q;,&q;veryGood&q;:&q;Very good&q;,&q;welcome&q;:&q;Welcome&q;,&q;weatherNow&q;:&q;Right now&q;,&q;whenToVisit&q;:&q;When to visit&q;,&q;weWillReview&q;:&q;We will review your concerns or suggestions and get back to you.&q;,&q;phoneWrongFormat&q;:&q;Wrong Phone Format&q;,&q;weCouldNotConfirm&q;:&q;We could not confirm your email address. Try again later.&q;,&q;weveSentAConfirmationEmailTo&q;:&q;We&s;ve sent a confirmation email to&q;,&q;wednesdayAbbreviation&q;:&q;Wed&q;,&q;wishlist&q;:&q;Wish list&q;,&q;wrongEmailAddress&q;:&q;Wrong email address?&q;,&q;weWillSendYou&q;:&q;We will send you an email that will allow you to reset your password.&q;,&q;winter&q;:&q;Winter&q;,&q;whatWouldYouLikeToExperience&q;:&q;What would you like to experience?&q;,&q;welcomeBack&q;:&q;Welcome back!&q;,&q;weHaveResent&q;:&q;We have resent a confirmation email to your email address.&q;,&q;weHaveSentA&q;:&q;We have sent a password reset link to&q;,&q;windy&q;:&q;Windy&q;,&q;youDonTHaveAnyContentInYourWishListYet&q;:&q;You don’t have any content in your wish list yet.&q;,&q;youAreOnly&q;:&q;You are only&q;,&q;yourPersonalInfoWasSuccessfullyRemoved&q;:&q;All your personal information was successfully removed from South African Tourism website&q;,&q;yourSessionHasExpired&q;:&q;Your session has expired&q;,&q;youHaveSuccessfullySignedIn&q;:&q;You have successfully signed in.&q;,&q;yourName&q;:&q;Your name&q;,&q;yourPasswordHasBeenReset&q;:&q;Your password has been reset!&q;,&q;youHaveSuccessfullyCreatedYourAccount&q;:&q;You have successfully created your account.&q;,&q;youAreOnlyMomentsAway&q;:&q;You are only moments away&q;,&q;yourWishlistHasBeenSynchronized&q;:&q;Your wish list has been synchronized!&q;,&q;youMayAlsoLike&q;:&q;You may also like&q;,&q;yourPictureHasBeenUpdated&q;:&q;Your picture has been updated.&q;,&q;youHaveSuccessfullyChangedYourPassword&q;:&q;You have successfully changed your password.&q;,&q;yourMessage&q;:&q;Your message&q;,&q;youHaveSuccessfullySignedOut&q;:&q;You have successfully signed out.&q;,&q;yourEmailAddress&q;:&q;Your email address&q;,&q;yourContactNumber&q;:&q;Your contact number&q;,&q;wishlistShareBody&q;:&q;Here are some awesome items that I&s;ve put in my South African travel wish list.&q;,&q;wishlistShareSubject&q;:&q;My South African wish list&q;,&q;pageShareBody&q;:&q;Check out this page that I&s;ve found on southafrica.net.&q;,&q;pageShareSubject&q;:&q;I&s;ve found something that might inspire you&q;,&q;translatedLogo&q;:&q;/media/192923/sat-english.png&q;,&q;translatedLogoWhite&q;:&q;/media/33586/logo_travel_en.png&q;,&q;homepageCorporateHoverDescription&q;:&q;Discover the organisation proudly working to welcome all travellers to South Africa.&q;,&q;homepageTradeHoverDescription&q;:&q;Valuable tools and information to help you succeed in selling South Africa as a world-class tourist destination.&q;,&q;homepageBusinessLabel&q;:&q;Plan a successful business event&q;,&q;homepageTravelHoverDescription&q;:&q;Experience a wild, adrenaline-fueled, breathtaking, captivating, endless, bustling getaway in South Africa.&q;,&q;homepageBusinessHoverDescription&q;:&q;Improve your business outcomes in Africa&s;s top meetings and events destination.&q;,&q;homepageTravelLabel&q;:&q;Discover the perfect holiday&q;,&q;homepageTradeLabel&q;:&q;Travel trade partners&q;,&q;welcomeToSouthAfrica&q;:&q;Welcome to South Africa&q;,&q;homepageCorporateLabel&q;:&q;Learn more about South African Tourism&q;,&q;argentina&q;:&q;Argentina&q;,&q;zambia&q;:&q;Zambia&q;,&q;malawi&q;:&q;Malawi&q;,&q;botswana&q;:&q;Botswana&q;,&q;nigeria&q;:&q;Nigeria&q;,&q;zimbabwe&q;:&q;Zimbabwe&q;,&q;australia&q;:&q;Australia&q;,&q;mozambique&q;:&q;Mozambique&q;,&q;ethiopia&q;:&q;Ethiopia&q;,&q;india&q;:&q;India&q;,&q;uganda&q;:&q;Uganda&q;,&q;usa&q;:&q;North America&q;,&q;namibia&q;:&q;Namibia&q;,&q;kenya&q;:&q;Kenya&q;,&q;angola&q;:&q;Angola&q;,&q;ghana&q;:&q;Ghana&q;,&q;unitedKingdom&q;:&q;United Kingdom&q;,&q;southAfrica&q;:&q;South Africa&q;,&q;tanzania&q;:&q;Tanzania&q;,&q;spain&q;:&q;Spain&q;,&q;passwordMaxLength&q;:&q;Password cannot be more than 24 characters long&q;,&q;fieldIsRequired&q;:&q;{{field}} is required&q;,&q;fieldIsTooShort&q;:&q;{{field}} is too short&q;,&q;firstNameRequired&q;:&q;First Name is required&q;,&q;lastNameRequired&q;:&q;Last Name is required&q;,&q;lastNameMaxLength&q;:&q;Last Name is too long&q;,&q;passwordRequired&q;:&q;Password is required&q;,&q;passwordMinLength&q;:&q;Password must be at least 8 characters long&q;,&q;emailWrongFormat&q;:&q;Wrong email format&q;,&q;firstNameMaxLength&q;:&q;First Name is too long&q;,&q;passwordMatch&q;:&q;Passwords do not match&q;,&q;thisFieldIsTooLong&q;:&q;This field is too long&q;,&q;messageRequired&q;:&q;Message is required&q;,&q;passwordWrongFormat&q;:&q;Wrong password format&q;,&q;fieldIsInInvalidFormat&q;:&q;{{field}} is in invalid format&q;,&q;passwordNotEqual&q;:&q;Passwords are not equal&q;,&q;emailRequired&q;:&q;Email is required&q;,&q;fieldIsTooLong&q;:&q;{{field}} is too long&q;,&q;thisFieldIsTooShort&q;:&q;This field is too short&q;,&q;passwordSameChar&q;:&q;Password must have different characters&q;,&q;messageMaxLength&q;:&q;Message is too long&q;,&q;thisFieldIsInInvalidFormat&q;:&q;This field is in invalid format&q;,&q;thisFieldIsRequired&q;:&q;This field is required&q;,&q;errorAskies&q;:&q;&l;span&g;rry; excuse me; I beg your pardon&l;/span&g;&l;span class=&s;bold&s;&g; [from the Afrikaans word &s;ekskuus&s;]&l;/span&g;&q;,&q;error404&q;:&q;Page not found.&q;,&q;errorOldBrowser&q;:&q;Say yebo yes to upgrading your browswer.&l;br /&g;Your old one is out of data.&q;,&q;errorEish&q;:&q;A term of resignation; Used to express everything ranging from frustration to surprise and disapproval&q;,&q;error500&q;:&q;Something went wrong. Please try again later.&q;,&q;errorPleaseUpdateIe&q;:&q;Please Update Your&q;,&q;abbrAug&q;:&q;Aug&q;,&q;dayMinWe&q;:&q;We&q;,&q;dateOctober&q;:&q;October&q;,&q;dateSeptember&q;:&q;September&q;,&q;dayMinMo&q;:&q;Mo&q;,&q;abbrMar&q;:&q;Mar &q;,&q;abbrFeb&q;:&q;Feb&q;,&q;dateDecember&q;:&q;December&q;,&q;dayMinTh&q;:&q;Th&q;,&q;abbrNov&q;:&q;Nov&q;,&q;dateJanuary&q;:&q;January&q;,&q;dayMinTu&q;:&q;Tu&q;,&q;abbrJun&q;:&q;Jun &q;,&q;dayMinSa&q;:&q;Sa&q;,&q;dateJune&q;:&q;June&q;,&q;dateAugust&q;:&q;August&q;,&q;dateNovember&q;:&q;November&q;,&q;abbrJul&q;:&q;Jul&q;,&q;dateJuly&q;:&q;July&q;,&q;dateApril&q;:&q;April&q;,&q;dateFebruary&q;:&q;February&q;,&q;dateMay&q;:&q;May&q;,&q;abbrApr&q;:&q;Apr&q;,&q;dayMinSu&q;:&q;Su&q;,&q;abbrDec&q;:&q;Dec&q;,&q;abbrMay&q;:&q;May&q;,&q;abbrSep&q;:&q;Sep&q;,&q;dayMinFr&q;:&q;Fr&q;,&q;abbrJan&q;:&q;Jan&q;,&q;abbrOct&q;:&q;Oct&q;,&q;dateMarch&q;:&q;March&q;},&q;https://sat-backend-api-manager.azure-api.net/umbraco/api/ConfigurationApi/GetConfiguration?countryCode=tz&a;lang=en&a;section=travelundefined&q;:{&q;code&q;:&q;travel&q;,&q;footer&q;:{&q;footerExploreLinks&q;:[{&q;caption&q;:&q;What you need to know&q;,&q;newWindow&q;:false,&q;link&q;:&q;/tz/en/travel/category/what-you-need-to-know&q;},{&q;caption&q;:&q;Things to do&q;,&q;newWindow&q;:false,&q;link&q;:&q;/tz/en/travel/category/things-to-do&q;},{&q;caption&q;:&q;Places to go&q;,&q;newWindow&q;:false,&q;link&q;:&q;/tz/en/travel/category/places-to-go&q;},{&q;caption&q;:&q;Events&q;,&q;newWindow&q;:false,&q;link&q;:&q;/tz/en/travel/category/travel-deals&q;}],&q;footerUsefulLinks&q;:[{&q;caption&q;:&q;Travel Trade Partners&q;,&q;newWindow&q;:false,&q;link&q;:&q;opentab:travelPartners&q;},{&q;caption&q;:&q;Business Events&q;,&q;newWindow&q;:false,&q;link&q;:&q;/gl/en/business&q;},{&q;caption&q;:&q;Travel trade&q;,&q;newWindow&q;:false,&q;link&q;:&q;/gl/en/trade&q;},{&q;caption&q;:&q;Wish list&q;,&q;newWindow&q;:false,&q;link&q;:&q;opentab:wishlist&q;},{&q;caption&q;:&q;Find accommodation&q;,&q;newWindow&q;:false,&q;link&q;:&q;opentab:accommodation&q;},{&q;caption&q;:&q;Useful contacts&q;,&q;newWindow&q;:false,&q;link&q;:&q;opentab:usefulContacts&q;},{&q;caption&q;:&q;Visa &a; Entry Info&q;,&q;newWindow&q;:false,&q;link&q;:&q;/tz/en/travel/category/what-you-need-to-know/here-s-what-you-need-to-know-about-visas&q;},{&q;caption&q;:&q;Vacancies&q;,&q;newWindow&q;:true,&q;link&q;:&q;/gl/en/corporate/page/vacancies&q;},{&q;caption&q;:&q;Tenders&q;,&q;newWindow&q;:true,&q;link&q;:&q;/gl/en/corporate/page/tenders&q;}]},&q;socialInfo&q;:[{&q;type&q;:0,&q;name&q;:&q;KaribuSouthAfrica&q;,&q;url&q;:&q;https://www.facebook.com/KaribuSouthAfrica&q;,&q;fetchFeeds&q;:true},{&q;type&q;:1,&q;name&q;:&q;Karibu_SA&q;,&q;url&q;:&q;https://twitter.com/Karibu_SA&q;,&q;fetchFeeds&q;:true},{&q;type&q;:3,&q;name&q;:&q;traveltosa&q;,&q;url&q;:&q;https://www.youtube.com/user/traveltosa&q;,&q;fetchFeeds&q;:true}],&q;menu&q;:{&q;children&q;:[{&q;name&q;:&q;Welcome to South Africa&q;,&q;order&q;:0,&q;link&q;:&q;/tz/en/travel&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;What you need to know&q;,&q;order&q;:1,&q;link&q;:&q;/tz/en/travel/category/what-you-need-to-know&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Things to do&q;,&q;order&q;:2,&q;link&q;:&q;&q;,&q;newWindow&q;:false,&q;children&q;:[{&q;name&q;:&q;Overview&q;,&q;order&q;:7,&q;link&q;:&q;/tz/en/travel/category/things-to-do&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Wildlife safari&q;,&q;order&q;:1,&q;link&q;:&q;/tz/en/travel/category/things-to-do/wildlife-safari&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Breathtaking scenery&q;,&q;order&q;:3,&q;link&q;:&q;/tz/en/travel/category/things-to-do/breathtaking-scenery&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Sun-soaked coast&q;,&q;order&q;:2,&q;link&q;:&q;/tz/en/travel/category/things-to-do/sun-soaked-coasts&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Active adventure&q;,&q;order&q;:4,&q;link&q;:&q;/tz/en/travel/category/things-to-do/active-adventure&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Bustling city life&q;,&q;order&q;:5,&q;link&q;:&q;/tz/en/travel/category/things-to-do/bustling-city-life&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Vibrant culture&q;,&q;order&q;:6,&q;link&q;:&q;/tz/en/travel/category/things-to-do/vibrant-culture&q;,&q;newWindow&q;:false,&q;children&q;:[]}],&q;macro&q;:{&q;macroAlias&q;:&q;CardDeckTags&q;,&q;contentTags&q;:&q;{&a;quot;heading&a;quot;:&a;quot;Things to do&a;quot;,&a;quot;featuredCards&a;quot;:[1,5],&a;quot;largeCardsMobile&a;quot;:[],&a;quot;content&a;quot;:[],&a;quot;deckBgColor&a;quot;:&a;quot;grey&a;quot;,&a;quot;province&a;quot;:[],&a;quot;contentPillar&a;quot;:[{&a;quot;id&a;quot;:&a;quot;ecbdd1fd-9e25-4943-b5be-336fa0085fdb&a;quot;,&a;quot;title&a;quot;:&a;quot;Breathtaking Scenery&a;quot;},{&a;quot;id&a;quot;:&a;quot;a971c2f7-2444-4f42-862b-ee0d7f887f8f&a;quot;,&a;quot;title&a;quot;:&a;quot;Outdoor playground&a;quot;},{&a;quot;id&a;quot;:&a;quot;693fe951-52fc-48c2-ac05-2f7569c8a9ed&a;quot;,&a;quot;title&a;quot;:&a;quot;Sun-soaked Coasts&a;quot;},{&a;quot;id&a;quot;:&a;quot;874de18b-bbcd-4c37-8502-972999045793&a;quot;,&a;quot;title&a;quot;:&a;quot;Vibrant Culture&a;quot;},{&a;quot;id&a;quot;:&a;quot;68f81812-d0a6-4f0a-83e8-a4501133cd9f&a;quot;,&a;quot;title&a;quot;:&a;quot;Untouched Wild&a;quot;},{&a;quot;id&a;quot;:&a;quot;8908d1c5-4cdb-4fb6-b194-93a2bb0df668&a;quot;,&a;quot;title&a;quot;:&a;quot;Bustling City Life&a;quot;}],&a;quot;accommodationType&a;quot;:[],&a;quot;contentTypes&a;quot;:{&a;quot;accommodation&a;quot;:false,&a;quot;articles&a;quot;:true,&a;quot;deals&a;quot;:false,&a;quot;events&a;quot;:false},&a;quot;dateRange&a;quot;:{&a;quot;fromUse&a;quot;:true,&a;quot;fromDate&a;quot;:&a;quot;2017-04-28T17:03:19.691Z&a;quot;,&a;quot;untilUse&a;quot;:true,&a;quot;untilDate&a;quot;:&a;quot;2017-04-28T17:03:19.691Z&a;quot;,&a;quot;currentDate&a;quot;:false}}&q;}},{&q;name&q;:&q;Places to go&q;,&q;order&q;:3,&q;link&q;:&q;/tz/en/travel/category/places-to-go&q;,&q;newWindow&q;:false,&q;children&q;:[{&q;name&q;:&q;Overview&q;,&q;order&q;:1,&q;link&q;:&q;/tz/en/travel/category/places-to-go&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Provinces&q;,&q;order&q;:2,&q;link&q;:&q;&q;,&q;newWindow&q;:false,&q;children&q;:[{&q;name&q;:&q;Western Cape&q;,&q;order&q;:1,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/western-cape&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Gauteng&q;,&q;order&q;:2,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/gauteng&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;KwaZulu-Natal&q;,&q;order&q;:3,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/kwazulu-natal&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Eastern Cape&q;,&q;order&q;:4,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/eastern-cape&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Mpumalanga&q;,&q;order&q;:5,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/mpumalanga&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Northern Cape&q;,&q;order&q;:6,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/northern-cape&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Free State&q;,&q;order&q;:7,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/free-state&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Limpopo&q;,&q;order&q;:8,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/limpopo&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;North West&q;,&q;order&q;:9,&q;link&q;:&q;/tz/en/travel/category/places-to-go/provinces/north-west&q;,&q;newWindow&q;:false,&q;children&q;:[]}],&q;macro&q;:{&q;macroAlias&q;:&q;MenuProvinces&q;,&q;provinces&q;:&q;7916,7917,7918,7919,7920,7921,7923,7924,7934&q;}},{&q;name&q;:&q;Big city life&q;,&q;order&q;:3,&q;link&q;:&q;&q;,&q;newWindow&q;:false,&q;children&q;:[{&q;name&q;:&q;Johannesburg&q;,&q;order&q;:0,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/johannesburg&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Cape Town&q;,&q;order&q;:1,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/cape-town&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Durban&q;,&q;order&q;:2,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/durban&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Bloemfontein&q;,&q;order&q;:3,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/bloemfontein&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Pretoria&q;,&q;order&q;:4,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/pretoria&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Mbombela&q;,&q;order&q;:6,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/mbombela&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Polokwane&q;,&q;order&q;:6,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/polokwane&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Kimberley&q;,&q;order&q;:7,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/kimberley&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Port Elizabeth&q;,&q;order&q;:9,&q;link&q;:&q;/tz/en/travel/category/places-to-go/big-city-life/port-elizabeth&q;,&q;newWindow&q;:false,&q;children&q;:[]}],&q;macro&q;:{&q;macroAlias&q;:&q;MenuCities&q;,&q;cities&q;:&q;7927,7928,7929,7931,7932,7933,7935,7936,7937&q;}},{&q;name&q;:&q;Small town charm&q;,&q;order&q;:4,&q;link&q;:&q;/tz/en/travel/category/places-to-go/small-town-charm&q;,&q;newWindow&q;:false,&q;children&q;:[]}],&q;macro&q;:{&q;macroAlias&q;:&q;CardDeckTags&q;,&q;contentTags&q;:&q;{&a;quot;heading&a;quot;:&a;quot;Places to go&a;quot;,&a;quot;featuredCards&a;quot;:[],&a;quot;largeCardsMobile&a;quot;:[],&a;quot;content&a;quot;:[],&a;quot;deckBgColor&a;quot;:&a;quot;grey&a;quot;,&a;quot;province&a;quot;:[{&a;quot;id&a;quot;:&a;quot;3fc2e74f-c32a-4a64-aa30-24662b33c47b&a;quot;,&a;quot;title&a;quot;:&a;quot;Northern Cape&a;quot;},{&a;quot;id&a;quot;:&a;quot;28c1f7ab-54b4-4e20-8779-a08dfecbcb1a&a;quot;,&a;quot;title&a;quot;:&a;quot;Western Cape&a;quot;},{&a;quot;id&a;quot;:&a;quot;0059073f-2b49-4c91-a0b5-01d4fca07ab4&a;quot;,&a;quot;title&a;quot;:&a;quot;KwaZulu-Natal&a;quot;},{&a;quot;id&a;quot;:&a;quot;a550b3b7-6bae-41fc-b763-6210522cbb47&a;quot;,&a;quot;title&a;quot;:&a;quot;Mpumalanga&a;quot;},{&a;quot;id&a;quot;:&a;quot;8220bb65-959d-4313-9e9b-63e381aef3e4&a;quot;,&a;quot;title&a;quot;:&a;quot;Limpopo&a;quot;},{&a;quot;id&a;quot;:&a;quot;ed33bd71-0491-40de-96ba-3f6fddcb5bd0&a;quot;,&a;quot;title&a;quot;:&a;quot;Eastern Cape&a;quot;},{&a;quot;id&a;quot;:&a;quot;48cf4548-b192-4b68-8616-66a054dcb2ee&a;quot;,&a;quot;title&a;quot;:&a;quot;Free State&a;quot;},{&a;quot;id&a;quot;:&a;quot;cbe3b472-60b5-4b55-ba0a-f1bebab1b9a6&a;quot;,&a;quot;title&a;quot;:&a;quot;North West&a;quot;},{&a;quot;id&a;quot;:&a;quot;5a2fc78c-815f-413d-b1be-76b714c61cd9&a;quot;,&a;quot;title&a;quot;:&a;quot;Gauteng&a;quot;},{&a;quot;id&a;quot;:&a;quot;f6ac6078-0f9f-4872-a786-fbe08cc7c4af&a;quot;,&a;quot;title&a;quot;:&a;quot;South Africa&a;quot;}],&a;quot;contentPillar&a;quot;:[],&a;quot;accommodationType&a;quot;:[],&a;quot;contentTypes&a;quot;:{&a;quot;accommodation&a;quot;:false,&a;quot;articles&a;quot;:true,&a;quot;deals&a;quot;:false,&a;quot;events&a;quot;:false},&a;quot;dateRange&a;quot;:{&a;quot;fromUse&a;quot;:true,&a;quot;fromDate&a;quot;:&a;quot;2017-05-05T11:48:18.244Z&a;quot;,&a;quot;untilUse&a;quot;:true,&a;quot;untilDate&a;quot;:&a;quot;2017-05-05T11:48:18.244Z&a;quot;,&a;quot;currentDate&a;quot;:false}}&q;}},{&q;name&q;:&q;Travel deals&q;,&q;order&q;:4,&q;link&q;:&q;/tz/en/travel/page/summer-deals&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Events&q;,&q;order&q;:5,&q;link&q;:&q;/tz/en/travel/category/travel-deals&q;,&q;newWindow&q;:false,&q;children&q;:[]},{&q;name&q;:&q;Get in touch&q;,&q;order&q;:6,&q;link&q;:&q;/tz/en/travel/contact-us&q;,&q;newWindow&q;:false,&q;children&q;:[]}],&q;macro&q;:{&q;macroAlias&q;:&q;CardDeckTags&q;,&q;contentTags&q;:&q;{&a;quot;heading&a;quot;:&a;quot;Featured experiences just for you&a;quot;,&a;quot;featuredCards&a;quot;:[1],&a;quot;largeCardsMobile&a;quot;:[],&a;quot;content&a;quot;:[],&a;quot;deckBgColor&a;quot;:&a;quot;grey&a;quot;,&a;quot;province&a;quot;:[],&a;quot;contentPillar&a;quot;:[{&a;quot;id&a;quot;:&a;quot;8908d1c5-4cdb-4fb6-b194-93a2bb0df668&a;quot;,&a;quot;title&a;quot;:&a;quot;Bustling City Life&a;quot;},{&a;quot;id&a;quot;:&a;quot;a971c2f7-2444-4f42-862b-ee0d7f887f8f&a;quot;,&a;quot;title&a;quot;:&a;quot;Outdoor playground&a;quot;},{&a;quot;id&a;quot;:&a;quot;693fe951-52fc-48c2-ac05-2f7569c8a9ed&a;quot;,&a;quot;title&a;quot;:&a;quot;Sun-soaked Coasts&a;quot;},{&a;quot;id&a;quot;:&a;quot;68f81812-d0a6-4f0a-83e8-a4501133cd9f&a;quot;,&a;quot;title&a;quot;:&a;quot;Untouched Wild&a;quot;},{&a;quot;id&a;quot;:&a;quot;874de18b-bbcd-4c37-8502-972999045793&a;quot;,&a;quot;title&a;quot;:&a;quot;Vibrant Culture&a;quot;}],&a;quot;accommodationType&a;quot;:[],&a;quot;contentTypes&a;quot;:{&a;quot;accommodation&a;quot;:true,&a;quot;articles&a;quot;:true,&a;quot;deals&a;quot;:true,&a;quot;events&a;quot;:true},&a;quot;dateRange&a;quot;:{&a;quot;fromUse&a;quot;:true,&a;quot;fromDate&a;quot;:&a;quot;2017-05-18T00:11:23.217Z&a;quot;,&a;quot;untilUse&a;quot;:true,&a;quot;untilDate&a;quot;:&a;quot;2017-05-18T00:11:23.217Z&a;quot;,&a;quot;currentDate&a;quot;:false}}&q;}},&q;categoryAccommodations&q;:null,&q;usefulContacts&q;:{&q;embassyInSaaddressLine1&q;:&q; 850 George St&q;,&q;embassyInSaaddressLine2&q;:&q; Arcadia&q;,&q;embassyInSaaddressLine3&q;:&q;Pretoria&q;,&q;embassyInSaaddressLine4&q;:&q;0001&q;,&q;embassyInSaemail&q;:&q;&q;,&q;embassyInSafaxNumber&q;:&q;+27 12 430 4383&q;,&q;embassyInSaheader&q;:&q;Tanzanian High Commission&q;,&q;embassyInSalatitude&q;:&q;-25.7411062&q;,&q;embassyInSalongitude&q;:&q;28.1512867&q;,&q;embassyInSaphoneNumber&q;:&q;+27 12 342 4371 / 93&q;,&q;embassyOutsideSaaddressLine1&q;:&q;Plot 1338&q;,&q;embassyOutsideSaaddressLine2&q;:&q;Mwaya Road&q;,&q;embassyOutsideSaaddressLine3&q;:&q;Masaki&q;,&q;embassyOutsideSaaddressLine4&q;:&q;Dar Es Salaam&q;,&q;embassyOutsideSaemail&q;:&q;sahc.tanzania@dirco.gov.za&q;,&q;embassyOutsideSafaxNumber&q;:&q;&q;,&q;embassyOutsideSaheader&q;:&q;South African High Commission&q;,&q;embassyOutsideSalatitude&q;:&q;-6.7500687&q;,&q;embassyOutsideSalongitude&q;:&q;39.2157125&q;,&q;embassyOutsideSaphoneNumber&q;:&q;(+255) 22 221 18500&q;,&q;emergencyContactsHeader&q;:&q;South African emergency contacts&q;,&q;emergencyContacts&q;:[{&q;key&q;:&q;Nationwide Emergency Response&q;,&q;value&q;:&q;10111&q;},{&q;key&q;:&q;Cell phone emergency&q;,&q;value&q;:&q;112&q;},{&q;key&q;:&q;Ambulance&q;,&q;value&q;:&q;10177&q;}],&q;relatedSitesHeader&q;:&q;Related travel sites&q;,&q;relatedLinks&q;:[{&q;caption&q;:&q;Department of Tourism&q;,&q;newWindow&q;:true,&q;link&q;:&q;https://www.tourism.gov.za/Pages/Home.aspx&q;},{&q;caption&q;:&q;Tourism Marketing Levy SA (TOMSA)&q;,&q;newWindow&q;:true,&q;link&q;:&q;http://tomsa.co.za&q;},{&q;caption&q;:&q;South African National Parks&q;,&q;newWindow&q;:false,&q;link&q;:&q;https://www.sanparks.org/&q;},{&q;caption&q;:&q;Fly SAA&q;,&q;newWindow&q;:false,&q;link&q;:&q;https://www.flysaa.com/&q;}]},&q;poiBus&q;:&q;/tz/en/travel/category/what-you-need-to-know/getting-around-south-africa-by-bus&q;,&q;poiAir&q;:&q;/tz/en/travel/category/what-you-need-to-know/getting-around-south-africa-by-air&q;,&q;poiCar&q;:&q;/tz/en/travel/category/what-you-need-to-know/getting-around-south-africa-by-car&q;,&q;categoryEvents&q;:&q;/tz/en/travel/category/travel-deals&q;,&q;categoryThingsToDo&q;:&q;/tz/en/travel/category/things-to-do&q;,&q;categoryTravelDeals&q;:&q;/tz/en/travel/page/summer-deals&q;,&q;contentPillarActiveAdventure&q;:{&q;id&q;:&q;a971c2f7-2444-4f42-862b-ee0d7f887f8f&q;,&q;title&q;:&q;Active adventure&q;},&q;contentPillarBreathtakingScenery&q;:{&q;id&q;:&q;ecbdd1fd-9e25-4943-b5be-336fa0085fdb&q;,&q;title&q;:&q;Breathtaking scenery&q;},&q;contentPillarBustlingCityLife&q;:{&q;id&q;:&q;8908d1c5-4cdb-4fb6-b194-93a2bb0df668&q;,&q;title&q;:&q;Bustling city life&q;},&q;contentPillarSunSoakedCoast&q;:{&q;id&q;:&q;693fe951-52fc-48c2-ac05-2f7569c8a9ed&q;,&q;title&q;:&q;Sun-soaked coasts&q;},&q;contentPillarVibrantCulture&q;:{&q;id&q;:&q;874de18b-bbcd-4c37-8502-972999045793&q;,&q;title&q;:&q;Vibrant culture&q;},&q;contentPillarWildlifeSafari&q;:{&q;id&q;:&q;68f81812-d0a6-4f0a-83e8-a4501133cd9f&q;,&q;title&q;:&q;Wildlife safari&q;},&q;contentTagBeaches&q;:null,&q;contentTagCulture&q;:null,&q;contentTagDelights&q;:null,&q;contentTagMetropolises&q;:null,&q;contentTagNature&q;:null,&q;contentTagNightlife&q;:null,&q;contentTagRest&q;:null,&q;contentTagRoadtrips&q;:null,&q;contentTagSkies&q;:null,&q;contentTagTravel&q;:null,&q;contentTagWater&q;:null,&q;contentTagWildLife&q;:null,&q;shotLeftLogo&q;:null,&q;broughtToYouBySatlogo&q;:null,&q;hasTravelPartners&q;:true,&q;hideAccommodationPrice&q;:false,&q;legalPages&q;:[{&q;typeAlias&q;:&q;genericPage&q;,&q;name&q;:&q;Terms and conditions&q;,&q;description&q;:&q;Terms and conditions for South African Tourism website&q;,&q;url&q;:&q;/tz/en/travel/page/terms-and-conditions&q;},{&q;typeAlias&q;:&q;genericPage&q;,&q;name&q;:&q;Disclaimer&q;,&q;description&q;:&q;Disclaimer for South African Tourism&q;,&q;url&q;:&q;/tz/en/travel/page/disclaimer&q;},{&q;typeAlias&q;:&q;legalPage&q;,&q;name&q;:&q;Privacy policy&q;,&q;description&q;:&q;Privacy policy for South African Tourism&q;,&q;url&q;:&q;/tz/en/travel/page/privacy-policy&q;,&q;legalPageType&q;:&q;Privacy policy&q;}]}}</script></body></html>