亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jas_stream.c

?? JPEG2000是以小波變換為基礎
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright (c) 1999-2000 Image Power, Inc. and the University of *   British Columbia. * Copyright (c) 2001-2003 Michael David Adams. * All rights reserved. *//* __START_OF_JASPER_LICENSE__ *  * JasPer License Version 2.0 *  * Copyright (c) 2001-2006 Michael David Adams * Copyright (c) 1999-2000 Image Power, Inc. * Copyright (c) 1999-2000 The University of British Columbia *  * All rights reserved. *  * Permission is hereby granted, free of charge, to any person (the * "User") obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, and/or sell copies of the Software, and to permit * persons to whom the Software is furnished to do so, subject to the * following conditions: *  * 1.  The above copyright notices and this permission notice (which * includes the disclaimer below) shall be included in all copies or * substantial portions of the Software. *  * 2.  The name of a copyright holder shall not be used to endorse or * promote products derived from the Software without specific prior * written permission. *  * THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS * LICENSE.  NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER * THIS DISCLAIMER.  THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS * "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.  IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  NO ASSURANCES ARE * PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE * THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. * EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS * BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL * PROPERTY RIGHTS OR OTHERWISE.  AS A CONDITION TO EXERCISING THE RIGHTS * GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE * ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY.  THE SOFTWARE * IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL * SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, * AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL * SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH * THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, * PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH * RISK ACTIVITIES").  THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY * EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. *  * __END_OF_JASPER_LICENSE__ *//* * I/O Stream Library * * $Id$ *//******************************************************************************\* Includes.\******************************************************************************/#include <assert.h>#if defined(HAVE_FCNTL_H)#include <fcntl.h>#endif#include <stdlib.h>#include <stdarg.h>#include <stdio.h>#include <ctype.h>#if defined(HAVE_UNISTD_H)#include <unistd.h>#endif#if defined(WIN32) || defined(HAVE_IO_H)#include <io.h>#endif#include "jasper/jas_types.h"#include "jasper/jas_stream.h"#include "jasper/jas_malloc.h"#include "jasper/jas_math.h"/******************************************************************************\* Local function prototypes.\******************************************************************************/static int jas_strtoopenmode(const char *s);static void jas_stream_destroy(jas_stream_t *stream);static jas_stream_t *jas_stream_create(void);static void jas_stream_initbuf(jas_stream_t *stream, int bufmode, char *buf,  int bufsize);static int mem_read(jas_stream_obj_t *obj, char *buf, int cnt);static int mem_write(jas_stream_obj_t *obj, char *buf, int cnt);static long mem_seek(jas_stream_obj_t *obj, long offset, int origin);static int mem_close(jas_stream_obj_t *obj);static int sfile_read(jas_stream_obj_t *obj, char *buf, int cnt);static int sfile_write(jas_stream_obj_t *obj, char *buf, int cnt);static long sfile_seek(jas_stream_obj_t *obj, long offset, int origin);static int sfile_close(jas_stream_obj_t *obj);static int file_read(jas_stream_obj_t *obj, char *buf, int cnt);static int file_write(jas_stream_obj_t *obj, char *buf, int cnt);static long file_seek(jas_stream_obj_t *obj, long offset, int origin);static int file_close(jas_stream_obj_t *obj);/******************************************************************************\* Local data.\******************************************************************************/static jas_stream_ops_t jas_stream_fileops = {	file_read,	file_write,	file_seek,	file_close};static jas_stream_ops_t jas_stream_sfileops = {	sfile_read,	sfile_write,	sfile_seek,	sfile_close};static jas_stream_ops_t jas_stream_memops = {	mem_read,	mem_write,	mem_seek,	mem_close};/******************************************************************************\* Code for opening and closing streams.\******************************************************************************/static jas_stream_t *jas_stream_create(){	jas_stream_t *stream;	if (!(stream = jas_malloc(sizeof(jas_stream_t)))) {		return 0;	}	stream->openmode_ = 0;	stream->bufmode_ = 0;	stream->flags_ = 0;	stream->bufbase_ = 0;	stream->bufstart_ = 0;	stream->bufsize_ = 0;	stream->ptr_ = 0;	stream->cnt_ = 0;	stream->ops_ = 0;	stream->obj_ = 0;	stream->rwcnt_ = 0;	stream->rwlimit_ = -1;	return stream;}jas_stream_t *jas_stream_memopen(char *buf, int bufsize){	jas_stream_t *stream;	jas_stream_memobj_t *obj;	if (!(stream = jas_stream_create())) {		return 0;	}	/* A stream associated with a memory buffer is always opened	for both reading and writing in binary mode. */	stream->openmode_ = JAS_STREAM_READ | JAS_STREAM_WRITE | JAS_STREAM_BINARY;	/* Since the stream data is already resident in memory, buffering	is not necessary. */	/* But... It still may be faster to use buffering anyways. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	/* Select the operations for a memory stream. */	stream->ops_ = &jas_stream_memops;	/* Allocate memory for the underlying memory stream object. */	if (!(obj = jas_malloc(sizeof(jas_stream_memobj_t)))) {		jas_stream_destroy(stream);		return 0;	}	stream->obj_ = (void *) obj;	/* Initialize a few important members of the memory stream object. */	obj->myalloc_ = 0;	obj->buf_ = 0;	/* If the buffer size specified is nonpositive, then the buffer	is allocated internally and automatically grown as needed. */	if (bufsize <= 0) {		obj->bufsize_ = 1024;		obj->growable_ = 1;	} else {		obj->bufsize_ = bufsize;		obj->growable_ = 0;	}	if (buf) {		obj->buf_ = (unsigned char *) buf;	} else {		obj->buf_ = jas_malloc(obj->bufsize_ * sizeof(char));		obj->myalloc_ = 1;	}	if (!obj->buf_) {		jas_stream_close(stream);		return 0;	}	if (bufsize > 0 && buf) {		/* If a buffer was supplied by the caller and its length is positive,		  make the associated buffer data appear in the stream initially. */		obj->len_ = bufsize;	} else {		/* The stream is initially empty. */		obj->len_ = 0;	}	obj->pos_ = 0;		return stream;}jas_stream_t *jas_stream_fopen(const char *filename, const char *mode){	jas_stream_t *stream;	jas_stream_fileobj_t *obj;	int openflags;	/* Allocate a stream object. */	if (!(stream = jas_stream_create())) {		return 0;	}	/* Parse the mode string. */	stream->openmode_ = jas_strtoopenmode(mode);	/* Determine the correct flags to use for opening the file. */	if ((stream->openmode_ & JAS_STREAM_READ) &&	  (stream->openmode_ & JAS_STREAM_WRITE)) {		openflags = O_RDWR;	} else if (stream->openmode_ & JAS_STREAM_READ) {		openflags = O_RDONLY;	} else if (stream->openmode_ & JAS_STREAM_WRITE) {		openflags = O_WRONLY;	} else {		openflags = 0;	}	if (stream->openmode_ & JAS_STREAM_APPEND) {		openflags |= O_APPEND;	}	if (stream->openmode_ & JAS_STREAM_BINARY) {		openflags |= O_BINARY;	}	if (stream->openmode_ & JAS_STREAM_CREATE) {		openflags |= O_CREAT | O_TRUNC;	}	/* Allocate space for the underlying file stream object. */	if (!(obj = jas_malloc(sizeof(jas_stream_fileobj_t)))) {		jas_stream_destroy(stream);		return 0;	}	obj->fd = -1;	obj->flags = 0;	obj->pathname[0] = '\0';	stream->obj_ = (void *) obj;	/* Select the operations for a file stream object. */	stream->ops_ = &jas_stream_fileops;	/* Open the underlying file. */	if ((obj->fd = open(filename, openflags, JAS_STREAM_PERMS)) < 0) {		jas_stream_destroy(stream);		return 0;	}	/* By default, use full buffering for this type of stream. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	return stream;}jas_stream_t *jas_stream_freopen(const char *path, const char *mode, FILE *fp){	jas_stream_t *stream;	int openflags;	/* Eliminate compiler warning about unused variable. */	path = 0;	/* Allocate a stream object. */	if (!(stream = jas_stream_create())) {		return 0;	}	/* Parse the mode string. */	stream->openmode_ = jas_strtoopenmode(mode);	/* Determine the correct flags to use for opening the file. */	if ((stream->openmode_ & JAS_STREAM_READ) &&	  (stream->openmode_ & JAS_STREAM_WRITE)) {		openflags = O_RDWR;	} else if (stream->openmode_ & JAS_STREAM_READ) {		openflags = O_RDONLY;	} else if (stream->openmode_ & JAS_STREAM_WRITE) {		openflags = O_WRONLY;	} else {		openflags = 0;	}	if (stream->openmode_ & JAS_STREAM_APPEND) {		openflags |= O_APPEND;	}	if (stream->openmode_ & JAS_STREAM_BINARY) {		openflags |= O_BINARY;	}	if (stream->openmode_ & JAS_STREAM_CREATE) {		openflags |= O_CREAT | O_TRUNC;	}	stream->obj_ = JAS_CAST(void *, fp);	/* Select the operations for a file stream object. */	stream->ops_ = &jas_stream_sfileops;	/* By default, use full buffering for this type of stream. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	return stream;}jas_stream_t *jas_stream_tmpfile(){	jas_stream_t *stream;	jas_stream_fileobj_t *obj;	if (!(stream = jas_stream_create())) {		return 0;	}	/* A temporary file stream is always opened for both reading and	writing in binary mode. */	stream->openmode_ = JAS_STREAM_READ | JAS_STREAM_WRITE | JAS_STREAM_BINARY;	/* Allocate memory for the underlying temporary file object. */	if (!(obj = jas_malloc(sizeof(jas_stream_fileobj_t)))) {		jas_stream_destroy(stream);		return 0;	}	obj->fd = -1;	obj->flags = 0;	obj->pathname[0] = '\0';	stream->obj_ = obj;	/* Choose a file name. */	tmpnam(obj->pathname);	/* Open the underlying file. */	if ((obj->fd = open(obj->pathname, O_CREAT | O_EXCL | O_RDWR | O_TRUNC | O_BINARY,	  JAS_STREAM_PERMS)) < 0) {		jas_stream_destroy(stream);		return 0;	}	/* Unlink the file so that it will disappear if the program	terminates abnormally. */	/* Under UNIX, one can unlink an open file and continue to do I/O	on it.  Not all operating systems support this functionality, however.	For example, under Microsoft Windows the unlink operation will fail,	since the file is open. */	if (unlink(obj->pathname)) {		/* We will try unlinking the file again after it is closed. */		obj->flags |= JAS_STREAM_FILEOBJ_DELONCLOSE;	}	/* Use full buffering. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	stream->ops_ = &jas_stream_fileops;	return stream;}jas_stream_t *jas_stream_fdopen(int fd, const char *mode){	jas_stream_t *stream;	jas_stream_fileobj_t *obj;	/* Allocate a stream object. */	if (!(stream = jas_stream_create())) {		return 0;	}	/* Parse the mode string. */	stream->openmode_ = jas_strtoopenmode(mode);#if defined(WIN32)	/* Argh!!!  Someone ought to banish text mode (i.e., O_TEXT) to the	  greatest depths of purgatory! */	/* Ensure that the file descriptor is in binary mode, if the caller	  has specified the binary mode flag.  Arguably, the caller ought to	  take care of this, but text mode is a ugly wart anyways, so we save	  the caller some grief by handling this within the stream library. */	/* This ugliness is mainly for the benefit of those who run the	  JasPer software under Windows from shells that insist on opening	  files in text mode.  For example, in the Cygwin environment,	  shells often open files in text mode when I/O redirection is	  used.  Grr... */	if (stream->openmode_ & JAS_STREAM_BINARY) {		setmode(fd, O_BINARY);	}#endif	/* Allocate space for the underlying file stream object. */	if (!(obj = jas_malloc(sizeof(jas_stream_fileobj_t)))) {		jas_stream_destroy(stream);		return 0;	}	obj->fd = fd;	obj->flags = 0;	obj->pathname[0] = '\0';	stream->obj_ = (void *) obj;	/* Do not close the underlying file descriptor when the stream is	closed. */	obj->flags |= JAS_STREAM_FILEOBJ_NOCLOSE;	/* By default, use full buffering for this type of stream. */	jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);	/* Select the operations for a file stream object. */	stream->ops_ = &jas_stream_fileops;	return stream;}static void jas_stream_destroy(jas_stream_t *stream){	/* If the memory for the buffer was allocated with malloc, free	this memory. */	if ((stream->bufmode_ & JAS_STREAM_FREEBUF) && stream->bufbase_) {		jas_free(stream->bufbase_);		stream->bufbase_ = 0;	}	jas_free(stream);}int jas_stream_close(jas_stream_t *stream){	/* Flush buffer if necessary. */	jas_stream_flush(stream);	/* Close the underlying stream object. */	(*stream->ops_->close_)(stream->obj_);	jas_stream_destroy(stream);	return 0;}/******************************************************************************\* Code for reading and writing streams.\******************************************************************************/int jas_stream_getc_func(jas_stream_t *stream){	assert(stream->ptr_ - stream->bufbase_ <= stream->bufsize_ +	  JAS_STREAM_MAXPUTBACK);	return jas_stream_getc_macro(stream);}int jas_stream_putc_func(jas_stream_t *stream, int c){	assert(stream->ptr_ - stream->bufstart_ <= stream->bufsize_);	return jas_stream_putc_macro(stream, c);}int jas_stream_ungetc(jas_stream_t *stream, int c){	if (!stream->ptr_ || stream->ptr_ == stream->bufbase_) {		return -1;	}	/* Reset the EOF indicator (since we now have at least one character	  to read). */	stream->flags_ &= ~JAS_STREAM_EOF;	--stream->rwcnt_;	--stream->ptr_;	++stream->cnt_;	*stream->ptr_ = c;	return 0;}int jas_stream_read(jas_stream_t *stream, void *buf, int cnt){	int n;	int c;	char *bufptr;	bufptr = buf;	n = 0;	while (n < cnt) {		if ((c = jas_stream_getc(stream)) == EOF) {			return n;		}		*bufptr++ = c;		++n;	}	return n;}int jas_stream_write(jas_stream_t *stream, const void *buf, int cnt){	int n;	const char *bufptr;	bufptr = buf;	n = 0;	while (n < cnt) {		if (jas_stream_putc(stream, *bufptr) == EOF) {			return n;		}		++bufptr;		++n;	}	return n;}/* Note: This function uses a fixed size buffer.  Therefore, it cannot  handle invocations that will produce more output than can be held  by the buffer. */int jas_stream_printf(jas_stream_t *stream, const char *fmt, ...){	va_list ap;	char buf[4096];	int ret;	va_start(ap, fmt);	ret = vsprintf(buf, fmt, ap);	jas_stream_puts(stream, buf);	va_end(ap);	return ret;}int jas_stream_puts(jas_stream_t *stream, const char *s){	while (*s != '\0') {		if (jas_stream_putc_macro(stream, *s) == EOF) {			return -1;		}		++s;	}	return 0;}char *jas_stream_gets(jas_stream_t *stream, char *buf, int bufsize){	int c;	char *bufptr;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品五月天| 久久久www免费人成精品| av一区二区三区四区| 99精品黄色片免费大全| 欧美精品一区二区三区蜜臀| 亚洲精品国久久99热| 亚洲一二三四久久| 欧美精品v日韩精品v韩国精品v| 国产精品乱码人人做人人爱 | 麻豆成人在线观看| 欧美偷拍一区二区| 国产精品欧美极品| 国产综合成人久久大片91| 成熟亚洲日本毛茸茸凸凹| 欧美午夜精品理论片a级按摩| 久久久久久久久久久久久女国产乱 | 国产成人午夜精品影院观看视频 | 婷婷开心激情综合| 成人免费视频视频| 亚洲精品一线二线三线| 亚洲人成网站色在线观看| 国产乱子伦视频一区二区三区| 在线免费观看成人短视频| 国产精品免费网站在线观看| 免费在线欧美视频| 7777精品伊人久久久大香线蕉经典版下载| 亚洲天堂av一区| av一区二区三区在线| 日韩免费电影一区| 麻豆91在线播放免费| 欧美另类videos死尸| 亚洲电影在线免费观看| 欧美伊人久久大香线蕉综合69| 中文字幕中文字幕一区| 国产成人免费视频精品含羞草妖精| 日韩一级在线观看| 久久激情五月婷婷| 久久免费视频色| 国产精品91一区二区| 国产精品三级视频| jiyouzz国产精品久久| 亚洲天堂2016| 欧美久久一二三四区| 日本视频中文字幕一区二区三区| 欧美三级中文字| 日韩精品影音先锋| 亚洲天堂福利av| 亚洲欧美日韩电影| 亚洲日本va午夜在线影院| 久久综合狠狠综合久久激情| 91官网在线免费观看| 久久精品99国产国产精| 成人蜜臀av电影| 日韩一区和二区| 色综合天天综合狠狠| 久久久久久久网| 国产伦精品一区二区三区在线观看| 亚洲一区在线观看免费观看电影高清 | 亚洲日本青草视频在线怡红院| 日韩欧美三级在线| 亚洲国产精品久久一线不卡| 欧美色电影在线| 亚洲一区二区偷拍精品| av一本久道久久综合久久鬼色| 免费视频最近日韩| 久久色.com| 久久精品在线观看| 久久国产麻豆精品| 91麻豆精品久久久久蜜臀| 欧美日韩国产综合一区二区 | 欧美综合欧美视频| 91蝌蚪porny成人天涯| 国产高清在线精品| 欧美一区二区三区在线观看视频| 国产三级久久久| 欧美高清在线视频| 亚洲h精品动漫在线观看| 日日噜噜夜夜狠狠视频欧美人| 国产毛片精品视频| 26uuuu精品一区二区| 午夜精品久久一牛影视| 一本大道av伊人久久综合| 国产精品午夜在线| 狠狠v欧美v日韩v亚洲ⅴ| 日韩欧美激情在线| 免费成人av资源网| 精品成人免费观看| 日日嗨av一区二区三区四区| 8v天堂国产在线一区二区| 免费在线观看精品| 国产激情91久久精品导航 | 天天影视网天天综合色在线播放| 91理论电影在线观看| 六月丁香综合在线视频| 中文字幕在线观看一区二区| 日韩精品中文字幕在线不卡尤物 | 石原莉奈在线亚洲二区| 国产精品每日更新| 欧美一区二区三区视频在线观看| 久久久另类综合| 秋霞国产午夜精品免费视频| 亚洲人成人一区二区在线观看| 欧美亚洲尤物久久| 国产一区二区久久| 亚洲成人在线网站| 国产精品人人做人人爽人人添| 欧美高清www午色夜在线视频| 高清在线成人网| 另类小说图片综合网| 亚洲高清免费视频| 国产精品美女久久久久久2018| 欧美一区二区观看视频| 91女神在线视频| 毛片av一区二区三区| 午夜精品免费在线观看| 亚洲欧美乱综合| 久久影院视频免费| 欧美久久久一区| 91麻豆免费视频| 成人一区二区视频| 精品伊人久久久久7777人| 亚洲成人免费看| 一区二区在线观看视频在线观看| 久久奇米777| 精品成人私密视频| 精品国产不卡一区二区三区| av在线不卡免费看| 蜜桃av一区二区| 日韩av午夜在线观看| 亚洲第一福利视频在线| 亚洲精品日韩一| 亚洲久草在线视频| 日韩理论电影院| 久久综合九色综合97婷婷| 在线综合视频播放| 555夜色666亚洲国产免| 欧美无砖专区一中文字| 欧洲生活片亚洲生活在线观看| 成人国产在线观看| 成人精品免费网站| 国产白丝网站精品污在线入口| 国产一区二区精品在线观看| 加勒比av一区二区| 精品在线一区二区三区| 精品一二三四区| 日韩精品亚洲一区| 美女一区二区视频| 免费不卡在线视频| 国产一区二区三区精品欧美日韩一区二区三区 | 国产在线国偷精品免费看| 久久av资源站| 国产精品911| 91免费在线看| 欧美午夜精品一区二区三区| 欧美性三三影院| 91精品国产综合久久精品| 日韩视频一区二区三区| 欧美mv日韩mv| 久久蜜臀精品av| 亚洲精品成人a在线观看| 亚洲aaa精品| 经典三级一区二区| 国产大陆a不卡| 99国产精品99久久久久久| 色久优优欧美色久优优| 欧美日韩日日摸| 欧美一二三区在线观看| 日韩一区二区免费在线电影| 久久久久久一二三区| 久久亚洲免费视频| 亚洲一级片在线观看| 午夜精品久久久久| 色丁香久综合在线久综合在线观看| 亚洲欧美日韩国产另类专区| **欧美大码日韩| 亚洲综合色婷婷| 国产精品第四页| 91麻豆精品国产91久久久久久久久| 国产亚洲综合av| 亚洲国产日日夜夜| 91婷婷韩国欧美一区二区| 日韩和欧美一区二区三区| 中文字幕亚洲在| 欧美疯狂做受xxxx富婆| 韩国一区二区三区| 色狠狠色噜噜噜综合网| 国产欧美日产一区| 成人av免费在线| 亚洲婷婷在线视频| 日本免费在线视频不卡一不卡二| 国产高清精品在线| 日韩欧美的一区| 亚洲第一久久影院| 91小视频在线免费看| 亚洲欧美一区二区三区国产精品 | 欧美国产激情二区三区| 亚洲国产你懂的| 久久久国产精品麻豆 | 亚洲精品成人天堂一二三| 99精品黄色片免费大全|