loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal loclocal