/* parser auto-generated by pidl */

#include "replace.h"
#include "bin/default/librpc/gen_ndr/ndr_wsp.h"

#include "librpc/gen_ndr/ndr_wsp_data.h"
#include "librpc/gen_ndr/ndr_misc.h"
_PUBLIC_ enum ndr_err_code ndr_push_vt_variant_wrap(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_variant_wrap *r)
{
	uint32_t cntr_variant_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		for (cntr_variant_0 = 0; cntr_variant_0 < (SINGLE_ITEM); cntr_variant_0++) {
			NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->variant[cntr_variant_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_variant_0 = 0; cntr_variant_0 < (SINGLE_ITEM); cntr_variant_0++) {
			NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->variant[cntr_variant_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_variant_wrap(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_variant_wrap *r)
{
	uint32_t size_variant_0 = 0;
	uint32_t cntr_variant_0;
	TALLOC_CTX *_mem_save_variant_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		size_variant_0 = SINGLE_ITEM;
		NDR_PULL_ALLOC_N(ndr, r->variant, size_variant_0);
		_mem_save_variant_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->variant, 0);
		for (cntr_variant_0 = 0; cntr_variant_0 < (size_variant_0); cntr_variant_0++) {
			NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->variant[cntr_variant_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_variant_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_variant_0 = SINGLE_ITEM;
		_mem_save_variant_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->variant, 0);
		for (cntr_variant_0 = 0; cntr_variant_0 < (size_variant_0); cntr_variant_0++) {
			NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->variant[cntr_variant_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_variant_0, 0);
		for (cntr_variant_0 = 0; cntr_variant_0 < (size_variant_0); cntr_variant_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_variant_wrap(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_variant_wrap *r)
{
	ndr_print_vt_variant_wrap(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_variant_wrap(struct ndr_print *ndr, const char *name, const struct vt_variant_wrap *r)
{
	uint32_t cntr_variant_0;
	ndr_print_struct(ndr, name, "vt_variant_wrap");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "variant", (uint32_t)(SINGLE_ITEM));
	ndr->depth++;
	for (cntr_variant_0 = 0; cntr_variant_0 < (SINGLE_ITEM); cntr_variant_0++) {
		ndr_print_wsp_cbasestoragevariant(ndr, "variant", &r->variant[cntr_variant_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_decimal(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_decimal *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hi32));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mid32));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lo32));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_decimal(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_decimal *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hi32));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mid32));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lo32));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_decimal(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_decimal *r)
{
	ndr_print_vt_decimal(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_decimal(struct ndr_print *ndr, const char *name, const struct vt_decimal *r)
{
	ndr_print_struct(ndr, name, "vt_decimal");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hi32", r->hi32);
	ndr_print_uint32(ndr, "mid32", r->mid32);
	ndr_print_uint32(ndr, "lo32", r->lo32);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_decimal_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_decimal_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_vt_decimal(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_decimal_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_decimal_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_vt_decimal(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_decimal_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_decimal_vec *r)
{
	ndr_print_vt_decimal_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_decimal_vec(struct ndr_print *ndr, const char *name, const struct vt_decimal_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_decimal_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_vt_decimal(ndr, "vvector_data", &r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_bstr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_bstr *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->value) * 2));
		{
			libndr_flags _flags_save_string = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value));
			ndr->flags = _flags_save_string;
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_bstr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_bstr *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nbytes));
		{
			libndr_flags _flags_save_string = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value));
			ndr->flags = _flags_save_string;
		}
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_bstr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_bstr *r)
{
	ndr_print_vt_bstr(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_bstr(struct ndr_print *ndr, const char *name, const struct vt_bstr *r)
{
	ndr_print_struct(ndr, name, "vt_bstr");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "nbytes", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->value) * 2:r->nbytes);
	{
		libndr_flags _flags_save_string = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
		ndr_print_string(ndr, "value", r->value);
		ndr->flags = _flags_save_string;
	}
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_bstr_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_bstr_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_vt_bstr(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_bstr_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_bstr_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_vt_bstr(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_bstr_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_bstr_vec *r)
{
	ndr_print_vt_bstr_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_bstr_vec(struct ndr_print *ndr, const char *name, const struct vt_bstr_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_bstr_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_vt_bstr(ndr, "vvector_data", &r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_lpwstr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_lpwstr *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->value)));
		{
			libndr_flags _flags_save_string = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value));
			ndr->flags = _flags_save_string;
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_lpwstr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_lpwstr *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nbytes));
		{
			libndr_flags _flags_save_string = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value));
			ndr->flags = _flags_save_string;
		}
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_lpwstr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_lpwstr *r)
{
	ndr_print_vt_lpwstr(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_lpwstr(struct ndr_print *ndr, const char *name, const struct vt_lpwstr *r)
{
	ndr_print_struct(ndr, name, "vt_lpwstr");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "nbytes", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->value):r->nbytes);
	{
		libndr_flags _flags_save_string = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
		ndr_print_string(ndr, "value", r->value);
		ndr->flags = _flags_save_string;
	}
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_lpwstr_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_lpwstr_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_vt_lpwstr(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_lpwstr_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_lpwstr_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_vt_lpwstr(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_lpwstr_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_lpwstr_vec *r)
{
	ndr_print_vt_lpwstr_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_lpwstr_vec(struct ndr_print *ndr, const char *name, const struct vt_lpwstr_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_lpwstr_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_vt_lpwstr(ndr, "vvector_data", &r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_compressed_lpwstr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_compressed_lpwstr *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cclen));
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->bytes, r->cclen));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_compressed_lpwstr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_compressed_lpwstr *r)
{
	uint32_t size_bytes_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cclen));
		size_bytes_0 = r->cclen;
		NDR_PULL_ALLOC_N(ndr, r->bytes, size_bytes_0);
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->bytes, size_bytes_0));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_compressed_lpwstr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_compressed_lpwstr *r)
{
	ndr_print_vt_compressed_lpwstr(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_compressed_lpwstr(struct ndr_print *ndr, const char *name, const struct vt_compressed_lpwstr *r)
{
	ndr_print_struct(ndr, name, "vt_compressed_lpwstr");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cclen", r->cclen);
	ndr_print_array_uint8(ndr, "bytes", r->bytes, r->cclen);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_compressed_lpwstr_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_compressed_lpwstr_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_vt_compressed_lpwstr(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_compressed_lpwstr_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_compressed_lpwstr_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_vt_compressed_lpwstr(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_compressed_lpwstr_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_compressed_lpwstr_vec *r)
{
	ndr_print_vt_compressed_lpwstr_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_compressed_lpwstr_vec(struct ndr_print *ndr, const char *name, const struct vt_compressed_lpwstr_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_compressed_lpwstr_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_vt_compressed_lpwstr(ndr, "vvector_data", &r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i1_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i1_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i1_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i1_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_int8(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i1_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i1_vec *r)
{
	ndr_print_vt_i1_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i1_vec(struct ndr_print *ndr, const char *name, const struct vt_i1_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_i1_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_int8(ndr, "vvector_data", r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui1_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui1_vec *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->vvector_data, r->vvector_elements));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui1_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui1_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->vvector_data, size_vvector_data_0));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui1_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui1_vec *r)
{
	ndr_print_vt_ui1_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui1_vec(struct ndr_print *ndr, const char *name, const struct vt_ui1_vec *r)
{
	ndr_print_struct(ndr, name, "vt_ui1_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr_print_array_uint8(ndr, "vvector_data", r->vvector_data, r->vvector_elements);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i2_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i2_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i2_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i2_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i2_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i2_vec *r)
{
	ndr_print_vt_i2_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i2_vec(struct ndr_print *ndr, const char *name, const struct vt_i2_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_i2_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_int16(ndr, "vvector_data", r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui2_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui2_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui2_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui2_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui2_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui2_vec *r)
{
	ndr_print_vt_ui2_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui2_vec(struct ndr_print *ndr, const char *name, const struct vt_ui2_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_ui2_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_uint16(ndr, "vvector_data", r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i4_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i4_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i4_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i4_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i4_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i4_vec *r)
{
	ndr_print_vt_i4_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i4_vec(struct ndr_print *ndr, const char *name, const struct vt_i4_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_i4_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_int32(ndr, "vvector_data", r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui4_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui4_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui4_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui4_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui4_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui4_vec *r)
{
	ndr_print_vt_ui4_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui4_vec(struct ndr_print *ndr, const char *name, const struct vt_ui4_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_ui4_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_uint32(ndr, "vvector_data", r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_dlong_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_dlong_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_dlong_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_dlong_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_dlong_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_dlong_vec *r)
{
	ndr_print_vt_dlong_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_dlong_vec(struct ndr_print *ndr, const char *name, const struct vt_dlong_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_dlong_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_dlong(ndr, "vvector_data", r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_udlong_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_udlong_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_udlong_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_udlong_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_udlong_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_udlong_vec *r)
{
	ndr_print_vt_udlong_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_udlong_vec(struct ndr_print *ndr, const char *name, const struct vt_udlong_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_udlong_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_udlong(ndr, "vvector_data", r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_clsid_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_clsid_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_clsid_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_clsid_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_clsid_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_clsid_vec *r)
{
	ndr_print_vt_clsid_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_clsid_vec(struct ndr_print *ndr, const char *name, const struct vt_clsid_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_clsid_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_GUID(ndr, "vvector_data", &r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_variant_wrap_vec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_variant_wrap_vec *r)
{
	uint32_t cntr_vvector_data_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vvector_elements));
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vvector_data[cntr_vvector_data_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_variant_wrap_vec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_variant_wrap_vec *r)
{
	uint32_t size_vvector_data_0 = 0;
	uint32_t cntr_vvector_data_0;
	TALLOC_CTX *_mem_save_vvector_data_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vvector_elements));
		size_vvector_data_0 = r->vvector_elements;
		NDR_PULL_ALLOC_N(ndr, r->vvector_data, size_vvector_data_0);
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_SCALARS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_vvector_data_0 = r->vvector_elements;
		_mem_save_vvector_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vvector_data, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
			NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vvector_data[cntr_vvector_data_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vvector_data_0, 0);
		for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (size_vvector_data_0); cntr_vvector_data_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_variant_wrap_vec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_variant_wrap_vec *r)
{
	ndr_print_vt_variant_wrap_vec(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_variant_wrap_vec(struct ndr_print *ndr, const char *name, const struct vt_variant_wrap_vec *r)
{
	uint32_t cntr_vvector_data_0;
	ndr_print_struct(ndr, name, "vt_variant_wrap_vec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "vvector_elements", r->vvector_elements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vvector_data", (uint32_t)(r->vvector_elements));
	ndr->depth++;
	for (cntr_vvector_data_0 = 0; cntr_vvector_data_0 < (r->vvector_elements); cntr_vvector_data_0++) {
		ndr_print_vt_variant_wrap(ndr, "vvector_data", &r->vvector_data[cntr_vvector_data_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_safearraybound(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct safearraybound *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->celements));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ilbound));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_safearraybound(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct safearraybound *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->celements));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ilbound));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_safearraybound(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct safearraybound *r)
{
	ndr_print_safearraybound(ndr, name, r);
}

_PUBLIC_ void ndr_print_safearraybound(struct ndr_print *ndr, const char *name, const struct safearraybound *r)
{
	ndr_print_struct(ndr, name, "safearraybound");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "celements", r->celements);
	ndr_print_uint32(ndr, "ilbound", r->ilbound);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i4_safe_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i4_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i4_safe_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i4_safe_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i4_safe_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i4_safe_array *r)
{
	ndr_print_vt_i4_safe_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i4_safe_array(struct ndr_print *ndr, const char *name, const struct vt_i4_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_i4_safe_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_int32(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui4_safe_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui4_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui4_safe_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui4_safe_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui4_safe_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui4_safe_array *r)
{
	ndr_print_vt_ui4_safe_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui4_safe_array(struct ndr_print *ndr, const char *name, const struct vt_ui4_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_ui4_safe_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_uint32(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_bstr_safe_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_bstr_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_vt_bstr(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_bstr_safe_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_bstr_safe_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_vt_bstr(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_bstr_safe_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_bstr_safe_array *r)
{
	ndr_print_vt_bstr_safe_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_bstr_safe_array(struct ndr_print *ndr, const char *name, const struct vt_bstr_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_bstr_safe_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_vt_bstr(ndr, "vdata", &r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i1_safe_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i1_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i1_safe_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i1_safe_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_int8(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i1_safe_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i1_safe_array *r)
{
	ndr_print_vt_i1_safe_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i1_safe_array(struct ndr_print *ndr, const char *name, const struct vt_i1_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_i1_safe_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_int8(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui1_safe_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui1_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->vdata, calc_array_size(r->rgsabound, r->cdims)));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui1_safe_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui1_safe_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->vdata, size_vdata_0));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui1_safe_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui1_safe_array *r)
{
	ndr_print_vt_ui1_safe_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui1_safe_array(struct ndr_print *ndr, const char *name, const struct vt_ui1_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	ndr_print_struct(ndr, name, "vt_ui1_safe_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr_print_array_uint8(ndr, "vdata", r->vdata, calc_array_size(r->rgsabound, r->cdims));
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i2_safe_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i2_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i2_safe_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i2_safe_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i2_safe_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i2_safe_array *r)
{
	ndr_print_vt_i2_safe_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i2_safe_array(struct ndr_print *ndr, const char *name, const struct vt_i2_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_i2_safe_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_int16(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui2_safe_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui2_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui2_safe_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui2_safe_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui2_safe_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui2_safe_array *r)
{
	ndr_print_vt_ui2_safe_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui2_safe_array(struct ndr_print *ndr, const char *name, const struct vt_ui2_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_ui2_safe_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_uint16(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_dlong_safe_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_dlong_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_dlong_safe_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_dlong_safe_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_dlong_safe_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_dlong_safe_array *r)
{
	ndr_print_vt_dlong_safe_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_dlong_safe_array(struct ndr_print *ndr, const char *name, const struct vt_dlong_safe_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_dlong_safe_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_dlong(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_variant_wrap_safearray(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_variant_wrap_safearray *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ffeatures));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbelements));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vdata[cntr_vdata_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_variant_wrap_safearray(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_variant_wrap_safearray *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ffeatures));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbelements));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_variant_wrap_safearray(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_variant_wrap_safearray *r)
{
	ndr_print_vt_variant_wrap_safearray(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_variant_wrap_safearray(struct ndr_print *ndr, const char *name, const struct vt_variant_wrap_safearray *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_variant_wrap_safearray");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr_print_uint16(ndr, "ffeatures", r->ffeatures);
	ndr_print_uint32(ndr, "cbelements", r->cbelements);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_vt_variant_wrap(ndr, "vdata", &r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_variant_types(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union variant_types *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case VT_I1: {
				NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->vt_i1));
			break; }

			case VT_I1|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i1_safe_array(ndr, NDR_SCALARS, &r->vt_i1_array));
			break; }

			case VT_I1|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_i1_vec(ndr, NDR_SCALARS, &r->vt_i1_vec));
			break; }

			case VT_UI1: {
				NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->vt_ui1));
			break; }

			case VT_UI1|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui1_safe_array(ndr, NDR_SCALARS, &r->vt_ui1_array));
			break; }

			case VT_UI1|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui1_vec(ndr, NDR_SCALARS, &r->vt_ui1_vec));
			break; }

			case VT_I2: {
				NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->vt_i2));
			break; }

			case VT_I2|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i2_safe_array(ndr, NDR_SCALARS, &r->vt_i2_array));
			break; }

			case VT_I2|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_i2_vec(ndr, NDR_SCALARS, &r->vt_i2_vec));
			break; }

			case VT_UI2: {
				NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vt_ui2));
			break; }

			case VT_UI2|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui2_safe_array(ndr, NDR_SCALARS, &r->vt_ui2_array));
			break; }

			case VT_UI2|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui2_vec(ndr, NDR_SCALARS, &r->vt_ui2_vec));
			break; }

			case VT_BOOL: {
				NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vt_bool));
			break; }

			case VT_BOOL|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui2_safe_array(ndr, NDR_SCALARS, &r->vt_bool_array));
			break; }

			case VT_BOOL|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui2_vec(ndr, NDR_SCALARS, &r->vt_bool_vec));
			break; }

			case VT_I4: {
				NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->vt_i4));
			break; }

			case VT_I4|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_i4_vec(ndr, NDR_SCALARS, &r->vt_i4_vec));
			break; }

			case VT_I4|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i4_safe_array(ndr, NDR_SCALARS, &r->vt_i4_array));
			break; }

			case VT_UI4: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vt_ui4));
			break; }

			case VT_UI4|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui4_vec(ndr, NDR_SCALARS, &r->vt_ui4_vec));
			break; }

			case VT_UI4|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui4_safe_array(ndr, NDR_SCALARS, &r->vt_ui4_array));
			break; }

			case VT_R4: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vt_r4));
			break; }

			case VT_R4|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_i4_vec(ndr, NDR_SCALARS, &r->vt_r4_vec));
			break; }

			case VT_R4|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i4_safe_array(ndr, NDR_SCALARS, &r->vt_r4_array));
			break; }

			case VT_INT: {
				NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->vt_int));
			break; }

			case VT_INT|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i4_safe_array(ndr, NDR_SCALARS, &r->vt_int_array));
			break; }

			case VT_UINT: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vt_uint));
			break; }

			case VT_UINT|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui4_safe_array(ndr, NDR_SCALARS, &r->vt_uint_array));
			break; }

			case VT_ERROR: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vt_error));
			break; }

			case VT_ERROR|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui4_vec(ndr, NDR_SCALARS, &r->vt_error_vec));
			break; }

			case VT_ERROR|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui4_safe_array(ndr, NDR_SCALARS, &r->vt_error_array));
			break; }

			case VT_I8: {
				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vt_i8));
			break; }

			case VT_I8|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_i8_vec));
			break; }

			case VT_UI8: {
				NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->vt_ui8));
			break; }

			case VT_UI8|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_udlong_vec(ndr, NDR_SCALARS, &r->vt_ui8_vec));
			break; }

			case VT_R8: {
				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vt_r8));
			break; }

			case VT_R8|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_r8_vec));
			break; }

			case VT_R8|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_dlong_safe_array(ndr, NDR_SCALARS, &r->vt_r8_array));
			break; }

			case VT_CY: {
				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vt_cy));
			break; }

			case VT_CY|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_cy_vec));
			break; }

			case VT_CY|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_dlong_safe_array(ndr, NDR_SCALARS, &r->vt_cy_array));
			break; }

			case VT_DATE: {
				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vt_date));
			break; }

			case VT_DATE|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_date_vec));
			break; }

			case VT_DATE|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_dlong_safe_array(ndr, NDR_SCALARS, &r->vt_date_array));
			break; }

			case VT_FILETIME: {
				NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->vt_filetime));
			break; }

			case VT_FILETIME|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_udlong_vec(ndr, NDR_SCALARS, &r->vt_filetime_vec));
			break; }

			case VT_BSTR: {
				NDR_CHECK(ndr_push_vt_bstr(ndr, NDR_SCALARS, &r->vt_bstr));
			break; }

			case VT_BSTR|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_bstr_vec(ndr, NDR_SCALARS, &r->vt_bstr_v));
			break; }

			case VT_BSTR|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_bstr_safe_array(ndr, NDR_SCALARS, &r->vt_bstr_array));
			break; }

			case VT_LPWSTR: {
				NDR_CHECK(ndr_push_vt_lpwstr(ndr, NDR_SCALARS, &r->vt_lpwstr));
			break; }

			case VT_LPWSTR|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_lpwstr_vec(ndr, NDR_SCALARS, &r->vt_lpwstr_v));
			break; }

			case VT_COMPRESSED_LPWSTR: {
				NDR_CHECK(ndr_push_vt_compressed_lpwstr(ndr, NDR_SCALARS, &r->vt_compressed_lpwstr));
			break; }

			case VT_COMPRESSED_LPWSTR|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_compressed_lpwstr_vec(ndr, NDR_SCALARS, &r->vt_compresseed_lpwstr_v));
			break; }

			case VT_DECIMAL: {
				NDR_CHECK(ndr_push_vt_decimal(ndr, NDR_SCALARS, &r->vt_decimal));
			break; }

			case VT_DECIMAL|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_decimal_vec(ndr, NDR_SCALARS, &r->vt_decimal_v));
			break; }

			case VT_CLSID: {
				NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->vt_clid));
			break; }

			case VT_CLSID|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_clsid_vec(ndr, NDR_SCALARS, &r->vt_clsid_v));
			break; }

			case VT_BLOB: {
				NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->vt_blob));
			break; }

			case VT_BLOB_OBJECT: {
				NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->vt_blob_object));
			break; }

			case VT_NULL: {
			break; }

			case VT_EMPTY: {
			break; }

			case VT_VARIANT: {
				NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_SCALARS, &r->vt_variant_wrap));
			break; }

			case VT_VARIANT|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_variant_wrap_vec(ndr, NDR_SCALARS, &r->vt_variant_wrap_vec));
			break; }

			case VT_VARIANT|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_variant_wrap_safearray(ndr, NDR_SCALARS, &r->vt_variant_wrap_array));
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case VT_I1:
			break;

			case VT_I1|VT_ARRAY:
			break;

			case VT_I1|VT_VECTOR:
			break;

			case VT_UI1:
			break;

			case VT_UI1|VT_ARRAY:
			break;

			case VT_UI1|VT_VECTOR:
			break;

			case VT_I2:
			break;

			case VT_I2|VT_ARRAY:
			break;

			case VT_I2|VT_VECTOR:
			break;

			case VT_UI2:
			break;

			case VT_UI2|VT_ARRAY:
			break;

			case VT_UI2|VT_VECTOR:
			break;

			case VT_BOOL:
			break;

			case VT_BOOL|VT_ARRAY:
			break;

			case VT_BOOL|VT_VECTOR:
			break;

			case VT_I4:
			break;

			case VT_I4|VT_VECTOR:
			break;

			case VT_I4|VT_ARRAY:
			break;

			case VT_UI4:
			break;

			case VT_UI4|VT_VECTOR:
			break;

			case VT_UI4|VT_ARRAY:
			break;

			case VT_R4:
			break;

			case VT_R4|VT_VECTOR:
			break;

			case VT_R4|VT_ARRAY:
			break;

			case VT_INT:
			break;

			case VT_INT|VT_ARRAY:
			break;

			case VT_UINT:
			break;

			case VT_UINT|VT_ARRAY:
			break;

			case VT_ERROR:
			break;

			case VT_ERROR|VT_VECTOR:
			break;

			case VT_ERROR|VT_ARRAY:
			break;

			case VT_I8:
			break;

			case VT_I8|VT_VECTOR:
			break;

			case VT_UI8:
			break;

			case VT_UI8|VT_VECTOR:
			break;

			case VT_R8:
			break;

			case VT_R8|VT_VECTOR:
			break;

			case VT_R8|VT_ARRAY:
			break;

			case VT_CY:
			break;

			case VT_CY|VT_VECTOR:
			break;

			case VT_CY|VT_ARRAY:
			break;

			case VT_DATE:
			break;

			case VT_DATE|VT_VECTOR:
			break;

			case VT_DATE|VT_ARRAY:
			break;

			case VT_FILETIME:
			break;

			case VT_FILETIME|VT_VECTOR:
			break;

			case VT_BSTR:
			break;

			case VT_BSTR|VT_VECTOR:
			break;

			case VT_BSTR|VT_ARRAY:
			break;

			case VT_LPWSTR:
			break;

			case VT_LPWSTR|VT_VECTOR:
			break;

			case VT_COMPRESSED_LPWSTR:
			break;

			case VT_COMPRESSED_LPWSTR|VT_VECTOR:
			break;

			case VT_DECIMAL:
			break;

			case VT_DECIMAL|VT_VECTOR:
			break;

			case VT_CLSID:
			break;

			case VT_CLSID|VT_VECTOR:
			break;

			case VT_BLOB:
			break;

			case VT_BLOB_OBJECT:
			break;

			case VT_NULL:
			break;

			case VT_EMPTY:
			break;

			case VT_VARIANT:
				NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vt_variant_wrap));
			break;

			case VT_VARIANT|VT_VECTOR:
				NDR_CHECK(ndr_push_vt_variant_wrap_vec(ndr, NDR_BUFFERS, &r->vt_variant_wrap_vec));
			break;

			case VT_VARIANT|VT_ARRAY:
				NDR_CHECK(ndr_push_vt_variant_wrap_safearray(ndr, NDR_BUFFERS, &r->vt_variant_wrap_array));
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_variant_types(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union variant_types *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case VT_I1: {
				NDR_CHECK(ndr_pull_int8(ndr, NDR_SCALARS, &r->vt_i1));
			break; }

			case VT_I1|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i1_safe_array(ndr, NDR_SCALARS, &r->vt_i1_array));
			break; }

			case VT_I1|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_i1_vec(ndr, NDR_SCALARS, &r->vt_i1_vec));
			break; }

			case VT_UI1: {
				NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->vt_ui1));
			break; }

			case VT_UI1|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui1_safe_array(ndr, NDR_SCALARS, &r->vt_ui1_array));
			break; }

			case VT_UI1|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui1_vec(ndr, NDR_SCALARS, &r->vt_ui1_vec));
			break; }

			case VT_I2: {
				NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->vt_i2));
			break; }

			case VT_I2|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i2_safe_array(ndr, NDR_SCALARS, &r->vt_i2_array));
			break; }

			case VT_I2|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_i2_vec(ndr, NDR_SCALARS, &r->vt_i2_vec));
			break; }

			case VT_UI2: {
				NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vt_ui2));
			break; }

			case VT_UI2|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui2_safe_array(ndr, NDR_SCALARS, &r->vt_ui2_array));
			break; }

			case VT_UI2|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui2_vec(ndr, NDR_SCALARS, &r->vt_ui2_vec));
			break; }

			case VT_BOOL: {
				NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vt_bool));
			break; }

			case VT_BOOL|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui2_safe_array(ndr, NDR_SCALARS, &r->vt_bool_array));
			break; }

			case VT_BOOL|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui2_vec(ndr, NDR_SCALARS, &r->vt_bool_vec));
			break; }

			case VT_I4: {
				NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->vt_i4));
			break; }

			case VT_I4|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_i4_vec(ndr, NDR_SCALARS, &r->vt_i4_vec));
			break; }

			case VT_I4|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i4_safe_array(ndr, NDR_SCALARS, &r->vt_i4_array));
			break; }

			case VT_UI4: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vt_ui4));
			break; }

			case VT_UI4|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui4_vec(ndr, NDR_SCALARS, &r->vt_ui4_vec));
			break; }

			case VT_UI4|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui4_safe_array(ndr, NDR_SCALARS, &r->vt_ui4_array));
			break; }

			case VT_R4: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vt_r4));
			break; }

			case VT_R4|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_i4_vec(ndr, NDR_SCALARS, &r->vt_r4_vec));
			break; }

			case VT_R4|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i4_safe_array(ndr, NDR_SCALARS, &r->vt_r4_array));
			break; }

			case VT_INT: {
				NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->vt_int));
			break; }

			case VT_INT|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i4_safe_array(ndr, NDR_SCALARS, &r->vt_int_array));
			break; }

			case VT_UINT: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vt_uint));
			break; }

			case VT_UINT|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui4_safe_array(ndr, NDR_SCALARS, &r->vt_uint_array));
			break; }

			case VT_ERROR: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vt_error));
			break; }

			case VT_ERROR|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui4_vec(ndr, NDR_SCALARS, &r->vt_error_vec));
			break; }

			case VT_ERROR|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui4_safe_array(ndr, NDR_SCALARS, &r->vt_error_array));
			break; }

			case VT_I8: {
				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vt_i8));
			break; }

			case VT_I8|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_i8_vec));
			break; }

			case VT_UI8: {
				NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->vt_ui8));
			break; }

			case VT_UI8|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_udlong_vec(ndr, NDR_SCALARS, &r->vt_ui8_vec));
			break; }

			case VT_R8: {
				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vt_r8));
			break; }

			case VT_R8|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_r8_vec));
			break; }

			case VT_R8|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_dlong_safe_array(ndr, NDR_SCALARS, &r->vt_r8_array));
			break; }

			case VT_CY: {
				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vt_cy));
			break; }

			case VT_CY|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_cy_vec));
			break; }

			case VT_CY|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_dlong_safe_array(ndr, NDR_SCALARS, &r->vt_cy_array));
			break; }

			case VT_DATE: {
				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vt_date));
			break; }

			case VT_DATE|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_date_vec));
			break; }

			case VT_DATE|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_dlong_safe_array(ndr, NDR_SCALARS, &r->vt_date_array));
			break; }

			case VT_FILETIME: {
				NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->vt_filetime));
			break; }

			case VT_FILETIME|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_udlong_vec(ndr, NDR_SCALARS, &r->vt_filetime_vec));
			break; }

			case VT_BSTR: {
				NDR_CHECK(ndr_pull_vt_bstr(ndr, NDR_SCALARS, &r->vt_bstr));
			break; }

			case VT_BSTR|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_bstr_vec(ndr, NDR_SCALARS, &r->vt_bstr_v));
			break; }

			case VT_BSTR|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_bstr_safe_array(ndr, NDR_SCALARS, &r->vt_bstr_array));
			break; }

			case VT_LPWSTR: {
				NDR_CHECK(ndr_pull_vt_lpwstr(ndr, NDR_SCALARS, &r->vt_lpwstr));
			break; }

			case VT_LPWSTR|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_lpwstr_vec(ndr, NDR_SCALARS, &r->vt_lpwstr_v));
			break; }

			case VT_COMPRESSED_LPWSTR: {
				NDR_CHECK(ndr_pull_vt_compressed_lpwstr(ndr, NDR_SCALARS, &r->vt_compressed_lpwstr));
			break; }

			case VT_COMPRESSED_LPWSTR|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_compressed_lpwstr_vec(ndr, NDR_SCALARS, &r->vt_compresseed_lpwstr_v));
			break; }

			case VT_DECIMAL: {
				NDR_CHECK(ndr_pull_vt_decimal(ndr, NDR_SCALARS, &r->vt_decimal));
			break; }

			case VT_DECIMAL|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_decimal_vec(ndr, NDR_SCALARS, &r->vt_decimal_v));
			break; }

			case VT_CLSID: {
				NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->vt_clid));
			break; }

			case VT_CLSID|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_clsid_vec(ndr, NDR_SCALARS, &r->vt_clsid_v));
			break; }

			case VT_BLOB: {
				NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->vt_blob));
			break; }

			case VT_BLOB_OBJECT: {
				NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->vt_blob_object));
			break; }

			case VT_NULL: {
			break; }

			case VT_EMPTY: {
			break; }

			case VT_VARIANT: {
				NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_SCALARS, &r->vt_variant_wrap));
			break; }

			case VT_VARIANT|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_variant_wrap_vec(ndr, NDR_SCALARS, &r->vt_variant_wrap_vec));
			break; }

			case VT_VARIANT|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_variant_wrap_safearray(ndr, NDR_SCALARS, &r->vt_variant_wrap_array));
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case VT_I1:
			break;

			case VT_I1|VT_ARRAY:
			break;

			case VT_I1|VT_VECTOR:
			break;

			case VT_UI1:
			break;

			case VT_UI1|VT_ARRAY:
			break;

			case VT_UI1|VT_VECTOR:
			break;

			case VT_I2:
			break;

			case VT_I2|VT_ARRAY:
			break;

			case VT_I2|VT_VECTOR:
			break;

			case VT_UI2:
			break;

			case VT_UI2|VT_ARRAY:
			break;

			case VT_UI2|VT_VECTOR:
			break;

			case VT_BOOL:
			break;

			case VT_BOOL|VT_ARRAY:
			break;

			case VT_BOOL|VT_VECTOR:
			break;

			case VT_I4:
			break;

			case VT_I4|VT_VECTOR:
			break;

			case VT_I4|VT_ARRAY:
			break;

			case VT_UI4:
			break;

			case VT_UI4|VT_VECTOR:
			break;

			case VT_UI4|VT_ARRAY:
			break;

			case VT_R4:
			break;

			case VT_R4|VT_VECTOR:
			break;

			case VT_R4|VT_ARRAY:
			break;

			case VT_INT:
			break;

			case VT_INT|VT_ARRAY:
			break;

			case VT_UINT:
			break;

			case VT_UINT|VT_ARRAY:
			break;

			case VT_ERROR:
			break;

			case VT_ERROR|VT_VECTOR:
			break;

			case VT_ERROR|VT_ARRAY:
			break;

			case VT_I8:
			break;

			case VT_I8|VT_VECTOR:
			break;

			case VT_UI8:
			break;

			case VT_UI8|VT_VECTOR:
			break;

			case VT_R8:
			break;

			case VT_R8|VT_VECTOR:
			break;

			case VT_R8|VT_ARRAY:
			break;

			case VT_CY:
			break;

			case VT_CY|VT_VECTOR:
			break;

			case VT_CY|VT_ARRAY:
			break;

			case VT_DATE:
			break;

			case VT_DATE|VT_VECTOR:
			break;

			case VT_DATE|VT_ARRAY:
			break;

			case VT_FILETIME:
			break;

			case VT_FILETIME|VT_VECTOR:
			break;

			case VT_BSTR:
			break;

			case VT_BSTR|VT_VECTOR:
			break;

			case VT_BSTR|VT_ARRAY:
			break;

			case VT_LPWSTR:
			break;

			case VT_LPWSTR|VT_VECTOR:
			break;

			case VT_COMPRESSED_LPWSTR:
			break;

			case VT_COMPRESSED_LPWSTR|VT_VECTOR:
			break;

			case VT_DECIMAL:
			break;

			case VT_DECIMAL|VT_VECTOR:
			break;

			case VT_CLSID:
			break;

			case VT_CLSID|VT_VECTOR:
			break;

			case VT_BLOB:
			break;

			case VT_BLOB_OBJECT:
			break;

			case VT_NULL:
			break;

			case VT_EMPTY:
			break;

			case VT_VARIANT:
				NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vt_variant_wrap));
			break;

			case VT_VARIANT|VT_VECTOR:
				NDR_CHECK(ndr_pull_vt_variant_wrap_vec(ndr, NDR_BUFFERS, &r->vt_variant_wrap_vec));
			break;

			case VT_VARIANT|VT_ARRAY:
				NDR_CHECK(ndr_pull_vt_variant_wrap_safearray(ndr, NDR_BUFFERS, &r->vt_variant_wrap_array));
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_variant_types(struct ndr_print *ndr, const char *name, const union variant_types *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "variant_types");
	switch (level) {
		case VT_I1:
			ndr_print_int8(ndr, "vt_i1", r->vt_i1);
		break;

		case VT_I1|VT_ARRAY:
			ndr_print_vt_i1_safe_array(ndr, "vt_i1_array", &r->vt_i1_array);
		break;

		case VT_I1|VT_VECTOR:
			ndr_print_vt_i1_vec(ndr, "vt_i1_vec", &r->vt_i1_vec);
		break;

		case VT_UI1:
			ndr_print_uint8(ndr, "vt_ui1", r->vt_ui1);
		break;

		case VT_UI1|VT_ARRAY:
			ndr_print_vt_ui1_safe_array(ndr, "vt_ui1_array", &r->vt_ui1_array);
		break;

		case VT_UI1|VT_VECTOR:
			ndr_print_vt_ui1_vec(ndr, "vt_ui1_vec", &r->vt_ui1_vec);
		break;

		case VT_I2:
			ndr_print_int16(ndr, "vt_i2", r->vt_i2);
		break;

		case VT_I2|VT_ARRAY:
			ndr_print_vt_i2_safe_array(ndr, "vt_i2_array", &r->vt_i2_array);
		break;

		case VT_I2|VT_VECTOR:
			ndr_print_vt_i2_vec(ndr, "vt_i2_vec", &r->vt_i2_vec);
		break;

		case VT_UI2:
			ndr_print_uint16(ndr, "vt_ui2", r->vt_ui2);
		break;

		case VT_UI2|VT_ARRAY:
			ndr_print_vt_ui2_safe_array(ndr, "vt_ui2_array", &r->vt_ui2_array);
		break;

		case VT_UI2|VT_VECTOR:
			ndr_print_vt_ui2_vec(ndr, "vt_ui2_vec", &r->vt_ui2_vec);
		break;

		case VT_BOOL:
			ndr_print_uint16(ndr, "vt_bool", r->vt_bool);
		break;

		case VT_BOOL|VT_ARRAY:
			ndr_print_vt_ui2_safe_array(ndr, "vt_bool_array", &r->vt_bool_array);
		break;

		case VT_BOOL|VT_VECTOR:
			ndr_print_vt_ui2_vec(ndr, "vt_bool_vec", &r->vt_bool_vec);
		break;

		case VT_I4:
			ndr_print_int32(ndr, "vt_i4", r->vt_i4);
		break;

		case VT_I4|VT_VECTOR:
			ndr_print_vt_i4_vec(ndr, "vt_i4_vec", &r->vt_i4_vec);
		break;

		case VT_I4|VT_ARRAY:
			ndr_print_vt_i4_safe_array(ndr, "vt_i4_array", &r->vt_i4_array);
		break;

		case VT_UI4:
			ndr_print_uint32(ndr, "vt_ui4", r->vt_ui4);
		break;

		case VT_UI4|VT_VECTOR:
			ndr_print_vt_ui4_vec(ndr, "vt_ui4_vec", &r->vt_ui4_vec);
		break;

		case VT_UI4|VT_ARRAY:
			ndr_print_vt_ui4_safe_array(ndr, "vt_ui4_array", &r->vt_ui4_array);
		break;

		case VT_R4:
			ndr_print_uint32(ndr, "vt_r4", r->vt_r4);
		break;

		case VT_R4|VT_VECTOR:
			ndr_print_vt_i4_vec(ndr, "vt_r4_vec", &r->vt_r4_vec);
		break;

		case VT_R4|VT_ARRAY:
			ndr_print_vt_i4_safe_array(ndr, "vt_r4_array", &r->vt_r4_array);
		break;

		case VT_INT:
			ndr_print_int32(ndr, "vt_int", r->vt_int);
		break;

		case VT_INT|VT_ARRAY:
			ndr_print_vt_i4_safe_array(ndr, "vt_int_array", &r->vt_int_array);
		break;

		case VT_UINT:
			ndr_print_uint32(ndr, "vt_uint", r->vt_uint);
		break;

		case VT_UINT|VT_ARRAY:
			ndr_print_vt_ui4_safe_array(ndr, "vt_uint_array", &r->vt_uint_array);
		break;

		case VT_ERROR:
			ndr_print_uint32(ndr, "vt_error", r->vt_error);
		break;

		case VT_ERROR|VT_VECTOR:
			ndr_print_vt_ui4_vec(ndr, "vt_error_vec", &r->vt_error_vec);
		break;

		case VT_ERROR|VT_ARRAY:
			ndr_print_vt_ui4_safe_array(ndr, "vt_error_array", &r->vt_error_array);
		break;

		case VT_I8:
			ndr_print_dlong(ndr, "vt_i8", r->vt_i8);
		break;

		case VT_I8|VT_VECTOR:
			ndr_print_vt_dlong_vec(ndr, "vt_i8_vec", &r->vt_i8_vec);
		break;

		case VT_UI8:
			ndr_print_udlong(ndr, "vt_ui8", r->vt_ui8);
		break;

		case VT_UI8|VT_VECTOR:
			ndr_print_vt_udlong_vec(ndr, "vt_ui8_vec", &r->vt_ui8_vec);
		break;

		case VT_R8:
			ndr_print_dlong(ndr, "vt_r8", r->vt_r8);
		break;

		case VT_R8|VT_VECTOR:
			ndr_print_vt_dlong_vec(ndr, "vt_r8_vec", &r->vt_r8_vec);
		break;

		case VT_R8|VT_ARRAY:
			ndr_print_vt_dlong_safe_array(ndr, "vt_r8_array", &r->vt_r8_array);
		break;

		case VT_CY:
			ndr_print_dlong(ndr, "vt_cy", r->vt_cy);
		break;

		case VT_CY|VT_VECTOR:
			ndr_print_vt_dlong_vec(ndr, "vt_cy_vec", &r->vt_cy_vec);
		break;

		case VT_CY|VT_ARRAY:
			ndr_print_vt_dlong_safe_array(ndr, "vt_cy_array", &r->vt_cy_array);
		break;

		case VT_DATE:
			ndr_print_dlong(ndr, "vt_date", r->vt_date);
		break;

		case VT_DATE|VT_VECTOR:
			ndr_print_vt_dlong_vec(ndr, "vt_date_vec", &r->vt_date_vec);
		break;

		case VT_DATE|VT_ARRAY:
			ndr_print_vt_dlong_safe_array(ndr, "vt_date_array", &r->vt_date_array);
		break;

		case VT_FILETIME:
			ndr_print_udlong(ndr, "vt_filetime", r->vt_filetime);
		break;

		case VT_FILETIME|VT_VECTOR:
			ndr_print_vt_udlong_vec(ndr, "vt_filetime_vec", &r->vt_filetime_vec);
		break;

		case VT_BSTR:
			ndr_print_vt_bstr(ndr, "vt_bstr", &r->vt_bstr);
		break;

		case VT_BSTR|VT_VECTOR:
			ndr_print_vt_bstr_vec(ndr, "vt_bstr_v", &r->vt_bstr_v);
		break;

		case VT_BSTR|VT_ARRAY:
			ndr_print_vt_bstr_safe_array(ndr, "vt_bstr_array", &r->vt_bstr_array);
		break;

		case VT_LPWSTR:
			ndr_print_vt_lpwstr(ndr, "vt_lpwstr", &r->vt_lpwstr);
		break;

		case VT_LPWSTR|VT_VECTOR:
			ndr_print_vt_lpwstr_vec(ndr, "vt_lpwstr_v", &r->vt_lpwstr_v);
		break;

		case VT_COMPRESSED_LPWSTR:
			ndr_print_vt_compressed_lpwstr(ndr, "vt_compressed_lpwstr", &r->vt_compressed_lpwstr);
		break;

		case VT_COMPRESSED_LPWSTR|VT_VECTOR:
			ndr_print_vt_compressed_lpwstr_vec(ndr, "vt_compresseed_lpwstr_v", &r->vt_compresseed_lpwstr_v);
		break;

		case VT_DECIMAL:
			ndr_print_vt_decimal(ndr, "vt_decimal", &r->vt_decimal);
		break;

		case VT_DECIMAL|VT_VECTOR:
			ndr_print_vt_decimal_vec(ndr, "vt_decimal_v", &r->vt_decimal_v);
		break;

		case VT_CLSID:
			ndr_print_GUID(ndr, "vt_clid", &r->vt_clid);
		break;

		case VT_CLSID|VT_VECTOR:
			ndr_print_vt_clsid_vec(ndr, "vt_clsid_v", &r->vt_clsid_v);
		break;

		case VT_BLOB:
			ndr_print_DATA_BLOB(ndr, "vt_blob", r->vt_blob);
		break;

		case VT_BLOB_OBJECT:
			ndr_print_DATA_BLOB(ndr, "vt_blob_object", r->vt_blob_object);
		break;

		case VT_NULL:
		break;

		case VT_EMPTY:
		break;

		case VT_VARIANT:
			ndr_print_vt_variant_wrap(ndr, "vt_variant_wrap", &r->vt_variant_wrap);
		break;

		case VT_VARIANT|VT_VECTOR:
			ndr_print_vt_variant_wrap_vec(ndr, "vt_variant_wrap_vec", &r->vt_variant_wrap_vec);
		break;

		case VT_VARIANT|VT_ARRAY:
			ndr_print_vt_variant_wrap_safearray(ndr, "vt_variant_wrap_array", &r->vt_variant_wrap_array);
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cbasestoragevariant(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cbasestoragevariant *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vtype));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->vdata1));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->vdata2));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->vvalue, r->vtype));
		NDR_CHECK(ndr_push_variant_types(ndr, NDR_SCALARS, &r->vvalue));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->vvalue, r->vtype));
		NDR_CHECK(ndr_push_variant_types(ndr, NDR_BUFFERS, &r->vvalue));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cbasestoragevariant(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cbasestoragevariant *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vtype));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->vdata1));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->vdata2));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->vvalue, r->vtype));
		NDR_RECURSION_CHECK(ndr, 102);
		NDR_CHECK(ndr_pull_variant_types(ndr, NDR_SCALARS, &r->vvalue));
		NDR_RECURSION_UNWIND(ndr);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->vvalue, r->vtype));
		NDR_RECURSION_CHECK(ndr, 102);
		NDR_CHECK(ndr_pull_variant_types(ndr, NDR_BUFFERS, &r->vvalue));
		NDR_RECURSION_UNWIND(ndr);
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cbasestoragevariant(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cbasestoragevariant *r)
{
	ndr_print_wsp_cbasestoragevariant(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cbasestoragevariant(struct ndr_print *ndr, const char *name, const struct wsp_cbasestoragevariant *r)
{
	ndr_print_struct(ndr, name, "wsp_cbasestoragevariant");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "vtype", r->vtype);
	ndr_print_uint8(ndr, "vdata1", r->vdata1);
	ndr_print_uint8(ndr, "vdata2", r->vdata2);
	ndr_print_set_switch_value(ndr, &r->vvalue, r->vtype);
	ndr_print_variant_types(ndr, "vvalue", &r->vvalue);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cdbcolid_opt_name(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union wsp_cdbcolid_opt_name *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case DBKIND_GUID_NAME: {
				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vstring));
			break; }

			default: {
			break; }

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cdbcolid_opt_name(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union wsp_cdbcolid_opt_name *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case DBKIND_GUID_NAME: {
				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vstring));
			break; }

			default: {
			break; }

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_wsp_cdbcolid_opt_name(struct ndr_print *ndr, const char *name, const union wsp_cdbcolid_opt_name *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "wsp_cdbcolid_opt_name");
	switch (level) {
		case DBKIND_GUID_NAME:
			ndr_print_string(ndr, "vstring", r->vstring);
		break;

		default:
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cdbcolid(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cdbcolid *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ekind));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->uiid));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->vstring, r->ekind));
		NDR_CHECK(ndr_push_wsp_cdbcolid_opt_name(ndr, NDR_SCALARS, &r->vstring));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->vstring, r->ekind));
		NDR_CHECK(ndr_push_wsp_cdbcolid_opt_name(ndr, NDR_BUFFERS, &r->vstring));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cdbcolid(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cdbcolid *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ekind));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->uiid));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->vstring, r->ekind));
		NDR_CHECK(ndr_pull_wsp_cdbcolid_opt_name(ndr, NDR_SCALARS, &r->vstring));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->vstring, r->ekind));
		NDR_CHECK(ndr_pull_wsp_cdbcolid_opt_name(ndr, NDR_BUFFERS, &r->vstring));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cdbcolid(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cdbcolid *r)
{
	ndr_print_wsp_cdbcolid(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cdbcolid(struct ndr_print *ndr, const char *name, const struct wsp_cdbcolid *r)
{
	ndr_print_struct(ndr, name, "wsp_cdbcolid");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ekind", r->ekind);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
		ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_GUID(ndr, "guid", &r->guid);
	ndr_print_uint32(ndr, "uiid", r->uiid);
	ndr_print_set_switch_value(ndr, &r->vstring, r->ekind);
	ndr_print_wsp_cdbcolid_opt_name(ndr, "vstring", &r->vstring);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_header(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_header *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->msg));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->checksum));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulreserved2));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_header(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_header *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->msg));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->checksum));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulreserved2));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_header(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_header *r)
{
	ndr_print_wsp_header(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_header(struct ndr_print *ndr, const char *name, const struct wsp_header *r)
{
	ndr_print_struct(ndr, name, "wsp_header");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "msg", r->msg);
	ndr_print_uint32(ndr, "status", r->status);
	ndr_print_uint32(ndr, "checksum", r->checksum);
	ndr_print_uint32(ndr, "ulreserved2", r->ulreserved2);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cdbprop(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cdbprop *r)
{
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_push_align(ndr, 4));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dbpropid));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dbpropoptions));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dbpropstatus));
			NDR_CHECK(ndr_push_wsp_cdbcolid(ndr, NDR_SCALARS, &r->colid));
			NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->vvalue));
			NDR_CHECK(ndr_push_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
			NDR_CHECK(ndr_push_wsp_cdbcolid(ndr, NDR_BUFFERS, &r->colid));
			NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->vvalue));
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cdbprop(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cdbprop *r)
{
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_pull_align(ndr, 4));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dbpropid));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dbpropoptions));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dbpropstatus));
			NDR_CHECK(ndr_pull_wsp_cdbcolid(ndr, NDR_SCALARS, &r->colid));
			NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->vvalue));
			NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
			NDR_CHECK(ndr_pull_wsp_cdbcolid(ndr, NDR_BUFFERS, &r->colid));
			NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->vvalue));
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cdbprop(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cdbprop *r)
{
	ndr_print_wsp_cdbprop(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cdbprop(struct ndr_print *ndr, const char *name, const struct wsp_cdbprop *r)
{
	ndr_print_struct(ndr, name, "wsp_cdbprop");
	if (r == NULL) { ndr_print_null(ndr); return; }
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr->depth++;
		ndr_print_uint32(ndr, "dbpropid", r->dbpropid);
		ndr_print_uint32(ndr, "dbpropoptions", r->dbpropoptions);
		ndr_print_uint32(ndr, "dbpropstatus", r->dbpropstatus);
		ndr_print_wsp_cdbcolid(ndr, "colid", &r->colid);
		ndr_print_wsp_cbasestoragevariant(ndr, "vvalue", &r->vvalue);
		ndr->depth--;
		ndr->flags = _flags_save_STRUCT;
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cdbpropset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cdbpropset *r)
{
	uint32_t cntr_aprops_0;
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_push_align(ndr, 4));
			NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guidpropertyset));
			{
				libndr_flags _flags_save_DATA_BLOB = ndr->flags;
				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
				NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
				ndr->flags = _flags_save_DATA_BLOB;
			}
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cproperties));
			for (cntr_aprops_0 = 0; cntr_aprops_0 < (r->cproperties); cntr_aprops_0++) {
				NDR_CHECK(ndr_push_wsp_cdbprop(ndr, NDR_SCALARS, &r->aprops[cntr_aprops_0]));
			}
			NDR_CHECK(ndr_push_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
			for (cntr_aprops_0 = 0; cntr_aprops_0 < (r->cproperties); cntr_aprops_0++) {
				NDR_CHECK(ndr_push_wsp_cdbprop(ndr, NDR_BUFFERS, &r->aprops[cntr_aprops_0]));
			}
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cdbpropset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cdbpropset *r)
{
	uint32_t size_aprops_0 = 0;
	uint32_t cntr_aprops_0;
	TALLOC_CTX *_mem_save_aprops_0 = NULL;
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_pull_align(ndr, 4));
			NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guidpropertyset));
			{
				libndr_flags _flags_save_DATA_BLOB = ndr->flags;
				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
				NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
				ndr->flags = _flags_save_DATA_BLOB;
			}
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cproperties));
			size_aprops_0 = r->cproperties;
			NDR_PULL_ALLOC_N(ndr, r->aprops, size_aprops_0);
			_mem_save_aprops_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->aprops, 0);
			for (cntr_aprops_0 = 0; cntr_aprops_0 < (size_aprops_0); cntr_aprops_0++) {
				NDR_CHECK(ndr_pull_wsp_cdbprop(ndr, NDR_SCALARS, &r->aprops[cntr_aprops_0]));
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aprops_0, 0);
			NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
			size_aprops_0 = r->cproperties;
			_mem_save_aprops_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->aprops, 0);
			for (cntr_aprops_0 = 0; cntr_aprops_0 < (size_aprops_0); cntr_aprops_0++) {
				NDR_CHECK(ndr_pull_wsp_cdbprop(ndr, NDR_BUFFERS, &r->aprops[cntr_aprops_0]));
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aprops_0, 0);
			for (cntr_aprops_0 = 0; cntr_aprops_0 < (size_aprops_0); cntr_aprops_0++) {
			}
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cdbpropset(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cdbpropset *r)
{
	ndr_print_wsp_cdbpropset(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cdbpropset(struct ndr_print *ndr, const char *name, const struct wsp_cdbpropset *r)
{
	uint32_t cntr_aprops_0;
	ndr_print_struct(ndr, name, "wsp_cdbpropset");
	if (r == NULL) { ndr_print_null(ndr); return; }
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		ndr->depth++;
		ndr_print_GUID(ndr, "guidpropertyset", &r->guidpropertyset);
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
			ndr->flags = _flags_save_DATA_BLOB;
		}
		ndr_print_uint32(ndr, "cproperties", r->cproperties);
		ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "aprops", (uint32_t)(r->cproperties));
		ndr->depth++;
		for (cntr_aprops_0 = 0; cntr_aprops_0 < (r->cproperties); cntr_aprops_0++) {
			ndr_print_wsp_cdbprop(ndr, "aprops", &r->aprops[cntr_aprops_0]);
		}
		ndr->depth--;
		ndr->depth--;
		ndr->flags = _flags_save_STRUCT;
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_csort(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_csort *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pidcolumn));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dworder));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwindividual));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->locale));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_csort(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_csort *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pidcolumn));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dworder));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwindividual));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->locale));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_csort(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_csort *r)
{
	ndr_print_wsp_csort(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_csort(struct ndr_print *ndr, const char *name, const struct wsp_csort *r)
{
	ndr_print_struct(ndr, name, "wsp_csort");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "pidcolumn", r->pidcolumn);
	ndr_print_uint32(ndr, "dworder", r->dworder);
	ndr_print_uint32(ndr, "dwindividual", r->dwindividual);
	ndr_print_uint32(ndr, "locale", r->locale);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_csortset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_csortset *r)
{
	uint32_t cntr_sortarray_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
		for (cntr_sortarray_0 = 0; cntr_sortarray_0 < (r->count); cntr_sortarray_0++) {
			NDR_CHECK(ndr_push_wsp_csort(ndr, NDR_SCALARS, &r->sortarray[cntr_sortarray_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_csortset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_csortset *r)
{
	uint32_t size_sortarray_0 = 0;
	uint32_t cntr_sortarray_0;
	TALLOC_CTX *_mem_save_sortarray_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
		size_sortarray_0 = r->count;
		NDR_PULL_ALLOC_N(ndr, r->sortarray, size_sortarray_0);
		_mem_save_sortarray_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->sortarray, 0);
		for (cntr_sortarray_0 = 0; cntr_sortarray_0 < (size_sortarray_0); cntr_sortarray_0++) {
			NDR_CHECK(ndr_pull_wsp_csort(ndr, NDR_SCALARS, &r->sortarray[cntr_sortarray_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sortarray_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_csortset(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_csortset *r)
{
	ndr_print_wsp_csortset(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_csortset(struct ndr_print *ndr, const char *name, const struct wsp_csortset *r)
{
	uint32_t cntr_sortarray_0;
	ndr_print_struct(ndr, name, "wsp_csortset");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "count", r->count);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "sortarray", (uint32_t)(r->count));
	ndr->depth++;
	for (cntr_sortarray_0 = 0; cntr_sortarray_0 < (r->count); cntr_sortarray_0++) {
		ndr_print_wsp_csort(ndr, "sortarray", &r->sortarray[cntr_sortarray_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_connectin_propsets(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct connectin_propsets *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cpropsets));
		NDR_CHECK(ndr_push_wsp_cdbpropset(ndr, NDR_SCALARS, &r->propertyset1));
		NDR_CHECK(ndr_push_wsp_cdbpropset(ndr, NDR_SCALARS, &r->propertyset2));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_wsp_cdbpropset(ndr, NDR_BUFFERS, &r->propertyset1));
		NDR_CHECK(ndr_push_wsp_cdbpropset(ndr, NDR_BUFFERS, &r->propertyset2));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_connectin_propsets(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct connectin_propsets *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cpropsets));
		NDR_CHECK(ndr_pull_wsp_cdbpropset(ndr, NDR_SCALARS, &r->propertyset1));
		NDR_CHECK(ndr_pull_wsp_cdbpropset(ndr, NDR_SCALARS, &r->propertyset2));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_wsp_cdbpropset(ndr, NDR_BUFFERS, &r->propertyset1));
		NDR_CHECK(ndr_pull_wsp_cdbpropset(ndr, NDR_BUFFERS, &r->propertyset2));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_connectin_propsets(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct connectin_propsets *r)
{
	ndr_print_connectin_propsets(ndr, name, r);
}

_PUBLIC_ void ndr_print_connectin_propsets(struct ndr_print *ndr, const char *name, const struct connectin_propsets *r)
{
	ndr_print_struct(ndr, name, "connectin_propsets");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cpropsets", r->cpropsets);
	ndr_print_wsp_cdbpropset(ndr, "propertyset1", &r->propertyset1);
	ndr_print_wsp_cdbpropset(ndr, "propertyset2", &r->propertyset2);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_connectin_extpropsets(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct connectin_extpropsets *r)
{
	uint32_t cntr_apropertysets_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cextpropset));
		for (cntr_apropertysets_0 = 0; cntr_apropertysets_0 < (r->cextpropset); cntr_apropertysets_0++) {
			NDR_CHECK(ndr_push_wsp_cdbpropset(ndr, NDR_SCALARS, &r->apropertysets[cntr_apropertysets_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_apropertysets_0 = 0; cntr_apropertysets_0 < (r->cextpropset); cntr_apropertysets_0++) {
			NDR_CHECK(ndr_push_wsp_cdbpropset(ndr, NDR_BUFFERS, &r->apropertysets[cntr_apropertysets_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_connectin_extpropsets(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct connectin_extpropsets *r)
{
	uint32_t size_apropertysets_0 = 0;
	uint32_t cntr_apropertysets_0;
	TALLOC_CTX *_mem_save_apropertysets_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cextpropset));
		size_apropertysets_0 = r->cextpropset;
		NDR_PULL_ALLOC_N(ndr, r->apropertysets, size_apropertysets_0);
		_mem_save_apropertysets_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->apropertysets, 0);
		for (cntr_apropertysets_0 = 0; cntr_apropertysets_0 < (size_apropertysets_0); cntr_apropertysets_0++) {
			NDR_CHECK(ndr_pull_wsp_cdbpropset(ndr, NDR_SCALARS, &r->apropertysets[cntr_apropertysets_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apropertysets_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_apropertysets_0 = r->cextpropset;
		_mem_save_apropertysets_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->apropertysets, 0);
		for (cntr_apropertysets_0 = 0; cntr_apropertysets_0 < (size_apropertysets_0); cntr_apropertysets_0++) {
			NDR_CHECK(ndr_pull_wsp_cdbpropset(ndr, NDR_BUFFERS, &r->apropertysets[cntr_apropertysets_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apropertysets_0, 0);
		for (cntr_apropertysets_0 = 0; cntr_apropertysets_0 < (size_apropertysets_0); cntr_apropertysets_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_connectin_extpropsets(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct connectin_extpropsets *r)
{
	ndr_print_connectin_extpropsets(ndr, name, r);
}

_PUBLIC_ void ndr_print_connectin_extpropsets(struct ndr_print *ndr, const char *name, const struct connectin_extpropsets *r)
{
	uint32_t cntr_apropertysets_0;
	ndr_print_struct(ndr, name, "connectin_extpropsets");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cextpropset", r->cextpropset);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "apropertysets", (uint32_t)(r->cextpropset));
	ndr->depth++;
	for (cntr_apropertysets_0 = 0; cntr_apropertysets_0 < (r->cextpropset); cntr_apropertysets_0++) {
		ndr_print_wsp_cdbpropset(ndr, "apropertysets", &r->apropertysets[cntr_apropertysets_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmconnectin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmconnectin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->iclientversion));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fclientisremote));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbblob1));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->paddingcbblob2));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbblob2));
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->padding, 12));
		{
			libndr_flags _flags_save_string = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->machinename));
			ndr->flags = _flags_save_string;
		}
		{
			libndr_flags _flags_save_string = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
			NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->username));
			ndr->flags = _flags_save_string;
		}
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->propsets, r->cbblob1));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad2));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->extpropsets, r->cbblob2));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmconnectin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmconnectin *r)
{
	uint32_t size_padding_0 = 0;
	uint32_t size_propsets_0 = 0;
	uint32_t size_extpropsets_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->iclientversion));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fclientisremote));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbblob1));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->paddingcbblob2));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbblob2));
		size_padding_0 = 12;
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->padding, size_padding_0));
		{
			libndr_flags _flags_save_string = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->machinename));
			ndr->flags = _flags_save_string;
		}
		{
			libndr_flags _flags_save_string = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
			NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->username));
			ndr->flags = _flags_save_string;
		}
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		size_propsets_0 = r->cbblob1;
		NDR_PULL_ALLOC_N(ndr, r->propsets, size_propsets_0);
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->propsets, size_propsets_0));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad2));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		size_extpropsets_0 = r->cbblob2;
		NDR_PULL_ALLOC_N(ndr, r->extpropsets, size_extpropsets_0);
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->extpropsets, size_extpropsets_0));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmconnectin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmconnectin *r)
{
	ndr_print_wsp_cpmconnectin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmconnectin(struct ndr_print *ndr, const char *name, const struct wsp_cpmconnectin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmconnectin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "iclientversion", r->iclientversion);
	ndr_print_uint32(ndr, "fclientisremote", r->fclientisremote);
	ndr_print_uint32(ndr, "cbblob1", r->cbblob1);
	ndr_print_uint32(ndr, "paddingcbblob2", r->paddingcbblob2);
	ndr_print_uint32(ndr, "cbblob2", r->cbblob2);
	ndr_print_array_uint8(ndr, "padding", r->padding, 12);
	{
		libndr_flags _flags_save_string = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
		ndr_print_string(ndr, "machinename", r->machinename);
		ndr->flags = _flags_save_string;
	}
	{
		libndr_flags _flags_save_string = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
		ndr_print_string(ndr, "username", r->username);
		ndr->flags = _flags_save_string;
	}
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
		ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_array_uint8(ndr, "propsets", r->propsets, r->cbblob1);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
		ndr_print_DATA_BLOB(ndr, "_pad2", r->_pad2);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_array_uint8(ndr, "extpropsets", r->extpropsets, r->cbblob2);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_version_info(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct version_info *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwwinvermajor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwwinverminor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwnlsvermajor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwnlsverminor));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_version_info(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct version_info *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwwinvermajor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwwinverminor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwnlsvermajor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwnlsverminor));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_version_info(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct version_info *r)
{
	ndr_print_version_info(ndr, name, r);
}

