I have in front of me 1 definition of p\poly and one of NP.

Definition of p\poly:

L E P/poly if there exists a polynomial-time Turing machine M, a polynomial p() and a function h mapping numbers to strings, where |h(n)| <= p(n), such that for all strings x, x E L <=> < x, h(|x|) > is accepted by M.

Definition of NP:

L E NP if there exists a polynomial-time Turing machine M and a polynomial p() such that for all strings x x E L <=> there exists y s.t. |y| <= p(|x|) and < x, y > is accepted by M.

What is the critical difference between the two definitions? For some x1 and x2 with |x1| = |x2| y1 and y2 might be different, but does that mean that p/poly is a subset of NP?