_PUBLIC_ void ndr_print_version_info(struct ndr_print *ndr, const char *name, const struct version_info *r)
{
	ndr_print_struct(ndr, name, "version_info");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "reserved", r->reserved);
	ndr_print_uint32(ndr, "dwwinvermajor", r->dwwinvermajor);
	ndr_print_uint32(ndr, "dwwinverminor", r->dwwinverminor);
	ndr_print_uint32(ndr, "dwnlsvermajor", r->dwnlsvermajor);
	ndr_print_uint32(ndr, "dwnlsverminor", r->dwnlsverminor);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_version_dependant(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union version_dependant *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case WINDOWS_7: {
				NDR_CHECK(ndr_push_version_info(ndr, NDR_SCALARS, &r->version_info));
			break; }

			case WINDOWS_2008: {
				NDR_CHECK(ndr_push_version_info(ndr, NDR_SCALARS, &r->version_info));
			break; }

			default: {
				uint32_t cntr_reserved_0;
				for (cntr_reserved_0 = 0; cntr_reserved_0 < (4); cntr_reserved_0++) {
					NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved[cntr_reserved_0]));
				}
			break; }

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_version_dependant(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union version_dependant *r)
{
	uint32_t level;
	uint32_t size_reserved_0 = 0;
	uint32_t cntr_reserved_0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case WINDOWS_7: {
				NDR_CHECK(ndr_pull_version_info(ndr, NDR_SCALARS, &r->version_info));
			break; }

			case WINDOWS_2008: {
				NDR_CHECK(ndr_pull_version_info(ndr, NDR_SCALARS, &r->version_info));
			break; }

			default: {
				size_reserved_0 = 4;
				for (cntr_reserved_0 = 0; cntr_reserved_0 < (size_reserved_0); cntr_reserved_0++) {
					NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved[cntr_reserved_0]));
				}
			break; }

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_version_dependant(struct ndr_print *ndr, const char *name, const union version_dependant *r)
{
	uint32_t level;
	uint32_t cntr_reserved_0;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "version_dependant");
	switch (level) {
		case WINDOWS_7:
			ndr_print_version_info(ndr, "version_info", &r->version_info);
		break;

		case WINDOWS_2008:
			ndr_print_version_info(ndr, "version_info", &r->version_info);
		break;

		default:
			ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "reserved", (uint32_t)(4));
			ndr->depth++;
			for (cntr_reserved_0 = 0; cntr_reserved_0 < (4); cntr_reserved_0++) {
				ndr_print_uint32(ndr, "reserved", r->reserved[cntr_reserved_0]);
			}
			ndr->depth--;
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmconnectout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmconnectout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->server_version));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->version_dependant, r->server_version));
		NDR_CHECK(ndr_push_version_dependant(ndr, NDR_SCALARS, &r->version_dependant));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmconnectout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmconnectout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->server_version));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->version_dependant, r->server_version));
		NDR_CHECK(ndr_pull_version_dependant(ndr, NDR_SCALARS, &r->version_dependant));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmconnectout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmconnectout *r)
{
	ndr_print_wsp_cpmconnectout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmconnectout(struct ndr_print *ndr, const char *name, const struct wsp_cpmconnectout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmconnectout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "server_version", r->server_version);
	ndr_print_set_switch_value(ndr, &r->version_dependant, r->server_version);
	ndr_print_version_dependant(ndr, "version_dependant", &r->version_dependant);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccolumnset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccolumnset *r)
{
	uint32_t cntr_indexes_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
		for (cntr_indexes_0 = 0; cntr_indexes_0 < (r->count); cntr_indexes_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->indexes[cntr_indexes_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccolumnset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccolumnset *r)
{
	uint32_t size_indexes_0 = 0;
	uint32_t cntr_indexes_0;
	TALLOC_CTX *_mem_save_indexes_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
		size_indexes_0 = r->count;
		NDR_PULL_ALLOC_N(ndr, r->indexes, size_indexes_0);
		_mem_save_indexes_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->indexes, 0);
		for (cntr_indexes_0 = 0; cntr_indexes_0 < (size_indexes_0); cntr_indexes_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->indexes[cntr_indexes_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_indexes_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccolumnset(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccolumnset *r)
{
	ndr_print_wsp_ccolumnset(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccolumnset(struct ndr_print *ndr, const char *name, const struct wsp_ccolumnset *r)
{
	uint32_t cntr_indexes_0;
	ndr_print_struct(ndr, name, "wsp_ccolumnset");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "count", r->count);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "indexes", (uint32_t)(r->count));
	ndr->depth++;
	for (cntr_indexes_0 = 0; cntr_indexes_0 < (r->count); cntr_indexes_0++) {
		ndr_print_uint32(ndr, "indexes", r->indexes[cntr_indexes_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cnoderestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cnoderestriction *r)
{
	uint32_t cntr_panode_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cnode));
		for (cntr_panode_0 = 0; cntr_panode_0 < (r->cnode); cntr_panode_0++) {
			NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_SCALARS, &r->panode[cntr_panode_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_panode_0 = 0; cntr_panode_0 < (r->cnode); cntr_panode_0++) {
			NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_BUFFERS, &r->panode[cntr_panode_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cnoderestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cnoderestriction *r)
{
	uint32_t size_panode_0 = 0;
	uint32_t cntr_panode_0;
	TALLOC_CTX *_mem_save_panode_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cnode));
		size_panode_0 = r->cnode;
		NDR_PULL_ALLOC_N(ndr, r->panode, size_panode_0);
		_mem_save_panode_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->panode, 0);
		for (cntr_panode_0 = 0; cntr_panode_0 < (size_panode_0); cntr_panode_0++) {
			NDR_RECURSION_CHECK(ndr, 100);
			NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_SCALARS, &r->panode[cntr_panode_0]));
			NDR_RECURSION_UNWIND(ndr);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_panode_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_panode_0 = r->cnode;
		_mem_save_panode_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->panode, 0);
		for (cntr_panode_0 = 0; cntr_panode_0 < (size_panode_0); cntr_panode_0++) {
			NDR_RECURSION_CHECK(ndr, 100);
			NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_BUFFERS, &r->panode[cntr_panode_0]));
			NDR_RECURSION_UNWIND(ndr);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_panode_0, 0);
		for (cntr_panode_0 = 0; cntr_panode_0 < (size_panode_0); cntr_panode_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cnoderestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cnoderestriction *r)
{
	ndr_print_wsp_cnoderestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cnoderestriction(struct ndr_print *ndr, const char *name, const struct wsp_cnoderestriction *r)
{
	uint32_t cntr_panode_0;
	ndr_print_struct(ndr, name, "wsp_cnoderestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cnode", r->cnode);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "panode", (uint32_t)(r->cnode));
	ndr->depth++;
	for (cntr_panode_0 = 0; cntr_panode_0 < (r->cnode); cntr_panode_0++) {
		ndr_print_wsp_crestriction(ndr, "panode", &r->panode[cntr_panode_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_len_string_pair(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_len_string_pair *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vstring, r->len * 2, sizeof(uint8_t), CH_UTF16));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_len_string_pair(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_len_string_pair *r)
{
	uint32_t size_vstring_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
		size_vstring_0 = r->len * 2;
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vstring, size_vstring_0, sizeof(uint8_t), CH_UTF16));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_len_string_pair(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_len_string_pair *r)
{
	ndr_print_wsp_len_string_pair(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_len_string_pair(struct ndr_print *ndr, const char *name, const struct wsp_len_string_pair *r)
{
	ndr_print_struct(ndr, name, "wsp_len_string_pair");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "len", r->len);
	ndr_print_string(ndr, "vstring", r->vstring);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_propname_or_propid(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union wsp_propname_or_propid *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case PRSPEC_LPWSTR: {
				NDR_CHECK(ndr_push_wsp_len_string_pair(ndr, NDR_SCALARS, &r->propname));
			break; }

			case PRSPEC_PROPID: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->prspec));
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case PRSPEC_LPWSTR:
			break;

			case PRSPEC_PROPID:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_propname_or_propid(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union wsp_propname_or_propid *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case PRSPEC_LPWSTR: {
				NDR_CHECK(ndr_pull_wsp_len_string_pair(ndr, NDR_SCALARS, &r->propname));
			break; }

			case PRSPEC_PROPID: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->prspec));
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case PRSPEC_LPWSTR:
			break;

			case PRSPEC_PROPID:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_wsp_propname_or_propid(struct ndr_print *ndr, const char *name, const union wsp_propname_or_propid *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "wsp_propname_or_propid");
	switch (level) {
		case PRSPEC_LPWSTR:
			ndr_print_wsp_len_string_pair(ndr, "propname", &r->propname);
		break;

		case PRSPEC_PROPID:
			ndr_print_uint32(ndr, "prspec", r->prspec);
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_labeldata(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_labeldata *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cclabel));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vstring, r->cclabel * 2, sizeof(uint8_t), CH_UTF16));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_labeldata(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_labeldata *r)
{
	uint32_t size_vstring_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cclabel));
		size_vstring_0 = r->cclabel * 2;
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vstring, size_vstring_0, sizeof(uint8_t), CH_UTF16));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_labeldata(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_labeldata *r)
{
	ndr_print_wsp_labeldata(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_labeldata(struct ndr_print *ndr, const char *name, const struct wsp_labeldata *r)
{
	ndr_print_struct(ndr, name, "wsp_labeldata");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cclabel", r->cclabel);
	ndr_print_string(ndr, "vstring", r->vstring);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_opt_labeldata(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union opt_labeldata *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			case 1: {
				NDR_CHECK(ndr_push_wsp_labeldata(ndr, NDR_SCALARS, &r->data));
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			case 1:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_opt_labeldata(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union opt_labeldata *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			case 1: {
				NDR_CHECK(ndr_pull_wsp_labeldata(ndr, NDR_SCALARS, &r->data));
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			case 1:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_opt_labeldata(struct ndr_print *ndr, const char *name, const union opt_labeldata *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "opt_labeldata");
	switch (level) {
		case 0:
		break;

		case 1:
			ndr_print_wsp_labeldata(ndr, "data", &r->data);
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_rangeboundary(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_rangeboundary *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ultype));
		NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->prval));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->labelpresent));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->opt_data, r->labelpresent));
		NDR_CHECK(ndr_push_opt_labeldata(ndr, NDR_SCALARS, &r->opt_data));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->prval));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->opt_data, r->labelpresent));
		NDR_CHECK(ndr_push_opt_labeldata(ndr, NDR_BUFFERS, &r->opt_data));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_rangeboundary(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_rangeboundary *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ultype));
		NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->prval));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->labelpresent));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->opt_data, r->labelpresent));
		NDR_CHECK(ndr_pull_opt_labeldata(ndr, NDR_SCALARS, &r->opt_data));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->prval));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->opt_data, r->labelpresent));
		NDR_CHECK(ndr_pull_opt_labeldata(ndr, NDR_BUFFERS, &r->opt_data));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_rangeboundary(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_rangeboundary *r)
{
	ndr_print_wsp_rangeboundary(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_rangeboundary(struct ndr_print *ndr, const char *name, const struct wsp_rangeboundary *r)
{
	ndr_print_struct(ndr, name, "wsp_rangeboundary");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ultype", r->ultype);
	ndr_print_wsp_cbasestoragevariant(ndr, "prval", &r->prval);
	ndr_print_uint8(ndr, "labelpresent", r->labelpresent);
	ndr_print_set_switch_value(ndr, &r->opt_data, r->labelpresent);
	ndr_print_opt_labeldata(ndr, "opt_data", &r->opt_data);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crangecategspec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_crangecategspec *r)
{
	uint32_t cntr_arangebegin_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lcid));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->crange));
		for (cntr_arangebegin_0 = 0; cntr_arangebegin_0 < (r->crange + 1); cntr_arangebegin_0++) {
			NDR_CHECK(ndr_push_wsp_rangeboundary(ndr, NDR_SCALARS, &r->arangebegin[cntr_arangebegin_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_arangebegin_0 = 0; cntr_arangebegin_0 < (r->crange + 1); cntr_arangebegin_0++) {
			NDR_CHECK(ndr_push_wsp_rangeboundary(ndr, NDR_BUFFERS, &r->arangebegin[cntr_arangebegin_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crangecategspec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_crangecategspec *r)
{
	uint32_t size_arangebegin_0 = 0;
	uint32_t cntr_arangebegin_0;
	TALLOC_CTX *_mem_save_arangebegin_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lcid));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->crange));
		size_arangebegin_0 = r->crange + 1;
		NDR_PULL_ALLOC_N(ndr, r->arangebegin, size_arangebegin_0);
		_mem_save_arangebegin_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->arangebegin, 0);
		for (cntr_arangebegin_0 = 0; cntr_arangebegin_0 < (size_arangebegin_0); cntr_arangebegin_0++) {
			NDR_CHECK(ndr_pull_wsp_rangeboundary(ndr, NDR_SCALARS, &r->arangebegin[cntr_arangebegin_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_arangebegin_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_arangebegin_0 = r->crange + 1;
		_mem_save_arangebegin_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->arangebegin, 0);
		for (cntr_arangebegin_0 = 0; cntr_arangebegin_0 < (size_arangebegin_0); cntr_arangebegin_0++) {
			NDR_CHECK(ndr_pull_wsp_rangeboundary(ndr, NDR_BUFFERS, &r->arangebegin[cntr_arangebegin_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_arangebegin_0, 0);
		for (cntr_arangebegin_0 = 0; cntr_arangebegin_0 < (size_arangebegin_0); cntr_arangebegin_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_crangecategspec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_crangecategspec *r)
{
	ndr_print_wsp_crangecategspec(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_crangecategspec(struct ndr_print *ndr, const char *name, const struct wsp_crangecategspec *r)
{
	uint32_t cntr_arangebegin_0;
	ndr_print_struct(ndr, name, "wsp_crangecategspec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "lcid", r->lcid);
	ndr_print_uint32(ndr, "crange", r->crange);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "arangebegin", (uint32_t)(r->crange + 1));
	ndr->depth++;
	for (cntr_arangebegin_0 = 0; cntr_arangebegin_0 < (r->crange + 1); cntr_arangebegin_0++) {
		ndr_print_wsp_rangeboundary(ndr, "arangebegin", &r->arangebegin[cntr_arangebegin_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_opt_crangecatespec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union opt_crangecatespec *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_push_wsp_crangecategspec(ndr, NDR_SCALARS, &r->crangecategspec));
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			default:
				NDR_CHECK(ndr_push_wsp_crangecategspec(ndr, NDR_BUFFERS, &r->crangecategspec));
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_opt_crangecatespec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union opt_crangecatespec *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_pull_wsp_crangecategspec(ndr, NDR_SCALARS, &r->crangecategspec));
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			default:
				NDR_CHECK(ndr_pull_wsp_crangecategspec(ndr, NDR_BUFFERS, &r->crangecategspec));
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_opt_crangecatespec(struct ndr_print *ndr, const char *name, const union opt_crangecatespec *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "opt_crangecatespec");
	switch (level) {
		case 0:
		break;

		default:
			ndr_print_wsp_crangecategspec(ndr, "crangecategspec", &r->crangecategspec);
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccategspec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccategspec *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulcategtype));
		NDR_CHECK(ndr_push_wsp_csort(ndr, NDR_SCALARS, &r->sortkey));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->opt, r->ulcategtype));
		NDR_CHECK(ndr_push_opt_crangecatespec(ndr, NDR_SCALARS, &r->opt));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->opt, r->ulcategtype));
		NDR_CHECK(ndr_push_opt_crangecatespec(ndr, NDR_BUFFERS, &r->opt));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccategspec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccategspec *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulcategtype));
		NDR_CHECK(ndr_pull_wsp_csort(ndr, NDR_SCALARS, &r->sortkey));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->opt, r->ulcategtype));
		NDR_CHECK(ndr_pull_opt_crangecatespec(ndr, NDR_SCALARS, &r->opt));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->opt, r->ulcategtype));
		NDR_CHECK(ndr_pull_opt_crangecatespec(ndr, NDR_BUFFERS, &r->opt));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccategspec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccategspec *r)
{
	ndr_print_wsp_ccategspec(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccategspec(struct ndr_print *ndr, const char *name, const struct wsp_ccategspec *r)
{
	ndr_print_struct(ndr, name, "wsp_ccategspec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ulcategtype", r->ulcategtype);
	ndr_print_wsp_csort(ndr, "sortkey", &r->sortkey);
	ndr_print_set_switch_value(ndr, &r->opt, r->ulcategtype);
	ndr_print_opt_crangecatespec(ndr, "opt", &r->opt);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_repofdata(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_repofdata *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulmaxnumtoret));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idrepresentitive));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_repofdata(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_repofdata *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulmaxnumtoret));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idrepresentitive));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_repofdata(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_repofdata *r)
{
	ndr_print_wsp_repofdata(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_repofdata(struct ndr_print *ndr, const char *name, const struct wsp_repofdata *r)
{
	ndr_print_struct(ndr, name, "wsp_repofdata");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ulmaxnumtoret", r->ulmaxnumtoret);
	ndr_print_uint32(ndr, "idrepresentitive", r->idrepresentitive);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_opt_type_data(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union opt_type_data *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case DBAGGTTYPE_FIRST: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->firstmaxnumret));
			break; }

			case DBAGGTTYPE_BYFREQ: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->firstbyfreq));
			break; }

			case DBAGGTTYPE_REPRESENTATIVEOF: {
				NDR_CHECK(ndr_push_wsp_repofdata(ndr, NDR_SCALARS, &r->repofdata));
			break; }

			default: {
			break; }

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_opt_type_data(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union opt_type_data *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case DBAGGTTYPE_FIRST: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->firstmaxnumret));
			break; }

			case DBAGGTTYPE_BYFREQ: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->firstbyfreq));
			break; }

			case DBAGGTTYPE_REPRESENTATIVEOF: {
				NDR_CHECK(ndr_pull_wsp_repofdata(ndr, NDR_SCALARS, &r->repofdata));
			break; }

			default: {
			break; }

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_opt_type_data(struct ndr_print *ndr, const char *name, const union opt_type_data *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "opt_type_data");
	switch (level) {
		case DBAGGTTYPE_FIRST:
			ndr_print_uint32(ndr, "firstmaxnumret", r->firstmaxnumret);
		break;

		case DBAGGTTYPE_BYFREQ:
			ndr_print_uint32(ndr, "firstbyfreq", r->firstbyfreq);
		break;

		case DBAGGTTYPE_REPRESENTATIVEOF:
			ndr_print_wsp_repofdata(ndr, "repofdata", &r->repofdata);
		break;

		default:
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_caggregspec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_caggregspec *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->type));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccalias));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->alias, r->ccalias * 2, sizeof(uint8_t), CH_UTF16));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idcolumn));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->opt_data, r->type));
		NDR_CHECK(ndr_push_opt_type_data(ndr, NDR_SCALARS, &r->opt_data));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->opt_data, r->type));
		NDR_CHECK(ndr_push_opt_type_data(ndr, NDR_BUFFERS, &r->opt_data));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_caggregspec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_caggregspec *r)
{
	uint32_t size_alias_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->type));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccalias));
		size_alias_0 = r->ccalias * 2;
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->alias, size_alias_0, sizeof(uint8_t), CH_UTF16));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idcolumn));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->opt_data, r->type));
		NDR_CHECK(ndr_pull_opt_type_data(ndr, NDR_SCALARS, &r->opt_data));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->opt_data, r->type));
		NDR_CHECK(ndr_pull_opt_type_data(ndr, NDR_BUFFERS, &r->opt_data));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_caggregspec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_caggregspec *r)
{
	ndr_print_wsp_caggregspec(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_caggregspec(struct ndr_print *ndr, const char *name, const struct wsp_caggregspec *r)
{
	ndr_print_struct(ndr, name, "wsp_caggregspec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint8(ndr, "type", r->type);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_uint32(ndr, "ccalias", r->ccalias);
	ndr_print_string(ndr, "alias", r->alias);
	ndr_print_uint32(ndr, "idcolumn", r->idcolumn);
	ndr_print_set_switch_value(ndr, &r->opt_data, r->type);
	ndr_print_opt_type_data(ndr, "opt_data", &r->opt_data);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_caggregset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_caggregset *r)
{
	uint32_t cntr_aggregspecs_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccount));
		for (cntr_aggregspecs_0 = 0; cntr_aggregspecs_0 < (r->ccount); cntr_aggregspecs_0++) {
			NDR_CHECK(ndr_push_wsp_caggregspec(ndr, NDR_SCALARS, &r->aggregspecs[cntr_aggregspecs_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_aggregspecs_0 = 0; cntr_aggregspecs_0 < (r->ccount); cntr_aggregspecs_0++) {
			NDR_CHECK(ndr_push_wsp_caggregspec(ndr, NDR_BUFFERS, &r->aggregspecs[cntr_aggregspecs_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_caggregset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_caggregset *r)
{
	uint32_t size_aggregspecs_0 = 0;
	uint32_t cntr_aggregspecs_0;
	TALLOC_CTX *_mem_save_aggregspecs_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccount));
		size_aggregspecs_0 = r->ccount;
		NDR_PULL_ALLOC_N(ndr, r->aggregspecs, size_aggregspecs_0);
		_mem_save_aggregspecs_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->aggregspecs, 0);
		for (cntr_aggregspecs_0 = 0; cntr_aggregspecs_0 < (size_aggregspecs_0); cntr_aggregspecs_0++) {
			NDR_CHECK(ndr_pull_wsp_caggregspec(ndr, NDR_SCALARS, &r->aggregspecs[cntr_aggregspecs_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aggregspecs_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_aggregspecs_0 = r->ccount;
		_mem_save_aggregspecs_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->aggregspecs, 0);
		for (cntr_aggregspecs_0 = 0; cntr_aggregspecs_0 < (size_aggregspecs_0); cntr_aggregspecs_0++) {
			NDR_CHECK(ndr_pull_wsp_caggregspec(ndr, NDR_BUFFERS, &r->aggregspecs[cntr_aggregspecs_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aggregspecs_0, 0);
		for (cntr_aggregspecs_0 = 0; cntr_aggregspecs_0 < (size_aggregspecs_0); cntr_aggregspecs_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_caggregset(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_caggregset *r)
{
	ndr_print_wsp_caggregset(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_caggregset(struct ndr_print *ndr, const char *name, const struct wsp_caggregset *r)
{
	uint32_t cntr_aggregspecs_0;
	ndr_print_struct(ndr, name, "wsp_caggregset");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ccount", r->ccount);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "aggregspecs", (uint32_t)(r->ccount));
	ndr->depth++;
	for (cntr_aggregspecs_0 = 0; cntr_aggregspecs_0 < (r->ccount); cntr_aggregspecs_0++) {
		ndr_print_wsp_caggregspec(ndr, "aggregspecs", &r->aggregspecs[cntr_aggregspecs_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_caggregsortkey(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_caggregsortkey *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->order));
		NDR_CHECK(ndr_push_wsp_caggregspec(ndr, NDR_SCALARS, &r->columnspec));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_wsp_caggregspec(ndr, NDR_BUFFERS, &r->columnspec));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_caggregsortkey(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_caggregsortkey *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->order));
		NDR_CHECK(ndr_pull_wsp_caggregspec(ndr, NDR_SCALARS, &r->columnspec));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_wsp_caggregspec(ndr, NDR_BUFFERS, &r->columnspec));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_caggregsortkey(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_caggregsortkey *r)
{
	ndr_print_wsp_caggregsortkey(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_caggregsortkey(struct ndr_print *ndr, const char *name, const struct wsp_caggregsortkey *r)
{
	ndr_print_struct(ndr, name, "wsp_caggregsortkey");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "order", r->order);
	ndr_print_wsp_caggregspec(ndr, "columnspec", &r->columnspec);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_csortaggregset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_csortaggregset *r)
{
	uint32_t cntr_sortkeys_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccount));
		for (cntr_sortkeys_0 = 0; cntr_sortkeys_0 < (r->ccount); cntr_sortkeys_0++) {
			NDR_CHECK(ndr_push_wsp_caggregsortkey(ndr, NDR_SCALARS, &r->sortkeys[cntr_sortkeys_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_sortkeys_0 = 0; cntr_sortkeys_0 < (r->ccount); cntr_sortkeys_0++) {
			NDR_CHECK(ndr_push_wsp_caggregsortkey(ndr, NDR_BUFFERS, &r->sortkeys[cntr_sortkeys_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_csortaggregset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_csortaggregset *r)
{
	uint32_t size_sortkeys_0 = 0;
	uint32_t cntr_sortkeys_0;
	TALLOC_CTX *_mem_save_sortkeys_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccount));
		size_sortkeys_0 = r->ccount;
		NDR_PULL_ALLOC_N(ndr, r->sortkeys, size_sortkeys_0);
		_mem_save_sortkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->sortkeys, 0);
		for (cntr_sortkeys_0 = 0; cntr_sortkeys_0 < (size_sortkeys_0); cntr_sortkeys_0++) {
			NDR_CHECK(ndr_pull_wsp_caggregsortkey(ndr, NDR_SCALARS, &r->sortkeys[cntr_sortkeys_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sortkeys_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_sortkeys_0 = r->ccount;
		_mem_save_sortkeys_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->sortkeys, 0);
		for (cntr_sortkeys_0 = 0; cntr_sortkeys_0 < (size_sortkeys_0); cntr_sortkeys_0++) {
			NDR_CHECK(ndr_pull_wsp_caggregsortkey(ndr, NDR_BUFFERS, &r->sortkeys[cntr_sortkeys_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sortkeys_0, 0);
		for (cntr_sortkeys_0 = 0; cntr_sortkeys_0 < (size_sortkeys_0); cntr_sortkeys_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_csortaggregset(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_csortaggregset *r)
{
	ndr_print_wsp_csortaggregset(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_csortaggregset(struct ndr_print *ndr, const char *name, const struct wsp_csortaggregset *r)
{
	uint32_t cntr_sortkeys_0;
	ndr_print_struct(ndr, name, "wsp_csortaggregset");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ccount", r->ccount);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "sortkeys", (uint32_t)(r->ccount));
	ndr->depth++;
	for (cntr_sortkeys_0 = 0; cntr_sortkeys_0 < (r->ccount); cntr_sortkeys_0++) {
		ndr_print_wsp_caggregsortkey(ndr, "sortkeys", &r->sortkeys[cntr_sortkeys_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_opt_ingroupid(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union wsp_opt_ingroupid *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case 0x03: {
				NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->ingroupid));
			break; }

			default: {
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0x03:
				NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->ingroupid));
			break;

			default:
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_opt_ingroupid(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union wsp_opt_ingroupid *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case 0x03: {
				NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->ingroupid));
			break; }

			default: {
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0x03:
				NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->ingroupid));
			break;

			default:
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_wsp_opt_ingroupid(struct ndr_print *ndr, const char *name, const union wsp_opt_ingroupid *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "wsp_opt_ingroupid");
	switch (level) {
		case 0x03:
			ndr_print_wsp_cbasestoragevariant(ndr, "ingroupid", &r->ingroupid);
		break;

		default:
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cingroupsortaggregset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cingroupsortaggregset *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->type));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->opt_groupid, r->type));
		NDR_CHECK(ndr_push_wsp_opt_ingroupid(ndr, NDR_SCALARS, &r->opt_groupid));
		NDR_CHECK(ndr_push_wsp_csortset(ndr, NDR_SCALARS, &r->sortaggregset));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->opt_groupid, r->type));
		NDR_CHECK(ndr_push_wsp_opt_ingroupid(ndr, NDR_BUFFERS, &r->opt_groupid));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cingroupsortaggregset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cingroupsortaggregset *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->type));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->opt_groupid, r->type));
		NDR_CHECK(ndr_pull_wsp_opt_ingroupid(ndr, NDR_SCALARS, &r->opt_groupid));
		NDR_CHECK(ndr_pull_wsp_csortset(ndr, NDR_SCALARS, &r->sortaggregset));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->opt_groupid, r->type));
		NDR_CHECK(ndr_pull_wsp_opt_ingroupid(ndr, NDR_BUFFERS, &r->opt_groupid));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cingroupsortaggregset(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cingroupsortaggregset *r)
{
	ndr_print_wsp_cingroupsortaggregset(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cingroupsortaggregset(struct ndr_print *ndr, const char *name, const struct wsp_cingroupsortaggregset *r)
{
	ndr_print_struct(ndr, name, "wsp_cingroupsortaggregset");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint8(ndr, "type", r->type);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_set_switch_value(ndr, &r->opt_groupid, r->type);
	ndr_print_wsp_opt_ingroupid(ndr, "opt_groupid", &r->opt_groupid);
	ndr_print_wsp_csortset(ndr, "sortaggregset", &r->sortaggregset);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cingroupsortaggregsets(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cingroupsortaggregsets *r)
{
	uint32_t cntr_sortsets_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccount));
		for (cntr_sortsets_0 = 0; cntr_sortsets_0 < (r->ccount); cntr_sortsets_0++) {
			NDR_CHECK(ndr_push_wsp_cingroupsortaggregset(ndr, NDR_SCALARS, &r->sortsets[cntr_sortsets_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_sortsets_0 = 0; cntr_sortsets_0 < (r->ccount); cntr_sortsets_0++) {
			NDR_CHECK(ndr_push_wsp_cingroupsortaggregset(ndr, NDR_BUFFERS, &r->sortsets[cntr_sortsets_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cingroupsortaggregsets(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cingroupsortaggregsets *r)
{
	uint32_t size_sortsets_0 = 0;
	uint32_t cntr_sortsets_0;
	TALLOC_CTX *_mem_save_sortsets_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccount));
		size_sortsets_0 = r->ccount;
		NDR_PULL_ALLOC_N(ndr, r->sortsets, size_sortsets_0);
		_mem_save_sortsets_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->sortsets, 0);
		for (cntr_sortsets_0 = 0; cntr_sortsets_0 < (size_sortsets_0); cntr_sortsets_0++) {
			NDR_CHECK(ndr_pull_wsp_cingroupsortaggregset(ndr, NDR_SCALARS, &r->sortsets[cntr_sortsets_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sortsets_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_sortsets_0 = r->ccount;
		_mem_save_sortsets_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->sortsets, 0);
		for (cntr_sortsets_0 = 0; cntr_sortsets_0 < (size_sortsets_0); cntr_sortsets_0++) {
			NDR_CHECK(ndr_pull_wsp_cingroupsortaggregset(ndr, NDR_BUFFERS, &r->sortsets[cntr_sortsets_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sortsets_0, 0);
		for (cntr_sortsets_0 = 0; cntr_sortsets_0 < (size_sortsets_0); cntr_sortsets_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cingroupsortaggregsets(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cingroupsortaggregsets *r)
{
	ndr_print_wsp_cingroupsortaggregsets(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cingroupsortaggregsets(struct ndr_print *ndr, const char *name, const struct wsp_cingroupsortaggregsets *r)
{
	uint32_t cntr_sortsets_0;
	ndr_print_struct(ndr, name, "wsp_cingroupsortaggregsets");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ccount", r->ccount);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "sortsets", (uint32_t)(r->ccount));
	ndr->depth++;
	for (cntr_sortsets_0 = 0; cntr_sortsets_0 < (r->ccount); cntr_sortsets_0++) {
		ndr_print_wsp_cingroupsortaggregset(ndr, "sortsets", &r->sortsets[cntr_sortsets_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccategorizationspec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccategorizationspec *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_wsp_ccolumnset(ndr, NDR_SCALARS, &r->cscolumns));
		NDR_CHECK(ndr_push_wsp_ccategspec(ndr, NDR_SCALARS, &r->spec));
		NDR_CHECK(ndr_push_wsp_caggregset(ndr, NDR_SCALARS, &r->aggregset));
		NDR_CHECK(ndr_push_wsp_csortaggregset(ndr, NDR_SCALARS, &r->sortaggregset));
		NDR_CHECK(ndr_push_wsp_cingroupsortaggregsets(ndr, NDR_SCALARS, &r->ingroupsortaggset));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cmaxresults));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_wsp_ccategspec(ndr, NDR_BUFFERS, &r->spec));
		NDR_CHECK(ndr_push_wsp_caggregset(ndr, NDR_BUFFERS, &r->aggregset));
		NDR_CHECK(ndr_push_wsp_csortaggregset(ndr, NDR_BUFFERS, &r->sortaggregset));
		NDR_CHECK(ndr_push_wsp_cingroupsortaggregsets(ndr, NDR_BUFFERS, &r->ingroupsortaggset));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccategorizationspec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccategorizationspec *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_wsp_ccolumnset(ndr, NDR_SCALARS, &r->cscolumns));
		NDR_CHECK(ndr_pull_wsp_ccategspec(ndr, NDR_SCALARS, &r->spec));
		NDR_CHECK(ndr_pull_wsp_caggregset(ndr, NDR_SCALARS, &r->aggregset));
		NDR_CHECK(ndr_pull_wsp_csortaggregset(ndr, NDR_SCALARS, &r->sortaggregset));
		NDR_CHECK(ndr_pull_wsp_cingroupsortaggregsets(ndr, NDR_SCALARS, &r->ingroupsortaggset));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cmaxresults));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_wsp_ccategspec(ndr, NDR_BUFFERS, &r->spec));
		NDR_CHECK(ndr_pull_wsp_caggregset(ndr, NDR_BUFFERS, &r->aggregset));
		NDR_CHECK(ndr_pull_wsp_csortaggregset(ndr, NDR_BUFFERS, &r->sortaggregset));
		NDR_CHECK(ndr_pull_wsp_cingroupsortaggregsets(ndr, NDR_BUFFERS, &r->ingroupsortaggset));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccategorizationspec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccategorizationspec *r)
{
	ndr_print_wsp_ccategorizationspec(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccategorizationspec(struct ndr_print *ndr, const char *name, const struct wsp_ccategorizationspec *r)
{
	ndr_print_struct(ndr, name, "wsp_ccategorizationspec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_wsp_ccolumnset(ndr, "cscolumns", &r->cscolumns);
	ndr_print_wsp_ccategspec(ndr, "spec", &r->spec);
	ndr_print_wsp_caggregset(ndr, "aggregset", &r->aggregset);
	ndr_print_wsp_csortaggregset(ndr, "sortaggregset", &r->sortaggregset);
	ndr_print_wsp_cingroupsortaggregsets(ndr, "ingroupsortaggset", &r->ingroupsortaggset);
	ndr_print_uint32(ndr, "cmaxresults", r->cmaxresults);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccategorizationset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccategorizationset *r)
{
	uint32_t cntr_categories_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
		for (cntr_categories_0 = 0; cntr_categories_0 < (r->size); cntr_categories_0++) {
			NDR_CHECK(ndr_push_wsp_ccategorizationspec(ndr, NDR_SCALARS, &r->categories[cntr_categories_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_categories_0 = 0; cntr_categories_0 < (r->size); cntr_categories_0++) {
			NDR_CHECK(ndr_push_wsp_ccategorizationspec(ndr, NDR_BUFFERS, &r->categories[cntr_categories_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccategorizationset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccategorizationset *r)
{
	uint32_t size_categories_0 = 0;
	uint32_t cntr_categories_0;
	TALLOC_CTX *_mem_save_categories_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
		size_categories_0 = r->size;
		NDR_PULL_ALLOC_N(ndr, r->categories, size_categories_0);
		_mem_save_categories_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->categories, 0);
		for (cntr_categories_0 = 0; cntr_categories_0 < (size_categories_0); cntr_categories_0++) {
			NDR_CHECK(ndr_pull_wsp_ccategorizationspec(ndr, NDR_SCALARS, &r->categories[cntr_categories_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_categories_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_categories_0 = r->size;
		_mem_save_categories_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->categories, 0);
		for (cntr_categories_0 = 0; cntr_categories_0 < (size_categories_0); cntr_categories_0++) {
			NDR_CHECK(ndr_pull_wsp_ccategorizationspec(ndr, NDR_BUFFERS, &r->categories[cntr_categories_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_categories_0, 0);
		for (cntr_categories_0 = 0; cntr_categories_0 < (size_categories_0); cntr_categories_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccategorizationset(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccategorizationset *r)
{
	ndr_print_wsp_ccategorizationset(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccategorizationset(struct ndr_print *ndr, const char *name, const struct wsp_ccategorizationset *r)
{
	uint32_t cntr_categories_0;
	ndr_print_struct(ndr, name, "wsp_ccategorizationset");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "size", r->size);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "categories", (uint32_t)(r->size));
	ndr->depth++;
	for (cntr_categories_0 = 0; cntr_categories_0 < (r->size); cntr_categories_0++) {
		ndr_print_wsp_ccategorizationspec(ndr, "categories", &r->categories[cntr_categories_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cfullpropspec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cfullpropspec *r)
{
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_push_align(ndr, 4));
			{
				libndr_flags _flags_save_DATA_BLOB = ndr->flags;
				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
				NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
				ndr->flags = _flags_save_DATA_BLOB;
			}
			NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guidpropset));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulkind));
			NDR_CHECK(ndr_push_set_switch_value(ndr, &r->name_or_id, r->ulkind));
			NDR_CHECK(ndr_push_wsp_propname_or_propid(ndr, NDR_SCALARS, &r->name_or_id));
			NDR_CHECK(ndr_push_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cfullpropspec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cfullpropspec *r)
{
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_pull_align(ndr, 4));
			{
				libndr_flags _flags_save_DATA_BLOB = ndr->flags;
				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
				NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
				ndr->flags = _flags_save_DATA_BLOB;
			}
			NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guidpropset));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulkind));
			NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->name_or_id, r->ulkind));
			NDR_CHECK(ndr_pull_wsp_propname_or_propid(ndr, NDR_SCALARS, &r->name_or_id));
			NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cfullpropspec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cfullpropspec *r)
{
	ndr_print_wsp_cfullpropspec(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cfullpropspec(struct ndr_print *ndr, const char *name, const struct wsp_cfullpropspec *r)
{
	ndr_print_struct(ndr, name, "wsp_cfullpropspec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		ndr->depth++;
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
			ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
			ndr->flags = _flags_save_DATA_BLOB;
		}
		ndr_print_GUID(ndr, "guidpropset", &r->guidpropset);
		ndr_print_uint32(ndr, "ulkind", r->ulkind);
		ndr_print_set_switch_value(ndr, &r->name_or_id, r->ulkind);
		ndr_print_wsp_propname_or_propid(ndr, "name_or_id", &r->name_or_id);
		ndr->depth--;
		ndr->flags = _flags_save_STRUCT;
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccontentrestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccontentrestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cc));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pwcsphrase, r->cc * 2, sizeof(uint8_t), CH_UTF16));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad2));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lcid));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulgeneratemethod));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccontentrestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccontentrestriction *r)
{
	uint32_t size_pwcsphrase_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cc));
		size_pwcsphrase_0 = r->cc * 2;
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pwcsphrase, size_pwcsphrase_0, sizeof(uint8_t), CH_UTF16));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad2));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lcid));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulgeneratemethod));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccontentrestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccontentrestriction *r)
{
	ndr_print_wsp_ccontentrestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccontentrestriction(struct ndr_print *ndr, const char *name, const struct wsp_ccontentrestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_ccontentrestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_wsp_cfullpropspec(ndr, "property", &r->property);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_uint32(ndr, "cc", r->cc);
	ndr_print_string(ndr, "pwcsphrase", r->pwcsphrase);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "_pad2", r->_pad2);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_uint32(ndr, "lcid", r->lcid);
	ndr_print_uint32(ndr, "ulgeneratemethod", r->ulgeneratemethod);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpropertyrestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpropertyrestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->relop));
		NDR_CHECK(ndr_push_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->prval));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lcid));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->prval));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpropertyrestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpropertyrestriction *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->relop));
		NDR_CHECK(ndr_pull_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->prval));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lcid));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->prval));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpropertyrestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpropertyrestriction *r)
{
	ndr_print_wsp_cpropertyrestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpropertyrestriction(struct ndr_print *ndr, const char *name, const struct wsp_cpropertyrestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_cpropertyrestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "relop", r->relop);
	ndr_print_wsp_cfullpropspec(ndr, "property", &r->property);
	ndr_print_wsp_cbasestoragevariant(ndr, "prval", &r->prval);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_uint32(ndr, "lcid", r->lcid);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cnatlanguagerestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cnatlanguagerestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cc));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pwcsphrase, r->cc * 2, sizeof(uint8_t), CH_UTF16));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad2));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lcid));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cnatlanguagerestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cnatlanguagerestriction *r)
{
	uint32_t size_pwcsphrase_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cc));
		size_pwcsphrase_0 = r->cc * 2;
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pwcsphrase, size_pwcsphrase_0, sizeof(uint8_t), CH_UTF16));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad2));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lcid));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cnatlanguagerestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cnatlanguagerestriction *r)
{
	ndr_print_wsp_cnatlanguagerestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cnatlanguagerestriction(struct ndr_print *ndr, const char *name, const struct wsp_cnatlanguagerestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_cnatlanguagerestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_wsp_cfullpropspec(ndr, "property", &r->property);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_uint32(ndr, "cc", r->cc);
	ndr_print_string(ndr, "pwcsphrase", r->pwcsphrase);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "_pad2", r->_pad2);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_uint32(ndr, "lcid", r->lcid);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_wrap_crestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_wrap_crestriction *r)
{
	uint32_t cntr_restriction_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		for (cntr_restriction_0 = 0; cntr_restriction_0 < (SINGLE_ITEM); cntr_restriction_0++) {
			NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_SCALARS, &r->restriction[cntr_restriction_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_restriction_0 = 0; cntr_restriction_0 < (SINGLE_ITEM); cntr_restriction_0++) {
			NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_BUFFERS, &r->restriction[cntr_restriction_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_wrap_crestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_wrap_crestriction *r)
{
	uint32_t size_restriction_0 = 0;
	uint32_t cntr_restriction_0;
	TALLOC_CTX *_mem_save_restriction_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		size_restriction_0 = SINGLE_ITEM;
		NDR_PULL_ALLOC_N(ndr, r->restriction, size_restriction_0);
		_mem_save_restriction_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->restriction, 0);
		for (cntr_restriction_0 = 0; cntr_restriction_0 < (size_restriction_0); cntr_restriction_0++) {
			NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_SCALARS, &r->restriction[cntr_restriction_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restriction_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_restriction_0 = SINGLE_ITEM;
		_mem_save_restriction_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->restriction, 0);
		for (cntr_restriction_0 = 0; cntr_restriction_0 < (size_restriction_0); cntr_restriction_0++) {
			NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_BUFFERS, &r->restriction[cntr_restriction_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restriction_0, 0);
		for (cntr_restriction_0 = 0; cntr_restriction_0 < (size_restriction_0); cntr_restriction_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_wrap_crestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_wrap_crestriction *r)
{
	ndr_print_wsp_wrap_crestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_wrap_crestriction(struct ndr_print *ndr, const char *name, const struct wsp_wrap_crestriction *r)
{
	uint32_t cntr_restriction_0;
	ndr_print_struct(ndr, name, "wsp_wrap_crestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "restriction", (uint32_t)(SINGLE_ITEM));
	ndr->depth++;
	for (cntr_restriction_0 = 0; cntr_restriction_0 < (SINGLE_ITEM); cntr_restriction_0++) {
		ndr_print_wsp_crestriction(ndr, "restriction", &r->restriction[cntr_restriction_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccoercionrestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccoercionrestriction *r)
{
	uint32_t cntr_childres_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ffvalue));
		for (cntr_childres_0 = 0; cntr_childres_0 < (SINGLE_ITEM); cntr_childres_0++) {
			NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_SCALARS, &r->childres[cntr_childres_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_childres_0 = 0; cntr_childres_0 < (SINGLE_ITEM); cntr_childres_0++) {
			NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_BUFFERS, &r->childres[cntr_childres_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccoercionrestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccoercionrestriction *r)
{
	uint32_t size_childres_0 = 0;
	uint32_t cntr_childres_0;
	TALLOC_CTX *_mem_save_childres_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ffvalue));
		size_childres_0 = SINGLE_ITEM;
		NDR_PULL_ALLOC_N(ndr, r->childres, size_childres_0);
		_mem_save_childres_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->childres, 0);
		for (cntr_childres_0 = 0; cntr_childres_0 < (size_childres_0); cntr_childres_0++) {
			NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_SCALARS, &r->childres[cntr_childres_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_childres_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_childres_0 = SINGLE_ITEM;
		_mem_save_childres_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->childres, 0);
		for (cntr_childres_0 = 0; cntr_childres_0 < (size_childres_0); cntr_childres_0++) {
			NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_BUFFERS, &r->childres[cntr_childres_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_childres_0, 0);
		for (cntr_childres_0 = 0; cntr_childres_0 < (size_childres_0); cntr_childres_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccoercionrestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccoercionrestriction *r)
{
	ndr_print_wsp_ccoercionrestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccoercionrestriction(struct ndr_print *ndr, const char *name, const struct wsp_ccoercionrestriction *r)
{
	uint32_t cntr_childres_0;
	ndr_print_struct(ndr, name, "wsp_ccoercionrestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ffvalue", r->ffvalue);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "childres", (uint32_t)(SINGLE_ITEM));
	ndr->depth++;
	for (cntr_childres_0 = 0; cntr_childres_0 < (SINGLE_ITEM); cntr_childres_0++) {
		ndr_print_wsp_crestriction(ndr, "childres", &r->childres[cntr_childres_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cvectorrestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cvectorrestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pres));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->padding));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->uirankmethod));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cvectorrestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cvectorrestriction *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pres));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->padding));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->uirankmethod));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cvectorrestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cvectorrestriction *r)
{
	ndr_print_wsp_cvectorrestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cvectorrestriction(struct ndr_print *ndr, const char *name, const struct wsp_cvectorrestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_cvectorrestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "pres", r->pres);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "padding", r->padding);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_uint32(ndr, "uirankmethod", r->uirankmethod);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cscoperestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cscoperestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cclowerpath));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->lowerpath, r->cclowerpath * 2, sizeof(uint8_t), CH_UTF16));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->padding));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->frecursive));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fvirtual));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cscoperestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cscoperestriction *r)
{
	uint32_t size_lowerpath_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cclowerpath));
		size_lowerpath_0 = r->cclowerpath * 2;
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->lowerpath, size_lowerpath_0, sizeof(uint8_t), CH_UTF16));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->padding));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->frecursive));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fvirtual));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cscoperestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cscoperestriction *r)
{
	ndr_print_wsp_cscoperestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cscoperestriction(struct ndr_print *ndr, const char *name, const struct wsp_cscoperestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_cscoperestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cclowerpath", r->cclowerpath);
	ndr_print_string(ndr, "lowerpath", r->lowerpath);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "padding", r->padding);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr_print_uint32(ndr, "length", r->length);
	ndr_print_uint32(ndr, "frecursive", r->frecursive);
	ndr_print_uint32(ndr, "fvirtual", r->fvirtual);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_creusewhere(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_creusewhere *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->whereid));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_creusewhere(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_creusewhere *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->whereid));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_creusewhere(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_creusewhere *r)
{
	ndr_print_wsp_creusewhere(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_creusewhere(struct ndr_print *ndr, const char *name, const struct wsp_creusewhere *r)
{
	ndr_print_struct(ndr, name, "wsp_creusewhere");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "whereid", r->whereid);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cinternalpropertyrestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cinternalpropertyrestriction *r)
{
	uint32_t cntr_nextrestriction_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->relop));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
		NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->prval));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lcid));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->restrictionpresent));
		for (cntr_nextrestriction_0 = 0; cntr_nextrestriction_0 < (SINGLE_ITEM); cntr_nextrestriction_0++) {
			NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_SCALARS, &r->nextrestriction[cntr_nextrestriction_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->prval));
		for (cntr_nextrestriction_0 = 0; cntr_nextrestriction_0 < (SINGLE_ITEM); cntr_nextrestriction_0++) {
			NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_BUFFERS, &r->nextrestriction[cntr_nextrestriction_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cinternalpropertyrestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cinternalpropertyrestriction *r)
{
	uint32_t size_nextrestriction_0 = 0;
	uint32_t cntr_nextrestriction_0;
	TALLOC_CTX *_mem_save_nextrestriction_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->relop));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
		NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->prval));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lcid));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->restrictionpresent));
		size_nextrestriction_0 = SINGLE_ITEM;
		NDR_PULL_ALLOC_N(ndr, r->nextrestriction, size_nextrestriction_0);
		_mem_save_nextrestriction_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->nextrestriction, 0);
		for (cntr_nextrestriction_0 = 0; cntr_nextrestriction_0 < (size_nextrestriction_0); cntr_nextrestriction_0++) {
			NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_SCALARS, &r->nextrestriction[cntr_nextrestriction_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nextrestriction_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->prval));
		size_nextrestriction_0 = SINGLE_ITEM;
		_mem_save_nextrestriction_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->nextrestriction, 0);
		for (cntr_nextrestriction_0 = 0; cntr_nextrestriction_0 < (size_nextrestriction_0); cntr_nextrestriction_0++) {
			NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_BUFFERS, &r->nextrestriction[cntr_nextrestriction_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nextrestriction_0, 0);
		for (cntr_nextrestriction_0 = 0; cntr_nextrestriction_0 < (size_nextrestriction_0); cntr_nextrestriction_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cinternalpropertyrestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cinternalpropertyrestriction *r)
{
	ndr_print_wsp_cinternalpropertyrestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cinternalpropertyrestriction(struct ndr_print *ndr, const char *name, const struct wsp_cinternalpropertyrestriction *r)
{
	uint32_t cntr_nextrestriction_0;
	ndr_print_struct(ndr, name, "wsp_cinternalpropertyrestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "relop", r->relop);
	ndr_print_uint32(ndr, "pid", r->pid);
	ndr_print_wsp_cbasestoragevariant(ndr, "prval", &r->prval);
	ndr_print_uint32(ndr, "lcid", r->lcid);
	ndr_print_uint8(ndr, "restrictionpresent", r->restrictionpresent);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "nextrestriction", (uint32_t)(SINGLE_ITEM));
	ndr->depth++;
	for (cntr_nextrestriction_0 = 0; cntr_nextrestriction_0 < (SINGLE_ITEM); cntr_nextrestriction_0++) {
		ndr_print_wsp_crestriction(ndr, "nextrestriction", &r->nextrestriction[cntr_nextrestriction_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cprobrestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cprobrestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fik1));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fik2));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fik3));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flb));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cfeedbackdoc));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->probquerypid));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cprobrestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cprobrestriction *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fik1));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fik2));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fik3));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flb));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cfeedbackdoc));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->probquerypid));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cprobrestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cprobrestriction *r)
{
	ndr_print_wsp_cprobrestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cprobrestriction(struct ndr_print *ndr, const char *name, const struct wsp_cprobrestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_cprobrestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_wsp_cfullpropspec(ndr, "property", &r->property);
	ndr_print_uint32(ndr, "fik1", r->fik1);
	ndr_print_uint32(ndr, "fik2", r->fik2);
	ndr_print_uint32(ndr, "fik3", r->fik3);
	ndr_print_uint32(ndr, "flb", r->flb);
	ndr_print_uint32(ndr, "cfeedbackdoc", r->cfeedbackdoc);
	ndr_print_uint32(ndr, "probquerypid", r->probquerypid);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cfeedbackrestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cfeedbackrestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->feedbackdoc));
		NDR_CHECK(ndr_push_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cfeedbackrestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cfeedbackrestriction *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->feedbackdoc));
		NDR_CHECK(ndr_pull_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->property));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cfeedbackrestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cfeedbackrestriction *r)
{
	ndr_print_wsp_cfeedbackrestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cfeedbackrestriction(struct ndr_print *ndr, const char *name, const struct wsp_cfeedbackrestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_cfeedbackrestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "feedbackdoc", r->feedbackdoc);
	ndr_print_wsp_cfullpropspec(ndr, "property", &r->property);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_creldocrestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_creldocrestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->vdocument));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->vdocument));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_creldocrestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_creldocrestriction *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_SCALARS, &r->vdocument));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_wsp_cbasestoragevariant(ndr, NDR_BUFFERS, &r->vdocument));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_creldocrestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_creldocrestriction *r)
{
	ndr_print_wsp_creldocrestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_creldocrestriction(struct ndr_print *ndr, const char *name, const struct wsp_creldocrestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_creldocrestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_wsp_cbasestoragevariant(ndr, "vdocument", &r->vdocument);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crestrictions(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union wsp_crestrictions *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case RTNONE: {
			break; }

			case RTNOT: {
				NDR_CHECK(ndr_push_wsp_wrap_crestriction(ndr, NDR_SCALARS, &r->restriction));
			break; }

			case RTAND: {
				NDR_CHECK(ndr_push_wsp_cnoderestriction(ndr, NDR_SCALARS, &r->cnoderestriction));
			break; }

			case RTOR: {
				NDR_CHECK(ndr_push_wsp_cnoderestriction(ndr, NDR_SCALARS, &r->orcnoderestriction));
			break; }

			case RTCONTENT: {
				NDR_CHECK(ndr_push_wsp_ccontentrestriction(ndr, NDR_SCALARS, &r->ccontentrestriction));
			break; }

			case RTPROPERTY: {
				NDR_CHECK(ndr_push_wsp_cpropertyrestriction(ndr, NDR_SCALARS, &r->cpropertyrestriction));
			break; }

			case RTPROXIMITY: {
				NDR_CHECK(ndr_push_wsp_cnoderestriction(ndr, NDR_SCALARS, &r->proximityrestriction));
			break; }

			case RTVECTOR: {
				NDR_CHECK(ndr_push_wsp_cvectorrestriction(ndr, NDR_SCALARS, &r->vectorrestriction));
			break; }

			case RTNATLANGUAGE: {
				NDR_CHECK(ndr_push_wsp_cnatlanguagerestriction(ndr, NDR_SCALARS, &r->cnatlanguagerestriction));
			break; }

			case RTSCOPE: {
				NDR_CHECK(ndr_push_wsp_cscoperestriction(ndr, NDR_SCALARS, &r->scoperestriction));
			break; }

			case RTREUSEWHERE: {
				NDR_CHECK(ndr_push_wsp_creusewhere(ndr, NDR_SCALARS, &r->reusewhere));
			break; }

			case RTINTERNALPROP: {
				NDR_CHECK(ndr_push_wsp_cinternalpropertyrestriction(ndr, NDR_SCALARS, &r->internalpropertyrestriction));
			break; }

			case RTPHRASE: {
				NDR_CHECK(ndr_push_wsp_cnoderestriction(ndr, NDR_SCALARS, &r->phraserestriction));
			break; }

			case RTCOERCE_ABSOLUTE: {
				NDR_CHECK(ndr_push_wsp_ccoercionrestriction(ndr, NDR_SCALARS, &r->ccoercionrestriction_abs));
			break; }

			case RTCOERCE_ADD: {
				NDR_CHECK(ndr_push_wsp_ccoercionrestriction(ndr, NDR_SCALARS, &r->ccoercionrestriction_add));
			break; }

			case RTCOERCE_MULTIPLY: {
				NDR_CHECK(ndr_push_wsp_ccoercionrestriction(ndr, NDR_SCALARS, &r->ccoercionrestriction_mul));
			break; }

			case RTPROB: {
				NDR_CHECK(ndr_push_wsp_cprobrestriction(ndr, NDR_SCALARS, &r->probrestriction));
			break; }

			case RTFEEDBACK: {
				NDR_CHECK(ndr_push_wsp_cfeedbackrestriction(ndr, NDR_SCALARS, &r->feedbackrestriction));
			break; }

			case RTRELDOC: {
				NDR_CHECK(ndr_push_wsp_creldocrestriction(ndr, NDR_SCALARS, &r->reldocrestriction));
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case RTNONE:
			break;

			case RTNOT:
				NDR_CHECK(ndr_push_wsp_wrap_crestriction(ndr, NDR_BUFFERS, &r->restriction));
			break;

			case RTAND:
				NDR_CHECK(ndr_push_wsp_cnoderestriction(ndr, NDR_BUFFERS, &r->cnoderestriction));
			break;

			case RTOR:
				NDR_CHECK(ndr_push_wsp_cnoderestriction(ndr, NDR_BUFFERS, &r->orcnoderestriction));
			break;

			case RTCONTENT:
			break;

			case RTPROPERTY:
				NDR_CHECK(ndr_push_wsp_cpropertyrestriction(ndr, NDR_BUFFERS, &r->cpropertyrestriction));
			break;

			case RTPROXIMITY:
				NDR_CHECK(ndr_push_wsp_cnoderestriction(ndr, NDR_BUFFERS, &r->proximityrestriction));
			break;

			case RTVECTOR:
			break;

			case RTNATLANGUAGE:
			break;

			case RTSCOPE:
			break;

			case RTREUSEWHERE:
			break;

			case RTINTERNALPROP:
				NDR_CHECK(ndr_push_wsp_cinternalpropertyrestriction(ndr, NDR_BUFFERS, &r->internalpropertyrestriction));
			break;

			case RTPHRASE:
				NDR_CHECK(ndr_push_wsp_cnoderestriction(ndr, NDR_BUFFERS, &r->phraserestriction));
			break;

			case RTCOERCE_ABSOLUTE:
				NDR_CHECK(ndr_push_wsp_ccoercionrestriction(ndr, NDR_BUFFERS, &r->ccoercionrestriction_abs));
			break;

			case RTCOERCE_ADD:
				NDR_CHECK(ndr_push_wsp_ccoercionrestriction(ndr, NDR_BUFFERS, &r->ccoercionrestriction_add));
			break;

			case RTCOERCE_MULTIPLY:
				NDR_CHECK(ndr_push_wsp_ccoercionrestriction(ndr, NDR_BUFFERS, &r->ccoercionrestriction_mul));
			break;

			case RTPROB:
			break;

			case RTFEEDBACK:
			break;

			case RTRELDOC:
				NDR_CHECK(ndr_push_wsp_creldocrestriction(ndr, NDR_BUFFERS, &r->reldocrestriction));
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crestrictions(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union wsp_crestrictions *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case RTNONE: {
			break; }

			case RTNOT: {
				NDR_CHECK(ndr_pull_wsp_wrap_crestriction(ndr, NDR_SCALARS, &r->restriction));
			break; }

			case RTAND: {
				NDR_CHECK(ndr_pull_wsp_cnoderestriction(ndr, NDR_SCALARS, &r->cnoderestriction));
			break; }

			case RTOR: {
				NDR_CHECK(ndr_pull_wsp_cnoderestriction(ndr, NDR_SCALARS, &r->orcnoderestriction));
			break; }

			case RTCONTENT: {
				NDR_CHECK(ndr_pull_wsp_ccontentrestriction(ndr, NDR_SCALARS, &r->ccontentrestriction));
			break; }

			case RTPROPERTY: {
				NDR_CHECK(ndr_pull_wsp_cpropertyrestriction(ndr, NDR_SCALARS, &r->cpropertyrestriction));
			break; }

			case RTPROXIMITY: {
				NDR_CHECK(ndr_pull_wsp_cnoderestriction(ndr, NDR_SCALARS, &r->proximityrestriction));
			break; }

			case RTVECTOR: {
				NDR_CHECK(ndr_pull_wsp_cvectorrestriction(ndr, NDR_SCALARS, &r->vectorrestriction));
			break; }

			case RTNATLANGUAGE: {
				NDR_CHECK(ndr_pull_wsp_cnatlanguagerestriction(ndr, NDR_SCALARS, &r->cnatlanguagerestriction));
			break; }

			case RTSCOPE: {
				NDR_CHECK(ndr_pull_wsp_cscoperestriction(ndr, NDR_SCALARS, &r->scoperestriction));
			break; }

			case RTREUSEWHERE: {
				NDR_CHECK(ndr_pull_wsp_creusewhere(ndr, NDR_SCALARS, &r->reusewhere));
			break; }

			case RTINTERNALPROP: {
				NDR_CHECK(ndr_pull_wsp_cinternalpropertyrestriction(ndr, NDR_SCALARS, &r->internalpropertyrestriction));
			break; }

			case RTPHRASE: {
				NDR_CHECK(ndr_pull_wsp_cnoderestriction(ndr, NDR_SCALARS, &r->phraserestriction));
			break; }

			case RTCOERCE_ABSOLUTE: {
				NDR_CHECK(ndr_pull_wsp_ccoercionrestriction(ndr, NDR_SCALARS, &r->ccoercionrestriction_abs));
			break; }

			case RTCOERCE_ADD: {
				NDR_CHECK(ndr_pull_wsp_ccoercionrestriction(ndr, NDR_SCALARS, &r->ccoercionrestriction_add));
			break; }

			case RTCOERCE_MULTIPLY: {
				NDR_CHECK(ndr_pull_wsp_ccoercionrestriction(ndr, NDR_SCALARS, &r->ccoercionrestriction_mul));
			break; }

			case RTPROB: {
				NDR_CHECK(ndr_pull_wsp_cprobrestriction(ndr, NDR_SCALARS, &r->probrestriction));
			break; }

			case RTFEEDBACK: {
				NDR_CHECK(ndr_pull_wsp_cfeedbackrestriction(ndr, NDR_SCALARS, &r->feedbackrestriction));
			break; }

			case RTRELDOC: {
				NDR_CHECK(ndr_pull_wsp_creldocrestriction(ndr, NDR_SCALARS, &r->reldocrestriction));
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case RTNONE:
			break;

			case RTNOT:
				NDR_CHECK(ndr_pull_wsp_wrap_crestriction(ndr, NDR_BUFFERS, &r->restriction));
			break;

			case RTAND:
				NDR_CHECK(ndr_pull_wsp_cnoderestriction(ndr, NDR_BUFFERS, &r->cnoderestriction));
			break;

			case RTOR:
				NDR_CHECK(ndr_pull_wsp_cnoderestriction(ndr, NDR_BUFFERS, &r->orcnoderestriction));
			break;

			case RTCONTENT:
			break;

			case RTPROPERTY:
				NDR_CHECK(ndr_pull_wsp_cpropertyrestriction(ndr, NDR_BUFFERS, &r->cpropertyrestriction));
			break;

			case RTPROXIMITY:
				NDR_CHECK(ndr_pull_wsp_cnoderestriction(ndr, NDR_BUFFERS, &r->proximityrestriction));
			break;

			case RTVECTOR:
			break;

			case RTNATLANGUAGE:
			break;

			case RTSCOPE:
			break;

			case RTREUSEWHERE:
			break;

			case RTINTERNALPROP:
				NDR_CHECK(ndr_pull_wsp_cinternalpropertyrestriction(ndr, NDR_BUFFERS, &r->internalpropertyrestriction));
			break;

			case RTPHRASE:
				NDR_CHECK(ndr_pull_wsp_cnoderestriction(ndr, NDR_BUFFERS, &r->phraserestriction));
			break;

			case RTCOERCE_ABSOLUTE:
				NDR_CHECK(ndr_pull_wsp_ccoercionrestriction(ndr, NDR_BUFFERS, &r->ccoercionrestriction_abs));
			break;

			case RTCOERCE_ADD:
				NDR_CHECK(ndr_pull_wsp_ccoercionrestriction(ndr, NDR_BUFFERS, &r->ccoercionrestriction_add));
			break;

			case RTCOERCE_MULTIPLY:
				NDR_CHECK(ndr_pull_wsp_ccoercionrestriction(ndr, NDR_BUFFERS, &r->ccoercionrestriction_mul));
			break;

			case RTPROB:
			break;

			case RTFEEDBACK:
			break;

			case RTRELDOC:
				NDR_CHECK(ndr_pull_wsp_creldocrestriction(ndr, NDR_BUFFERS, &r->reldocrestriction));
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_wsp_crestrictions(struct ndr_print *ndr, const char *name, const union wsp_crestrictions *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "wsp_crestrictions");
	switch (level) {
		case RTNONE:
		break;

		case RTNOT:
			ndr_print_wsp_wrap_crestriction(ndr, "restriction", &r->restriction);
		break;

		case RTAND:
			ndr_print_wsp_cnoderestriction(ndr, "cnoderestriction", &r->cnoderestriction);
		break;

		case RTOR:
			ndr_print_wsp_cnoderestriction(ndr, "orcnoderestriction", &r->orcnoderestriction);
		break;

		case RTCONTENT:
			ndr_print_wsp_ccontentrestriction(ndr, "ccontentrestriction", &r->ccontentrestriction);
		break;

		case RTPROPERTY:
			ndr_print_wsp_cpropertyrestriction(ndr, "cpropertyrestriction", &r->cpropertyrestriction);
		break;

		case RTPROXIMITY:
			ndr_print_wsp_cnoderestriction(ndr, "proximityrestriction", &r->proximityrestriction);
		break;

		case RTVECTOR:
			ndr_print_wsp_cvectorrestriction(ndr, "vectorrestriction", &r->vectorrestriction);
		break;

		case RTNATLANGUAGE:
			ndr_print_wsp_cnatlanguagerestriction(ndr, "cnatlanguagerestriction", &r->cnatlanguagerestriction);
		break;

		case RTSCOPE:
			ndr_print_wsp_cscoperestriction(ndr, "scoperestriction", &r->scoperestriction);
		break;

		case RTREUSEWHERE:
			ndr_print_wsp_creusewhere(ndr, "reusewhere", &r->reusewhere);
		break;

		case RTINTERNALPROP:
			ndr_print_wsp_cinternalpropertyrestriction(ndr, "internalpropertyrestriction", &r->internalpropertyrestriction);
		break;

		case RTPHRASE:
			ndr_print_wsp_cnoderestriction(ndr, "phraserestriction", &r->phraserestriction);
		break;

		case RTCOERCE_ABSOLUTE:
			ndr_print_wsp_ccoercionrestriction(ndr, "ccoercionrestriction_abs", &r->ccoercionrestriction_abs);
		break;

		case RTCOERCE_ADD:
			ndr_print_wsp_ccoercionrestriction(ndr, "ccoercionrestriction_add", &r->ccoercionrestriction_add);
		break;

		case RTCOERCE_MULTIPLY:
			ndr_print_wsp_ccoercionrestriction(ndr, "ccoercionrestriction_mul", &r->ccoercionrestriction_mul);
		break;

		case RTPROB:
			ndr_print_wsp_cprobrestriction(ndr, "probrestriction", &r->probrestriction);
		break;

		case RTFEEDBACK:
			ndr_print_wsp_cfeedbackrestriction(ndr, "feedbackrestriction", &r->feedbackrestriction);
		break;

		case RTRELDOC:
			ndr_print_wsp_creldocrestriction(ndr, "reldocrestriction", &r->reldocrestriction);
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crestriction(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_crestriction *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ultype));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->weight));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->restriction, r->ultype));
		NDR_CHECK(ndr_push_wsp_crestrictions(ndr, NDR_SCALARS, &r->restriction));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->restriction, r->ultype));
		NDR_CHECK(ndr_push_wsp_crestrictions(ndr, NDR_BUFFERS, &r->restriction));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crestriction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_crestriction *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ultype));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->weight));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->restriction, r->ultype));
		NDR_CHECK(ndr_pull_wsp_crestrictions(ndr, NDR_SCALARS, &r->restriction));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->restriction, r->ultype));
		NDR_CHECK(ndr_pull_wsp_crestrictions(ndr, NDR_BUFFERS, &r->restriction));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_crestriction(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_crestriction *r)
{
	ndr_print_wsp_crestriction(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_crestriction(struct ndr_print *ndr, const char *name, const struct wsp_crestriction *r)
{
	ndr_print_struct(ndr, name, "wsp_crestriction");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ultype", r->ultype);
	ndr_print_uint32(ndr, "weight", r->weight);
	ndr_print_set_switch_value(ndr, &r->restriction, r->ultype);
	ndr_print_wsp_crestrictions(ndr, "restriction", &r->restriction);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crestrictionarray(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_crestrictionarray *r)
{
	uint32_t cntr_restrictions_0;
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_push_align(ndr, 4));
			NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->count));
			NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ispresent));
			{
				libndr_flags _flags_save_DATA_BLOB = ndr->flags;
				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
				NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
				ndr->flags = _flags_save_DATA_BLOB;
			}
			for (cntr_restrictions_0 = 0; cntr_restrictions_0 < (r->count); cntr_restrictions_0++) {
				NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_SCALARS, &r->restrictions[cntr_restrictions_0]));
			}
			NDR_CHECK(ndr_push_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
			for (cntr_restrictions_0 = 0; cntr_restrictions_0 < (r->count); cntr_restrictions_0++) {
				NDR_CHECK(ndr_push_wsp_crestriction(ndr, NDR_BUFFERS, &r->restrictions[cntr_restrictions_0]));
			}
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crestrictionarray(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_crestrictionarray *r)
{
	uint32_t size_restrictions_0 = 0;
	uint32_t cntr_restrictions_0;
	TALLOC_CTX *_mem_save_restrictions_0 = NULL;
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_pull_align(ndr, 4));
			NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->count));
			NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ispresent));
			{
				libndr_flags _flags_save_DATA_BLOB = ndr->flags;
				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
				NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
				ndr->flags = _flags_save_DATA_BLOB;
			}
			size_restrictions_0 = r->count;
			NDR_PULL_ALLOC_N(ndr, r->restrictions, size_restrictions_0);
			_mem_save_restrictions_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->restrictions, 0);
			for (cntr_restrictions_0 = 0; cntr_restrictions_0 < (size_restrictions_0); cntr_restrictions_0++) {
				NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_SCALARS, &r->restrictions[cntr_restrictions_0]));
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restrictions_0, 0);
			NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
			size_restrictions_0 = r->count;
			_mem_save_restrictions_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->restrictions, 0);
			for (cntr_restrictions_0 = 0; cntr_restrictions_0 < (size_restrictions_0); cntr_restrictions_0++) {
				NDR_CHECK(ndr_pull_wsp_crestriction(ndr, NDR_BUFFERS, &r->restrictions[cntr_restrictions_0]));
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_restrictions_0, 0);
			for (cntr_restrictions_0 = 0; cntr_restrictions_0 < (size_restrictions_0); cntr_restrictions_0++) {
			}
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_crestrictionarray(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_crestrictionarray *r)
{
	ndr_print_wsp_crestrictionarray(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_crestrictionarray(struct ndr_print *ndr, const char *name, const struct wsp_crestrictionarray *r)
{
	uint32_t cntr_restrictions_0;
	ndr_print_struct(ndr, name, "wsp_crestrictionarray");
	if (r == NULL) { ndr_print_null(ndr); return; }
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		ndr->depth++;
		ndr_print_uint8(ndr, "count", r->count);
		ndr_print_uint8(ndr, "ispresent", r->ispresent);
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
			ndr->flags = _flags_save_DATA_BLOB;
		}
		ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "restrictions", (uint32_t)(r->count));
		ndr->depth++;
		for (cntr_restrictions_0 = 0; cntr_restrictions_0 < (r->count); cntr_restrictions_0++) {
			ndr_print_wsp_crestriction(ndr, "restrictions", &r->restrictions[cntr_restrictions_0]);
		}
		ndr->depth--;
		ndr->depth--;
		ndr->flags = _flags_save_STRUCT;
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crowsetproperties(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_crowsetproperties *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ubooleanoptions));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulmaxopenrows));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulmemoryusage));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cmaxresults));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccmdtimeout));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crowsetproperties(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_crowsetproperties *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ubooleanoptions));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulmaxopenrows));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulmemoryusage));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cmaxresults));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccmdtimeout));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_crowsetproperties(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_crowsetproperties *r)
{
	ndr_print_wsp_crowsetproperties(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_crowsetproperties(struct ndr_print *ndr, const char *name, const struct wsp_crowsetproperties *r)
{
	ndr_print_struct(ndr, name, "wsp_crowsetproperties");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ubooleanoptions", r->ubooleanoptions);
	ndr_print_uint32(ndr, "ulmaxopenrows", r->ulmaxopenrows);
	ndr_print_uint32(ndr, "ulmemoryusage", r->ulmemoryusage);
	ndr_print_uint32(ndr, "cmaxresults", r->cmaxresults);
	ndr_print_uint32(ndr, "ccmdtimeout", r->ccmdtimeout);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpidmapper(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpidmapper *r)
{
	uint32_t cntr_apropspec_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad2));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		for (cntr_apropspec_0 = 0; cntr_apropspec_0 < (r->count); cntr_apropspec_0++) {
			NDR_CHECK(ndr_push_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->apropspec[cntr_apropspec_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpidmapper(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpidmapper *r)
{
	uint32_t size_apropspec_0 = 0;
	uint32_t cntr_apropspec_0;
	TALLOC_CTX *_mem_save_apropspec_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
		{
			libndr_flags _flags_save_DATA_BLOB = ndr->flags;
			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad2));
			ndr->flags = _flags_save_DATA_BLOB;
		}
		size_apropspec_0 = r->count;
		NDR_PULL_ALLOC_N(ndr, r->apropspec, size_apropspec_0);
		_mem_save_apropspec_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->apropspec, 0);
		for (cntr_apropspec_0 = 0; cntr_apropspec_0 < (size_apropspec_0); cntr_apropspec_0++) {
			NDR_CHECK(ndr_pull_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->apropspec[cntr_apropspec_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apropspec_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpidmapper(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpidmapper *r)
{
	ndr_print_wsp_cpidmapper(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpidmapper(struct ndr_print *ndr, const char *name, const struct wsp_cpidmapper *r)
{
	uint32_t cntr_apropspec_0;
	ndr_print_struct(ndr, name, "wsp_cpidmapper");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "count", r->count);
	{
		libndr_flags _flags_save_DATA_BLOB = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
		ndr_print_DATA_BLOB(ndr, "_pad2", r->_pad2);
		ndr->flags = _flags_save_DATA_BLOB;
	}
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "apropspec", (uint32_t)(r->count));
	ndr->depth++;
	for (cntr_apropspec_0 = 0; cntr_apropspec_0 < (r->count); cntr_apropspec_0++) {
		ndr_print_wsp_cfullpropspec(ndr, "apropspec", &r->apropspec[cntr_apropspec_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_sproperty(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_sproperty *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->weight));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_sproperty(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_sproperty *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->weight));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_sproperty(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_sproperty *r)
{
	ndr_print_wsp_sproperty(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_sproperty(struct ndr_print *ndr, const char *name, const struct wsp_sproperty *r)
{
	ndr_print_struct(ndr, name, "wsp_sproperty");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "pid", r->pid);
	ndr_print_uint32(ndr, "weight", r->weight);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccolumngroup(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccolumngroup *r)
{
	uint32_t cntr_props_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->grouppid));
		for (cntr_props_0 = 0; cntr_props_0 < (r->count); cntr_props_0++) {
			NDR_CHECK(ndr_push_wsp_sproperty(ndr, NDR_SCALARS, &r->props[cntr_props_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccolumngroup(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccolumngroup *r)
{
	uint32_t size_props_0 = 0;
	uint32_t cntr_props_0;
	TALLOC_CTX *_mem_save_props_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->grouppid));
		size_props_0 = r->count;
		NDR_PULL_ALLOC_N(ndr, r->props, size_props_0);
		_mem_save_props_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->props, 0);
		for (cntr_props_0 = 0; cntr_props_0 < (size_props_0); cntr_props_0++) {
			NDR_CHECK(ndr_pull_wsp_sproperty(ndr, NDR_SCALARS, &r->props[cntr_props_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_props_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccolumngroup(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccolumngroup *r)
{
	ndr_print_wsp_ccolumngroup(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccolumngroup(struct ndr_print *ndr, const char *name, const struct wsp_ccolumngroup *r)
{
	uint32_t cntr_props_0;
	ndr_print_struct(ndr, name, "wsp_ccolumngroup");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "count", r->count);
	ndr_print_uint32(ndr, "grouppid", r->grouppid);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "props", (uint32_t)(r->count));
	ndr->depth++;
	for (cntr_props_0 = 0; cntr_props_0 < (r->count); cntr_props_0++) {
		ndr_print_wsp_sproperty(ndr, "props", &r->props[cntr_props_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccolumngrouparray(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccolumngrouparray *r)
{
	uint32_t cntr_agrouparray_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
		for (cntr_agrouparray_0 = 0; cntr_agrouparray_0 < (r->count); cntr_agrouparray_0++) {
			NDR_CHECK(ndr_push_wsp_ccolumngroup(ndr, NDR_SCALARS, &r->agrouparray[cntr_agrouparray_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccolumngrouparray(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccolumngrouparray *r)
{
	uint32_t size_agrouparray_0 = 0;
	uint32_t cntr_agrouparray_0;
	TALLOC_CTX *_mem_save_agrouparray_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
		size_agrouparray_0 = r->count;
		NDR_PULL_ALLOC_N(ndr, r->agrouparray, size_agrouparray_0);
		_mem_save_agrouparray_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->agrouparray, 0);
		for (cntr_agrouparray_0 = 0; cntr_agrouparray_0 < (size_agrouparray_0); cntr_agrouparray_0++) {
			NDR_CHECK(ndr_pull_wsp_ccolumngroup(ndr, NDR_SCALARS, &r->agrouparray[cntr_agrouparray_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_agrouparray_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccolumngrouparray(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccolumngrouparray *r)
{
	ndr_print_wsp_ccolumngrouparray(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccolumngrouparray(struct ndr_print *ndr, const char *name, const struct wsp_ccolumngrouparray *r)
{
	uint32_t cntr_agrouparray_0;
	ndr_print_struct(ndr, name, "wsp_ccolumngrouparray");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "count", r->count);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "agrouparray", (uint32_t)(r->count));
	ndr->depth++;
	for (cntr_agrouparray_0 = 0; cntr_agrouparray_0 < (r->count); cntr_agrouparray_0++) {
		ndr_print_wsp_ccolumngroup(ndr, "agrouparray", &r->agrouparray[cntr_agrouparray_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_opt_wsp_cingroupsortaggregsets(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union opt_wsp_cingroupsortaggregsets *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_push_wsp_cingroupsortaggregsets(ndr, NDR_SCALARS, &r->groupsortaggregsets));
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			default:
				NDR_CHECK(ndr_push_wsp_cingroupsortaggregsets(ndr, NDR_BUFFERS, &r->groupsortaggregsets));
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_opt_wsp_cingroupsortaggregsets(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union opt_wsp_cingroupsortaggregsets *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_pull_wsp_cingroupsortaggregsets(ndr, NDR_SCALARS, &r->groupsortaggregsets));
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			default:
				NDR_CHECK(ndr_pull_wsp_cingroupsortaggregsets(ndr, NDR_BUFFERS, &r->groupsortaggregsets));
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_opt_wsp_cingroupsortaggregsets(struct ndr_print *ndr, const char *name, const union opt_wsp_cingroupsortaggregsets *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "opt_wsp_cingroupsortaggregsets");
	switch (level) {
		case 0:
		break;

		default:
			ndr_print_wsp_cingroupsortaggregsets(ndr, "groupsortaggregsets", &r->groupsortaggregsets);
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_opt_wsp_crestrictionarray(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union opt_wsp_crestrictionarray *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_push_wsp_crestrictionarray(ndr, NDR_SCALARS, &r->restrictionarray));
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			default:
				NDR_CHECK(ndr_push_wsp_crestrictionarray(ndr, NDR_BUFFERS, &r->restrictionarray));
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_opt_wsp_crestrictionarray(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union opt_wsp_crestrictionarray *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_pull_wsp_crestrictionarray(ndr, NDR_SCALARS, &r->restrictionarray));
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			default:
				NDR_CHECK(ndr_pull_wsp_crestrictionarray(ndr, NDR_BUFFERS, &r->restrictionarray));
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_opt_wsp_crestrictionarray(struct ndr_print *ndr, const char *name, const union opt_wsp_crestrictionarray *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "opt_wsp_crestrictionarray");
	switch (level) {
		case 0:
		break;

		default:
			ndr_print_wsp_crestrictionarray(ndr, "restrictionarray", &r->restrictionarray);
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_opt_wsp_ccolumnset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union opt_wsp_ccolumnset *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_push_wsp_ccolumnset(ndr, NDR_SCALARS, &r->columnset));
			break; }

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_opt_wsp_ccolumnset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union opt_wsp_ccolumnset *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_pull_wsp_ccolumnset(ndr, NDR_SCALARS, &r->columnset));
			break; }

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_opt_wsp_ccolumnset(struct ndr_print *ndr, const char *name, const union opt_wsp_ccolumnset *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "opt_wsp_ccolumnset");
	switch (level) {
		case 0:
		break;

		default:
			ndr_print_wsp_ccolumnset(ndr, "columnset", &r->columnset);
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_opt_wsp_ccategorizationset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union opt_wsp_ccategorizationset *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_push_wsp_ccategorizationset(ndr, NDR_SCALARS, &r->ccategorizationset));
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			default:
				NDR_CHECK(ndr_push_wsp_ccategorizationset(ndr, NDR_BUFFERS, &r->ccategorizationset));
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_opt_wsp_ccategorizationset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union opt_wsp_ccategorizationset *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case 0: {
			break; }

			default: {
				NDR_CHECK(ndr_pull_wsp_ccategorizationset(ndr, NDR_SCALARS, &r->ccategorizationset));
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 0:
			break;

			default:
				NDR_CHECK(ndr_pull_wsp_ccategorizationset(ndr, NDR_BUFFERS, &r->ccategorizationset));
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_opt_wsp_ccategorizationset(struct ndr_print *ndr, const char *name, const union opt_wsp_ccategorizationset *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "opt_wsp_ccategorizationset");
	switch (level) {
		case 0:
		break;

		default:
			ndr_print_wsp_ccategorizationset(ndr, "ccategorizationset", &r->ccategorizationset);
		break;

	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmcreatequeryin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmcreatequeryin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ccolumnsetpresent));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->columnset, r->ccolumnsetpresent));
		NDR_CHECK(ndr_push_opt_wsp_ccolumnset(ndr, NDR_SCALARS, &r->columnset));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->crestrictionpresent));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->restrictionarray, r->crestrictionpresent));
		NDR_CHECK(ndr_push_opt_wsp_crestrictionarray(ndr, NDR_SCALARS, &r->restrictionarray));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->csortsetpresent));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->sortset, r->csortsetpresent));
		NDR_CHECK(ndr_push_opt_wsp_cingroupsortaggregsets(ndr, NDR_SCALARS, &r->sortset));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ccategorizationsetpresent));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ccategorizationset, r->ccategorizationsetpresent));
		NDR_CHECK(ndr_push_opt_wsp_ccategorizationset(ndr, NDR_SCALARS, &r->ccategorizationset));
		NDR_CHECK(ndr_push_wsp_crowsetproperties(ndr, NDR_SCALARS, &r->rowsetproperties));
		NDR_CHECK(ndr_push_wsp_cpidmapper(ndr, NDR_SCALARS, &r->pidmapper));
		NDR_CHECK(ndr_push_wsp_ccolumngrouparray(ndr, NDR_SCALARS, &r->grouparray));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lcid));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->columnset, r->ccolumnsetpresent));
		NDR_CHECK(ndr_push_opt_wsp_ccolumnset(ndr, NDR_BUFFERS, &r->columnset));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->restrictionarray, r->crestrictionpresent));
		NDR_CHECK(ndr_push_opt_wsp_crestrictionarray(ndr, NDR_BUFFERS, &r->restrictionarray));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->sortset, r->csortsetpresent));
		NDR_CHECK(ndr_push_opt_wsp_cingroupsortaggregsets(ndr, NDR_BUFFERS, &r->sortset));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ccategorizationset, r->ccategorizationsetpresent));
		NDR_CHECK(ndr_push_opt_wsp_ccategorizationset(ndr, NDR_BUFFERS, &r->ccategorizationset));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmcreatequeryin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmcreatequeryin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ccolumnsetpresent));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->columnset, r->ccolumnsetpresent));
		NDR_CHECK(ndr_pull_opt_wsp_ccolumnset(ndr, NDR_SCALARS, &r->columnset));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->crestrictionpresent));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->restrictionarray, r->crestrictionpresent));
		NDR_CHECK(ndr_pull_opt_wsp_crestrictionarray(ndr, NDR_SCALARS, &r->restrictionarray));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->csortsetpresent));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->sortset, r->csortsetpresent));
		NDR_CHECK(ndr_pull_opt_wsp_cingroupsortaggregsets(ndr, NDR_SCALARS, &r->sortset));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ccategorizationsetpresent));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ccategorizationset, r->ccategorizationsetpresent));
		NDR_CHECK(ndr_pull_opt_wsp_ccategorizationset(ndr, NDR_SCALARS, &r->ccategorizationset));
		NDR_CHECK(ndr_pull_wsp_crowsetproperties(ndr, NDR_SCALARS, &r->rowsetproperties));
		NDR_CHECK(ndr_pull_wsp_cpidmapper(ndr, NDR_SCALARS, &r->pidmapper));
		NDR_CHECK(ndr_pull_wsp_ccolumngrouparray(ndr, NDR_SCALARS, &r->grouparray));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lcid));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->columnset, r->ccolumnsetpresent));
		NDR_CHECK(ndr_pull_opt_wsp_ccolumnset(ndr, NDR_BUFFERS, &r->columnset));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->restrictionarray, r->crestrictionpresent));
		NDR_CHECK(ndr_pull_opt_wsp_crestrictionarray(ndr, NDR_BUFFERS, &r->restrictionarray));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->sortset, r->csortsetpresent));
		NDR_CHECK(ndr_pull_opt_wsp_cingroupsortaggregsets(ndr, NDR_BUFFERS, &r->sortset));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ccategorizationset, r->ccategorizationsetpresent));
		NDR_CHECK(ndr_pull_opt_wsp_ccategorizationset(ndr, NDR_BUFFERS, &r->ccategorizationset));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmcreatequeryin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmcreatequeryin *r)
{
	ndr_print_wsp_cpmcreatequeryin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmcreatequeryin(struct ndr_print *ndr, const char *name, const struct wsp_cpmcreatequeryin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmcreatequeryin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "size", r->size);
	ndr_print_uint8(ndr, "ccolumnsetpresent", r->ccolumnsetpresent);
	ndr_print_set_switch_value(ndr, &r->columnset, r->ccolumnsetpresent);
	ndr_print_opt_wsp_ccolumnset(ndr, "columnset", &r->columnset);
	ndr_print_uint8(ndr, "crestrictionpresent", r->crestrictionpresent);
	ndr_print_set_switch_value(ndr, &r->restrictionarray, r->crestrictionpresent);
	ndr_print_opt_wsp_crestrictionarray(ndr, "restrictionarray", &r->restrictionarray);
	ndr_print_uint8(ndr, "csortsetpresent", r->csortsetpresent);
	ndr_print_set_switch_value(ndr, &r->sortset, r->csortsetpresent);
	ndr_print_opt_wsp_cingroupsortaggregsets(ndr, "sortset", &r->sortset);
	ndr_print_uint8(ndr, "ccategorizationsetpresent", r->ccategorizationsetpresent);
	ndr_print_set_switch_value(ndr, &r->ccategorizationset, r->ccategorizationsetpresent);
	ndr_print_opt_wsp_ccategorizationset(ndr, "ccategorizationset", &r->ccategorizationset);
	ndr_print_wsp_crowsetproperties(ndr, "rowsetproperties", &r->rowsetproperties);
	ndr_print_wsp_cpidmapper(ndr, "pidmapper", &r->pidmapper);
	ndr_print_wsp_ccolumngrouparray(ndr, "grouparray", &r->grouparray);
	ndr_print_uint32(ndr, "lcid", r->lcid);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmcreatequeryout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmcreatequeryout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ftruesequential));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fWorkIdUnique));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmcreatequeryout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmcreatequeryout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ftruesequential));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fWorkIdUnique));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmcreatequeryout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmcreatequeryout *r)
{
	ndr_print_wsp_cpmcreatequeryout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmcreatequeryout(struct ndr_print *ndr, const char *name, const struct wsp_cpmcreatequeryout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmcreatequeryout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ftruesequential", r->ftruesequential);
	ndr_print_uint32(ndr, "fWorkIdUnique", r->fWorkIdUnique);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_aggregatetype(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union aggregatetype *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 1));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_aggregatetype(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union aggregatetype *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 1));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_aggregatetype(struct ndr_print *ndr, const char *name, const union aggregatetype *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "aggregatetype");
	switch (level) {
		case 1:
			ndr_print_uint8(ndr, "value", r->value);
		break;

		case 0:
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_valueoffset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union valueoffset *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 2));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_valueoffset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union valueoffset *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 2));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_valueoffset(struct ndr_print *ndr, const char *name, const union valueoffset *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "valueoffset");
	switch (level) {
		case 1:
			ndr_print_uint16(ndr, "value", r->value);
		break;

		case 0:
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_valuesize(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union valuesize *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 2));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_valuesize(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union valuesize *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 2));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_valuesize(struct ndr_print *ndr, const char *name, const union valuesize *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "valuesize");
	switch (level) {
		case 1:
			ndr_print_uint16(ndr, "value", r->value);
		break;

		case 0:
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_lengthoffset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union lengthoffset *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 2));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_lengthoffset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union lengthoffset *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 2));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_lengthoffset(struct ndr_print *ndr, const char *name, const union lengthoffset *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "lengthoffset");
	switch (level) {
		case 1:
			ndr_print_uint16(ndr, "value", r->value);
		break;

		case 0:
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_statusoffset(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union statusoffset *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 2));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_statusoffset(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union statusoffset *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 2));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->value));
			break; }

			case 0: {
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case 1:
			break;

			case 0:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_statusoffset(struct ndr_print *ndr, const char *name, const union statusoffset *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "statusoffset");
	switch (level) {
		case 1:
			ndr_print_uint16(ndr, "value", r->value);
		break;

		case 0:
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ctablecolumn(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ctablecolumn *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->propspec));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vtype));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->aggregateused));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->aggregatetype, r->aggregateused));
		NDR_CHECK(ndr_push_aggregatetype(ndr, NDR_SCALARS, &r->aggregatetype));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->valueused));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->valueoffset, r->valueused));
		NDR_CHECK(ndr_push_valueoffset(ndr, NDR_SCALARS, &r->valueoffset));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->valuesize, r->valueused));
		NDR_CHECK(ndr_push_valuesize(ndr, NDR_SCALARS, &r->valuesize));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->statusused));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->statusoffset, r->statusused));
		NDR_CHECK(ndr_push_statusoffset(ndr, NDR_SCALARS, &r->statusoffset));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lengthused));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->lengthoffset, r->lengthused));
		NDR_CHECK(ndr_push_lengthoffset(ndr, NDR_SCALARS, &r->lengthoffset));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->aggregatetype, r->aggregateused));
		NDR_CHECK(ndr_push_aggregatetype(ndr, NDR_BUFFERS, &r->aggregatetype));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->valueoffset, r->valueused));
		NDR_CHECK(ndr_push_valueoffset(ndr, NDR_BUFFERS, &r->valueoffset));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->valuesize, r->valueused));
		NDR_CHECK(ndr_push_valuesize(ndr, NDR_BUFFERS, &r->valuesize));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->statusoffset, r->statusused));
		NDR_CHECK(ndr_push_statusoffset(ndr, NDR_BUFFERS, &r->statusoffset));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->lengthoffset, r->lengthused));
		NDR_CHECK(ndr_push_lengthoffset(ndr, NDR_BUFFERS, &r->lengthoffset));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ctablecolumn(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ctablecolumn *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->propspec));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vtype));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->aggregateused));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->aggregatetype, r->aggregateused));
		NDR_CHECK(ndr_pull_aggregatetype(ndr, NDR_SCALARS, &r->aggregatetype));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->valueused));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->valueoffset, r->valueused));
		NDR_CHECK(ndr_pull_valueoffset(ndr, NDR_SCALARS, &r->valueoffset));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->valuesize, r->valueused));
		NDR_CHECK(ndr_pull_valuesize(ndr, NDR_SCALARS, &r->valuesize));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->statusused));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->statusoffset, r->statusused));
		NDR_CHECK(ndr_pull_statusoffset(ndr, NDR_SCALARS, &r->statusoffset));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lengthused));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->lengthoffset, r->lengthused));
		NDR_CHECK(ndr_pull_lengthoffset(ndr, NDR_SCALARS, &r->lengthoffset));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->aggregatetype, r->aggregateused));
		NDR_CHECK(ndr_pull_aggregatetype(ndr, NDR_BUFFERS, &r->aggregatetype));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->valueoffset, r->valueused));
		NDR_CHECK(ndr_pull_valueoffset(ndr, NDR_BUFFERS, &r->valueoffset));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->valuesize, r->valueused));
		NDR_CHECK(ndr_pull_valuesize(ndr, NDR_BUFFERS, &r->valuesize));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->statusoffset, r->statusused));
		NDR_CHECK(ndr_pull_statusoffset(ndr, NDR_BUFFERS, &r->statusoffset));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->lengthoffset, r->lengthused));
		NDR_CHECK(ndr_pull_lengthoffset(ndr, NDR_BUFFERS, &r->lengthoffset));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ctablecolumn(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ctablecolumn *r)
{
	ndr_print_wsp_ctablecolumn(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ctablecolumn(struct ndr_print *ndr, const char *name, const struct wsp_ctablecolumn *r)
{
	ndr_print_struct(ndr, name, "wsp_ctablecolumn");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_wsp_cfullpropspec(ndr, "propspec", &r->propspec);
	ndr_print_uint32(ndr, "vtype", r->vtype);
	ndr_print_uint8(ndr, "aggregateused", r->aggregateused);
	ndr_print_set_switch_value(ndr, &r->aggregatetype, r->aggregateused);
	ndr_print_aggregatetype(ndr, "aggregatetype", &r->aggregatetype);
	ndr_print_uint8(ndr, "valueused", r->valueused);
	ndr_print_set_switch_value(ndr, &r->valueoffset, r->valueused);
	ndr_print_valueoffset(ndr, "valueoffset", &r->valueoffset);
	ndr_print_set_switch_value(ndr, &r->valuesize, r->valueused);
	ndr_print_valuesize(ndr, "valuesize", &r->valuesize);
	ndr_print_uint8(ndr, "statusused", r->statusused);
	ndr_print_set_switch_value(ndr, &r->statusoffset, r->statusused);
	ndr_print_statusoffset(ndr, "statusoffset", &r->statusoffset);
	ndr_print_uint8(ndr, "lengthused", r->lengthused);
	ndr_print_set_switch_value(ndr, &r->lengthoffset, r->lengthused);
	ndr_print_lengthoffset(ndr, "lengthoffset", &r->lengthoffset);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ccompletioncategspec(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ccompletioncategspec *r)
{
	uint32_t cntr_apszcomplstrings_0;
	uint32_t cntr_acomplpids_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lcid));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccomplstrings));
		for (cntr_apszcomplstrings_0 = 0; cntr_apszcomplstrings_0 < (r->ccomplstrings); cntr_apszcomplstrings_0++) {
			NDR_CHECK(ndr_push_wsp_serializedpropertyvalue(ndr, NDR_SCALARS, &r->apszcomplstrings[cntr_apszcomplstrings_0]));
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccomplpids));
		for (cntr_acomplpids_0 = 0; cntr_acomplpids_0 < (r->ccomplpids); cntr_acomplpids_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->acomplpids[cntr_acomplpids_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_apszcomplstrings_0 = 0; cntr_apszcomplstrings_0 < (r->ccomplstrings); cntr_apszcomplstrings_0++) {
			NDR_CHECK(ndr_push_wsp_serializedpropertyvalue(ndr, NDR_BUFFERS, &r->apszcomplstrings[cntr_apszcomplstrings_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ccompletioncategspec(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ccompletioncategspec *r)
{
	uint32_t size_apszcomplstrings_0 = 0;
	uint32_t cntr_apszcomplstrings_0;
	TALLOC_CTX *_mem_save_apszcomplstrings_0 = NULL;
	uint32_t size_acomplpids_0 = 0;
	uint32_t cntr_acomplpids_0;
	TALLOC_CTX *_mem_save_acomplpids_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lcid));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccomplstrings));
		size_apszcomplstrings_0 = r->ccomplstrings;
		NDR_PULL_ALLOC_N(ndr, r->apszcomplstrings, size_apszcomplstrings_0);
		_mem_save_apszcomplstrings_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->apszcomplstrings, 0);
		for (cntr_apszcomplstrings_0 = 0; cntr_apszcomplstrings_0 < (size_apszcomplstrings_0); cntr_apszcomplstrings_0++) {
			NDR_CHECK(ndr_pull_wsp_serializedpropertyvalue(ndr, NDR_SCALARS, &r->apszcomplstrings[cntr_apszcomplstrings_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apszcomplstrings_0, 0);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccomplpids));
		size_acomplpids_0 = r->ccomplpids;
		NDR_PULL_ALLOC_N(ndr, r->acomplpids, size_acomplpids_0);
		_mem_save_acomplpids_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->acomplpids, 0);
		for (cntr_acomplpids_0 = 0; cntr_acomplpids_0 < (size_acomplpids_0); cntr_acomplpids_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->acomplpids[cntr_acomplpids_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_acomplpids_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_apszcomplstrings_0 = r->ccomplstrings;
		_mem_save_apszcomplstrings_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->apszcomplstrings, 0);
		for (cntr_apszcomplstrings_0 = 0; cntr_apszcomplstrings_0 < (size_apszcomplstrings_0); cntr_apszcomplstrings_0++) {
			NDR_CHECK(ndr_pull_wsp_serializedpropertyvalue(ndr, NDR_BUFFERS, &r->apszcomplstrings[cntr_apszcomplstrings_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apszcomplstrings_0, 0);
		for (cntr_apszcomplstrings_0 = 0; cntr_apszcomplstrings_0 < (size_apszcomplstrings_0); cntr_apszcomplstrings_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ccompletioncategspec(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ccompletioncategspec *r)
{
	ndr_print_wsp_ccompletioncategspec(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ccompletioncategspec(struct ndr_print *ndr, const char *name, const struct wsp_ccompletioncategspec *r)
{
	uint32_t cntr_apszcomplstrings_0;
	uint32_t cntr_acomplpids_0;
	ndr_print_struct(ndr, name, "wsp_ccompletioncategspec");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "type", r->type);
	ndr_print_uint32(ndr, "lcid", r->lcid);
	ndr_print_uint32(ndr, "ccomplstrings", r->ccomplstrings);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "apszcomplstrings", (uint32_t)(r->ccomplstrings));
	ndr->depth++;
	for (cntr_apszcomplstrings_0 = 0; cntr_apszcomplstrings_0 < (r->ccomplstrings); cntr_apszcomplstrings_0++) {
		ndr_print_wsp_serializedpropertyvalue(ndr, "apszcomplstrings", &r->apszcomplstrings[cntr_apszcomplstrings_0]);
	}
	ndr->depth--;
	ndr_print_uint32(ndr, "ccomplpids", r->ccomplpids);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "acomplpids", (uint32_t)(r->ccomplpids));
	ndr->depth++;
	for (cntr_acomplpids_0 = 0; cntr_acomplpids_0 < (r->ccomplpids); cntr_acomplpids_0++) {
		ndr_print_uint32(ndr, "acomplpids", r->acomplpids[cntr_acomplpids_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmsetbindingsin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmsetbindingsin *r)
{
	uint32_t cntr_acolumns_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->brow));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bbindingdesc));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccolumns));
		for (cntr_acolumns_0 = 0; cntr_acolumns_0 < (r->ccolumns); cntr_acolumns_0++) {
			NDR_CHECK(ndr_push_wsp_ctablecolumn(ndr, NDR_SCALARS, &r->acolumns[cntr_acolumns_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_acolumns_0 = 0; cntr_acolumns_0 < (r->ccolumns); cntr_acolumns_0++) {
			NDR_CHECK(ndr_push_wsp_ctablecolumn(ndr, NDR_BUFFERS, &r->acolumns[cntr_acolumns_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmsetbindingsin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmsetbindingsin *r)
{
	uint32_t size_acolumns_0 = 0;
	uint32_t cntr_acolumns_0;
	TALLOC_CTX *_mem_save_acolumns_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->brow));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bbindingdesc));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccolumns));
		size_acolumns_0 = r->ccolumns;
		NDR_PULL_ALLOC_N(ndr, r->acolumns, size_acolumns_0);
		_mem_save_acolumns_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->acolumns, 0);
		for (cntr_acolumns_0 = 0; cntr_acolumns_0 < (size_acolumns_0); cntr_acolumns_0++) {
			NDR_CHECK(ndr_pull_wsp_ctablecolumn(ndr, NDR_SCALARS, &r->acolumns[cntr_acolumns_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_acolumns_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_acolumns_0 = r->ccolumns;
		_mem_save_acolumns_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->acolumns, 0);
		for (cntr_acolumns_0 = 0; cntr_acolumns_0 < (size_acolumns_0); cntr_acolumns_0++) {
			NDR_CHECK(ndr_pull_wsp_ctablecolumn(ndr, NDR_BUFFERS, &r->acolumns[cntr_acolumns_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_acolumns_0, 0);
		for (cntr_acolumns_0 = 0; cntr_acolumns_0 < (size_acolumns_0); cntr_acolumns_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmsetbindingsin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmsetbindingsin *r)
{
	ndr_print_wsp_cpmsetbindingsin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmsetbindingsin(struct ndr_print *ndr, const char *name, const struct wsp_cpmsetbindingsin *r)
{
	uint32_t cntr_acolumns_0;
	ndr_print_struct(ndr, name, "wsp_cpmsetbindingsin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr_print_uint32(ndr, "brow", r->brow);
	ndr_print_uint32(ndr, "bbindingdesc", r->bbindingdesc);
	ndr_print_uint32(ndr, "dummy", r->dummy);
	ndr_print_uint32(ndr, "ccolumns", r->ccolumns);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "acolumns", (uint32_t)(r->ccolumns));
	ndr->depth++;
	for (cntr_acolumns_0 = 0; cntr_acolumns_0 < (r->ccolumns); cntr_acolumns_0++) {
		ndr_print_wsp_ctablecolumn(ndr, "acolumns", &r->acolumns[cntr_acolumns_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crowseeknext(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_crowseeknext *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cskip));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crowseeknext(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_crowseeknext *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cskip));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_crowseeknext(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_crowseeknext *r)
{
	ndr_print_wsp_crowseeknext(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_crowseeknext(struct ndr_print *ndr, const char *name, const struct wsp_crowseeknext *r)
{
	ndr_print_struct(ndr, name, "wsp_crowseeknext");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cskip", r->cskip);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crowseekat(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_crowseekat *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bmkoffset));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cskip));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hregion));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crowseekat(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_crowseekat *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bmkoffset));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cskip));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hregion));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_crowseekat(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_crowseekat *r)
{
	ndr_print_wsp_crowseekat(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_crowseekat(struct ndr_print *ndr, const char *name, const struct wsp_crowseekat *r)
{
	ndr_print_struct(ndr, name, "wsp_crowseekat");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "bmkoffset", r->bmkoffset);
	ndr_print_uint32(ndr, "cskip", r->cskip);
	ndr_print_uint32(ndr, "hregion", r->hregion);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crowseekatratio(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_crowseekatratio *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulnumerator));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->uldenominator));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hregion));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crowseekatratio(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_crowseekatratio *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulnumerator));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->uldenominator));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hregion));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_crowseekatratio(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_crowseekatratio *r)
{
	ndr_print_wsp_crowseekatratio(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_crowseekatratio(struct ndr_print *ndr, const char *name, const struct wsp_crowseekatratio *r)
{
	ndr_print_struct(ndr, name, "wsp_crowseekatratio");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ulnumerator", r->ulnumerator);
	ndr_print_uint32(ndr, "uldenominator", r->uldenominator);
	ndr_print_uint32(ndr, "hregion", r->hregion);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_crowseekbybookmark(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_crowseekbybookmark *r)
{
	uint32_t cntr_abookmarks_0;
	uint32_t cntr_ascret_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbookmarks));
		for (cntr_abookmarks_0 = 0; cntr_abookmarks_0 < (r->cbookmarks); cntr_abookmarks_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->abookmarks[cntr_abookmarks_0]));
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxret));
		for (cntr_ascret_0 = 0; cntr_ascret_0 < (r->maxret); cntr_ascret_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ascret[cntr_ascret_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_crowseekbybookmark(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_crowseekbybookmark *r)
{
	uint32_t size_abookmarks_0 = 0;
	uint32_t cntr_abookmarks_0;
	TALLOC_CTX *_mem_save_abookmarks_0 = NULL;
	uint32_t size_ascret_0 = 0;
	uint32_t cntr_ascret_0;
	TALLOC_CTX *_mem_save_ascret_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbookmarks));
		size_abookmarks_0 = r->cbookmarks;
		NDR_PULL_ALLOC_N(ndr, r->abookmarks, size_abookmarks_0);
		_mem_save_abookmarks_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->abookmarks, 0);
		for (cntr_abookmarks_0 = 0; cntr_abookmarks_0 < (size_abookmarks_0); cntr_abookmarks_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->abookmarks[cntr_abookmarks_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_abookmarks_0, 0);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxret));
		size_ascret_0 = r->maxret;
		NDR_PULL_ALLOC_N(ndr, r->ascret, size_ascret_0);
		_mem_save_ascret_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->ascret, 0);
		for (cntr_ascret_0 = 0; cntr_ascret_0 < (size_ascret_0); cntr_ascret_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ascret[cntr_ascret_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ascret_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_crowseekbybookmark(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_crowseekbybookmark *r)
{
	ndr_print_wsp_crowseekbybookmark(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_crowseekbybookmark(struct ndr_print *ndr, const char *name, const struct wsp_crowseekbybookmark *r)
{
	uint32_t cntr_abookmarks_0;
	uint32_t cntr_ascret_0;
	ndr_print_struct(ndr, name, "wsp_crowseekbybookmark");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cbookmarks", r->cbookmarks);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "abookmarks", (uint32_t)(r->cbookmarks));
	ndr->depth++;
	for (cntr_abookmarks_0 = 0; cntr_abookmarks_0 < (r->cbookmarks); cntr_abookmarks_0++) {
		ndr_print_uint32(ndr, "abookmarks", r->abookmarks[cntr_abookmarks_0]);
	}
	ndr->depth--;
	ndr_print_uint32(ndr, "maxret", r->maxret);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "ascret", (uint32_t)(r->maxret));
	ndr->depth++;
	for (cntr_ascret_0 = 0; cntr_ascret_0 < (r->maxret); cntr_ascret_0++) {
		ndr_print_uint32(ndr, "ascret", r->ascret[cntr_ascret_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_seekdescription(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union wsp_seekdescription *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case EROWSEEKNONE: {
			break; }

			case EROWSEEKNEXT: {
				NDR_CHECK(ndr_push_wsp_crowseeknext(ndr, NDR_SCALARS, &r->crowseeknext));
			break; }

			case EROWSEEKAT: {
				NDR_CHECK(ndr_push_wsp_crowseekat(ndr, NDR_SCALARS, &r->crowseekat));
			break; }

			case EROWSEEKATRATIO: {
				NDR_CHECK(ndr_push_wsp_crowseekatratio(ndr, NDR_SCALARS, &r->crowseekatratio));
			break; }

			case EROWSEEKBYBOOKMARK: {
				NDR_CHECK(ndr_push_wsp_crowseekbybookmark(ndr, NDR_SCALARS, &r->crowseekbybookmark));
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case EROWSEEKNONE:
			break;

			case EROWSEEKNEXT:
			break;

			case EROWSEEKAT:
			break;

			case EROWSEEKATRATIO:
			break;

			case EROWSEEKBYBOOKMARK:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_seekdescription(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union wsp_seekdescription *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case EROWSEEKNONE: {
			break; }

			case EROWSEEKNEXT: {
				NDR_CHECK(ndr_pull_wsp_crowseeknext(ndr, NDR_SCALARS, &r->crowseeknext));
			break; }

			case EROWSEEKAT: {
				NDR_CHECK(ndr_pull_wsp_crowseekat(ndr, NDR_SCALARS, &r->crowseekat));
			break; }

			case EROWSEEKATRATIO: {
				NDR_CHECK(ndr_pull_wsp_crowseekatratio(ndr, NDR_SCALARS, &r->crowseekatratio));
			break; }

			case EROWSEEKBYBOOKMARK: {
				NDR_CHECK(ndr_pull_wsp_crowseekbybookmark(ndr, NDR_SCALARS, &r->crowseekbybookmark));
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case EROWSEEKNONE:
			break;

			case EROWSEEKNEXT:
			break;

			case EROWSEEKAT:
			break;

			case EROWSEEKATRATIO:
			break;

			case EROWSEEKBYBOOKMARK:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_wsp_seekdescription(struct ndr_print *ndr, const char *name, const union wsp_seekdescription *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "wsp_seekdescription");
	switch (level) {
		case EROWSEEKNONE:
		break;

		case EROWSEEKNEXT:
			ndr_print_wsp_crowseeknext(ndr, "crowseeknext", &r->crowseeknext);
		break;

		case EROWSEEKAT:
			ndr_print_wsp_crowseekat(ndr, "crowseekat", &r->crowseekat);
		break;

		case EROWSEEKATRATIO:
			ndr_print_wsp_crowseekatratio(ndr, "crowseekatratio", &r->crowseekatratio);
		break;

		case EROWSEEKBYBOOKMARK:
			ndr_print_wsp_crowseekbybookmark(ndr, "crowseekbybookmark", &r->crowseekbybookmark);
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetrowsin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetrowsin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->crowstotransfer));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbrowWidth));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbseek));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbreserved));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbreadbuffer));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulclientbase));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fbwdfetch));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->etype));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->chapt));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->seekdescription, r->etype));
		NDR_CHECK(ndr_push_wsp_seekdescription(ndr, NDR_SCALARS, &r->seekdescription));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->seekdescription, r->etype));
		NDR_CHECK(ndr_push_wsp_seekdescription(ndr, NDR_BUFFERS, &r->seekdescription));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetrowsin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetrowsin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->crowstotransfer));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbrowWidth));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbseek));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbreserved));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbreadbuffer));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulclientbase));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fbwdfetch));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->etype));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->chapt));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->seekdescription, r->etype));
		NDR_CHECK(ndr_pull_wsp_seekdescription(ndr, NDR_SCALARS, &r->seekdescription));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->seekdescription, r->etype));
		NDR_CHECK(ndr_pull_wsp_seekdescription(ndr, NDR_BUFFERS, &r->seekdescription));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetrowsin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetrowsin *r)
{
	ndr_print_wsp_cpmgetrowsin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetrowsin(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetrowsin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetrowsin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr_print_uint32(ndr, "crowstotransfer", r->crowstotransfer);
	ndr_print_uint32(ndr, "cbrowWidth", r->cbrowWidth);
	ndr_print_uint32(ndr, "cbseek", r->cbseek);
	ndr_print_uint32(ndr, "cbreserved", r->cbreserved);
	ndr_print_uint32(ndr, "cbreadbuffer", r->cbreadbuffer);
	ndr_print_uint32(ndr, "ulclientbase", r->ulclientbase);
	ndr_print_uint32(ndr, "fbwdfetch", r->fbwdfetch);
	ndr_print_uint32(ndr, "etype", r->etype);
	ndr_print_uint32(ndr, "chapt", r->chapt);
	ndr_print_set_switch_value(ndr, &r->seekdescription, r->etype);
	ndr_print_wsp_seekdescription(ndr, "seekdescription", &r->seekdescription);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_ctablevariant(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_ctablevariant *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vtype));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved1));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_ctablevariant(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_ctablevariant *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vtype));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved1));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_ctablevariant(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_ctablevariant *r)
{
	ndr_print_wsp_ctablevariant(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_ctablevariant(struct ndr_print *ndr, const char *name, const struct wsp_ctablevariant *r)
{
	ndr_print_struct(ndr, name, "wsp_ctablevariant");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "vtype", r->vtype);
	ndr_print_uint16(ndr, "reserved1", r->reserved1);
	ndr_print_uint32(ndr, "reserved2", r->reserved2);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetrowsout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetrowsout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rowsreturned));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->etype));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->chapt));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->seekdescription, r->etype));
		NDR_CHECK(ndr_push_wsp_seekdescription(ndr, NDR_SCALARS, &r->seekdescription));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->seekdescription, r->etype));
		NDR_CHECK(ndr_push_wsp_seekdescription(ndr, NDR_BUFFERS, &r->seekdescription));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetrowsout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetrowsout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rowsreturned));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->etype));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->chapt));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->seekdescription, r->etype));
		NDR_CHECK(ndr_pull_wsp_seekdescription(ndr, NDR_SCALARS, &r->seekdescription));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->seekdescription, r->etype));
		NDR_CHECK(ndr_pull_wsp_seekdescription(ndr, NDR_BUFFERS, &r->seekdescription));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetrowsout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetrowsout *r)
{
	ndr_print_wsp_cpmgetrowsout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetrowsout(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetrowsout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetrowsout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "rowsreturned", r->rowsreturned);
	ndr_print_uint32(ndr, "etype", r->etype);
	ndr_print_uint32(ndr, "chapt", r->chapt);
	ndr_print_set_switch_value(ndr, &r->seekdescription, r->etype);
	ndr_print_wsp_seekdescription(ndr, "seekdescription", &r->seekdescription);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmfreecursorin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmfreecursorin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmfreecursorin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmfreecursorin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmfreecursorin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmfreecursorin *r)
{
	ndr_print_wsp_cpmfreecursorin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmfreecursorin(struct ndr_print *ndr, const char *name, const struct wsp_cpmfreecursorin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmfreecursorin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmfreecursorout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmfreecursorout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ccursorsremaining));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmfreecursorout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmfreecursorout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ccursorsremaining));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmfreecursorout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmfreecursorout *r)
{
	ndr_print_wsp_cpmfreecursorout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmfreecursorout(struct ndr_print *ndr, const char *name, const struct wsp_cpmfreecursorout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmfreecursorout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ccursorsremaining", r->ccursorsremaining);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetquerystatusin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetquerystatusin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetquerystatusin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetquerystatusin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetquerystatusin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetquerystatusin *r)
{
	ndr_print_wsp_cpmgetquerystatusin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetquerystatusin(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetquerystatusin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetquerystatusin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetquerystatusout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetquerystatusout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->qstatus));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetquerystatusout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetquerystatusout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->qstatus));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetquerystatusout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetquerystatusout *r)
{
	ndr_print_wsp_cpmgetquerystatusout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetquerystatusout(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetquerystatusout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetquerystatusout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "qstatus", r->qstatus);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetquerystatusexin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetquerystatusexin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bmk));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetquerystatusexin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetquerystatusexin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bmk));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetquerystatusexin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetquerystatusexin *r)
{
	ndr_print_wsp_cpmgetquerystatusexin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetquerystatusexin(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetquerystatusexin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetquerystatusexin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr_print_uint32(ndr, "bmk", r->bmk);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetquerystatusexout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetquerystatusexout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->qstatus));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cfiltereddocuments));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cdocumentstofilter));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwratiofinisheddenominator));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwratiofinishednumerator));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->irowbmk));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->crowstotal));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxrank));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->resultsfound));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->whereid));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetquerystatusexout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetquerystatusexout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->qstatus));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cfiltereddocuments));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cdocumentstofilter));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwratiofinisheddenominator));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwratiofinishednumerator));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->irowbmk));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->crowstotal));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxrank));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->resultsfound));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->whereid));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetquerystatusexout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetquerystatusexout *r)
{
	ndr_print_wsp_cpmgetquerystatusexout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetquerystatusexout(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetquerystatusexout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetquerystatusexout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "qstatus", r->qstatus);
	ndr_print_uint32(ndr, "cfiltereddocuments", r->cfiltereddocuments);
	ndr_print_uint32(ndr, "cdocumentstofilter", r->cdocumentstofilter);
	ndr_print_uint32(ndr, "dwratiofinisheddenominator", r->dwratiofinisheddenominator);
	ndr_print_uint32(ndr, "dwratiofinishednumerator", r->dwratiofinishednumerator);
	ndr_print_uint32(ndr, "irowbmk", r->irowbmk);
	ndr_print_uint32(ndr, "crowstotal", r->crowstotal);
	ndr_print_uint32(ndr, "maxrank", r->maxrank);
	ndr_print_uint32(ndr, "resultsfound", r->resultsfound);
	ndr_print_uint32(ndr, "whereid", r->whereid);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmrestartpositionin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmrestartpositionin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->chapter));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmrestartpositionin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmrestartpositionin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->chapter));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmrestartpositionin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmrestartpositionin *r)
{
	ndr_print_wsp_cpmrestartpositionin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmrestartpositionin(struct ndr_print *ndr, const char *name, const struct wsp_cpmrestartpositionin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmrestartpositionin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr_print_uint32(ndr, "chapter", r->chapter);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmratiofinishedin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmratiofinishedin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fquick));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmratiofinishedin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmratiofinishedin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fquick));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmratiofinishedin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmratiofinishedin *r)
{
	ndr_print_wsp_cpmratiofinishedin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmratiofinishedin(struct ndr_print *ndr, const char *name, const struct wsp_cpmratiofinishedin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmratiofinishedin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr_print_uint32(ndr, "fquick", r->fquick);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmratiofinishedout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmratiofinishedout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ulnumerator));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->uldenominator));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->crows));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fnewrows));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmratiofinishedout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmratiofinishedout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ulnumerator));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->uldenominator));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->crows));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fnewrows));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmratiofinishedout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmratiofinishedout *r)
{
	ndr_print_wsp_cpmratiofinishedout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmratiofinishedout(struct ndr_print *ndr, const char *name, const struct wsp_cpmratiofinishedout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmratiofinishedout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "ulnumerator", r->ulnumerator);
	ndr_print_uint32(ndr, "uldenominator", r->uldenominator);
	ndr_print_uint32(ndr, "crows", r->crows);
	ndr_print_uint32(ndr, "fnewrows", r->fnewrows);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmfetchvaluein(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmfetchvaluein *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->wid));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbsofar));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbpropspec));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbchunk));
		NDR_CHECK(ndr_push_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->propspec));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmfetchvaluein(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmfetchvaluein *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->wid));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbsofar));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbpropspec));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbchunk));
		NDR_CHECK(ndr_pull_wsp_cfullpropspec(ndr, NDR_SCALARS, &r->propspec));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmfetchvaluein(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmfetchvaluein *r)
{
	ndr_print_wsp_cpmfetchvaluein(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmfetchvaluein(struct ndr_print *ndr, const char *name, const struct wsp_cpmfetchvaluein *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmfetchvaluein");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "wid", r->wid);
	ndr_print_uint32(ndr, "cbsofar", r->cbsofar);
	ndr_print_uint32(ndr, "cbpropspec", r->cbpropspec);
	ndr_print_uint32(ndr, "cbchunk", r->cbchunk);
	ndr_print_wsp_cfullpropspec(ndr, "propspec", &r->propspec);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i1_safe2_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i1_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i1_safe2_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i1_safe2_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_int8(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i1_safe2_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i1_safe2_array *r)
{
	ndr_print_vt_i1_safe2_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i1_safe2_array(struct ndr_print *ndr, const char *name, const struct vt_i1_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_i1_safe2_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_int8(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui1_safe2_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui1_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->vdata, calc_array_size(r->rgsabound, r->cdims)));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui1_safe2_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui1_safe2_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->vdata, size_vdata_0));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui1_safe2_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui1_safe2_array *r)
{
	ndr_print_vt_ui1_safe2_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui1_safe2_array(struct ndr_print *ndr, const char *name, const struct vt_ui1_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	ndr_print_struct(ndr, name, "vt_ui1_safe2_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr_print_array_uint8(ndr, "vdata", r->vdata, calc_array_size(r->rgsabound, r->cdims));
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i2_safe2_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i2_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i2_safe2_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i2_safe2_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i2_safe2_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i2_safe2_array *r)
{
	ndr_print_vt_i2_safe2_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i2_safe2_array(struct ndr_print *ndr, const char *name, const struct vt_i2_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_i2_safe2_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_int16(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui2_safe2_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui2_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui2_safe2_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui2_safe2_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui2_safe2_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui2_safe2_array *r)
{
	ndr_print_vt_ui2_safe2_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui2_safe2_array(struct ndr_print *ndr, const char *name, const struct vt_ui2_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_ui2_safe2_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_uint16(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_i4_safe2_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_i4_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_i4_safe2_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_i4_safe2_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_i4_safe2_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_i4_safe2_array *r)
{
	ndr_print_vt_i4_safe2_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_i4_safe2_array(struct ndr_print *ndr, const char *name, const struct vt_i4_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_i4_safe2_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_int32(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_ui4_safe2_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_ui4_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_ui4_safe2_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_ui4_safe2_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_ui4_safe2_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_ui4_safe2_array *r)
{
	ndr_print_vt_ui4_safe2_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_ui4_safe2_array(struct ndr_print *ndr, const char *name, const struct vt_ui4_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_ui4_safe2_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_uint32(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_dlong_safe2_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_dlong_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_dlong_safe2_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_dlong_safe2_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_dlong_safe2_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_dlong_safe2_array *r)
{
	ndr_print_vt_dlong_safe2_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_dlong_safe2_array(struct ndr_print *ndr, const char *name, const struct vt_dlong_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_dlong_safe2_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_dlong(ndr, "vdata", r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_bstr_safe2_array(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_bstr_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_vt_bstr(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_bstr_safe2_array(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_bstr_safe2_array *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_vt_bstr(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_bstr_safe2_array(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_bstr_safe2_array *r)
{
	ndr_print_vt_bstr_safe2_array(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_bstr_safe2_array(struct ndr_print *ndr, const char *name, const struct vt_bstr_safe2_array *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_bstr_safe2_array");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_vt_bstr(ndr, "vdata", &r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_vt_variant_wrap_safearray2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct vt_variant_wrap_safearray2 *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->cdims));
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_push_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
			NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vdata[cntr_vdata_0]));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_vt_variant_wrap_safearray2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct vt_variant_wrap_safearray2 *r)
{
	uint32_t size_rgsabound_0 = 0;
	uint32_t cntr_rgsabound_0;
	TALLOC_CTX *_mem_save_rgsabound_0 = NULL;
	uint32_t size_vdata_0 = 0;
	uint32_t cntr_vdata_0;
	TALLOC_CTX *_mem_save_vdata_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->cdims));
		size_rgsabound_0 = r->cdims;
		NDR_PULL_ALLOC_N(ndr, r->rgsabound, size_rgsabound_0);
		_mem_save_rgsabound_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->rgsabound, 0);
		for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (size_rgsabound_0); cntr_rgsabound_0++) {
			NDR_CHECK(ndr_pull_safearraybound(ndr, NDR_SCALARS, &r->rgsabound[cntr_rgsabound_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rgsabound_0, 0);
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		NDR_PULL_ALLOC_N(ndr, r->vdata, size_vdata_0);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_SCALARS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		size_vdata_0 = calc_array_size(r->rgsabound, r->cdims);
		_mem_save_vdata_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->vdata, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
			NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vdata[cntr_vdata_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vdata_0, 0);
		for (cntr_vdata_0 = 0; cntr_vdata_0 < (size_vdata_0); cntr_vdata_0++) {
		}
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_vt_variant_wrap_safearray2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct vt_variant_wrap_safearray2 *r)
{
	ndr_print_vt_variant_wrap_safearray2(ndr, name, r);
}

_PUBLIC_ void ndr_print_vt_variant_wrap_safearray2(struct ndr_print *ndr, const char *name, const struct vt_variant_wrap_safearray2 *r)
{
	uint32_t cntr_rgsabound_0;
	uint32_t cntr_vdata_0;
	ndr_print_struct(ndr, name, "vt_variant_wrap_safearray2");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint16(ndr, "cdims", r->cdims);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "rgsabound", (uint32_t)(r->cdims));
	ndr->depth++;
	for (cntr_rgsabound_0 = 0; cntr_rgsabound_0 < (r->cdims); cntr_rgsabound_0++) {
		ndr_print_safearraybound(ndr, "rgsabound", &r->rgsabound[cntr_rgsabound_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "vdata", (uint32_t)(calc_array_size(r->rgsabound, r->cdims)));
	ndr->depth++;
	for (cntr_vdata_0 = 0; cntr_vdata_0 < (calc_array_size(r->rgsabound, r->cdims)); cntr_vdata_0++) {
		ndr_print_vt_variant_wrap(ndr, "vdata", &r->vdata[cntr_vdata_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_serialised_types(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union serialised_types *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case VT_I1: {
				NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->vt_i1));
			break; }

			case VT_I1|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i1_safe2_array(ndr, NDR_SCALARS, &r->vt_i1_array));
			break; }

			case VT_I1|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_i1_vec(ndr, NDR_SCALARS, &r->vt_i1_vec));
			break; }

			case VT_UI1: {
				NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->vt_ui1));
			break; }

			case VT_UI1|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui1_safe2_array(ndr, NDR_SCALARS, &r->vt_ui1_array));
			break; }

			case VT_UI1|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui1_vec(ndr, NDR_SCALARS, &r->vt_ui1_vec));
			break; }

			case VT_I2: {
				NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->vt_i2));
			break; }

			case VT_I2|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i2_safe2_array(ndr, NDR_SCALARS, &r->vt_i2_array));
			break; }

			case VT_I2|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_i2_vec(ndr, NDR_SCALARS, &r->vt_i2_vec));
			break; }

			case VT_UI2: {
				NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vt_ui2));
			break; }

			case VT_UI2|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui2_safe2_array(ndr, NDR_SCALARS, &r->vt_ui2_array));
			break; }

			case VT_UI2|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui2_vec(ndr, NDR_SCALARS, &r->vt_ui2_vec));
			break; }

			case VT_BOOL: {
				NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vt_bool));
			break; }

			case VT_BOOL|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui2_safe2_array(ndr, NDR_SCALARS, &r->vt_bool_array));
			break; }

			case VT_BOOL|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui2_vec(ndr, NDR_SCALARS, &r->vt_bool_vec));
			break; }

			case VT_I4: {
				NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->vt_i4));
			break; }

			case VT_I4|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_i4_vec(ndr, NDR_SCALARS, &r->vt_i4_vec));
			break; }

			case VT_I4|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i4_safe2_array(ndr, NDR_SCALARS, &r->vt_i4_array));
			break; }

			case VT_UI4: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vt_ui4));
			break; }

			case VT_UI4|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui4_vec(ndr, NDR_SCALARS, &r->vt_ui4_vec));
			break; }

			case VT_UI4|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui4_safe2_array(ndr, NDR_SCALARS, &r->vt_ui4_array));
			break; }

			case VT_R4: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vt_r4));
			break; }

			case VT_R4|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_i4_vec(ndr, NDR_SCALARS, &r->vt_r4_vec));
			break; }

			case VT_R4|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i4_safe2_array(ndr, NDR_SCALARS, &r->vt_r4_array));
			break; }

			case VT_INT: {
				NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->vt_int));
			break; }

			case VT_INT|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_i4_safe2_array(ndr, NDR_SCALARS, &r->vt_int_array));
			break; }

			case VT_UINT: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vt_uint));
			break; }

			case VT_UINT|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui4_safe2_array(ndr, NDR_SCALARS, &r->vt_uint_array));
			break; }

			case VT_ERROR: {
				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vt_error));
			break; }

			case VT_ERROR|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_ui4_vec(ndr, NDR_SCALARS, &r->vt_error_vec));
			break; }

			case VT_ERROR|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_ui4_safe2_array(ndr, NDR_SCALARS, &r->vt_error_array));
			break; }

			case VT_I8: {
				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vt_i8));
			break; }

			case VT_I8|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_i8_vec));
			break; }

			case VT_UI8: {
				NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->vt_ui8));
			break; }

			case VT_UI8|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_udlong_vec(ndr, NDR_SCALARS, &r->vt_ui8_vec));
			break; }

			case VT_R8: {
				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vt_r8));
			break; }

			case VT_R8|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_r8_vec));
			break; }

			case VT_R8|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_dlong_safe2_array(ndr, NDR_SCALARS, &r->vt_r8_array));
			break; }

			case VT_CY: {
				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vt_cy));
			break; }

			case VT_CY|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_cy_vec));
			break; }

			case VT_CY|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_dlong_safe2_array(ndr, NDR_SCALARS, &r->vt_cy_array));
			break; }

			case VT_DATE: {
				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->vt_date));
			break; }

			case VT_DATE|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_date_vec));
			break; }

			case VT_DATE|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_dlong_safe2_array(ndr, NDR_SCALARS, &r->vt_date_array));
			break; }

			case VT_FILETIME: {
				NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->vt_filetime));
			break; }

			case VT_FILETIME|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_udlong_vec(ndr, NDR_SCALARS, &r->vt_filetime_vec));
			break; }

			case VT_BSTR: {
				NDR_CHECK(ndr_push_vt_bstr(ndr, NDR_SCALARS, &r->vt_bstr));
			break; }

			case VT_BSTR|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_bstr_vec(ndr, NDR_SCALARS, &r->vt_bstr_v));
			break; }

			case VT_BSTR|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_bstr_safe2_array(ndr, NDR_SCALARS, &r->vt_bstr_array));
			break; }

			case VT_LPWSTR: {
				NDR_CHECK(ndr_push_vt_lpwstr(ndr, NDR_SCALARS, &r->vt_lpwstr));
			break; }

			case VT_LPWSTR|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_lpwstr_vec(ndr, NDR_SCALARS, &r->vt_lpwstr_v));
			break; }

			case VT_COMPRESSED_LPWSTR: {
				NDR_CHECK(ndr_push_vt_compressed_lpwstr(ndr, NDR_SCALARS, &r->vt_compressed_lpwstr));
			break; }

			case VT_COMPRESSED_LPWSTR|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_compressed_lpwstr_vec(ndr, NDR_SCALARS, &r->vt_compresseed_lpwstr_v));
			break; }

			case VT_DECIMAL: {
				NDR_CHECK(ndr_push_vt_decimal(ndr, NDR_SCALARS, &r->vt_decimal));
			break; }

			case VT_DECIMAL|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_decimal_vec(ndr, NDR_SCALARS, &r->vt_decimal_v));
			break; }

			case VT_CLSID: {
				NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->vt_clid));
			break; }

			case VT_CLSID|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_clsid_vec(ndr, NDR_SCALARS, &r->vt_clsid_v));
			break; }

			case VT_BLOB: {
				NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->vt_blob));
			break; }

			case VT_BLOB_OBJECT: {
				NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->vt_blob_object));
			break; }

			case VT_NULL: {
			break; }

			case VT_EMPTY: {
			break; }

			case VT_VARIANT: {
				NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_SCALARS, &r->vt_variant_wrap));
			break; }

			case VT_VARIANT|VT_VECTOR: {
				NDR_CHECK(ndr_push_vt_variant_wrap_vec(ndr, NDR_SCALARS, &r->vt_variant_wrap_vec));
			break; }

			case VT_VARIANT|VT_ARRAY: {
				NDR_CHECK(ndr_push_vt_variant_wrap_safearray2(ndr, NDR_SCALARS, &r->vt_variant_wrap_array));
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case VT_I1:
			break;

			case VT_I1|VT_ARRAY:
			break;

			case VT_I1|VT_VECTOR:
			break;

			case VT_UI1:
			break;

			case VT_UI1|VT_ARRAY:
			break;

			case VT_UI1|VT_VECTOR:
			break;

			case VT_I2:
			break;

			case VT_I2|VT_ARRAY:
			break;

			case VT_I2|VT_VECTOR:
			break;

			case VT_UI2:
			break;

			case VT_UI2|VT_ARRAY:
			break;

			case VT_UI2|VT_VECTOR:
			break;

			case VT_BOOL:
			break;

			case VT_BOOL|VT_ARRAY:
			break;

			case VT_BOOL|VT_VECTOR:
			break;

			case VT_I4:
			break;

			case VT_I4|VT_VECTOR:
			break;

			case VT_I4|VT_ARRAY:
			break;

			case VT_UI4:
			break;

			case VT_UI4|VT_VECTOR:
			break;

			case VT_UI4|VT_ARRAY:
			break;

			case VT_R4:
			break;

			case VT_R4|VT_VECTOR:
			break;

			case VT_R4|VT_ARRAY:
			break;

			case VT_INT:
			break;

			case VT_INT|VT_ARRAY:
			break;

			case VT_UINT:
			break;

			case VT_UINT|VT_ARRAY:
			break;

			case VT_ERROR:
			break;

			case VT_ERROR|VT_VECTOR:
			break;

			case VT_ERROR|VT_ARRAY:
			break;

			case VT_I8:
			break;

			case VT_I8|VT_VECTOR:
			break;

			case VT_UI8:
			break;

			case VT_UI8|VT_VECTOR:
			break;

			case VT_R8:
			break;

			case VT_R8|VT_VECTOR:
			break;

			case VT_R8|VT_ARRAY:
			break;

			case VT_CY:
			break;

			case VT_CY|VT_VECTOR:
			break;

			case VT_CY|VT_ARRAY:
			break;

			case VT_DATE:
			break;

			case VT_DATE|VT_VECTOR:
			break;

			case VT_DATE|VT_ARRAY:
			break;

			case VT_FILETIME:
			break;

			case VT_FILETIME|VT_VECTOR:
			break;

			case VT_BSTR:
			break;

			case VT_BSTR|VT_VECTOR:
			break;

			case VT_BSTR|VT_ARRAY:
			break;

			case VT_LPWSTR:
			break;

			case VT_LPWSTR|VT_VECTOR:
			break;

			case VT_COMPRESSED_LPWSTR:
			break;

			case VT_COMPRESSED_LPWSTR|VT_VECTOR:
			break;

			case VT_DECIMAL:
			break;

			case VT_DECIMAL|VT_VECTOR:
			break;

			case VT_CLSID:
			break;

			case VT_CLSID|VT_VECTOR:
			break;

			case VT_BLOB:
			break;

			case VT_BLOB_OBJECT:
			break;

			case VT_NULL:
			break;

			case VT_EMPTY:
			break;

			case VT_VARIANT:
				NDR_CHECK(ndr_push_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vt_variant_wrap));
			break;

			case VT_VARIANT|VT_VECTOR:
				NDR_CHECK(ndr_push_vt_variant_wrap_vec(ndr, NDR_BUFFERS, &r->vt_variant_wrap_vec));
			break;

			case VT_VARIANT|VT_ARRAY:
				NDR_CHECK(ndr_push_vt_variant_wrap_safearray2(ndr, NDR_BUFFERS, &r->vt_variant_wrap_array));
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_serialised_types(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union serialised_types *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case VT_I1: {
				NDR_CHECK(ndr_pull_int8(ndr, NDR_SCALARS, &r->vt_i1));
			break; }

			case VT_I1|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i1_safe2_array(ndr, NDR_SCALARS, &r->vt_i1_array));
			break; }

			case VT_I1|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_i1_vec(ndr, NDR_SCALARS, &r->vt_i1_vec));
			break; }

			case VT_UI1: {
				NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->vt_ui1));
			break; }

			case VT_UI1|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui1_safe2_array(ndr, NDR_SCALARS, &r->vt_ui1_array));
			break; }

			case VT_UI1|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui1_vec(ndr, NDR_SCALARS, &r->vt_ui1_vec));
			break; }

			case VT_I2: {
				NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->vt_i2));
			break; }

			case VT_I2|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i2_safe2_array(ndr, NDR_SCALARS, &r->vt_i2_array));
			break; }

			case VT_I2|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_i2_vec(ndr, NDR_SCALARS, &r->vt_i2_vec));
			break; }

			case VT_UI2: {
				NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vt_ui2));
			break; }

			case VT_UI2|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui2_safe2_array(ndr, NDR_SCALARS, &r->vt_ui2_array));
			break; }

			case VT_UI2|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui2_vec(ndr, NDR_SCALARS, &r->vt_ui2_vec));
			break; }

			case VT_BOOL: {
				NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vt_bool));
			break; }

			case VT_BOOL|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui2_safe2_array(ndr, NDR_SCALARS, &r->vt_bool_array));
			break; }

			case VT_BOOL|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui2_vec(ndr, NDR_SCALARS, &r->vt_bool_vec));
			break; }

			case VT_I4: {
				NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->vt_i4));
			break; }

			case VT_I4|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_i4_vec(ndr, NDR_SCALARS, &r->vt_i4_vec));
			break; }

			case VT_I4|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i4_safe2_array(ndr, NDR_SCALARS, &r->vt_i4_array));
			break; }

			case VT_UI4: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vt_ui4));
			break; }

			case VT_UI4|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui4_vec(ndr, NDR_SCALARS, &r->vt_ui4_vec));
			break; }

			case VT_UI4|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui4_safe2_array(ndr, NDR_SCALARS, &r->vt_ui4_array));
			break; }

			case VT_R4: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vt_r4));
			break; }

			case VT_R4|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_i4_vec(ndr, NDR_SCALARS, &r->vt_r4_vec));
			break; }

			case VT_R4|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i4_safe2_array(ndr, NDR_SCALARS, &r->vt_r4_array));
			break; }

			case VT_INT: {
				NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->vt_int));
			break; }

			case VT_INT|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_i4_safe2_array(ndr, NDR_SCALARS, &r->vt_int_array));
			break; }

			case VT_UINT: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vt_uint));
			break; }

			case VT_UINT|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui4_safe2_array(ndr, NDR_SCALARS, &r->vt_uint_array));
			break; }

			case VT_ERROR: {
				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vt_error));
			break; }

			case VT_ERROR|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_ui4_vec(ndr, NDR_SCALARS, &r->vt_error_vec));
			break; }

			case VT_ERROR|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_ui4_safe2_array(ndr, NDR_SCALARS, &r->vt_error_array));
			break; }

			case VT_I8: {
				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vt_i8));
			break; }

			case VT_I8|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_i8_vec));
			break; }

			case VT_UI8: {
				NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->vt_ui8));
			break; }

			case VT_UI8|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_udlong_vec(ndr, NDR_SCALARS, &r->vt_ui8_vec));
			break; }

			case VT_R8: {
				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vt_r8));
			break; }

			case VT_R8|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_r8_vec));
			break; }

			case VT_R8|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_dlong_safe2_array(ndr, NDR_SCALARS, &r->vt_r8_array));
			break; }

			case VT_CY: {
				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vt_cy));
			break; }

			case VT_CY|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_cy_vec));
			break; }

			case VT_CY|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_dlong_safe2_array(ndr, NDR_SCALARS, &r->vt_cy_array));
			break; }

			case VT_DATE: {
				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->vt_date));
			break; }

			case VT_DATE|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_dlong_vec(ndr, NDR_SCALARS, &r->vt_date_vec));
			break; }

			case VT_DATE|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_dlong_safe2_array(ndr, NDR_SCALARS, &r->vt_date_array));
			break; }

			case VT_FILETIME: {
				NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->vt_filetime));
			break; }

			case VT_FILETIME|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_udlong_vec(ndr, NDR_SCALARS, &r->vt_filetime_vec));
			break; }

			case VT_BSTR: {
				NDR_CHECK(ndr_pull_vt_bstr(ndr, NDR_SCALARS, &r->vt_bstr));
			break; }

			case VT_BSTR|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_bstr_vec(ndr, NDR_SCALARS, &r->vt_bstr_v));
			break; }

			case VT_BSTR|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_bstr_safe2_array(ndr, NDR_SCALARS, &r->vt_bstr_array));
			break; }

			case VT_LPWSTR: {
				NDR_CHECK(ndr_pull_vt_lpwstr(ndr, NDR_SCALARS, &r->vt_lpwstr));
			break; }

			case VT_LPWSTR|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_lpwstr_vec(ndr, NDR_SCALARS, &r->vt_lpwstr_v));
			break; }

			case VT_COMPRESSED_LPWSTR: {
				NDR_CHECK(ndr_pull_vt_compressed_lpwstr(ndr, NDR_SCALARS, &r->vt_compressed_lpwstr));
			break; }

			case VT_COMPRESSED_LPWSTR|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_compressed_lpwstr_vec(ndr, NDR_SCALARS, &r->vt_compresseed_lpwstr_v));
			break; }

			case VT_DECIMAL: {
				NDR_CHECK(ndr_pull_vt_decimal(ndr, NDR_SCALARS, &r->vt_decimal));
			break; }

			case VT_DECIMAL|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_decimal_vec(ndr, NDR_SCALARS, &r->vt_decimal_v));
			break; }

			case VT_CLSID: {
				NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->vt_clid));
			break; }

			case VT_CLSID|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_clsid_vec(ndr, NDR_SCALARS, &r->vt_clsid_v));
			break; }

			case VT_BLOB: {
				NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->vt_blob));
			break; }

			case VT_BLOB_OBJECT: {
				NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->vt_blob_object));
			break; }

			case VT_NULL: {
			break; }

			case VT_EMPTY: {
			break; }

			case VT_VARIANT: {
				NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_SCALARS, &r->vt_variant_wrap));
			break; }

			case VT_VARIANT|VT_VECTOR: {
				NDR_CHECK(ndr_pull_vt_variant_wrap_vec(ndr, NDR_SCALARS, &r->vt_variant_wrap_vec));
			break; }

			case VT_VARIANT|VT_ARRAY: {
				NDR_CHECK(ndr_pull_vt_variant_wrap_safearray2(ndr, NDR_SCALARS, &r->vt_variant_wrap_array));
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case VT_I1:
			break;

			case VT_I1|VT_ARRAY:
			break;

			case VT_I1|VT_VECTOR:
			break;

			case VT_UI1:
			break;

			case VT_UI1|VT_ARRAY:
			break;

			case VT_UI1|VT_VECTOR:
			break;

			case VT_I2:
			break;

			case VT_I2|VT_ARRAY:
			break;

			case VT_I2|VT_VECTOR:
			break;

			case VT_UI2:
			break;

			case VT_UI2|VT_ARRAY:
			break;

			case VT_UI2|VT_VECTOR:
			break;

			case VT_BOOL:
			break;

			case VT_BOOL|VT_ARRAY:
			break;

			case VT_BOOL|VT_VECTOR:
			break;

			case VT_I4:
			break;

			case VT_I4|VT_VECTOR:
			break;

			case VT_I4|VT_ARRAY:
			break;

			case VT_UI4:
			break;

			case VT_UI4|VT_VECTOR:
			break;

			case VT_UI4|VT_ARRAY:
			break;

			case VT_R4:
			break;

			case VT_R4|VT_VECTOR:
			break;

			case VT_R4|VT_ARRAY:
			break;

			case VT_INT:
			break;

			case VT_INT|VT_ARRAY:
			break;

			case VT_UINT:
			break;

			case VT_UINT|VT_ARRAY:
			break;

			case VT_ERROR:
			break;

			case VT_ERROR|VT_VECTOR:
			break;

			case VT_ERROR|VT_ARRAY:
			break;

			case VT_I8:
			break;

			case VT_I8|VT_VECTOR:
			break;

			case VT_UI8:
			break;

			case VT_UI8|VT_VECTOR:
			break;

			case VT_R8:
			break;

			case VT_R8|VT_VECTOR:
			break;

			case VT_R8|VT_ARRAY:
			break;

			case VT_CY:
			break;

			case VT_CY|VT_VECTOR:
			break;

			case VT_CY|VT_ARRAY:
			break;

			case VT_DATE:
			break;

			case VT_DATE|VT_VECTOR:
			break;

			case VT_DATE|VT_ARRAY:
			break;

			case VT_FILETIME:
			break;

			case VT_FILETIME|VT_VECTOR:
			break;

			case VT_BSTR:
			break;

			case VT_BSTR|VT_VECTOR:
			break;

			case VT_BSTR|VT_ARRAY:
			break;

			case VT_LPWSTR:
			break;

			case VT_LPWSTR|VT_VECTOR:
			break;

			case VT_COMPRESSED_LPWSTR:
			break;

			case VT_COMPRESSED_LPWSTR|VT_VECTOR:
			break;

			case VT_DECIMAL:
			break;

			case VT_DECIMAL|VT_VECTOR:
			break;

			case VT_CLSID:
			break;

			case VT_CLSID|VT_VECTOR:
			break;

			case VT_BLOB:
			break;

			case VT_BLOB_OBJECT:
			break;

			case VT_NULL:
			break;

			case VT_EMPTY:
			break;

			case VT_VARIANT:
				NDR_CHECK(ndr_pull_vt_variant_wrap(ndr, NDR_BUFFERS, &r->vt_variant_wrap));
			break;

			case VT_VARIANT|VT_VECTOR:
				NDR_CHECK(ndr_pull_vt_variant_wrap_vec(ndr, NDR_BUFFERS, &r->vt_variant_wrap_vec));
			break;

			case VT_VARIANT|VT_ARRAY:
				NDR_CHECK(ndr_pull_vt_variant_wrap_safearray2(ndr, NDR_BUFFERS, &r->vt_variant_wrap_array));
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_serialised_types(struct ndr_print *ndr, const char *name, const union serialised_types *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "serialised_types");
	switch (level) {
		case VT_I1:
			ndr_print_int8(ndr, "vt_i1", r->vt_i1);
		break;

		case VT_I1|VT_ARRAY:
			ndr_print_vt_i1_safe2_array(ndr, "vt_i1_array", &r->vt_i1_array);
		break;

		case VT_I1|VT_VECTOR:
			ndr_print_vt_i1_vec(ndr, "vt_i1_vec", &r->vt_i1_vec);
		break;

		case VT_UI1:
			ndr_print_uint8(ndr, "vt_ui1", r->vt_ui1);
		break;

		case VT_UI1|VT_ARRAY:
			ndr_print_vt_ui1_safe2_array(ndr, "vt_ui1_array", &r->vt_ui1_array);
		break;

		case VT_UI1|VT_VECTOR:
			ndr_print_vt_ui1_vec(ndr, "vt_ui1_vec", &r->vt_ui1_vec);
		break;

		case VT_I2:
			ndr_print_int16(ndr, "vt_i2", r->vt_i2);
		break;

		case VT_I2|VT_ARRAY:
			ndr_print_vt_i2_safe2_array(ndr, "vt_i2_array", &r->vt_i2_array);
		break;

		case VT_I2|VT_VECTOR:
			ndr_print_vt_i2_vec(ndr, "vt_i2_vec", &r->vt_i2_vec);
		break;

		case VT_UI2:
			ndr_print_uint16(ndr, "vt_ui2", r->vt_ui2);
		break;

		case VT_UI2|VT_ARRAY:
			ndr_print_vt_ui2_safe2_array(ndr, "vt_ui2_array", &r->vt_ui2_array);
		break;

		case VT_UI2|VT_VECTOR:
			ndr_print_vt_ui2_vec(ndr, "vt_ui2_vec", &r->vt_ui2_vec);
		break;

		case VT_BOOL:
			ndr_print_uint16(ndr, "vt_bool", r->vt_bool);
		break;

		case VT_BOOL|VT_ARRAY:
			ndr_print_vt_ui2_safe2_array(ndr, "vt_bool_array", &r->vt_bool_array);
		break;

		case VT_BOOL|VT_VECTOR:
			ndr_print_vt_ui2_vec(ndr, "vt_bool_vec", &r->vt_bool_vec);
		break;

		case VT_I4:
			ndr_print_int32(ndr, "vt_i4", r->vt_i4);
		break;

		case VT_I4|VT_VECTOR:
			ndr_print_vt_i4_vec(ndr, "vt_i4_vec", &r->vt_i4_vec);
		break;

		case VT_I4|VT_ARRAY:
			ndr_print_vt_i4_safe2_array(ndr, "vt_i4_array", &r->vt_i4_array);
		break;

		case VT_UI4:
			ndr_print_uint32(ndr, "vt_ui4", r->vt_ui4);
		break;

		case VT_UI4|VT_VECTOR:
			ndr_print_vt_ui4_vec(ndr, "vt_ui4_vec", &r->vt_ui4_vec);
		break;

		case VT_UI4|VT_ARRAY:
			ndr_print_vt_ui4_safe2_array(ndr, "vt_ui4_array", &r->vt_ui4_array);
		break;

		case VT_R4:
			ndr_print_uint32(ndr, "vt_r4", r->vt_r4);
		break;

		case VT_R4|VT_VECTOR:
			ndr_print_vt_i4_vec(ndr, "vt_r4_vec", &r->vt_r4_vec);
		break;

		case VT_R4|VT_ARRAY:
			ndr_print_vt_i4_safe2_array(ndr, "vt_r4_array", &r->vt_r4_array);
		break;

		case VT_INT:
			ndr_print_int32(ndr, "vt_int", r->vt_int);
		break;

		case VT_INT|VT_ARRAY:
			ndr_print_vt_i4_safe2_array(ndr, "vt_int_array", &r->vt_int_array);
		break;

		case VT_UINT:
			ndr_print_uint32(ndr, "vt_uint", r->vt_uint);
		break;

		case VT_UINT|VT_ARRAY:
			ndr_print_vt_ui4_safe2_array(ndr, "vt_uint_array", &r->vt_uint_array);
		break;

		case VT_ERROR:
			ndr_print_uint32(ndr, "vt_error", r->vt_error);
		break;

		case VT_ERROR|VT_VECTOR:
			ndr_print_vt_ui4_vec(ndr, "vt_error_vec", &r->vt_error_vec);
		break;

		case VT_ERROR|VT_ARRAY:
			ndr_print_vt_ui4_safe2_array(ndr, "vt_error_array", &r->vt_error_array);
		break;

		case VT_I8:
			ndr_print_dlong(ndr, "vt_i8", r->vt_i8);
		break;

		case VT_I8|VT_VECTOR:
			ndr_print_vt_dlong_vec(ndr, "vt_i8_vec", &r->vt_i8_vec);
		break;

		case VT_UI8:
			ndr_print_udlong(ndr, "vt_ui8", r->vt_ui8);
		break;

		case VT_UI8|VT_VECTOR:
			ndr_print_vt_udlong_vec(ndr, "vt_ui8_vec", &r->vt_ui8_vec);
		break;

		case VT_R8:
			ndr_print_dlong(ndr, "vt_r8", r->vt_r8);
		break;

		case VT_R8|VT_VECTOR:
			ndr_print_vt_dlong_vec(ndr, "vt_r8_vec", &r->vt_r8_vec);
		break;

		case VT_R8|VT_ARRAY:
			ndr_print_vt_dlong_safe2_array(ndr, "vt_r8_array", &r->vt_r8_array);
		break;

		case VT_CY:
			ndr_print_dlong(ndr, "vt_cy", r->vt_cy);
		break;

		case VT_CY|VT_VECTOR:
			ndr_print_vt_dlong_vec(ndr, "vt_cy_vec", &r->vt_cy_vec);
		break;

		case VT_CY|VT_ARRAY:
			ndr_print_vt_dlong_safe2_array(ndr, "vt_cy_array", &r->vt_cy_array);
		break;

		case VT_DATE:
			ndr_print_dlong(ndr, "vt_date", r->vt_date);
		break;

		case VT_DATE|VT_VECTOR:
			ndr_print_vt_dlong_vec(ndr, "vt_date_vec", &r->vt_date_vec);
		break;

		case VT_DATE|VT_ARRAY:
			ndr_print_vt_dlong_safe2_array(ndr, "vt_date_array", &r->vt_date_array);
		break;

		case VT_FILETIME:
			ndr_print_udlong(ndr, "vt_filetime", r->vt_filetime);
		break;

		case VT_FILETIME|VT_VECTOR:
			ndr_print_vt_udlong_vec(ndr, "vt_filetime_vec", &r->vt_filetime_vec);
		break;

		case VT_BSTR:
			ndr_print_vt_bstr(ndr, "vt_bstr", &r->vt_bstr);
		break;

		case VT_BSTR|VT_VECTOR:
			ndr_print_vt_bstr_vec(ndr, "vt_bstr_v", &r->vt_bstr_v);
		break;

		case VT_BSTR|VT_ARRAY:
			ndr_print_vt_bstr_safe2_array(ndr, "vt_bstr_array", &r->vt_bstr_array);
		break;

		case VT_LPWSTR:
			ndr_print_vt_lpwstr(ndr, "vt_lpwstr", &r->vt_lpwstr);
		break;

		case VT_LPWSTR|VT_VECTOR:
			ndr_print_vt_lpwstr_vec(ndr, "vt_lpwstr_v", &r->vt_lpwstr_v);
		break;

		case VT_COMPRESSED_LPWSTR:
			ndr_print_vt_compressed_lpwstr(ndr, "vt_compressed_lpwstr", &r->vt_compressed_lpwstr);
		break;

		case VT_COMPRESSED_LPWSTR|VT_VECTOR:
			ndr_print_vt_compressed_lpwstr_vec(ndr, "vt_compresseed_lpwstr_v", &r->vt_compresseed_lpwstr_v);
		break;

		case VT_DECIMAL:
			ndr_print_vt_decimal(ndr, "vt_decimal", &r->vt_decimal);
		break;

		case VT_DECIMAL|VT_VECTOR:
			ndr_print_vt_decimal_vec(ndr, "vt_decimal_v", &r->vt_decimal_v);
		break;

		case VT_CLSID:
			ndr_print_GUID(ndr, "vt_clid", &r->vt_clid);
		break;

		case VT_CLSID|VT_VECTOR:
			ndr_print_vt_clsid_vec(ndr, "vt_clsid_v", &r->vt_clsid_v);
		break;

		case VT_BLOB:
			ndr_print_DATA_BLOB(ndr, "vt_blob", r->vt_blob);
		break;

		case VT_BLOB_OBJECT:
			ndr_print_DATA_BLOB(ndr, "vt_blob_object", r->vt_blob_object);
		break;

		case VT_NULL:
		break;

		case VT_EMPTY:
		break;

		case VT_VARIANT:
			ndr_print_vt_variant_wrap(ndr, "vt_variant_wrap", &r->vt_variant_wrap);
		break;

		case VT_VARIANT|VT_VECTOR:
			ndr_print_vt_variant_wrap_vec(ndr, "vt_variant_wrap_vec", &r->vt_variant_wrap_vec);
		break;

		case VT_VARIANT|VT_ARRAY:
			ndr_print_vt_variant_wrap_safearray2(ndr, "vt_variant_wrap_array", &r->vt_variant_wrap_array);
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_serializedpropertyvalue(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_serializedpropertyvalue *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwtype));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->rgb, r->dwtype));
		NDR_CHECK(ndr_push_serialised_types(ndr, NDR_SCALARS, &r->rgb));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->rgb, r->dwtype));
		NDR_CHECK(ndr_push_serialised_types(ndr, NDR_BUFFERS, &r->rgb));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_serializedpropertyvalue(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_serializedpropertyvalue *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwtype));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->rgb, r->dwtype));
		NDR_CHECK(ndr_pull_serialised_types(ndr, NDR_SCALARS, &r->rgb));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->rgb, r->dwtype));
		NDR_CHECK(ndr_pull_serialised_types(ndr, NDR_BUFFERS, &r->rgb));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_serializedpropertyvalue(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_serializedpropertyvalue *r)
{
	ndr_print_wsp_serializedpropertyvalue(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_serializedpropertyvalue(struct ndr_print *ndr, const char *name, const struct wsp_serializedpropertyvalue *r)
{
	ndr_print_struct(ndr, name, "wsp_serializedpropertyvalue");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "dwtype", r->dwtype);
	ndr_print_set_switch_value(ndr, &r->rgb, r->dwtype);
	ndr_print_serialised_types(ndr, "rgb", &r->rgb);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmfetchvalueout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmfetchvalueout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbvalue));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fmoreexists));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fvalueexists));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmfetchvalueout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmfetchvalueout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbvalue));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fmoreexists));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fvalueexists));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmfetchvalueout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmfetchvalueout *r)
{
	ndr_print_wsp_cpmfetchvalueout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmfetchvalueout(struct ndr_print *ndr, const char *name, const struct wsp_cpmfetchvalueout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmfetchvalueout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cbvalue", r->cbvalue);
	ndr_print_uint32(ndr, "fmoreexists", r->fmoreexists);
	ndr_print_uint32(ndr, "fvalueexists", r->fvalueexists);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmsetscopeprioritizationin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmsetscopeprioritizationin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventfrequency));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmsetscopeprioritizationin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmsetscopeprioritizationin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventfrequency));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmsetscopeprioritizationin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmsetscopeprioritizationin *r)
{
	ndr_print_wsp_cpmsetscopeprioritizationin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmsetscopeprioritizationin(struct ndr_print *ndr, const char *name, const struct wsp_cpmsetscopeprioritizationin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmsetscopeprioritizationin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "priority", r->priority);
	ndr_print_uint32(ndr, "eventfrequency", r->eventfrequency);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmsendnotifyout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmsendnotifyout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->watchnotify));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmsendnotifyout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmsendnotifyout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->watchnotify));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmsendnotifyout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmsendnotifyout *r)
{
	ndr_print_wsp_cpmsendnotifyout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmsendnotifyout(struct ndr_print *ndr, const char *name, const struct wsp_cpmsendnotifyout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmsendnotifyout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "watchnotify", r->watchnotify);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetrowsetnotifyout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetrowsetnotifyout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->wid));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->eventinfo));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->rowitemstate));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->changeditemstate));
		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->rowsetevent));
		NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->rowseteventdata1));
		NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->rowseteventdata2));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetrowsetnotifyout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetrowsetnotifyout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->wid));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->eventinfo));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->rowitemstate));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->changeditemstate));
		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->rowsetevent));
		NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->rowseteventdata1));
		NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->rowseteventdata2));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetrowsetnotifyout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetrowsetnotifyout *r)
{
	ndr_print_wsp_cpmgetrowsetnotifyout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetrowsetnotifyout(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetrowsetnotifyout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetrowsetnotifyout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "wid", r->wid);
	ndr_print_uint8(ndr, "eventinfo", r->eventinfo);
	ndr_print_uint8(ndr, "rowitemstate", r->rowitemstate);
	ndr_print_uint8(ndr, "changeditemstate", r->changeditemstate);
	ndr_print_uint8(ndr, "rowsetevent", r->rowsetevent);
	ndr_print_dlong(ndr, "rowseteventdata1", r->rowseteventdata1);
	ndr_print_dlong(ndr, "rowseteventdata2", r->rowseteventdata2);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetscopestatisticsout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetscopestatisticsout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwindexeditems));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwoutstandingadds));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwoustandingmodifies));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetscopestatisticsout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetscopestatisticsout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwindexeditems));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwoutstandingadds));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwoustandingmodifies));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetscopestatisticsout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetscopestatisticsout *r)
{
	ndr_print_wsp_cpmgetscopestatisticsout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetscopestatisticsout(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetscopestatisticsout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetscopestatisticsout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "dwindexeditems", r->dwindexeditems);
	ndr_print_uint32(ndr, "dwoutstandingadds", r->dwoutstandingadds);
	ndr_print_uint32(ndr, "dwoustandingmodifies", r->dwoustandingmodifies);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetapproximatepositionin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetapproximatepositionin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->chapt));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bmk));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetapproximatepositionin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetapproximatepositionin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->chapt));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bmk));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetapproximatepositionin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetapproximatepositionin *r)
{
	ndr_print_wsp_cpmgetapproximatepositionin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetapproximatepositionin(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetapproximatepositionin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetapproximatepositionin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr_print_uint32(ndr, "chapt", r->chapt);
	ndr_print_uint32(ndr, "bmk", r->bmk);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmgetapproximatepositionout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmgetapproximatepositionout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->numerator));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->denominator));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmgetapproximatepositionout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmgetapproximatepositionout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->numerator));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->denominator));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmgetapproximatepositionout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmgetapproximatepositionout *r)
{
	ndr_print_wsp_cpmgetapproximatepositionout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmgetapproximatepositionout(struct ndr_print *ndr, const char *name, const struct wsp_cpmgetapproximatepositionout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmgetapproximatepositionout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "numerator", r->numerator);
	ndr_print_uint32(ndr, "denominator", r->denominator);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmcomparebmkin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmcomparebmkin *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->hcursor));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->chapt));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bmkfirst));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bmksecond));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmcomparebmkin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmcomparebmkin *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hcursor));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->chapt));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bmkfirst));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bmksecond));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmcomparebmkin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmcomparebmkin *r)
{
	ndr_print_wsp_cpmcomparebmkin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmcomparebmkin(struct ndr_print *ndr, const char *name, const struct wsp_cpmcomparebmkin *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmcomparebmkin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "hcursor", r->hcursor);
	ndr_print_uint32(ndr, "chapt", r->chapt);
	ndr_print_uint32(ndr, "bmkfirst", r->bmkfirst);
	ndr_print_uint32(ndr, "bmksecond", r->bmksecond);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmcomparebmkout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmcomparebmkout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwcomparison));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmcomparebmkout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmcomparebmkout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwcomparison));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmcomparebmkout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmcomparebmkout *r)
{
	ndr_print_wsp_cpmcomparebmkout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmcomparebmkout(struct ndr_print *ndr, const char *name, const struct wsp_cpmcomparebmkout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmcomparebmkout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "dwcomparison", r->dwcomparison);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_cpmcistateinout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_cpmcistateinout *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbstruct));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cwordlist));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cpersistentindex));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cqueries));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cdocuments));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cfreshtest));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwmergeprogress));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->estate));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cfiltereddocuments));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ctotaldocuments));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cpendingscans));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwindexsize));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cuniquekeys));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->csecqdocuments));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwpropcachesize));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_cpmcistateinout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_cpmcistateinout *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbstruct));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cwordlist));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cpersistentindex));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cqueries));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cdocuments));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cfreshtest));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwmergeprogress));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->estate));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cfiltereddocuments));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ctotaldocuments));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cpendingscans));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwindexsize));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cuniquekeys));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->csecqdocuments));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwpropcachesize));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_cpmcistateinout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_cpmcistateinout *r)
{
	ndr_print_wsp_cpmcistateinout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_cpmcistateinout(struct ndr_print *ndr, const char *name, const struct wsp_cpmcistateinout *r)
{
	ndr_print_struct(ndr, name, "wsp_cpmcistateinout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cbstruct", r->cbstruct);
	ndr_print_uint32(ndr, "cwordlist", r->cwordlist);
	ndr_print_uint32(ndr, "cpersistentindex", r->cpersistentindex);
	ndr_print_uint32(ndr, "cqueries", r->cqueries);
	ndr_print_uint32(ndr, "cdocuments", r->cdocuments);
	ndr_print_uint32(ndr, "cfreshtest", r->cfreshtest);
	ndr_print_uint32(ndr, "dwmergeprogress", r->dwmergeprogress);
	ndr_print_uint32(ndr, "estate", r->estate);
	ndr_print_uint32(ndr, "cfiltereddocuments", r->cfiltereddocuments);
	ndr_print_uint32(ndr, "ctotaldocuments", r->ctotaldocuments);
	ndr_print_uint32(ndr, "cpendingscans", r->cpendingscans);
	ndr_print_uint32(ndr, "dwindexsize", r->dwindexsize);
	ndr_print_uint32(ndr, "cuniquekeys", r->cuniquekeys);
	ndr_print_uint32(ndr, "csecqdocuments", r->csecqdocuments);
	ndr_print_uint32(ndr, "dwpropcachesize", r->dwpropcachesize);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_findindicesin(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_findindicesin *r)
{
	uint32_t cntr_pwids_0;
	uint32_t cntr_prgirowprev_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cwids));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cdepthprev));
		for (cntr_pwids_0 = 0; cntr_pwids_0 < (r->cwids); cntr_pwids_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pwids[cntr_pwids_0]));
		}
		for (cntr_prgirowprev_0 = 0; cntr_prgirowprev_0 < (r->cdepthprev); cntr_prgirowprev_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->prgirowprev[cntr_prgirowprev_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_findindicesin(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_findindicesin *r)
{
	uint32_t size_pwids_0 = 0;
	uint32_t cntr_pwids_0;
	TALLOC_CTX *_mem_save_pwids_0 = NULL;
	uint32_t size_prgirowprev_0 = 0;
	uint32_t cntr_prgirowprev_0;
	TALLOC_CTX *_mem_save_prgirowprev_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cwids));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cdepthprev));
		size_pwids_0 = r->cwids;
		NDR_PULL_ALLOC_N(ndr, r->pwids, size_pwids_0);
		_mem_save_pwids_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->pwids, 0);
		for (cntr_pwids_0 = 0; cntr_pwids_0 < (size_pwids_0); cntr_pwids_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pwids[cntr_pwids_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwids_0, 0);
		size_prgirowprev_0 = r->cdepthprev;
		NDR_PULL_ALLOC_N(ndr, r->prgirowprev, size_prgirowprev_0);
		_mem_save_prgirowprev_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->prgirowprev, 0);
		for (cntr_prgirowprev_0 = 0; cntr_prgirowprev_0 < (size_prgirowprev_0); cntr_prgirowprev_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->prgirowprev[cntr_prgirowprev_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_prgirowprev_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_findindicesin(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_findindicesin *r)
{
	ndr_print_wsp_findindicesin(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_findindicesin(struct ndr_print *ndr, const char *name, const struct wsp_findindicesin *r)
{
	uint32_t cntr_pwids_0;
	uint32_t cntr_prgirowprev_0;
	ndr_print_struct(ndr, name, "wsp_findindicesin");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cwids", r->cwids);
	ndr_print_uint32(ndr, "cdepthprev", r->cdepthprev);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "pwids", (uint32_t)(r->cwids));
	ndr->depth++;
	for (cntr_pwids_0 = 0; cntr_pwids_0 < (r->cwids); cntr_pwids_0++) {
		ndr_print_uint32(ndr, "pwids", r->pwids[cntr_pwids_0]);
	}
	ndr->depth--;
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "prgirowprev", (uint32_t)(r->cdepthprev));
	ndr->depth++;
	for (cntr_prgirowprev_0 = 0; cntr_prgirowprev_0 < (r->cdepthprev); cntr_prgirowprev_0++) {
		ndr_print_uint32(ndr, "prgirowprev", r->prgirowprev[cntr_prgirowprev_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_findindicesout(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_findindicesout *r)
{
	uint32_t cntr_prgirownext_0;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cdepthnext));
		for (cntr_prgirownext_0 = 0; cntr_prgirownext_0 < (r->cdepthnext); cntr_prgirownext_0++) {
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->prgirownext[cntr_prgirownext_0]));
		}
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_findindicesout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_findindicesout *r)
{
	uint32_t size_prgirownext_0 = 0;
	uint32_t cntr_prgirownext_0;
	TALLOC_CTX *_mem_save_prgirownext_0 = NULL;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cdepthnext));
		size_prgirownext_0 = r->cdepthnext;
		NDR_PULL_ALLOC_N(ndr, r->prgirownext, size_prgirownext_0);
		_mem_save_prgirownext_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->prgirownext, 0);
		for (cntr_prgirownext_0 = 0; cntr_prgirownext_0 < (size_prgirownext_0); cntr_prgirownext_0++) {
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->prgirownext[cntr_prgirownext_0]));
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_prgirownext_0, 0);
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_findindicesout(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_findindicesout *r)
{
	ndr_print_wsp_findindicesout(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_findindicesout(struct ndr_print *ndr, const char *name, const struct wsp_findindicesout *r)
{
	uint32_t cntr_prgirownext_0;
	ndr_print_struct(ndr, name, "wsp_findindicesout");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_uint32(ndr, "cdepthnext", r->cdepthnext);
	ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "prgirownext", (uint32_t)(r->cdepthnext));
	ndr->depth++;
	for (cntr_prgirownext_0 = 0; cntr_prgirownext_0 < (r->cdepthnext); cntr_prgirownext_0++) {
		ndr_print_uint32(ndr, "prgirownext", r->prgirownext[cntr_prgirownext_0]);
	}
	ndr->depth--;
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_req_message(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union req_message *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case CPMCONNECT: {
				NDR_CHECK(ndr_push_wsp_cpmconnectin(ndr, NDR_SCALARS, &r->cpmconnect));
			break; }

			case CPMCREATEQUERY: {
				NDR_CHECK(ndr_push_wsp_cpmcreatequeryin(ndr, NDR_SCALARS, &r->cpmcreatequery));
			break; }

			case CPMFREECURSOR: {
				NDR_CHECK(ndr_push_wsp_cpmfreecursorin(ndr, NDR_SCALARS, &r->cpmfreecursor));
			break; }

			case CPMGETROWS: {
				NDR_CHECK(ndr_push_wsp_cpmgetrowsin(ndr, NDR_SCALARS, &r->cpmgetrows));
			break; }

			case CPMSETBINDINGSIN: {
				NDR_CHECK(ndr_push_wsp_cpmsetbindingsin(ndr, NDR_SCALARS, &r->cpmsetbindings));
			break; }

			case CPMRESTARTPOSITIONIN: {
				NDR_CHECK(ndr_push_wsp_cpmrestartpositionin(ndr, NDR_SCALARS, &r->cpmrrestartpos));
			break; }

			case CPMGETQUERYSTATUS: {
				NDR_CHECK(ndr_push_wsp_cpmgetquerystatusin(ndr, NDR_SCALARS, &r->cpmgetquerystatus));
			break; }

			case CPMGETQUERYSTATUSEX: {
				NDR_CHECK(ndr_push_wsp_cpmgetquerystatusexin(ndr, NDR_SCALARS, &r->cpmgetquerystatusex));
			break; }

			case CPMSETSCOPEPRIORITIZATION: {
				NDR_CHECK(ndr_push_wsp_cpmsetscopeprioritizationin(ndr, NDR_SCALARS, &r->cpmsetscopeprioritizationin));
			break; }

			case CPMGETNOTIFY: {
			break; }

			case CPMGETROWSETNOTIFY: {
			break; }

			case CPMDISCONNECT: {
			break; }

			case CPMGETSCOPESTATISTICS: {
			break; }

			case CPMGETAPPROXIMATEPOSITION: {
				NDR_CHECK(ndr_push_wsp_cpmgetapproximatepositionin(ndr, NDR_SCALARS, &r->getapproximateposition));
			break; }

			case CPMCOMPAREBMK: {
				NDR_CHECK(ndr_push_wsp_cpmcomparebmkin(ndr, NDR_SCALARS, &r->cpmcomparebmk));
			break; }

			case CPMCISTATEOUT: {
				NDR_CHECK(ndr_push_wsp_cpmcistateinout(ndr, NDR_SCALARS, &r->wsp_cpmcistate));
			break; }

			case CPMFINDINDICES: {
				NDR_CHECK(ndr_push_wsp_findindicesin(ndr, NDR_SCALARS, &r->wsp_findindices));
			break; }

			case CPMRATIOFINISHED: {
				NDR_CHECK(ndr_push_wsp_cpmratiofinishedin(ndr, NDR_SCALARS, &r->wsp_cpmratiofinished));
			break; }

			case CPMFETCHVALUE: {
				NDR_CHECK(ndr_push_wsp_cpmfetchvaluein(ndr, NDR_SCALARS, &r->cpmfetchvalue));
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case CPMCONNECT:
			break;

			case CPMCREATEQUERY:
				NDR_CHECK(ndr_push_wsp_cpmcreatequeryin(ndr, NDR_BUFFERS, &r->cpmcreatequery));
			break;

			case CPMFREECURSOR:
			break;

			case CPMGETROWS:
				NDR_CHECK(ndr_push_wsp_cpmgetrowsin(ndr, NDR_BUFFERS, &r->cpmgetrows));
			break;

			case CPMSETBINDINGSIN:
				NDR_CHECK(ndr_push_wsp_cpmsetbindingsin(ndr, NDR_BUFFERS, &r->cpmsetbindings));
			break;

			case CPMRESTARTPOSITIONIN:
			break;

			case CPMGETQUERYSTATUS:
			break;

			case CPMGETQUERYSTATUSEX:
			break;

			case CPMSETSCOPEPRIORITIZATION:
			break;

			case CPMGETNOTIFY:
			break;

			case CPMGETROWSETNOTIFY:
			break;

			case CPMDISCONNECT:
			break;

			case CPMGETSCOPESTATISTICS:
			break;

			case CPMGETAPPROXIMATEPOSITION:
			break;

			case CPMCOMPAREBMK:
			break;

			case CPMCISTATEOUT:
			break;

			case CPMFINDINDICES:
			break;

			case CPMRATIOFINISHED:
			break;

			case CPMFETCHVALUE:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_req_message(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union req_message *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case CPMCONNECT: {
				NDR_CHECK(ndr_pull_wsp_cpmconnectin(ndr, NDR_SCALARS, &r->cpmconnect));
			break; }

			case CPMCREATEQUERY: {
				NDR_CHECK(ndr_pull_wsp_cpmcreatequeryin(ndr, NDR_SCALARS, &r->cpmcreatequery));
			break; }

			case CPMFREECURSOR: {
				NDR_CHECK(ndr_pull_wsp_cpmfreecursorin(ndr, NDR_SCALARS, &r->cpmfreecursor));
			break; }

			case CPMGETROWS: {
				NDR_CHECK(ndr_pull_wsp_cpmgetrowsin(ndr, NDR_SCALARS, &r->cpmgetrows));
			break; }

			case CPMSETBINDINGSIN: {
				NDR_CHECK(ndr_pull_wsp_cpmsetbindingsin(ndr, NDR_SCALARS, &r->cpmsetbindings));
			break; }

			case CPMRESTARTPOSITIONIN: {
				NDR_CHECK(ndr_pull_wsp_cpmrestartpositionin(ndr, NDR_SCALARS, &r->cpmrrestartpos));
			break; }

			case CPMGETQUERYSTATUS: {
				NDR_CHECK(ndr_pull_wsp_cpmgetquerystatusin(ndr, NDR_SCALARS, &r->cpmgetquerystatus));
			break; }

			case CPMGETQUERYSTATUSEX: {
				NDR_CHECK(ndr_pull_wsp_cpmgetquerystatusexin(ndr, NDR_SCALARS, &r->cpmgetquerystatusex));
			break; }

			case CPMSETSCOPEPRIORITIZATION: {
				NDR_CHECK(ndr_pull_wsp_cpmsetscopeprioritizationin(ndr, NDR_SCALARS, &r->cpmsetscopeprioritizationin));
			break; }

			case CPMGETNOTIFY: {
			break; }

			case CPMGETROWSETNOTIFY: {
			break; }

			case CPMDISCONNECT: {
			break; }

			case CPMGETSCOPESTATISTICS: {
			break; }

			case CPMGETAPPROXIMATEPOSITION: {
				NDR_CHECK(ndr_pull_wsp_cpmgetapproximatepositionin(ndr, NDR_SCALARS, &r->getapproximateposition));
			break; }

			case CPMCOMPAREBMK: {
				NDR_CHECK(ndr_pull_wsp_cpmcomparebmkin(ndr, NDR_SCALARS, &r->cpmcomparebmk));
			break; }

			case CPMCISTATEOUT: {
				NDR_CHECK(ndr_pull_wsp_cpmcistateinout(ndr, NDR_SCALARS, &r->wsp_cpmcistate));
			break; }

			case CPMFINDINDICES: {
				NDR_CHECK(ndr_pull_wsp_findindicesin(ndr, NDR_SCALARS, &r->wsp_findindices));
			break; }

			case CPMRATIOFINISHED: {
				NDR_CHECK(ndr_pull_wsp_cpmratiofinishedin(ndr, NDR_SCALARS, &r->wsp_cpmratiofinished));
			break; }

			case CPMFETCHVALUE: {
				NDR_CHECK(ndr_pull_wsp_cpmfetchvaluein(ndr, NDR_SCALARS, &r->cpmfetchvalue));
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case CPMCONNECT:
			break;

			case CPMCREATEQUERY:
				NDR_CHECK(ndr_pull_wsp_cpmcreatequeryin(ndr, NDR_BUFFERS, &r->cpmcreatequery));
			break;

			case CPMFREECURSOR:
			break;

			case CPMGETROWS:
				NDR_CHECK(ndr_pull_wsp_cpmgetrowsin(ndr, NDR_BUFFERS, &r->cpmgetrows));
			break;

			case CPMSETBINDINGSIN:
				NDR_CHECK(ndr_pull_wsp_cpmsetbindingsin(ndr, NDR_BUFFERS, &r->cpmsetbindings));
			break;

			case CPMRESTARTPOSITIONIN:
			break;

			case CPMGETQUERYSTATUS:
			break;

			case CPMGETQUERYSTATUSEX:
			break;

			case CPMSETSCOPEPRIORITIZATION:
			break;

			case CPMGETNOTIFY:
			break;

			case CPMGETROWSETNOTIFY:
			break;

			case CPMDISCONNECT:
			break;

			case CPMGETSCOPESTATISTICS:
			break;

			case CPMGETAPPROXIMATEPOSITION:
			break;

			case CPMCOMPAREBMK:
			break;

			case CPMCISTATEOUT:
			break;

			case CPMFINDINDICES:
			break;

			case CPMRATIOFINISHED:
			break;

			case CPMFETCHVALUE:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_req_message(struct ndr_print *ndr, const char *name, const union req_message *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "req_message");
	switch (level) {
		case CPMCONNECT:
			ndr_print_wsp_cpmconnectin(ndr, "cpmconnect", &r->cpmconnect);
		break;

		case CPMCREATEQUERY:
			ndr_print_wsp_cpmcreatequeryin(ndr, "cpmcreatequery", &r->cpmcreatequery);
		break;

		case CPMFREECURSOR:
			ndr_print_wsp_cpmfreecursorin(ndr, "cpmfreecursor", &r->cpmfreecursor);
		break;

		case CPMGETROWS:
			ndr_print_wsp_cpmgetrowsin(ndr, "cpmgetrows", &r->cpmgetrows);
		break;

		case CPMSETBINDINGSIN:
			ndr_print_wsp_cpmsetbindingsin(ndr, "cpmsetbindings", &r->cpmsetbindings);
		break;

		case CPMRESTARTPOSITIONIN:
			ndr_print_wsp_cpmrestartpositionin(ndr, "cpmrrestartpos", &r->cpmrrestartpos);
		break;

		case CPMGETQUERYSTATUS:
			ndr_print_wsp_cpmgetquerystatusin(ndr, "cpmgetquerystatus", &r->cpmgetquerystatus);
		break;

		case CPMGETQUERYSTATUSEX:
			ndr_print_wsp_cpmgetquerystatusexin(ndr, "cpmgetquerystatusex", &r->cpmgetquerystatusex);
		break;

		case CPMSETSCOPEPRIORITIZATION:
			ndr_print_wsp_cpmsetscopeprioritizationin(ndr, "cpmsetscopeprioritizationin", &r->cpmsetscopeprioritizationin);
		break;

		case CPMGETNOTIFY:
		break;

		case CPMGETROWSETNOTIFY:
		break;

		case CPMDISCONNECT:
		break;

		case CPMGETSCOPESTATISTICS:
		break;

		case CPMGETAPPROXIMATEPOSITION:
			ndr_print_wsp_cpmgetapproximatepositionin(ndr, "getapproximateposition", &r->getapproximateposition);
		break;

		case CPMCOMPAREBMK:
			ndr_print_wsp_cpmcomparebmkin(ndr, "cpmcomparebmk", &r->cpmcomparebmk);
		break;

		case CPMCISTATEOUT:
			ndr_print_wsp_cpmcistateinout(ndr, "wsp_cpmcistate", &r->wsp_cpmcistate);
		break;

		case CPMFINDINDICES:
			ndr_print_wsp_findindicesin(ndr, "wsp_findindices", &r->wsp_findindices);
		break;

		case CPMRATIOFINISHED:
			ndr_print_wsp_cpmratiofinishedin(ndr, "wsp_cpmratiofinished", &r->wsp_cpmratiofinished);
		break;

		case CPMFETCHVALUE:
			ndr_print_wsp_cpmfetchvaluein(ndr, "cpmfetchvalue", &r->cpmfetchvalue);
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_resp_message(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union resp_message *r)
{
	uint32_t level;
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_push_union_align(ndr, 4));
		switch (level) {
			case CPMCONNECT: {
				NDR_CHECK(ndr_push_wsp_cpmconnectout(ndr, NDR_SCALARS, &r->cpmconnect));
			break; }

			case CPMCREATEQUERY: {
				NDR_CHECK(ndr_push_wsp_cpmcreatequeryout(ndr, NDR_SCALARS, &r->cpmcreatequery));
			break; }

			case CPMFREECURSOR: {
				NDR_CHECK(ndr_push_wsp_cpmfreecursorout(ndr, NDR_SCALARS, &r->cpmfreecursor));
			break; }

			case CPMGETROWS: {
				NDR_CHECK(ndr_push_wsp_cpmgetrowsout(ndr, NDR_SCALARS, &r->cpmgetrows));
			break; }

			case CPMSETBINDINGSIN: {
			break; }

			case CPMRESTARTPOSITIONIN: {
			break; }

			case CPMGETQUERYSTATUS: {
				NDR_CHECK(ndr_push_wsp_cpmgetquerystatusout(ndr, NDR_SCALARS, &r->cpmgetquerystatus));
			break; }

			case CPMSENDNOTIFYOUT: {
				NDR_CHECK(ndr_push_wsp_cpmsendnotifyout(ndr, NDR_SCALARS, &r->cpmsendnotifyoutcpmgetquerystatus));
			break; }

			case CPMGETQUERYSTATUSEX: {
				NDR_CHECK(ndr_push_wsp_cpmgetquerystatusexout(ndr, NDR_SCALARS, &r->cpmgetquerystatusex));
			break; }

			case CPMSETSCOPEPRIORITIZATION: {
			break; }

			case CPMGETROWSETNOTIFY: {
				NDR_CHECK(ndr_push_wsp_cpmgetrowsetnotifyout(ndr, NDR_SCALARS, &r->cpmgetrowsetnotifyout));
			break; }

			case CPMGETAPPROXIMATEPOSITION: {
				NDR_CHECK(ndr_push_wsp_cpmgetapproximatepositionout(ndr, NDR_SCALARS, &r->getapproximateposition));
			break; }

			case CPMCOMPAREBMK: {
				NDR_CHECK(ndr_push_wsp_cpmcomparebmkout(ndr, NDR_SCALARS, &r->cpmcomparebmk));
			break; }

			case CPMCISTATEOUT: {
				NDR_CHECK(ndr_push_wsp_cpmcistateinout(ndr, NDR_SCALARS, &r->wsp_cpmcistate));
			break; }

			case CPMFINDINDICES: {
				NDR_CHECK(ndr_push_wsp_findindicesout(ndr, NDR_SCALARS, &r->wsp_findindices));
			break; }

			case CPMGETSCOPESTATISTICS: {
				NDR_CHECK(ndr_push_wsp_cpmgetscopestatisticsout(ndr, NDR_SCALARS, &r->cpmgetscopestatistics));
			break; }

			case CPMRATIOFINISHED: {
				NDR_CHECK(ndr_push_wsp_cpmratiofinishedout(ndr, NDR_SCALARS, &r->wsp_cpmratiofinished));
			break; }

			case CPMFETCHVALUE: {
				NDR_CHECK(ndr_push_wsp_cpmfetchvalueout(ndr, NDR_SCALARS, &r->cpmfetchvalue));
			break; }

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case CPMCONNECT:
			break;

			case CPMCREATEQUERY:
			break;

			case CPMFREECURSOR:
			break;

			case CPMGETROWS:
				NDR_CHECK(ndr_push_wsp_cpmgetrowsout(ndr, NDR_BUFFERS, &r->cpmgetrows));
			break;

			case CPMSETBINDINGSIN:
			break;

			case CPMRESTARTPOSITIONIN:
			break;

			case CPMGETQUERYSTATUS:
			break;

			case CPMSENDNOTIFYOUT:
			break;

			case CPMGETQUERYSTATUSEX:
			break;

			case CPMSETSCOPEPRIORITIZATION:
			break;

			case CPMGETROWSETNOTIFY:
			break;

			case CPMGETAPPROXIMATEPOSITION:
			break;

			case CPMCOMPAREBMK:
			break;

			case CPMCISTATEOUT:
			break;

			case CPMFINDINDICES:
			break;

			case CPMGETSCOPESTATISTICS:
			break;

			case CPMRATIOFINISHED:
			break;

			case CPMFETCHVALUE:
			break;

			default:
				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_resp_message(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union resp_message *r)
{
	uint32_t level;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		/* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
		NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		NDR_CHECK(ndr_pull_union_align(ndr, 4));
		switch (level) {
			case CPMCONNECT: {
				NDR_CHECK(ndr_pull_wsp_cpmconnectout(ndr, NDR_SCALARS, &r->cpmconnect));
			break; }

			case CPMCREATEQUERY: {
				NDR_CHECK(ndr_pull_wsp_cpmcreatequeryout(ndr, NDR_SCALARS, &r->cpmcreatequery));
			break; }

			case CPMFREECURSOR: {
				NDR_CHECK(ndr_pull_wsp_cpmfreecursorout(ndr, NDR_SCALARS, &r->cpmfreecursor));
			break; }

			case CPMGETROWS: {
				NDR_CHECK(ndr_pull_wsp_cpmgetrowsout(ndr, NDR_SCALARS, &r->cpmgetrows));
			break; }

			case CPMSETBINDINGSIN: {
			break; }

			case CPMRESTARTPOSITIONIN: {
			break; }

			case CPMGETQUERYSTATUS: {
				NDR_CHECK(ndr_pull_wsp_cpmgetquerystatusout(ndr, NDR_SCALARS, &r->cpmgetquerystatus));
			break; }

			case CPMSENDNOTIFYOUT: {
				NDR_CHECK(ndr_pull_wsp_cpmsendnotifyout(ndr, NDR_SCALARS, &r->cpmsendnotifyoutcpmgetquerystatus));
			break; }

			case CPMGETQUERYSTATUSEX: {
				NDR_CHECK(ndr_pull_wsp_cpmgetquerystatusexout(ndr, NDR_SCALARS, &r->cpmgetquerystatusex));
			break; }

			case CPMSETSCOPEPRIORITIZATION: {
			break; }

			case CPMGETROWSETNOTIFY: {
				NDR_CHECK(ndr_pull_wsp_cpmgetrowsetnotifyout(ndr, NDR_SCALARS, &r->cpmgetrowsetnotifyout));
			break; }

			case CPMGETAPPROXIMATEPOSITION: {
				NDR_CHECK(ndr_pull_wsp_cpmgetapproximatepositionout(ndr, NDR_SCALARS, &r->getapproximateposition));
			break; }

			case CPMCOMPAREBMK: {
				NDR_CHECK(ndr_pull_wsp_cpmcomparebmkout(ndr, NDR_SCALARS, &r->cpmcomparebmk));
			break; }

			case CPMCISTATEOUT: {
				NDR_CHECK(ndr_pull_wsp_cpmcistateinout(ndr, NDR_SCALARS, &r->wsp_cpmcistate));
			break; }

			case CPMFINDINDICES: {
				NDR_CHECK(ndr_pull_wsp_findindicesout(ndr, NDR_SCALARS, &r->wsp_findindices));
			break; }

			case CPMGETSCOPESTATISTICS: {
				NDR_CHECK(ndr_pull_wsp_cpmgetscopestatisticsout(ndr, NDR_SCALARS, &r->cpmgetscopestatistics));
			break; }

			case CPMRATIOFINISHED: {
				NDR_CHECK(ndr_pull_wsp_cpmratiofinishedout(ndr, NDR_SCALARS, &r->wsp_cpmratiofinished));
			break; }

			case CPMFETCHVALUE: {
				NDR_CHECK(ndr_pull_wsp_cpmfetchvalueout(ndr, NDR_SCALARS, &r->cpmfetchvalue));
			break; }

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (!(ndr_flags & NDR_SCALARS)) {
			/* We didn't get it above, and the token is not needed after this. */
			NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
		}
		switch (level) {
			case CPMCONNECT:
			break;

			case CPMCREATEQUERY:
			break;

			case CPMFREECURSOR:
			break;

			case CPMGETROWS:
				NDR_CHECK(ndr_pull_wsp_cpmgetrowsout(ndr, NDR_BUFFERS, &r->cpmgetrows));
			break;

			case CPMSETBINDINGSIN:
			break;

			case CPMRESTARTPOSITIONIN:
			break;

			case CPMGETQUERYSTATUS:
			break;

			case CPMSENDNOTIFYOUT:
			break;

			case CPMGETQUERYSTATUSEX:
			break;

			case CPMSETSCOPEPRIORITIZATION:
			break;

			case CPMGETROWSETNOTIFY:
			break;

			case CPMGETAPPROXIMATEPOSITION:
			break;

			case CPMCOMPAREBMK:
			break;

			case CPMCISTATEOUT:
			break;

			case CPMFINDINDICES:
			break;

			case CPMGETSCOPESTATISTICS:
			break;

			case CPMRATIOFINISHED:
			break;

			case CPMFETCHVALUE:
			break;

			default:
				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_resp_message(struct ndr_print *ndr, const char *name, const union resp_message *r)
{
	uint32_t level;
	level = ndr_print_steal_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "resp_message");
	switch (level) {
		case CPMCONNECT:
			ndr_print_wsp_cpmconnectout(ndr, "cpmconnect", &r->cpmconnect);
		break;

		case CPMCREATEQUERY:
			ndr_print_wsp_cpmcreatequeryout(ndr, "cpmcreatequery", &r->cpmcreatequery);
		break;

		case CPMFREECURSOR:
			ndr_print_wsp_cpmfreecursorout(ndr, "cpmfreecursor", &r->cpmfreecursor);
		break;

		case CPMGETROWS:
			ndr_print_wsp_cpmgetrowsout(ndr, "cpmgetrows", &r->cpmgetrows);
		break;

		case CPMSETBINDINGSIN:
		break;

		case CPMRESTARTPOSITIONIN:
		break;

		case CPMGETQUERYSTATUS:
			ndr_print_wsp_cpmgetquerystatusout(ndr, "cpmgetquerystatus", &r->cpmgetquerystatus);
		break;

		case CPMSENDNOTIFYOUT:
			ndr_print_wsp_cpmsendnotifyout(ndr, "cpmsendnotifyoutcpmgetquerystatus", &r->cpmsendnotifyoutcpmgetquerystatus);
		break;

		case CPMGETQUERYSTATUSEX:
			ndr_print_wsp_cpmgetquerystatusexout(ndr, "cpmgetquerystatusex", &r->cpmgetquerystatusex);
		break;

		case CPMSETSCOPEPRIORITIZATION:
		break;

		case CPMGETROWSETNOTIFY:
			ndr_print_wsp_cpmgetrowsetnotifyout(ndr, "cpmgetrowsetnotifyout", &r->cpmgetrowsetnotifyout);
		break;

		case CPMGETAPPROXIMATEPOSITION:
			ndr_print_wsp_cpmgetapproximatepositionout(ndr, "getapproximateposition", &r->getapproximateposition);
		break;

		case CPMCOMPAREBMK:
			ndr_print_wsp_cpmcomparebmkout(ndr, "cpmcomparebmk", &r->cpmcomparebmk);
		break;

		case CPMCISTATEOUT:
			ndr_print_wsp_cpmcistateinout(ndr, "wsp_cpmcistate", &r->wsp_cpmcistate);
		break;

		case CPMFINDINDICES:
			ndr_print_wsp_findindicesout(ndr, "wsp_findindices", &r->wsp_findindices);
		break;

		case CPMGETSCOPESTATISTICS:
			ndr_print_wsp_cpmgetscopestatisticsout(ndr, "cpmgetscopestatistics", &r->cpmgetscopestatistics);
		break;

		case CPMRATIOFINISHED:
			ndr_print_wsp_cpmratiofinishedout(ndr, "wsp_cpmratiofinished", &r->wsp_cpmratiofinished);
		break;

		case CPMFETCHVALUE:
			ndr_print_wsp_cpmfetchvalueout(ndr, "cpmfetchvalue", &r->cpmfetchvalue);
		break;

		default:
			ndr_print_bad_level(ndr, name, level);
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_request(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_request *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_wsp_header(ndr, NDR_SCALARS, &r->header));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->message, r->header.msg));
		NDR_CHECK(ndr_push_req_message(ndr, NDR_SCALARS, &r->message));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->message, r->header.msg));
		NDR_CHECK(ndr_push_req_message(ndr, NDR_BUFFERS, &r->message));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_request(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_request *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_wsp_header(ndr, NDR_SCALARS, &r->header));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->message, r->header.msg));
		NDR_CHECK(ndr_pull_req_message(ndr, NDR_SCALARS, &r->message));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->message, r->header.msg));
		NDR_CHECK(ndr_pull_req_message(ndr, NDR_BUFFERS, &r->message));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_request(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_request *r)
{
	ndr_print_wsp_request(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_request(struct ndr_print *ndr, const char *name, const struct wsp_request *r)
{
	ndr_print_struct(ndr, name, "wsp_request");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_wsp_header(ndr, "header", &r->header);
	ndr_print_set_switch_value(ndr, &r->message, r->header.msg);
	ndr_print_req_message(ndr, "message", &r->message);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_wsp_response(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct wsp_response *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_wsp_header(ndr, NDR_SCALARS, &r->header));
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->message, r->header.msg));
		NDR_CHECK(ndr_push_resp_message(ndr, NDR_SCALARS, &r->message));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->message, r->header.msg));
		NDR_CHECK(ndr_push_resp_message(ndr, NDR_BUFFERS, &r->message));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_wsp_response(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct wsp_response *r)
{
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_wsp_header(ndr, NDR_SCALARS, &r->header));
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->message, r->header.msg));
		NDR_CHECK(ndr_pull_resp_message(ndr, NDR_SCALARS, &r->message));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->message, r->header.msg));
		NDR_CHECK(ndr_pull_resp_message(ndr, NDR_BUFFERS, &r->message));
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_wsp_response(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct wsp_response *r)
{
	ndr_print_wsp_response(ndr, name, r);
}

_PUBLIC_ void ndr_print_wsp_response(struct ndr_print *ndr, const char *name, const struct wsp_response *r)
{
	ndr_print_struct(ndr, name, "wsp_response");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_wsp_header(ndr, "header", &r->header);
	ndr_print_set_switch_value(ndr, &r->message, r->header.msg);
	ndr_print_resp_message(ndr, "message", &r->message);
	ndr->depth--;
}

#ifndef SKIP_NDR_TABLE_msftewds
static const struct ndr_interface_public_struct msftewds_public_structs[] = {
	{
		.name = "vt_variant_wrap",
		.struct_size = sizeof(struct vt_variant_wrap ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_variant_wrap,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_variant_wrap,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_variant_wrap,
	},
	{
		.name = "vt_decimal",
		.struct_size = sizeof(struct vt_decimal ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_decimal,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_decimal,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_decimal,
	},
	{
		.name = "vt_decimal_vec",
		.struct_size = sizeof(struct vt_decimal_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_decimal_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_decimal_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_decimal_vec,
	},
	{
		.name = "vt_bstr",
		.struct_size = sizeof(struct vt_bstr ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_bstr,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_bstr,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_bstr,
	},
	{
		.name = "vt_bstr_vec",
		.struct_size = sizeof(struct vt_bstr_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_bstr_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_bstr_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_bstr_vec,
	},
	{
		.name = "vt_lpwstr",
		.struct_size = sizeof(struct vt_lpwstr ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_lpwstr,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_lpwstr,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_lpwstr,
	},
	{
		.name = "vt_lpwstr_vec",
		.struct_size = sizeof(struct vt_lpwstr_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_lpwstr_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_lpwstr_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_lpwstr_vec,
	},
	{
		.name = "vt_compressed_lpwstr",
		.struct_size = sizeof(struct vt_compressed_lpwstr ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_compressed_lpwstr,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_compressed_lpwstr,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_compressed_lpwstr,
	},
	{
		.name = "vt_compressed_lpwstr_vec",
		.struct_size = sizeof(struct vt_compressed_lpwstr_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_compressed_lpwstr_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_compressed_lpwstr_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_compressed_lpwstr_vec,
	},
	{
		.name = "vt_i1_vec",
		.struct_size = sizeof(struct vt_i1_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i1_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i1_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i1_vec,
	},
	{
		.name = "vt_ui1_vec",
		.struct_size = sizeof(struct vt_ui1_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui1_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui1_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui1_vec,
	},
	{
		.name = "vt_i2_vec",
		.struct_size = sizeof(struct vt_i2_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i2_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i2_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i2_vec,
	},
	{
		.name = "vt_ui2_vec",
		.struct_size = sizeof(struct vt_ui2_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui2_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui2_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui2_vec,
	},
	{
		.name = "vt_i4_vec",
		.struct_size = sizeof(struct vt_i4_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i4_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i4_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i4_vec,
	},
	{
		.name = "vt_ui4_vec",
		.struct_size = sizeof(struct vt_ui4_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui4_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui4_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui4_vec,
	},
	{
		.name = "vt_dlong_vec",
		.struct_size = sizeof(struct vt_dlong_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_dlong_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_dlong_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_dlong_vec,
	},
	{
		.name = "vt_udlong_vec",
		.struct_size = sizeof(struct vt_udlong_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_udlong_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_udlong_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_udlong_vec,
	},
	{
		.name = "vt_clsid_vec",
		.struct_size = sizeof(struct vt_clsid_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_clsid_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_clsid_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_clsid_vec,
	},
	{
		.name = "vt_variant_wrap_vec",
		.struct_size = sizeof(struct vt_variant_wrap_vec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_variant_wrap_vec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_variant_wrap_vec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_variant_wrap_vec,
	},
	{
		.name = "safearraybound",
		.struct_size = sizeof(struct safearraybound ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_safearraybound,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_safearraybound,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_safearraybound,
	},
	{
		.name = "vt_i4_safe_array",
		.struct_size = sizeof(struct vt_i4_safe_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i4_safe_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i4_safe_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i4_safe_array,
	},
	{
		.name = "vt_ui4_safe_array",
		.struct_size = sizeof(struct vt_ui4_safe_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui4_safe_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui4_safe_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui4_safe_array,
	},
	{
		.name = "vt_bstr_safe_array",
		.struct_size = sizeof(struct vt_bstr_safe_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_bstr_safe_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_bstr_safe_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_bstr_safe_array,
	},
	{
		.name = "vt_i1_safe_array",
		.struct_size = sizeof(struct vt_i1_safe_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i1_safe_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i1_safe_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i1_safe_array,
	},
	{
		.name = "vt_ui1_safe_array",
		.struct_size = sizeof(struct vt_ui1_safe_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui1_safe_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui1_safe_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui1_safe_array,
	},
	{
		.name = "vt_i2_safe_array",
		.struct_size = sizeof(struct vt_i2_safe_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i2_safe_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i2_safe_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i2_safe_array,
	},
	{
		.name = "vt_ui2_safe_array",
		.struct_size = sizeof(struct vt_ui2_safe_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui2_safe_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui2_safe_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui2_safe_array,
	},
	{
		.name = "vt_dlong_safe_array",
		.struct_size = sizeof(struct vt_dlong_safe_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_dlong_safe_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_dlong_safe_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_dlong_safe_array,
	},
	{
		.name = "vt_variant_wrap_safearray",
		.struct_size = sizeof(struct vt_variant_wrap_safearray ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_variant_wrap_safearray,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_variant_wrap_safearray,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_variant_wrap_safearray,
	},
	{
		.name = "wsp_cbasestoragevariant",
		.struct_size = sizeof(struct wsp_cbasestoragevariant ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cbasestoragevariant,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cbasestoragevariant,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cbasestoragevariant,
	},
	{
		.name = "wsp_cdbcolid",
		.struct_size = sizeof(struct wsp_cdbcolid ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cdbcolid,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cdbcolid,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cdbcolid,
	},
	{
		.name = "wsp_header",
		.struct_size = sizeof(struct wsp_header ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_header,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_header,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_header,
	},
	{
		.name = "wsp_cdbprop",
		.struct_size = sizeof(struct wsp_cdbprop ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cdbprop,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cdbprop,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cdbprop,
	},
	{
		.name = "wsp_cdbpropset",
		.struct_size = sizeof(struct wsp_cdbpropset ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cdbpropset,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cdbpropset,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cdbpropset,
	},
	{
		.name = "wsp_csort",
		.struct_size = sizeof(struct wsp_csort ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_csort,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_csort,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_csort,
	},
	{
		.name = "wsp_csortset",
		.struct_size = sizeof(struct wsp_csortset ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_csortset,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_csortset,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_csortset,
	},
	{
		.name = "connectin_propsets",
		.struct_size = sizeof(struct connectin_propsets ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_connectin_propsets,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_connectin_propsets,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_connectin_propsets,
	},
	{
		.name = "connectin_extpropsets",
		.struct_size = sizeof(struct connectin_extpropsets ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_connectin_extpropsets,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_connectin_extpropsets,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_connectin_extpropsets,
	},
	{
		.name = "wsp_cpmconnectin",
		.struct_size = sizeof(struct wsp_cpmconnectin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmconnectin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmconnectin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmconnectin,
	},
	{
		.name = "version_info",
		.struct_size = sizeof(struct version_info ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_version_info,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_version_info,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_version_info,
	},
	{
		.name = "wsp_cpmconnectout",
		.struct_size = sizeof(struct wsp_cpmconnectout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmconnectout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmconnectout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmconnectout,
	},
	{
		.name = "wsp_ccolumnset",
		.struct_size = sizeof(struct wsp_ccolumnset ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccolumnset,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccolumnset,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccolumnset,
	},
	{
		.name = "wsp_cnoderestriction",
		.struct_size = sizeof(struct wsp_cnoderestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cnoderestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cnoderestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cnoderestriction,
	},
	{
		.name = "wsp_len_string_pair",
		.struct_size = sizeof(struct wsp_len_string_pair ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_len_string_pair,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_len_string_pair,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_len_string_pair,
	},
	{
		.name = "wsp_labeldata",
		.struct_size = sizeof(struct wsp_labeldata ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_labeldata,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_labeldata,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_labeldata,
	},
	{
		.name = "wsp_rangeboundary",
		.struct_size = sizeof(struct wsp_rangeboundary ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_rangeboundary,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_rangeboundary,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_rangeboundary,
	},
	{
		.name = "wsp_crangecategspec",
		.struct_size = sizeof(struct wsp_crangecategspec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_crangecategspec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_crangecategspec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_crangecategspec,
	},
	{
		.name = "wsp_ccategspec",
		.struct_size = sizeof(struct wsp_ccategspec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccategspec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccategspec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccategspec,
	},
	{
		.name = "wsp_repofdata",
		.struct_size = sizeof(struct wsp_repofdata ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_repofdata,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_repofdata,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_repofdata,
	},
	{
		.name = "wsp_caggregspec",
		.struct_size = sizeof(struct wsp_caggregspec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_caggregspec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_caggregspec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_caggregspec,
	},
	{
		.name = "wsp_caggregset",
		.struct_size = sizeof(struct wsp_caggregset ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_caggregset,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_caggregset,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_caggregset,
	},
	{
		.name = "wsp_caggregsortkey",
		.struct_size = sizeof(struct wsp_caggregsortkey ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_caggregsortkey,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_caggregsortkey,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_caggregsortkey,
	},
	{
		.name = "wsp_csortaggregset",
		.struct_size = sizeof(struct wsp_csortaggregset ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_csortaggregset,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_csortaggregset,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_csortaggregset,
	},
	{
		.name = "wsp_cingroupsortaggregset",
		.struct_size = sizeof(struct wsp_cingroupsortaggregset ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cingroupsortaggregset,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cingroupsortaggregset,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cingroupsortaggregset,
	},
	{
		.name = "wsp_cingroupsortaggregsets",
		.struct_size = sizeof(struct wsp_cingroupsortaggregsets ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cingroupsortaggregsets,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cingroupsortaggregsets,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cingroupsortaggregsets,
	},
	{
		.name = "wsp_ccategorizationspec",
		.struct_size = sizeof(struct wsp_ccategorizationspec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccategorizationspec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccategorizationspec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccategorizationspec,
	},
	{
		.name = "wsp_ccategorizationset",
		.struct_size = sizeof(struct wsp_ccategorizationset ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccategorizationset,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccategorizationset,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccategorizationset,
	},
	{
		.name = "wsp_cfullpropspec",
		.struct_size = sizeof(struct wsp_cfullpropspec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cfullpropspec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cfullpropspec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cfullpropspec,
	},
	{
		.name = "wsp_ccontentrestriction",
		.struct_size = sizeof(struct wsp_ccontentrestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccontentrestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccontentrestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccontentrestriction,
	},
	{
		.name = "wsp_cpropertyrestriction",
		.struct_size = sizeof(struct wsp_cpropertyrestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpropertyrestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpropertyrestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpropertyrestriction,
	},
	{
		.name = "wsp_cnatlanguagerestriction",
		.struct_size = sizeof(struct wsp_cnatlanguagerestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cnatlanguagerestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cnatlanguagerestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cnatlanguagerestriction,
	},
	{
		.name = "wsp_wrap_crestriction",
		.struct_size = sizeof(struct wsp_wrap_crestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_wrap_crestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_wrap_crestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_wrap_crestriction,
	},
	{
		.name = "wsp_ccoercionrestriction",
		.struct_size = sizeof(struct wsp_ccoercionrestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccoercionrestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccoercionrestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccoercionrestriction,
	},
	{
		.name = "wsp_cvectorrestriction",
		.struct_size = sizeof(struct wsp_cvectorrestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cvectorrestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cvectorrestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cvectorrestriction,
	},
	{
		.name = "wsp_cscoperestriction",
		.struct_size = sizeof(struct wsp_cscoperestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cscoperestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cscoperestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cscoperestriction,
	},
	{
		.name = "wsp_creusewhere",
		.struct_size = sizeof(struct wsp_creusewhere ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_creusewhere,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_creusewhere,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_creusewhere,
	},
	{
		.name = "wsp_cinternalpropertyrestriction",
		.struct_size = sizeof(struct wsp_cinternalpropertyrestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cinternalpropertyrestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cinternalpropertyrestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cinternalpropertyrestriction,
	},
	{
		.name = "wsp_cprobrestriction",
		.struct_size = sizeof(struct wsp_cprobrestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cprobrestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cprobrestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cprobrestriction,
	},
	{
		.name = "wsp_cfeedbackrestriction",
		.struct_size = sizeof(struct wsp_cfeedbackrestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cfeedbackrestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cfeedbackrestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cfeedbackrestriction,
	},
	{
		.name = "wsp_creldocrestriction",
		.struct_size = sizeof(struct wsp_creldocrestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_creldocrestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_creldocrestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_creldocrestriction,
	},
	{
		.name = "wsp_crestriction",
		.struct_size = sizeof(struct wsp_crestriction ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_crestriction,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_crestriction,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_crestriction,
	},
	{
		.name = "wsp_crestrictionarray",
		.struct_size = sizeof(struct wsp_crestrictionarray ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_crestrictionarray,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_crestrictionarray,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_crestrictionarray,
	},
	{
		.name = "wsp_crowsetproperties",
		.struct_size = sizeof(struct wsp_crowsetproperties ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_crowsetproperties,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_crowsetproperties,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_crowsetproperties,
	},
	{
		.name = "wsp_cpidmapper",
		.struct_size = sizeof(struct wsp_cpidmapper ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpidmapper,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpidmapper,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpidmapper,
	},
	{
		.name = "wsp_sproperty",
		.struct_size = sizeof(struct wsp_sproperty ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_sproperty,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_sproperty,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_sproperty,
	},
	{
		.name = "wsp_ccolumngroup",
		.struct_size = sizeof(struct wsp_ccolumngroup ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccolumngroup,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccolumngroup,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccolumngroup,
	},
	{
		.name = "wsp_ccolumngrouparray",
		.struct_size = sizeof(struct wsp_ccolumngrouparray ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccolumngrouparray,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccolumngrouparray,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccolumngrouparray,
	},
	{
		.name = "wsp_cpmcreatequeryin",
		.struct_size = sizeof(struct wsp_cpmcreatequeryin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmcreatequeryin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmcreatequeryin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmcreatequeryin,
	},
	{
		.name = "wsp_cpmcreatequeryout",
		.struct_size = sizeof(struct wsp_cpmcreatequeryout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmcreatequeryout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmcreatequeryout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmcreatequeryout,
	},
	{
		.name = "wsp_ctablecolumn",
		.struct_size = sizeof(struct wsp_ctablecolumn ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ctablecolumn,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ctablecolumn,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ctablecolumn,
	},
	{
		.name = "wsp_ccompletioncategspec",
		.struct_size = sizeof(struct wsp_ccompletioncategspec ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ccompletioncategspec,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ccompletioncategspec,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ccompletioncategspec,
	},
	{
		.name = "wsp_cpmsetbindingsin",
		.struct_size = sizeof(struct wsp_cpmsetbindingsin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmsetbindingsin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmsetbindingsin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmsetbindingsin,
	},
	{
		.name = "wsp_crowseeknext",
		.struct_size = sizeof(struct wsp_crowseeknext ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_crowseeknext,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_crowseeknext,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_crowseeknext,
	},
	{
		.name = "wsp_crowseekat",
		.struct_size = sizeof(struct wsp_crowseekat ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_crowseekat,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_crowseekat,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_crowseekat,
	},
	{
		.name = "wsp_crowseekatratio",
		.struct_size = sizeof(struct wsp_crowseekatratio ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_crowseekatratio,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_crowseekatratio,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_crowseekatratio,
	},
	{
		.name = "wsp_crowseekbybookmark",
		.struct_size = sizeof(struct wsp_crowseekbybookmark ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_crowseekbybookmark,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_crowseekbybookmark,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_crowseekbybookmark,
	},
	{
		.name = "wsp_cpmgetrowsin",
		.struct_size = sizeof(struct wsp_cpmgetrowsin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetrowsin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetrowsin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetrowsin,
	},
	{
		.name = "wsp_ctablevariant",
		.struct_size = sizeof(struct wsp_ctablevariant ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_ctablevariant,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_ctablevariant,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_ctablevariant,
	},
	{
		.name = "wsp_cpmgetrowsout",
		.struct_size = sizeof(struct wsp_cpmgetrowsout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetrowsout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetrowsout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetrowsout,
	},
	{
		.name = "wsp_cpmfreecursorin",
		.struct_size = sizeof(struct wsp_cpmfreecursorin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmfreecursorin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmfreecursorin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmfreecursorin,
	},
	{
		.name = "wsp_cpmfreecursorout",
		.struct_size = sizeof(struct wsp_cpmfreecursorout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmfreecursorout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmfreecursorout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmfreecursorout,
	},
	{
		.name = "wsp_cpmgetquerystatusin",
		.struct_size = sizeof(struct wsp_cpmgetquerystatusin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetquerystatusin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetquerystatusin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetquerystatusin,
	},
	{
		.name = "wsp_cpmgetquerystatusout",
		.struct_size = sizeof(struct wsp_cpmgetquerystatusout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetquerystatusout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetquerystatusout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetquerystatusout,
	},
	{
		.name = "wsp_cpmgetquerystatusexin",
		.struct_size = sizeof(struct wsp_cpmgetquerystatusexin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetquerystatusexin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetquerystatusexin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetquerystatusexin,
	},
	{
		.name = "wsp_cpmgetquerystatusexout",
		.struct_size = sizeof(struct wsp_cpmgetquerystatusexout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetquerystatusexout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetquerystatusexout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetquerystatusexout,
	},
	{
		.name = "wsp_cpmrestartpositionin",
		.struct_size = sizeof(struct wsp_cpmrestartpositionin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmrestartpositionin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmrestartpositionin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmrestartpositionin,
	},
	{
		.name = "wsp_cpmratiofinishedin",
		.struct_size = sizeof(struct wsp_cpmratiofinishedin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmratiofinishedin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmratiofinishedin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmratiofinishedin,
	},
	{
		.name = "wsp_cpmratiofinishedout",
		.struct_size = sizeof(struct wsp_cpmratiofinishedout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmratiofinishedout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmratiofinishedout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmratiofinishedout,
	},
	{
		.name = "wsp_cpmfetchvaluein",
		.struct_size = sizeof(struct wsp_cpmfetchvaluein ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmfetchvaluein,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmfetchvaluein,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmfetchvaluein,
	},
	{
		.name = "vt_i1_safe2_array",
		.struct_size = sizeof(struct vt_i1_safe2_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i1_safe2_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i1_safe2_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i1_safe2_array,
	},
	{
		.name = "vt_ui1_safe2_array",
		.struct_size = sizeof(struct vt_ui1_safe2_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui1_safe2_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui1_safe2_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui1_safe2_array,
	},
	{
		.name = "vt_i2_safe2_array",
		.struct_size = sizeof(struct vt_i2_safe2_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i2_safe2_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i2_safe2_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i2_safe2_array,
	},
	{
		.name = "vt_ui2_safe2_array",
		.struct_size = sizeof(struct vt_ui2_safe2_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui2_safe2_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui2_safe2_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui2_safe2_array,
	},
	{
		.name = "vt_i4_safe2_array",
		.struct_size = sizeof(struct vt_i4_safe2_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_i4_safe2_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_i4_safe2_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_i4_safe2_array,
	},
	{
		.name = "vt_ui4_safe2_array",
		.struct_size = sizeof(struct vt_ui4_safe2_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_ui4_safe2_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_ui4_safe2_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_ui4_safe2_array,
	},
	{
		.name = "vt_dlong_safe2_array",
		.struct_size = sizeof(struct vt_dlong_safe2_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_dlong_safe2_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_dlong_safe2_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_dlong_safe2_array,
	},
	{
		.name = "vt_bstr_safe2_array",
		.struct_size = sizeof(struct vt_bstr_safe2_array ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_bstr_safe2_array,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_bstr_safe2_array,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_bstr_safe2_array,
	},
	{
		.name = "vt_variant_wrap_safearray2",
		.struct_size = sizeof(struct vt_variant_wrap_safearray2 ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_vt_variant_wrap_safearray2,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vt_variant_wrap_safearray2,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_vt_variant_wrap_safearray2,
	},
	{
		.name = "wsp_serializedpropertyvalue",
		.struct_size = sizeof(struct wsp_serializedpropertyvalue ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_serializedpropertyvalue,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_serializedpropertyvalue,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_serializedpropertyvalue,
	},
	{
		.name = "wsp_cpmfetchvalueout",
		.struct_size = sizeof(struct wsp_cpmfetchvalueout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmfetchvalueout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmfetchvalueout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmfetchvalueout,
	},
	{
		.name = "wsp_cpmsetscopeprioritizationin",
		.struct_size = sizeof(struct wsp_cpmsetscopeprioritizationin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmsetscopeprioritizationin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmsetscopeprioritizationin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmsetscopeprioritizationin,
	},
	{
		.name = "wsp_cpmsendnotifyout",
		.struct_size = sizeof(struct wsp_cpmsendnotifyout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmsendnotifyout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmsendnotifyout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmsendnotifyout,
	},
	{
		.name = "wsp_cpmgetrowsetnotifyout",
		.struct_size = sizeof(struct wsp_cpmgetrowsetnotifyout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetrowsetnotifyout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetrowsetnotifyout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetrowsetnotifyout,
	},
	{
		.name = "wsp_cpmgetscopestatisticsout",
		.struct_size = sizeof(struct wsp_cpmgetscopestatisticsout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetscopestatisticsout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetscopestatisticsout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetscopestatisticsout,
	},
	{
		.name = "wsp_cpmgetapproximatepositionin",
		.struct_size = sizeof(struct wsp_cpmgetapproximatepositionin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetapproximatepositionin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetapproximatepositionin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetapproximatepositionin,
	},
	{
		.name = "wsp_cpmgetapproximatepositionout",
		.struct_size = sizeof(struct wsp_cpmgetapproximatepositionout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmgetapproximatepositionout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmgetapproximatepositionout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmgetapproximatepositionout,
	},
	{
		.name = "wsp_cpmcomparebmkin",
		.struct_size = sizeof(struct wsp_cpmcomparebmkin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmcomparebmkin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmcomparebmkin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmcomparebmkin,
	},
	{
		.name = "wsp_cpmcomparebmkout",
		.struct_size = sizeof(struct wsp_cpmcomparebmkout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmcomparebmkout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmcomparebmkout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmcomparebmkout,
	},
	{
		.name = "wsp_cpmcistateinout",
		.struct_size = sizeof(struct wsp_cpmcistateinout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_cpmcistateinout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_cpmcistateinout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_cpmcistateinout,
	},
	{
		.name = "wsp_findindicesin",
		.struct_size = sizeof(struct wsp_findindicesin ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_findindicesin,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_findindicesin,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_findindicesin,
	},
	{
		.name = "wsp_findindicesout",
		.struct_size = sizeof(struct wsp_findindicesout ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_findindicesout,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_findindicesout,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_findindicesout,
	},
	{
		.name = "wsp_request",
		.struct_size = sizeof(struct wsp_request ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_request,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_request,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_request,
	},
	{
		.name = "wsp_response",
		.struct_size = sizeof(struct wsp_response ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_wsp_response,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_wsp_response,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_wsp_response,
	},
	{ .name = NULL }
};

static const struct ndr_interface_call msftewds_calls[] = {
	{ .name = NULL }
};

static const char * const msftewds_endpoint_strings[] = {
	"ncacn_np:[\\pipe\\MsFteWds]", 
};

static const struct ndr_interface_string_array msftewds_endpoints = {
	.count	= 1,
	.names	= msftewds_endpoint_strings
};

static const char * const msftewds_authservice_strings[] = {
	"host", 
};

static const struct ndr_interface_string_array msftewds_authservices = {
	.count	= 1,
	.names	= msftewds_authservice_strings
};


const struct ndr_interface_table ndr_table_msftewds = {
	.name		= "msftewds",
	.num_calls	= 0,
	.calls		= msftewds_calls,
	.num_public_structs	= 123,
	.public_structs		= msftewds_public_structs,
	.endpoints	= &msftewds_endpoints,
	.authservices	= &msftewds_authservices
};

#endif /* SKIP_NDR_TABLE_msftewds */
